From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Denis Arnaud To: git-commits@fedoraproject.org Subject: [rpms/soci] epel10: Fixed a g++-4.4 compatibility issue, within the PostgreSQL test, by adding Date: Sat, 27 Jun 2026 21:54:52 GMT Message-ID: <178259729241.1.3393108917605609536.rpms-soci-b58b972c3ec6@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: epel10 X-Git-Rev: b58b972c3ec6c23f34fac03b3d2507952b5ddf87 ICAgICAgICBBIG5ldyBjb21taXQgaGFzIGJlZW4gcHVzaGVkLgoKICAgICAgICBSZXBvICAgOiBy cG1zL3NvY2kKICAgICAgICBCcmFuY2ggOiBlcGVsMTAKICAgICAgICBDb21taXQgOiBiNThiOTcy YzNlYzZjMjNmMzRmYWMwM2IzZDI1MDc5NTJiNWRkZjg3CiAgICAgICAgQXV0aG9yIDogRGVuaXMg QXJuYXVkIDxkZW5pc2FybmF1ZEBmZWRvcmFwcm9qZWN0Lm9yZz4KICAgICAgICBEYXRlICAgOiAy MDEwLTAxLTIzVDE1OjE2OjQ5KzAwOjAwCiAgICAgICAgU3RhdHMgIDogKzYyOTcwLy01OTg2MiBp biA2IGZpbGUocykKICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9y Zy9ycG1zL3NvY2kvYy9iNThiOTcyYzNlYzZjMjNmMzRmYWMwM2IzZDI1MDc5NTJiNWRkZjg3P2Jy YW5jaD1lcGVsMTAKCiAgICAgICAgTG9nOgogICAgICAgIEZpeGVkIGEgZysrLTQuNCBjb21wYXRp YmlsaXR5IGlzc3VlLCB3aXRoaW4gdGhlIFBvc3RncmVTUUwgdGVzdCwgYnkgYWRkaW5nCmEgY3N0 cmluZyBpbmNsdWRlIGRpcmVjdGl2ZS4KCi0tLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LmxvZyBiL2lt cG9ydC5sb2cKaW5kZXggY2ZhNDRjNi4uYTc2NmZjNSAxMDA2NDQKLS0tIGEvaW1wb3J0LmxvZwor KysgYi9pbXBvcnQubG9nCkBAIC01LDMgKzUsNCBAQCBzb2NpLTNfMF8wLTlfZmMxMDpIRUFEOnNv Y2ktMy4wLjAtOS5mYzEwLnNyYy5ycG06MTI0MTU1OTczMgogc29jaS0zXzBfMC0xMF9mYzEwOkhF QUQ6c29jaS0zLjAuMC0xMC5mYzEwLnNyYy5ycG06MTI0MTU2MzMxMQogc29jaS0zXzBfMC0xMV9m YzEwOkhFQUQ6c29jaS0zLjAuMC0xMS5mYzEwLnNyYy5ycG06MTI0MTU2NzE1Mwogc29jaS0zXzBf MC0xM19mYzExOkhFQUQ6c29jaS0zLjAuMC0xMy5mYzExLnNyYy5ycG06MTI0MzA4MDM3Mgorc29j aS0zXzBfMC0xNl9mYzEyOkhFQUQ6c29jaS0zLjAuMC0xNi5mYzEyLnNyYy5ycG06MTI2NDI1ODg0 OQoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtMTMtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0 Y2ggYi9zb2NpLTMuMC4wLTEzLWZpeC1nY2M0My1jb21wYXRpYmlsaXR5LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTFiNWIyLi4wMDAwMDAwCi0tLSBhL3NvY2ktMy4wLjAt MTMtZml4LWdjYzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MSAr MCwwIEBACi1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmgg c29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oCi0tLS0gc29jaS0z LjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9uLmgJMjAwOC0wNy0wMyAwOToyMjo1Ny4wMDAw MDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvY29t bW9uLmgJMjAwOS0wNS0yMyAxMzoxMTowMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMCw2ICsxMCw3 IEBACi0gCi0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSsj aW5jbHVkZSA8Y3RpbWU+Ci0gCi0gbmFtZXNwYWNlIHNvY2kKLSB7Ci1kaWZmIC1OdXIgc29jaS0z LjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgc29jaS0zLjAuMF80LXBhY2svc3Jj L2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMv bXlzcWwvc2Vzc2lvbi5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4wMDAwMDAwMDAgKzAyMDAKLSsr KyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAJMjAwOS0w NS0yMyAxMzoxMTowMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMSw3ICsxMSw4IEBACi0gI2luY2x1 ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y2Vycm5vPgotICNpbmNsdWRlIDxjaXNvNjQ2PgotLQot KyNpbmNsdWRlIDxjc3RkbGliPgotKyNpbmNsdWRlIDxjbGltaXRzPgotIAotICNpZmRlZiBfTVND X1ZFUgotICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1OdXIgc29jaS0zLjAu MC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wXzQt cGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2kt My4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOC0wNS0z MCAxMzozMzo0NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjExOjAzLjAw MDAwMDAwMCArMDIwMAotQEAgLTEyLDYgKzEyLDggQEAKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0g I2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci0rI2luY2x1ZGUgPGN0aW1l PgotKyNpbmNsdWRlIDxjc3RyaW5nPgotIAotICNpZmRlZiBfTVNDX1ZFUgotICNwcmFnbWEgd2Fy bmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlz cWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9t eXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQt dXNlLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6MjQ6NDIuMDAwMDAwMDAwICswMjAwCi1AQCAtMTAs OCArMTAsMTAgQEAKLSAjaW5jbHVkZSAic29jaS1teXNxbC5oIgotICNpbmNsdWRlICJjb21tb24u aCIKLSAjaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+ Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLSsjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3Ry aW5nPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tl bmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tl bmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5k cy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDgtMDUtMTUgMTU6NTg6MzguMDAwMDAwMDAw ICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11 c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNToxMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMCw5 ICsxMCwxMiBAQAotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5o IgotICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4K LSAjaW5jbHVkZSA8bGltaXRzPgotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1ZGUgPGNzdHJp bmc+Ci0rI2luY2x1ZGUgPGN0aW1lPgotIAotICNpZmRlZiBfTVNDX1ZFUgotICNwcmFnbWEgd2Fy bmluZyhkaXNhYmxlOjQzNTUpCi1kaWZmIC1OdXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9z dGdyZXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2NvbW1vbi5jcHAKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAJMjAwOC0wNi0yNyAxNjozODowNS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMDktMDUtMjMg MTM6MjM6MzguMDAwMDAwMDAwICswMjAwCi1AQCAtNyw3ICs3LDkgQEAKLSAKLSAjaW5jbHVkZSAi Y29tbW9uLmgiCi0gI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKy8vCi0gI2luY2x1ZGUgPGNz dGRsaWI+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3RpbWU+Ci0gCi0gCi1kaWZm IC1OdXIgc29jaS0zLjAuMC9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAgc29jaS0zLjAuMF80LXBh Y2svc3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvY29yZS9zb2Np LXNpbXBsZS5jcHAJMjAwOC0wNy0wMSAwOTo0MjoyNS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2Np LTMuMC4wXzQtcGFjay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAJMjAwOS0wNS0yMyAxMzoyMTox NC4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDYgKzksOCBAQAotIAotICNpbmNsdWRlICJzb2NpLXNp bXBsZS5oIgotICNpbmNsdWRlICJzb2NpLmgiCi0rLy8KLSsjaW5jbHVkZSA8Y3N0ZGlvPgotIAot IHVzaW5nIG5hbWVzcGFjZSBzb2NpOwotIAoKZGlmZiAtLWdpdCBhL3NvY2ktMy4wLjAtMTMtZml4 LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaCBiL3NvY2ktMy4wLjAtMTMtZml4LWdu dS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMjZkMzQ2OS4uMDAwMDAwMAotLS0gYS9zb2NpLTMuMC4wLTEzLWZpeC1nbnUtYXV0b3Rv b2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OTc2NyArMCwwIEBA Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5tNCBzb2NpLTMuMC4wX3RyZXAz MDAvYWNsb2NhbC5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2FjbG9jYWwubTQJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYWNsb2Nh bC5tNAkyMDA5LTA1LTIzIDEwOjAxOjU4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw4ODcg QEAKLSsjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9jYWwgMS4xMC4yIC0qLSBBdXRv Y29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKLSsjIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0r IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0r Ci0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsgIFttNF9jb3B5KFttNF9QQUNL QUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLSttNF9pZihtNF9kZWZu KFtBQ19BVVRPQ09ORl9WRVJTSU9OXSksIFsyLjYzXSwsCi0rW200X3dhcm5pbmcoW3RoaXMgZmls ZSB3YXMgZ2VuZXJhdGVkIGZvciBhdXRvY29uZiAyLjYzLgotK1lvdSBoYXZlIGFub3RoZXIgdmVy c2lvbiBvZiBhdXRvY29uZi4gIEl0IG1heSB3b3JrLCBidXQgaXMgbm90IGd1YXJhbnRlZWQgdG8u Ci0rSWYgeW91IGhhdmUgcHJvYmxlbXMsIHlvdSBtYXkgbmVlZCB0byByZWdlbmVyYXRlIHRoZSBi dWlsZCBzeXN0ZW0gZW50aXJlbHkuCi0rVG8gZG8gc28sIHVzZSB0aGUgcHJvY2VkdXJlIGRvY3Vt ZW50ZWQgYnkgdGhlIHBhY2thZ2UsIHR5cGljYWxseSBgYXV0b3JlY29uZicuXSldKQotKwotKyMg Q29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsj IEFNX0FVVE9NQUtFX1ZFUlNJT04oVkVSU0lPTikKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIEF1dG9tYWtlIFguWSB0cmFjZXMgdGhpcyBtYWNybyB0byBlbnN1cmUgYWNsb2Nh bC5tNCBoYXMgYmVlbgotKyMgZ2VuZXJhdGVkIGZyb20gdGhlIG00IGZpbGVzIGFjY29tcGFueWlu ZyBBdXRvbWFrZSBYLlkuCi0rIyAoVGhpcyBwcml2YXRlIG1hY3JvIHNob3VsZCBub3QgYmUgY2Fs bGVkIG91dHNpZGUgdGhpcyBmaWxlLikKLStBQ19ERUZVTihbQU1fQVVUT01BS0VfVkVSU0lPTl0s Ci0rW2FtX19hcGlfdmVyc2lvbj0nMS4xMCcKLStkbmwgU29tZSB1c2VycyBmaW5kIEFNX0FVVE9N QUtFX1ZFUlNJT04gYW5kIG1pc3Rha2UgaXQgZm9yIGEgd2F5IHRvCi0rZG5sIHJlcXVpcmUgc29t ZSBtaW5pbXVtIHZlcnNpb24uICBQb2ludCB0aGVtIHRvIHRoZSByaWdodCBtYWNyby4KLSttNF9p ZihbJDFdLCBbMS4xMC4yXSwgW10sCi0rICAgICAgW0FDX0ZBVEFMKFtEbyBub3QgY2FsbCAkMCwg dXNlIEFNX0lOSVRfQVVUT01BS0UoWyQxXSkuXSldKWRubAotK10pCi0rCi0rIyBfQU1fQVVUT0NP TkZfVkVSU0lPTihWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IGFjbG9jYWwgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZmluZCB0aGUgQXV0b2NvbmYgdmVyc2lvbi4K LSsjIFRoaXMgaXMgYSBwcml2YXRlIG1hY3JvIHRvby4gIFVzaW5nIG00X2RlZmluZSBzaW1wbGlm aWVzCi0rIyB0aGUgbG9naWMgaW4gYWNsb2NhbCwgd2hpY2ggY2FuIHNpbXBseSBpZ25vcmUgdGhp cyBkZWZpbml0aW9uLgotK200X2RlZmluZShbX0FNX0FVVE9DT05GX1ZFUlNJT05dLCBbXSkKLSsK LSsjIEFNX1NFVF9DVVJSRU5UX0FVVE9NQUtFX1ZFUlNJT04KLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIENhbGwgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgQU1fQVVUT01B S0VfVkVSU0lPTiBzbyB0aGV5IGNhbiBiZSB0cmFjZWQuCi0rIyBUaGlzIGZ1bmN0aW9uIGlzIEFD X1JFUVVJUkVkIGJ5IEFNX0lOSVRfQVVUT01BS0UuCi0rQUNfREVGVU4oW0FNX1NFVF9DVVJSRU5U X0FVVE9NQUtFX1ZFUlNJT05dLAotK1tBTV9BVVRPTUFLRV9WRVJTSU9OKFsxLjEwLjJdKWRubAot K200X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCi0rICBbbTRfY29weShbbTRfUEFDS0FH RV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5sCi0rX0FNX0FVVE9DT05GX1ZF UlNJT04obTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pKV0pCi0rCi0rIyBBTV9BVVhfRElS X0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9j b25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEZv ciBwcm9qZWN0cyB1c2luZyBBQ19DT05GSUdfQVVYX0RJUihbZm9vXSksIEF1dG9jb25mIHNldHMK LSsjICRhY19hdXhfZGlyIHRvIGAkc3JjZGlyL2ZvbycuICBJbiBvdGhlciBwcm9qZWN0cywgaXQg aXMgc2V0IHRvCi0rIyBgJHNyY2RpcicsIGAkc3JjZGlyLy4uJywgb3IgYCRzcmNkaXIvLi4vLi4n LgotKyMKLSsjIE9mIGNvdXJzZSwgQXV0b21ha2UgbXVzdCBob25vciB0aGlzIHZhcmlhYmxlIHdo ZW5ldmVyIGl0IGNhbGxzIGEKLSsjIHRvb2wgZnJvbSB0aGUgYXV4aWxpYXJ5IGRpcmVjdG9yeS4g IFRoZSBwcm9ibGVtIGlzIHRoYXQgJHNyY2RpciAoYW5kCi0rIyB0aGVyZWZvcmUgJGFjX2F1eF9k aXIgYXMgd2VsbCkgY2FuIGJlIGVpdGhlciBhYnNvbHV0ZSBvciByZWxhdGl2ZSwKLSsjIGRlcGVu ZGluZyBvbiBob3cgY29uZmlndXJlIGlzIHJ1bi4gIFRoaXMgaXMgcHJldHR5IGFubm95aW5nLCBz aW5jZQotKyMgaXQgbWFrZXMgJGFjX2F1eF9kaXIgcXVpdGUgdW51c2FibGUgaW4gc3ViZGlyZWN0 b3JpZXM6IGluIHRoZSB0b3AKLSsjIHNvdXJjZSBkaXJlY3RvcnksIGFueSBmb3JtIHdpbGwgd29y ayBmaW5lLCBidXQgaW4gc3ViZGlyZWN0b3JpZXMgYQotKyMgcmVsYXRpdmUgcGF0aCBuZWVkcyB0 byBiZSBhZGp1c3RlZCBmaXJzdC4KLSsjCi0rIyAkYWNfYXV4X2Rpci9taXNzaW5nCi0rIyAgICBm YWlscyB3aGVuIGNhbGxlZCBmcm9tIGEgc3ViZGlyZWN0b3J5IGlmICRhY19hdXhfZGlyIGlzIHJl bGF0aXZlCi0rIyAkdG9wX3NyY2Rpci8kYWNfYXV4X2Rpci9taXNzaW5nCi0rIyAgICBmYWlscyBp ZiAkYWNfYXV4X2RpciBpcyBhYnNvbHV0ZSwKLSsjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20g YSBzdWJkaXJlY3RvcnkgaW4gYSBWUEFUSCBidWlsZCB3aXRoCi0rIyAgICAgICAgICBhIHJlbGF0 aXZlICRhY19hdXhfZGlyCi0rIwotKyMgVGhlIHJlYXNvbiBvZiB0aGUgbGF0dGVyIGZhaWx1cmUg aXMgdGhhdCAkdG9wX3NyY2RpciBhbmQgJGFjX2F1eF9kaXIKLSsjIGFyZSBib3RoIHByZWZpeGVk IGJ5ICRzcmNkaXIuICBJbiBhbiBpbi1zb3VyY2UgYnVpbGQgdGhpcyBpcyB1c3VhbGx5Ci0rIyBo YXJtbGVzcyBiZWNhdXNlICRzcmNkaXIgaXMgYC4nLCBidXQgdGhpbmdzIHdpbGwgYnJva2Ugd2hl biB5b3UKLSsjIHN0YXJ0IGEgVlBBVEggYnVpbGQgb3IgdXNlIGFuIGFic29sdXRlICRzcmNkaXIu Ci0rIwotKyMgU28gd2UgY291bGQgdXNlIHNvbWV0aGluZyBzaW1pbGFyIHRvICR0b3Bfc3JjZGly LyRhY19hdXhfZGlyL21pc3NpbmcsCi0rIyBpZmYgd2Ugc3RyaXAgdGhlIGxlYWRpbmcgJHNyY2Rp ciBmcm9tICRhY19hdXhfZGlyLiAgVGhhdCB3b3VsZCBiZToKLSsjICAgYW1fYXV4X2Rpcj0nXCQo dG9wX3NyY2RpcikvJ2BleHByICIkYWNfYXV4X2RpciIgOiAiJHNyY2Rpci8vKlwoLipcKSJgCi0r IyBhbmQgdGhlbiB3ZSB3b3VsZCBkZWZpbmUgJE1JU1NJTkcgYXMKLSsjICAgTUlTU0lORz0iXCR7 U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciCi0rIyBUaGlzIHdpbGwgd29yayBhcyBsb25nIGFz IE1JU1NJTkcgaXMgbm90IGNhbGxlZCBmcm9tIGNvbmZpZ3VyZSwgYmVjYXVzZQotKyMgdW5mb3J0 dW5hdGVseSAkKHRvcF9zcmNkaXIpIGhhcyBubyBtZWFuaW5nIGluIGNvbmZpZ3VyZS4KLSsjIEhv d2V2ZXIgdGhlcmUgYXJlIG90aGVyIHZhcmlhYmxlcywgbGlrZSBDQywgd2hpY2ggYXJlIG9mdGVu IHVzZWQgaW4KLSsjIGNvbmZpZ3VyZSwgYW5kIGNvdWxkIHRoZXJlZm9yZSBub3QgdXNlIHRoaXMg ImZpeGVkIiAkYWNfYXV4X2Rpci4KLSsjCi0rIyBBbm90aGVyIHNvbHV0aW9uLCB1c2VkIGhlcmUs IGlzIHRvIGFsd2F5cyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4KLSsjIGFic29sdXRlIFBBVEgu ICBUaGUgZHJhd2JhY2sgaXMgdGhhdCB1c2luZyBhYnNvbHV0ZSBwYXRocyBwcmV2ZW50IGEKLSsj IGNvbmZpZ3VyZWQgdHJlZSB0byBiZSBtb3ZlZCB3aXRob3V0IHJlY29uZmlndXJhdGlvbi4KLSsK LStBQ19ERUZVTihbQU1fQVVYX0RJUl9FWFBBTkRdLAotK1tkbmwgUmVseSBvbiBhdXRvY29uZiB0 byBzZXQgdXAgQ0RQQVRIIHByb3Blcmx5LgotK0FDX1BSRVJFUShbMi41MF0pZG5sCi0rIyBleHBh bmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAotK2FtX2F1eF9kaXI9YGNkICRhY19h dXhfZGlyICYmIHB3ZGAKLStdKQotKwotKyMgQU1fQ09ORElUSU9OQUwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHly aWdodCAoQykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgotKyMgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0r Ci0rIyBzZXJpYWwgOAotKwotKyMgQU1fQ09ORElUSU9OQUwoTkFNRSwgU0hFTEwtQ09ORElUSU9O KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRGVmaW5lIGEg Y29uZGl0aW9uYWwuCi0rQUNfREVGVU4oW0FNX0NPTkRJVElPTkFMXSwKLStbQUNfUFJFUkVRKDIu NTIpZG5sCi0rIGlmZWxzZShbJDFdLCBbVFJVRV0sICBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNv bmRpdGlvbjogJDFdKV0sCi0rCVskMV0sIFtGQUxTRV0sIFtBQ19GQVRBTChbJDA6IGludmFsaWQg Y29uZGl0aW9uOiAkMV0pXSlkbmwKLStBQ19TVUJTVChbJDFfVFJVRV0pZG5sCi0rQUNfU1VCU1Qo WyQxX0ZBTFNFXSlkbmwKLStfQU1fU1VCU1RfTk9UTUFLRShbJDFfVFJVRV0pZG5sCi0rX0FNX1NV QlNUX05PVE1BS0UoWyQxX0ZBTFNFXSlkbmwKLStpZiAkMjsgdGhlbgotKyAgJDFfVFJVRT0KLSsg ICQxX0ZBTFNFPScjJwotK2Vsc2UKLSsgICQxX1RSVUU9JyMnCi0rICAkMV9GQUxTRT0KLStmaQot K0FDX0NPTkZJR19DT01NQU5EU19QUkUoCi0rW2lmIHRlc3QgLXogIiR7JDFfVFJVRX0iICYmIHRl c3QgLXogIiR7JDFfRkFMU0V9IjsgdGhlbgotKyAgQUNfTVNHX0VSUk9SKFtbY29uZGl0aW9uYWwg IiQxIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKLStmaV0pXSkKLSsKLSsjIENvcHlyaWdo dCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgotKyMg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBzZXJpYWwgOQotKwotKyMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93 IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0rIyB3cml0dGVuIGluIGNsZWFyLCBp biB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKLSsjIHdpbGwg dGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQn cwotKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQg YXV0b3NjYW4sIHNlZWluZwotKyMgQ0MgZXRjLiBpbiB0aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZv ciBhbiBBQ19QUk9HX0NDIHVzZS4uLgotKwotKwotKyMgX0FNX0RFUEVOREVOQ0lFUyhOQU1FKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVt ZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotKyMgTkFNRSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIs IG9yICJPQkpDIi4KLSsjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBz ZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCi0rIwotKyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0 aGUgY29ycmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBsYXR0ZXIgd2FzCi0rIyBtb2Rp ZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJj dWxhcgotKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVj dGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotKyMganVzdCByZWx5IG9uIEFDX1BST0dfQ0MuCi0rQUNf REVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAotK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlk bmwKLStBQ19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10pZG5sCi0rQUNf UkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0td KWRubAotKwotK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9s aXN0PV0sCi0rICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xp c3Q9XSwKLSsgICAgICAgWyQxXSwgT0JKQywgW2RlcGNjPSIkT0JKQyIgYW1fY29tcGlsZXJfbGlz dD0nZ2NjMyBnY2MnXSwKLSsgICAgICAgWyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29t cGlsZXJfbGlzdD1dLAotKyAgICAgICBbJDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21w aWxlcl9saXN0PSdnY2MzIGdjYyddLAotKyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIg ICBhbV9jb21waWxlcl9saXN0PV0pCi0rCi0rQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5 bGUgb2YgJGRlcGNjXSwKLSsgICAgICAgICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGVdLAotK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFt X2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0 aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0 aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0 YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQg dXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBt ZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIK LSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBm aW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3Ag IiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3 aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNh dXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rl cy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1N RCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGls YXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3Vy cmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0r ICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7 IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05 XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1f Y29tcGlsZXJfbGlzdDsgZG8KLSsgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5k ZW5jaWVzLCBiZWNhdXNlIHNvbWUgY29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdl IGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBz aG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlz LgotKyAgICAjCi0rICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFj aCB0ZXN0LCBhcyB0aGUgY29tcGlsZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhl bSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBo YXBwZW5zIGF0IGxlYXN0IHdpdGggdGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2Nv bmZ0ZXN0LmMKLSsgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2lu Y2x1ZGUgImNvbmZ0c3QnJGknLmgiJyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcg YDogPiBzdWIvY29uZnRzdCRpLmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0r ICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29u ZnRzdCRpLmgKLSsgICAgZG9uZQotKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90 ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgIGNhc2UgJGRl cG1vZGUgaW4KLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1l Y2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotKyAgICAgICMgb25s eSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsgICAgICBpZiB0ZXN0ICJ4JGVu YWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAg ICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBub25lKSBicmVhayA7 OwotKyAgICBlc2FjCi0rICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUg c2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhh dCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQotKyAgICAjIGhhbmRs ZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4KLSsgICAgaWYgZGVwbW9kZT0k ZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0 ZXN0LiR7T0JKRVhULW99IFwKLSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVw ZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2Mg LWMgLW8gc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKLSsgICAgICAg ICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Qx Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIv Y29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBn cmVwIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+ JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywg aXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdp dGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAj IHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAg ICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAg ICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsg bm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBp Y2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1Q JyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRl c3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVu Y2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAgICAgICBicmVhawotKyAgICAgIGZpCi0r ICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgotK2Vs c2UKLSsgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStmaQotK10p Ci0rQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZV0pCi0rQU1fQ09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0rICB0 ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAi JGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzNdKQotK10pCi0rCi0r Ci0rIyBBTV9TRVRfREVQRElSCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBDaG9vc2UgYSBkaXJlY3Rv cnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KLSsjIFRoaXMgbWFjcm8gaXMgQUNfUkVRVUlS RWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotK0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKLStbQUNf UkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStBQ19TVUJTVChbREVQRElSXSwgWyIk e2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi0rXSkKLSsKLSsKLSsjIEFNX0RFUF9UUkFDSwot KyMgLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX0RFUF9UUkFDS10sCi0rW0FDX0FSR19FTkFC TEUoZGVwZW5kZW5jeS10cmFja2luZywKLStbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2lu ZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNr aW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCi0raWYgdGVz dCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBhbV9kZXBj b21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkKLStB TV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2lu ZyIgIT0geG5vXSkKLStBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKWRubAotK19BTV9TVUJTVF9O T1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCi0rXSkKLSsKLSsjIEdlbmVyYXRlIGNvZGUgdG8g c2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSot Ci0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDgKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJpYWwgNAotKwotKyMgX0FNX09VVFBVVF9ERVBFTkRF TkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZV TihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbIyBBdXRvY29uZiAyLjYyIHF1 b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMKLSsjIGFy ZSBsaXN0ZWQgd2l0aG91dCAtLWZpbGUuICBMZXQncyBwbGF5IHNhZmUgYW5kIG9ubHkgZW5hYmxl IHRoZSBldmFsCi0rIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCi0rY2FzZSAkQ09ORklHX0ZJ TEVTIGluCi0rKlwnKikgZXZhbCBzZXQgeCAiJENPTkZJR19GSUxFUyIgOzsKLSsqKSAgIHNldCB4 ICRDT05GSUdfRklMRVMgOzsKLStlc2FjCi0rc2hpZnQKLStmb3IgbWYKLStkbwotKyAgIyBTdHJp cCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KLSsgIG1mPWBlY2hv ICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCi0rICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBh biBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgotKyAgIyBXZSB1c2VkIHRvIG1h dGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAotKyAgIyBzb21lIHBl b3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQu Ci0rICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxl IHBvc3QtcHJvY2VzcwotKyAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBv biB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KLSsgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZp bGUgaXMgbm90IGdvb2QgZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCi0rICAjIGxpbWl0IG9m IDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAw MC4KLSsgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlLiosWCxwJyAiJG1m IiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgZGlycGFydD1gQVNfRElSTkFN RSgiJG1mIilgCi0rICBlbHNlCi0rICAgIGNvbnRpbnVlCi0rICBmaQotKyAgIyBFeHRyYWN0IHRo ZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKLSsgICMg ZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtlJy4KLSsgIERFUERJUj1gc2Vk IC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCi0rICB0ZXN0IC16ICIkREVQRElSIiAmJiBj b250aW51ZQotKyAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwg IiRtZiJgCi0rICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKLSsgIGFtX19xdW90 ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCi0rICAjIFdoZW4gdXNpbmcg YW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAotKyAg VT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAotKyAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5 IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAotKyAgIyAkKERFUERJ UikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhl Ci0rICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0 dWFsIHZhbHVlIGluIHRoZQotKyAgIyBleHBhbnNpb24uCi0rICBmb3IgZmlsZSBpbiBgc2VkIC1u ICIKLSsgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19x dW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCi0rICAgICAgIHNlZCAtZSAncy9cJChERVBESVIpLyci JERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBkbwotKyAgICAjIE1ha2Ugc3VyZSB0 aGUgZGlyZWN0b3J5IGV4aXN0cy4KLSsgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNv bnRpbnVlCi0rICAgIGZkaXI9YEFTX0RJUk5BTUUoWyIkZmlsZSJdKWAKLSsgICAgQVNfTUtESVJf UChbJGRpcnBhcnQvJGZkaXJdKQotKyAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxl IgotKyAgICBlY2hvICcjIGR1bW15JyA+ICIkZGlycGFydC8kZmlsZSIKLSsgIGRvbmUKLStkb25l Ci0rXSkjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUwotKwotKwotKyMgQU1fT1VUUFVU X0RFUEVOREVOQ1lfQ09NTUFORFMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBUaGlzIG1hY3JvIHNob3VsZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFDX1JF UVVJUkUuCi0rIwotKyMgVGhpcyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0aWMg ZGVwZW5kZW5jeSB0cmFja2luZwotKyMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVhdGVz IGVhY2ggYC5QJyBmaWxlIHRoYXQgd2Ugd2lsbAotKyMgbmVlZCBpbiBvcmRlciB0byBib290c3Ry YXAgdGhlIGRlcGVuZGVuY3kgaGFuZGxpbmcgY29kZS4KLStBQ19ERUZVTihbQU1fT1VUUFVUX0RF UEVOREVOQ1lfQ09NTUFORFNdLAotK1tBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwKLSsg ICAgIFt0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVOQ1lf Q09NTUFORFNdLAotKyAgICAgW0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIk YWNfYXV4X2RpciJdKQotK10pCi0rCi0rIyBEbyBhbGwgdGhlIHdvcmsgZm9yIEF1dG9tYWtlLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJp Z2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAy MDA0LAotKyMgMjAwNSwgMjAwNiwgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAxMwotKwotKyMgVGhpcyBt YWNybyBhY3R1YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkgbmVlZGVk IGlmCi0rIyB5b3VyIHBhY2thZ2UgZG9lcyBjZXJ0YWluIHRoaW5ncy4gIEJ1dCB0aGlzIGlzbid0 IHJlYWxseSBhIGJpZyBkZWFsLgotKwotKyMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdFLCBWRVJT SU9OLCBbTk8tREVGSU5FXSkKLSsjIEFNX0lOSVRfQVVUT01BS0UoW09QVElPTlNdKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRoZSBjYWxs IHdpdGggUEFDS0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHlsZQotKyMg Y2FsbCAocHJlIGF1dG9jb25mLTIuNTApLCB3aGljaCBpcyBiZWluZyBwaGFzZWQgb3V0LiAgUEFD S0FHRQotKyMgYW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNfSU5JVCBhbmQg cmVtb3ZlZCBmcm9tCi0rIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgotKyMgV2Ugc3Vw cG9ydCBib3RoIGNhbGwgc3R5bGVzIGZvciB0aGUgdHJhbnNpdGlvbi4gIEFmdGVyCi0rIyB0aGUg bmV4dCBBdXRvbWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNfSU5JVAotKyMg YXJndW1lbnRzIG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5ldyBBdXRv Y29uZgotKyMgcmVsZWFzZSBhbmQgZHJvcCB0aGUgb2xkIGNhbGwgc3VwcG9ydC4KLStBQ19ERUZV TihbQU1fSU5JVF9BVVRPTUFLRV0sCi0rW0FDX1BSRVJFUShbMi42MF0pZG5sCi0rZG5sIEF1dG9j b25mIHdhbnRzIHRvIGRpc2FsbG93IEFNXyBuYW1lcy4gIFdlIGV4cGxpY2l0bHkgYWxsb3cKLStk bmwgdGhlIG9uZXMgd2UgY2FyZSBhYm91dC4KLSttNF9wYXR0ZXJuX2FsbG93KFteQU1fW0EtWl0r RkxBR1MkXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9O XSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAotK2lmIHRlc3QgImBjZCAk c3JjZGlyICYmIHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KLSsgICMgVXNlIC1JJChzcmNkaXIpIG9u bHkgd2hlbiAkKHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0Ci0rICAjIGlzIG5v dCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICItSS4iCi0rICBBQ19TVUJTVChbYW1fX2lzcmNdLCBb JyAtSSQoc3JjZGlyKSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9faXNyY10pZG5sCi0rICAjIHRl c3QgdG8gc2VlIGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKLSsgIGlmIHRlc3QgLWYgJHNy Y2Rpci9jb25maWcuc3RhdHVzOyB0aGVuCi0rICAgIEFDX01TR19FUlJPUihbc291cmNlIGRpcmVj dG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0Y2xlYW4iIHRoZXJlIGZpcnN0 XSkKLSsgIGZpCi0rZmkKLSsKLSsjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKLStpZiB0 ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgotKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rl di9udWxsIDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKLSsg IGVsc2UKLSsgICAgQ1lHUEFUSF9XPWVjaG8KLSsgIGZpCi0rZmkKLStBQ19TVUJTVChbQ1lHUEFU SF9XXSkKLSsKLSsjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCi0rZG5sIERp c3Rpbmd1aXNoIGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2FsbHMuCi0rbTRfaWZ2 YWwoWyQyXSwKLStbbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZpbmVdKV0p ZG5sCi0rIEFDX1NVQlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKLSsgQUNfU1VCU1QoW1ZFUlNJT05d LCBbJDJdKV0sCi0rW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAotK2RubCBEaWFnbm9zZSBvbGQt c3R5bGUgQUNfSU5JVCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFLRV9JTklULgotK200X2lmKG00 X2lmZGVmKFtBQ19QQUNLQUdFX05BTUVdLCAxKW00X2lmZGVmKFtBQ19QQUNLQUdFX1ZFUlNJT05d LCAxKSwgMTEsLAotKyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBw YWNrYWdlIGFuZCB2ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKLSsgQUNfU1VCU1QoW1BBQ0tBR0Vd LCBbJ0FDX1BBQ0tBR0VfVEFSTkFNRSddKWRubAotKyBBQ19TVUJTVChbVkVSU0lPTl0sIFsnQUNf UEFDS0FHRV9WRVJTSU9OJ10pXSlkbmwKLSsKLStfQU1fSUZfT1BUSU9OKFtuby1kZWZpbmVdLCwK LStbQUNfREVGSU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1lIG9mIHBhY2th Z2VdKQotKyBBQ19ERUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRWRVJTSU9OIiwgW1ZlcnNpb24g bnVtYmVyIG9mIHBhY2thZ2VdKV0pZG5sCi0rCi0rIyBTb21lIHRvb2xzIEF1dG9tYWtlIG5lZWRz LgotK0FDX1JFUVVJUkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCi0rQUNfUkVRVUlSRShbQUNfQVJH X1BST0dSQU1dKWRubAotK0FNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2FsLSR7YW1fX2Fw aV92ZXJzaW9ufSkKLStBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYsIGF1dG9jb25mKQotK0FNX01J U1NJTkdfUFJPRyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259KQotK0FNX01J U1NJTkdfUFJPRyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQotK0FNX01JU1NJTkdfUFJPRyhNQUtF SU5GTywgbWFrZWluZm8pCi0rQU1fUFJPR19JTlNUQUxMX1NICi0rQU1fUFJPR19JTlNUQUxMX1NU UklQCi0rQUNfUkVRVUlSRShbQU1fUFJPR19NS0RJUl9QXSlkbmwKLSsjIFdlIG5lZWQgYXdrIGZv ciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgotKyMgc29t ZSBwbGF0Zm9ybXMuCi0rQUNfUkVRVUlSRShbQUNfUFJPR19BV0tdKWRubAotK0FDX1JFUVVJUkUo W0FDX1BST0dfTUFLRV9TRVRdKWRubAotK0FDX1JFUVVJUkUoW0FNX1NFVF9MRUFESU5HX0RPVF0p ZG5sCi0rX0FNX0lGX09QVElPTihbdGFyLXVzdGFyXSwgW19BTV9QUk9HX1RBUihbdXN0YXJdKV0s Ci0rICAgICAgICAgICAgICBbX0FNX0lGX09QVElPTihbdGFyLXBheF0sIFtfQU1fUFJPR19UQVIo W3BheF0pXSwKLSsJICAgICAgCQkgICAgIFtfQU1fUFJPR19UQVIoW3Y3XSldKV0pCi0rX0FNX0lG X09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSwsCi0rW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9H X0NDXSwKLSsgICAgICAgICAgICAgICAgICBbX0FNX0RFUEVOREVOQ0lFUyhDQyldLAotKyAgICAg ICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfQ0NdLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVmbihbQUNfUFJPR19DQ10pW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSldKWRubAotK0FD X1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0rICAgICAgICAgICAgICAgICAgW19BTV9E RVBFTkRFTkNJRVMoQ1hYKV0sCi0rICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNfUFJPR19D WFhdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihbQUNfUFJPR19DWFhdKVtfQU1f REVQRU5ERU5DSUVTKENYWCldKV0pZG5sCi0rQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfT0JK Q10sCi0rICAgICAgICAgICAgICAgICAgW19BTV9ERVBFTkRFTkNJRVMoT0JKQyldLAotKyAgICAg ICAgICAgICAgICAgIFtkZWZpbmUoW0FDX1BST0dfT0JKQ10sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBkZWZuKFtBQ19QUk9HX09CSkNdKVtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSldKWRu bAotK10pCi0rXSkKLSsKLSsKLSsjIFdoZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFk ZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBzdGFtcC1oIGZpbGUuCi0rIyBUaGlzIGZpbGUgcmVzaWRl cyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGNvbmZpZyBoZWFkZXIKLSsjIHRoYXQgaXMg Z2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJlZCB0byBoYXZlIGRpZmZlcmVu dCBuYW1lcy4KLSsKLSsjIEF1dG9jb25mIGNhbGxzIF9BQ19BTV9DT05GSUdfSEVBREVSX0hPT0sg KHdoZW4gZGVmaW5lZCkgaW4gdGhlCi0rIyBsb29wIHdoZXJlIGNvbmZpZy5zdGF0dXMgY3JlYXRl cyB0aGUgaGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCi0rIyBvdXIgc3RhbXAgZmlsZXMgdGhl cmUuCi0rQUNfREVGVU4oW19BQ19BTV9DT05GSUdfSEVBREVSX0hPT0tdLAotK1sjIENvbXB1dGUg JDEncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2FyZz0kMQotK19hbV9zdGFtcF9j b3VudD0xCi0rZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNl ICRfYW1faGVhZGVyIGluCi0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJl YWsgOzsKLSsgICAgKiApCi0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBf Y291bnQgKyAxYCA7OwotKyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1f YXJnIiA+YEFTX0RJUk5BTUUoWyIkX2FtX2FyZyJdKWAvc3RhbXAtaFtdJF9hbV9zdGFtcF9jb3Vu dF0pCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fUFJP R19JTlNUQUxMX1NICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIERlZmluZSAkaW5zdGFsbF9z aC4KLStBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NIXSwKLStbQUNfUkVRVUlSRShbQU1fQVVY X0RJUl9FWFBBTkRdKWRubAotK2luc3RhbGxfc2g9JHtpbnN0YWxsX3NoLSJcJChTSEVMTCkgJGFt X2F1eF9kaXIvaW5zdGFsbC1zaCJ9Ci0rQUNfU1VCU1QoaW5zdGFsbF9zaCldKQotKwotKyMgQ29w eXJpZ2h0IChDKSAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsj Ci0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJp YnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRo aXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAyCi0rCi0rIyBDaGVjayB3aGV0 aGVyIHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lzdGVtIHN1cHBvcnRzIGZpbGVuYW1lcwotKyMgd2l0 aCBhIGxlYWRpbmcgZG90LiAgRm9yIGluc3RhbmNlIE1TLURPUyBkb2Vzbid0LgotK0FDX0RFRlVO KFtBTV9TRVRfTEVBRElOR19ET1RdLAotK1tybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGly IC50c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5n X2RvdD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4v ZGV2L251bGwKLStBQ19TVUJTVChbYW1fX2xlYWRpbmdfZG90XSldKQotKwotKyMgQ2hlY2sgdG8g c2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAgICAgICAtKi0gQXV0b2NvbmYg LSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg c2VyaWFsIDMKLSsKLSsjIEFNX01BS0VfSU5DTFVERSgpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLQot KyMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBpbmNsdWRlcy4KLStBQ19ERUZVTihbQU1f TUFLRV9JTkNMVURFXSwKLStbYW1fbWFrZT0ke01BS0UtbWFrZX0KLStjYXQgPiBjb25maW5jIDw8 ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIGRvbmUKLSsuUEhPTlk6IGFtX19kb2l0Ci0rRU5E Ci0rIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0IGNvbW1lbnQg b3V0IHRoZSBjb2RlLgotK0FDX01TR19DSEVDS0lORyhbZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNl ZCBieSAkYW1fbWFrZV0pCi0rYW1fX2luY2x1ZGU9IiMiCi0rYW1fX3F1b3RlPQotK19hbV9yZXN1 bHQ9bm9uZQotKyMgRmlyc3QgdHJ5IEdOVSBtYWtlIHN0eWxlIGluY2x1ZGUuCi0rZWNobyAiaW5j bHVkZSBjb25maW5jIiA+IGNvbmZtZgotKyMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVjdG9y eScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKLSsjIG1lc3NhZ2VzIHdoaWNoIGNhbiBvY2N1ciBp ZiBgdycgZW5kcyB1cCBpbiBNQUtFRkxBR1MuCi0rIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0IGxv b2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAotKyMgYmUgaW52b2tlZCB1bmRl ciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCi0rIyBjYXNlIGl0 IHByaW50cyBpdHMgbmV3IG5hbWUgaW5zdGVhZCBvZiBgbWFrZScuCi0raWYgdGVzdCAiYCRhbV9t YWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5J2Ai ID0gImRvbmUiOyB0aGVuCi0rICAgYW1fX2luY2x1ZGU9aW5jbHVkZQotKyAgIGFtX19xdW90ZT0K LSsgICBfYW1fcmVzdWx0PUdOVQotK2ZpCi0rIyBOb3cgdHJ5IEJTRCBtYWtlIHN0eWxlIGluY2x1 ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgotKyAgIGVjaG8gJy5pbmNs dWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBpZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29u Zm1mIDI+IC9kZXYvbnVsbGAiID0gImRvbmUiOyB0aGVuCi0rICAgICAgYW1fX2luY2x1ZGU9Lmlu Y2x1ZGUKLSsgICAgICBhbV9fcXVvdGU9IlwiIgotKyAgICAgIF9hbV9yZXN1bHQ9QlNECi0rICAg ZmkKLStmaQotK0FDX1NVQlNUKFthbV9faW5jbHVkZV0pCi0rQUNfU1VCU1QoW2FtX19xdW90ZV0p Ci0rQUNfTVNHX1JFU1VMVChbJF9hbV9yZXN1bHRdKQotK3JtIC1mIGNvbmZpbmMgY29uZm1mCi0r XSkKLSsKLSsjIEZha2UgdGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFtcyB0aGF0IEdOVSBtYWludGFp bmVycyB1c2UuICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5 OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDUKLSsK LSsjIEFNX01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX01JU1NJTkdfUFJPR10sCi0rW0FDX1JFUVVJUkUo W0FNX01JU1NJTkdfSEFTX1JVTl0pCi0rJDE9JHskMS0iJHthbV9taXNzaW5nX3J1bn0kMiJ9Ci0r QUNfU1VCU1QoJDEpXSkKLSsKLSsKLSsjIEFNX01JU1NJTkdfSEFTX1JVTgotKyMgLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVmaW5lZCBzbyBmYXIgYW5kIHRl c3QgaWYgaXQgc3VwcG9ydHMgLS1ydW4uCi0rIyBJZiBpdCBkb2VzLCBzZXQgYW1fbWlzc2luZ19y dW4gdG8gdXNlIGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCi0rQUNfREVGVU4oW0FNX01JU1NJ TkdfSEFTX1JVTl0sCi0rW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlkbmwKLStBQ19S RVFVSVJFX0FVWF9GSUxFKFttaXNzaW5nXSlkbmwKLSt0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0g eHNldCB8fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKLSsjIFVzZSBl dmFsIHRvIGV4cGFuZCAkU0hFTEwKLStpZiBldmFsICIkTUlTU0lORyAtLXJ1biB0cnVlIjsgdGhl bgotKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKLStlbHNlCi0rICBhbV9taXNz aW5nX3J1bj0KLSsgIEFDX01TR19XQVJOKFtgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3Ig bWlzc2luZ10pCi0rZmkKLStdKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdp dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfTUtESVJfUAotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBD aGVjayBmb3IgYG1rZGlyIC1wJy4KLStBQ19ERUZVTihbQU1fUFJPR19NS0RJUl9QXSwKLStbQUNf UFJFUkVRKFsyLjYwXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX01LRElSX1BdKWRubAotK2Ru bCBBdXRvbWFrZSAxLjggdG8gMS45LjYgdXNlZCB0byBkZWZpbmUgbWtkaXJfcC4gIFdlIG5vdyB1 c2UgTUtESVJfUCwKLStkbmwgd2hpbGUga2VlcGluZyBhIGRlZmluaXRpb24gb2YgbWtkaXJfcCBm b3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLStkbmwgQE1LRElSX1BAIGlzIG1hZ2ljOiBBQ19P VVRQVVQgYWRqdXN0cyBpdHMgdmFsdWUgZm9yIGVhY2ggTWFrZWZpbGUuCi0rZG5sIEhvd2V2ZXIg d2UgY2Fubm90IGRlZmluZSBta2Rpcl9wIGFzICQoTUtESVJfUCkgZm9yIHRoZSBzYWtlIG9mCi0r ZG5sIE1ha2VmaWxlLmlucyB0aGF0IGRvIG5vdCBkZWZpbmUgTUtESVJfUCwgc28gd2UgZG8gb3Vy IG93bgotK2RubCBhZGp1c3RtZW50IHVzaW5nIHRvcF9idWlsZGRpciAod2hpY2ggaXMgZGVmaW5l ZCBtb3JlIG9mdGVuIHRoYW4KLStkbmwgTUtESVJfUCkuCi0rQUNfU1VCU1QoW21rZGlyX3BdLCBb IiRNS0RJUl9QIl0pZG5sCi0rY2FzZSAkbWtkaXJfcCBpbgotKyAgW1tcXC8kXV0qIHwgPzpbW1xc L11dKikgOzsKLSsgICovKikgbWtkaXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsK LStlc2FjCi0rXSkKLSsKLSsjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4g ICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMp IDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQKLSsKLSsjIF9B TV9NQU5HTEVfT1BUSU9OKE5BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK0FDX0RF RlVOKFtfQU1fTUFOR0xFX09QVElPTl0sCi0rW1tfQU1fT1BUSU9OX11tNF9icGF0c3Vic3QoJDEs IFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTihOQU1FKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVz ZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCi0r QUNfREVGVU4oW19BTV9TRVRfT1BUSU9OXSwKLStbbTRfZGVmaW5lKF9BTV9NQU5HTEVfT1BUSU9O KFskMV0pLCAxKV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTlMoT1BUSU9OUykKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE9QVElPTlMgaXMgYSBzcGFjZS1zZXBhcmF0 ZWQgbGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zLgotK0FDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNd LAotK1ttNF9mb3JlYWNoX3coW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NFVF9PUFRJT04oX0FN X09wdGlvbildKV0pCi0rCi0rIyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9U LVNFVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4K LStBQ19ERUZVTihbX0FNX0lGX09QVElPTl0sCi0rW200X2lmc2V0KF9BTV9NQU5HTEVfT1BUSU9O KFskMV0pLCBbJDJdLCBbJDNdKV0pCi0rCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUg YnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1Ci0rIyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsj IHNlcmlhbCA0Ci0rCi0rIyBBTV9TQU5JVFlfQ0hFQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQotK0FD X0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgYnVp bGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCi0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNo byB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNv IHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncwotKyMgYXJndW1lbnRzLiAgTXVz dCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQotKyMgc3ltbGlu azsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3lt bGlua3MKLSsjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5r J3MgY29udGFpbmluZwotKyMgZGlyZWN0b3J5KS4KLStpZiAoCi0rICAgc2V0IFggYGxzIC1MdCAk c3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0 ICIkWypdIiA9ICJYIjsgdGhlbgotKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCi0rICAgICAgc2V0 IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBy bSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25m aWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0 ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rCi0rICAgICAgIyBJZiBuZWl0aGVy IG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgotKyAg ICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVy aXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRo aXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQg bm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgotKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBw ZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGlu IHlvdXIgZW52aXJvbm1lbnRdKQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJFsyXSIgPSBjb25mdGVz dC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgotKyAgIDoKLStlbHNlCi0rICAgQUNfTVNH X0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxl cyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCi0rZmkKLStBQ19NU0dfUkVTVUxUKHllcyld KQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0df SU5TVEFMTF9TVFJJUAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBPbmUgaXNzdWUgd2l0 aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKLSsjIHNwZWNp ZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxs eQotKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhl IGJ1aWxkJ3Mgc3RyaXAKLSsjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFy aWVzLgotKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZh cmlhYmxlLCBzbyB3ZQotKyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwt c3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQotKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRo ZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KLStBQ19ERUZVTihbQU1fUFJPR19J TlNUQUxMX1NUUklQXSwKLStbQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKLSsj IEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdo ZW4gdGhlIHVzZXIKLSsjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlw JyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0rIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxh dGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQotKyMgd2lsbCBob25vciB0aGUg YFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCi0r ZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWln aHQgYmUgYG1heWJlJy4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgot KyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQotK2ZpCi0rSU5TVEFMTF9TVFJJ UF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKLStBQ19TVUJTVChbSU5TVEFMTF9TVFJJ UF9QUk9HUkFNXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDA2ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIF9BTV9TVUJT VF9OT1RNQUtFKFZBUklBQkxFKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQ cmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBWQVJJQUJMRSA9IEBWQVJJQUJMRUAgaW4g TWFrZWZpbGUuaW4uCi0rIyBUaGlzIG1hY3JvIGlzIHRyYWNlZCBieSBBdXRvbWFrZS4KLStBQ19E RUZVTihbX0FNX1NVQlNUX05PVE1BS0VdKQotKwotKyMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRh cmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsj IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRp c3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBh cyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgMgotKwotKyMgX0FNX1BS T0dfVEFSKEZPUk1BVCkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBob3cgdG8g Y3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgotKyMgRk9STUFUIHNob3VsZCBiZSBv bmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCi0rIwotKyMgU3Vic3RpdHV0ZSBhIHZhcmlh YmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKLSsjIHdyaXRpbmcgdG8gc3Rkb3V0IGEg Rk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5Ci0rIyAkdGFyZGlyLgotKyMg ICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50YXIKLSsjCi0rIyBT dWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFjdCBzdWNoCi0rIyBh IHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgotKyMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50 YXIKLStBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKLStbIyBBbHdheXMgZGVmaW5lIEFNVEFSIGZv ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgotK0FNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFy XSkKLSttNF9pZihbJDFdLCBbdjddLAotKyAgICAgW2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAi JCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCi0rICAgICBbbTRfY2FzZShb JDFdLCBbdXN0YXJdLCwgW3BheF0sLAotKyAgICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3du IHRhciBmb3JtYXRdKV0pCi0rQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3JlYXRlIGEgJDEgdGFy IGFyY2hpdmVdKQotKyMgTG9vcCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRvIGNyZWF0ZSBhIHRh ciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KLStfYW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFd LCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBub25lJwotK19hbV90b29scz0ke2FtX2N2 X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9Ci0rIyBEbyBub3QgZm9sZCB0aGUgYWJvdmUgdHdvIGxp bmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5kCi0rIyBTb2xhcmlzIHNoIHdpbGwgbm90 IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgotK2ZvciBfYW1fdG9vbCBpbiAkX2FtX3Rv b2xzCi0rZG8KLSsgIGNhc2UgJF9hbV90b29sIGluCi0rICBnbnV0YXIpCi0rICAgIGZvciBfYW1f dGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKLSsgICAgZG8KLSsgICAgICBBTV9SVU5fTE9HKFskX2Ft X3RhciAtLXZlcnNpb25dKSAmJiBicmVhawotKyAgICBkb25lCi0rICAgIGFtX190YXI9IiRfYW1f dGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIici JCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9bTRfaWYoWyQxXSwg W3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFy PSIkX2FtX3RhciAteGYgLSIKLSsgICAgOzsKLSsgIHBsYWludGFyKQotKyAgICAjIE11c3Qgc2tp cCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBpdCBkb2Vzbid0IGNy ZWF0ZQotKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVyLgotKyAgICAodGFyIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCi0rICAgIGFtX190YXI9J3RhciBjaGYgLSAiJCR0 YXJkaXIiJwotKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicKLSsgICAgYW1fX3Vu dGFyPSd0YXIgeGYgLScKLSsgICAgOzsKLSsgIHBheCkKLSsgICAgYW1fX3Rhcj0ncGF4IC1MIC14 ICQxIC13ICIkJHRhcmRpciInCi0rICAgIGFtX190YXJfPSdwYXggLUwgLXggJDEgLXcgIiR0YXJk aXIiJwotKyAgICBhbV9fdW50YXI9J3BheCAtcicKLSsgICAgOzsKLSsgIGNwaW8pCi0rICAgIGFt X190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1MJwotKyAgICBh bV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAkMSAtTCcKLSsgICAg YW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJwotKyAgICA7OwotKyAgbm9uZSkKLSsgICAgYW1f X3Rhcj1mYWxzZQotKyAgICBhbV9fdGFyXz1mYWxzZQotKyAgICBhbV9fdW50YXI9ZmFsc2UKLSsg ICAgOzsKLSsgIGVzYWMKLSsKLSsgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNoZWQsIHN0b3Agbm93 LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFyCi0rICAjIGFuZCBhbV9fdW50YXIgc2V0 LgotKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFrCi0rCi0rICAjIHRh ci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MK LSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAgZWNobyBH cmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQotKyAgQU1fUlVOX0xPRyhbdGFyZGlyPWNvbmZ0ZXN0 LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKLSsgIHJtIC1yZiBjb25mdGVz dC5kaXIKLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFyOyB0aGVuCi0rICAgIEFNX1JVTl9MT0co WyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCi0rICAgIGdyZXAgR3JlcE1lIGNvbmZ0ZXN0LmRp ci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhawotKyAgZmkKLStkb25lCi0rcm0gLXJmIGNv bmZ0ZXN0LmRpcgotKwotK0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJfJDFdLCBbYW1fY3Zf cHJvZ190YXJfJDE9JF9hbV90b29sXSkKLStBQ19NU0dfUkVTVUxUKFskYW1fY3ZfcHJvZ190YXJf JDFdKV0pCi0rQUNfU1VCU1QoW2FtX190YXJdKQotK0FDX1NVQlNUKFthbV9fdW50YXJdKQotK10p ICMgX0FNX1BST0dfVEFSCi0rCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4X2Jvb3N0Lm00XSkKLStt NF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9heF9v cmFjbGVfb2NpLm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvYXhfcG9zdGdyZXNxbC5tNF0pCi0r bTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9saWJ0 b29sLm00XSkKLSttNF9pbmNsdWRlKFtjb25maWcvbHRvcHRpb25zLm00XSkKLSttNF9pbmNsdWRl KFtjb25maWcvbHRzdWdhci5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2x0dmVyc2lvbi5tNF0p Ci0rbTRfaW5jbHVkZShbY29uZmlnL2x0fm9ic29sZXRlLm00XSkKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9BVVRIT1JTIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JTCi0tLS0gc29jaS0z LjAuMF80LXBhY2svQVVUSE9SUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JTCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLSsKLStEYXZpZCBDb3VydG5leSwgRGV2ZWxvcGVy LCBkYWNvdXJ0bmV5IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK01hdGV1c3ogTG9za290LCBE ZXZlbG9wZXIsIG1sb3Nrb3QgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rTWFjaWVqIFNvYmN6 YWssIEFkbWluIFByb2plY3QgTWFuYWdlciwgbXNvYmN6YWsgYXQgdXNlcnMuc291cmNlZm9yZ2Uu bmV0Ci0rUGF3ZWwgQWxla3NhbmRlciBGZWRvcnluc2tpLCBEZXZlbG9wZXIsIHBmZWRvciBhdCB1 c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStSYWZhbCBCb2Jyb3dza2ksIERldmVsb3BlciwgcmJvYnJv IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK0plYW4tTWFyYywgRGV2ZWxvcGVyLCBzaWRqdGFs IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK1N0ZXBoZW4gSHV0dG9uLCBEZXZlbG9wZXIsIHN0 ZXBoZW5odXR0b24gYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01h a2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVp bGQvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsNyBAQAotKyMjIGJ1aWxkIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5p bgotKwotK1NVQkRJUlMgPSB1bml4IG1zdmM4MAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2J1aWxkL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9NYWtlZmlsZS5p bgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL01ha2Vm aWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDU0 NiBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1h a2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5 NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsg d2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAK LStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0r cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1 ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxf SU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFM X1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgot K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9D T01NT04gPSBSRUFETUUgJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5p biBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gYnVpbGQKLStB Q0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVw cyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2Np Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0 b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVy c2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9t NF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21r aW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1 aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0K LStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVj ay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJz aXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5z dGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1p bmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vy c2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFs bGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxs LXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJz aXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXIt Y2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NV QkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NP VVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0r QU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBB V0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNf TElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStC T09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVS U0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9E RUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxB R1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcg PSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBV TklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0g QENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxB R1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0g QERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0r RUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RA Ci0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAK LStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStH UkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNU QUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxM X1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5T VEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStM SUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAK LStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNA Ci0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NG TEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStN WVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdT QAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQg PSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0r T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9P TEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJT SU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAK LStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVT UUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdS RVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04g PSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0Ug PSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStT SEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK LSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK LSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0r YmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29z QAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJA Ci0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2Rp ZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9z dEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0r aG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxk aXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBp bmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9v a0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSts dF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGly X3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJA Ci0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1f dHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAot K3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0r c3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2Fs aWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVm aXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9z cmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IHVuaXggbXN2 YzgwCi0rYWxsOiBhbGwtcmVjdXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBj YXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAg ICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxz ZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9u ZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgYnVp bGQvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0Up IC0tZ251ICBidWlsZC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBj YXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICop IFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGli dG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJk aXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRo ZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0r IyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVk aXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZp Zy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNl IHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0r IyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNv bW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7 IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJ ICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNo byAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3Vi ZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rf c2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0r CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVu IiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1h bSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7 IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9u ZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0q IHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAq KSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBl bHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsg XAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNp dmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBl dmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vy c2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIi ID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc Ci0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAg ZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc Ci0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsg XAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK LSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9 IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZp OyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3Mk JHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1 ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0 YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFn cz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAot KwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FS R1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9f Y2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwK LSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdz OgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0n JChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2Rp cikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAg ICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxz ZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIk KGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9 YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFt X19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwK LSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGly PSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGly IiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9 OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSth bGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2lu c3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVj OiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVj dXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTog YWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5z dGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIk KElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5T VEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAt eiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQ Uk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVh bi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdf Q0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFp bmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9y IG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkg cmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46 IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJ LXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJp YyBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsK LStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5m by1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZp LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3Rh bGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJz aXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hl Y2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUK LSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1 cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVh bi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBw cy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0g XAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sg Y2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1s aWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1h bSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3Rh bGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8g XAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYt YW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hl Y2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRh aW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0 bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBz LWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0r QFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBu b3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZv ciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEs MTEgQEAKLSsjIyBidWlsZC9tc3ZjODAvZGxsIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9w X3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0 Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNw cm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3By b2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZj cHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAotKwlvZGJj X3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2RsbC5zbG4gXAotKwll bXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29j aV9kbGwudnNwcm9wcwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9k bGwvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZp bGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmlu CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVw MzAwL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzk0IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQg YnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0 QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw OCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRo IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhl IGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFS IFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGly ID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VA Ci0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwot K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgot K1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwg PSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0 X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgot K3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9h Y2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4 X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2Nv bmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRF TkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gp IC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09O RklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK0RJU1RGSUxF UyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJ U1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAot K0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRP TUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9D RkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JP T1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RS RUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJ QlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNf TElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19M SUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJF QURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09T VF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0g QENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAg PSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVO SVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRf TElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lP TkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhE RVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dA Ci0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVU SUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0g QEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9 IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBA R0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5T VEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9 IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0r SU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBM REAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBA TElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5f U0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01L RElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FM X0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01Z U1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZF UlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRV TVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStP UkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxB R1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVf T0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BB Q0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9S VEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBB Q0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFD S0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQ T1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMg PSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xE RkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5M SUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURA Ci0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJT X0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNU UklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVS U0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJz X3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3Rv cF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNf Y3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0r YW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFk aW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAK LSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBA YnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxk X2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRh cm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0g QGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAK LStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStn c19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFz QAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3Zl bmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9 IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3Rh bGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJl eGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0 YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9 IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5j bHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBz ZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0 YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRp ciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1 aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVp bGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRv cF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1h ayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9q IHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3Byb2og b2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZjcHJv aiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAotKwlvZGJjX3Rl c3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2RsbC5zbG4gXAotKwllbXB0 eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29jaV9k bGwudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9N YWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJ ICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJ ICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsg ZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAg YnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0r CSAgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKLSsuUFJFQ0lP VVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1 cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2Fj OwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwkt cm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSt0 YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczogQ1RBR1MKLStDVEFHUzoKLSsKLSsKLStkaXN0 ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0 b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQo RElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVj aG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBc Ci0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7 IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAi JCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3Ms L1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBm aWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3Qg LWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0 IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAt ZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAm JiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIp LyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAg Y3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2Ug XAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQv JCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBc Ci0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBN YWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5p bnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc Ci0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAot K21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4t Z2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46 IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFt IGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0raHRt bDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwt ZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWV4 ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxs Y2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwkt cm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0r bW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAot KwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgot KwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0r Ci0rLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4t bGlidG9vbCBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFt IGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAotKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5zdGFs bC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAotKwlpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNs ZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0r Ci0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0 byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQg KGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIv TWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoyMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsMTEgQEAKLSsjIyBidWlsZC9tc3ZjODAvbGliIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0 ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3Qu dmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52 Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3Fs LnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAotKwlv ZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAot KwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2og c29jaV9saWIudnNwcm9wcwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4 MC9saWIvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFr ZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzk0IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0 ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lu cHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg MjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmlu IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8g dGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNV TEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRh ZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tB R0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0g Q0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3Rh bGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFN ID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAt YwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9n cmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0g OgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RB TEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLSto b3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9saWIKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGly KS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmln L2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1f X2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBF TkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxf c2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0r Q09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFS QAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStB VVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAot K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFM U19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9U SFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStC T09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0ND ID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStD UFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQ UFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVO SVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVS U0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBD WFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRI X1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZ TVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19O ID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVY VCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04g PSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBA SU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JB TSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRA Ci0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9 IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMg PSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBA TE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAot K01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01Z U1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAot K01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9C SkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AK LStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xE RkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFD TEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAot K1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0r UEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQ QVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AK LStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJ UlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FM X0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStS QU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBT RURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0g QFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBA VkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0r YWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5A Ci0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19s ZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3Rh ckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQg PSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1 aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRf dmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStk YXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGly ID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRp ckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAK LStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2Fs aWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0 X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRp ciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGlu c3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLSts aWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2Nh bHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRp ciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xk aW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0g QHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJl ZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29u ZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9w X2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3Bf YnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkk KHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQgZW1wdHkudmNwcm9qIG1ha2V0ZXN0 Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsX3Rlc3QudmNw cm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwKLSsJZmlyZWJpcmRfdGVzdC52Y3By b2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3Byb2ogXAotKwlwb3N0Z3Jlc3FsLnZj cHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJlYmlyZC52Y3Byb2ogXAotKwlvZGJj X3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJvaiBzb2NpX2xpYi5zbG4gXAotKwll bXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNwcm9qIG9yYWNsZS52Y3Byb2ogc29j aV9saWIudnNwcm9wcwotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwK LSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwK LSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQg MDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdu dSAgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBc Ci0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUKLSsuUFJF Q0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0 YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwll c2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgot Kwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMK LSt0YWdzOiBUQUdTCi0rVEFHUzoKLSsKLStjdGFnczogQ1RBR1MKLStDVEFHUzoKLSsKLSsKLStk aXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmls ZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNk aXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkg ICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVs c2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAk JGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZp OyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFt OiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOgotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0r dW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElO U1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAg ICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFs bAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xl YW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0r CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFt OiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xl YW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFu LWFtIGRpc3RjbGVhbi1nZW5lcmljCi0rCi0rZHZpOiBkdmktYW0KLSsKLStkdmktYW06Ci0rCi0r aHRtbDogaHRtbC1hbQotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwotK2luc3Rh bGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxs LWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxs LWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRm OiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0 YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQot Kwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0r Ci0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFt OgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlw Ci0rCi0rLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xl YW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCi0rCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZv LWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0g aW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAotKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAotKwlpbnN0YWxsLWluZm8gaW5zdGFs bC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5z dGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAotKwlpbnN0YWxsY2hlY2sgaW5z dGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVy LWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3Rs eWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFt Ci0rCi0rQFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFr ZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGlt aXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5hbQky MDA5LTA1LTIyIDIyOjU0OjIwLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw4IEBACi0rIyMg YnVpbGQvbXN2YzgwIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VY VFJBX0RJU1QgPSBSRUFETUUudHh0IHNvY2kudnNwcm9wcwotKwotK1NVQkRJUlMgPSBkbGwgbGli Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxl LmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDU0NyBA QAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2Vm aWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStW UEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtn bGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVk aXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhf U0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1t IDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3No X1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9E QVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5T VEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VO SU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1 aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01N T04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZC9tc3ZjODAKLStBQ0xP Q0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9 ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29s Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lv bi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rp cikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9k ZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5z dGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStTT1VSQ0VTID0KLStE SVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJ UlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJD RVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1U QVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hF QURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tA Ci0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0g QEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklM RVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElC QAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElC ID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NU X1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFU SU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09T VF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lP TiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAK LStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NA Ci0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBA Q1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklU X1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENY WENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NA Ci0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERF UERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNI T19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0r RUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStH RU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQ ID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxM X0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1ND UklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFM TF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJP QkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStM SVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0r TUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFH UyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNR TF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAot K01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBA Tk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAK LStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVH UkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05B TUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1F ID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9O QAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQ R19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxf Q0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNR TF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBA UE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBA UlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVM TCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURA Ci0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE QAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FE X0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVp bGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBA YWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSth Y19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RV TVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSth bV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVv dGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmlu ZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9h bGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAot K2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0r ZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZf b2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdl bl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNf cHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAK LStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9z dF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIg PSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZv ZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AK LStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVk aXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9F Q0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BA Ci0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0r cHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJh bnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3Nl ZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3Jj ZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFz ID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhA Ci0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNk aXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rRVhUUkFfRElTVCA9IFJFQURNRS50 eHQgc29jaS52c3Byb3BzCi0rU1VCRElSUyA9IGRsbCBsaWIKLSthbGw6IGFsbC1yZWN1cnNpdmUK LSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2Vm aWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBz KScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7 IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAg ICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3ZjODAvTWFrZWZpbGUnOyBcCi0r CWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBidWlsZC9tc3Zj ODAvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGlu IFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSttb3N0 bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMg YXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4g YG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdl IHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2Vm aWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywg ZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZp bGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVy d2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUu Ci0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBm IGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAt LVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7 IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBc Ci0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwg JCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0 aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQg MTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBk byBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAq ayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90 X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWlu ZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChT VUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIk JHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0r CWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4g JCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAg IGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRh Z3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNk ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0r Ci0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0r CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK LSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJz aXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChU QUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQo RVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBc Ci0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47 IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlf Zml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkg ICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRp bmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25l OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAg ZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc Ci0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0 aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9m aXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFH U19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MK LStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENU QUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAg ICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9i dWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3Rh Z3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1m IFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJ U1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVT KSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxl OyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAg IC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2Fz ZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2Zp bGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQs LCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQk ZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxl OyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8k JGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14v XSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQk ZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAk KGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQk ZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAg dGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQo ZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUK LSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8k JHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkg JChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9w X2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlz dGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1f X3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAg ICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQot K2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtl ZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1h bToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1l eGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3Vu aW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlA JChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQot KwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6 Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVAp JyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJ UCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoK LSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVy cyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3Bl Y2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklM RVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1 cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNs ZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtl ZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFu LXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRt bC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0r aW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5z dGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwot K21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBN YWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0r bW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAot KwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZl Ci0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJaW5zdGFs bC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCi0rCWN0YWdzIGN0YWdzLXJlY3Vyc2l2 ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0 Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCi0rCWh0bWwtYW0gaW5mbyBpbmZv LWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAotKwlpbnN0YWxsLWRhdGEtYW0g aW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKLSsJaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKLSsJaW5zdGFs bC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJaW5z dGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5z dGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4g XAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2Vu ZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRh Z3MtcmVjdXJzaXZlIFwKLSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAK LSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBh bGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBs ZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9idWlsZC91bml4L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91 bml4L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmls ZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBf dHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MjAuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rIyMgYnVpbGQvdW5peCBzdWItZGlyZWN0b3J5 Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotKwotK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLSsjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZID0gIC5fZmluZC1ib29zdC50Y2wgLl9idWlsZC1teXNxbC50Y2wgLl9idWlsZC1wb3N0 Z3Jlc3FsLnRjbCAuX2V4ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50Y2wgLl9pbnN0YWxsLnRjbCAu X3BhcnNlLXBhcmFtZXRlcnMudGNsCi0rCi0rRVhUUkFfRElTVCA9IGJ1aWxkLWNvcmUudGNsIGJ1 aWxkLW9yYWNsZS50Y2wgYnVpbGQudGNsIGluc3RhbGwudGNsIFwKLSsJcGFyc2UtcGFyYW1ldGVy cy50Y2wgZmluZC1ib29zdC50Y2wgYnVpbGQtbXlzcWwudGNsIFwKLSsJYnVpbGQtcG9zdGdyZXNx bC50Y2wgZXhlY3V0ZS50Y2wgXAotKwkkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElU WSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC91bml4L01ha2VmaWxlLmluIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmluCTIw MDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDM5NCBAQAotKyMg TWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFt LgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQs IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAot KyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9 IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGly ID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJB VE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAot K2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQ VCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQot K3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9 IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFM TCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3Ry aXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZC91bml4Ci0rQUNMT0NBTF9NNCA9 ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215 c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChD T05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJz ID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VS Q0VTID0KLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJ TkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRB UkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFV VE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9D RkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFU RV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJ QkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1Rf TElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElC QAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAot K0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1RIUkVBRF9M SUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9 IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NU X1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9 IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklU X0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NP TkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9 IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NY WERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRI X1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RT WU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNI T19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBF R1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElC UkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAK LStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJ TlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElO U1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BS T0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElC T0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQ T0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9 IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FM X0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAotK01ZU1FMX0RJUlMgPSBA TVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxBR1NACi0rTVlTUUxfVkVS U0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0r T0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBA T1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0r T1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZF UlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQg PSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBA UEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNL QUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FH RV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0r UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFT RUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxM QAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF REAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAK LStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSth YnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1 aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0g QGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBh Y19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5n X2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9f dGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmlu ZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1 aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVu ZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0g QGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZm X29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2 aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBA ZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxp YXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhv c3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGly QAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5z dGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9 IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2Nh bGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRf RUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNs dWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBA cHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNl ZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3Jj ZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0 X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVp bGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9D UFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLSsjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZID0gIC5fZmluZC1ib29zdC50Y2wgLl9idWlsZC1teXNxbC50Y2wgLl9idWlsZC1wb3N0 Z3Jlc3FsLnRjbCAuX2V4ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50Y2wgLl9pbnN0YWxsLnRjbCAu X3BhcnNlLXBhcmFtZXRlcnMudGNsCi0rRVhUUkFfRElTVCA9IGJ1aWxkLWNvcmUudGNsIGJ1aWxk LW9yYWNsZS50Y2wgYnVpbGQudGNsIGluc3RhbGwudGNsIFwKLSsJcGFyc2UtcGFyYW1ldGVycy50 Y2wgZmluZC1ib29zdC50Y2wgYnVpbGQtbXlzcWwudGNsIFwKLSsJYnVpbGQtcG9zdGdyZXNxbC50 Y2wgZXhlY3V0ZS50Y2wgXAotKwkkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkK LSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46 ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIGJ1aWxkL3VuaXgv TWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0t Z251ICBidWlsZC91bml4L01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxl OiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJ QGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAg KikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RF UEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25m aWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykK LSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1s aWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0r Y3RhZ3M6IENUQUdTCi0rQ1RBR1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAg IHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK LSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0r CSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIp OyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGly IHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlz dGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0 ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmls ZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFs bC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczoK LStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStp bnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0r Ci0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxs LWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2st YW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BS T0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JB TT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkg IGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VO Vj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgot KwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIk KENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwot K21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRl bmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0 aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIk KE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykK LStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0 b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1m IE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYwotKwot K2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStpbmZvOiBp bmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1k dmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsK LStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0 YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWlu ZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwot K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3Bk Zi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0r Lk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0 Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAot KwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAot KwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFt IFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1o dG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0 YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0 YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBt YWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu IG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0g cHMgcHMtYW0gdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsjIFRlbGwg dmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFi bGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5 IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvYXhfYm9vc3QubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9ib29zdC5tNAot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9ib29zdC5tNAkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfYm9v c3QubTQJMjAwOS0wNS0yMiAyMjo1NDozNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTM0 IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9CT09TVChbTUlOSU1VTS1WRVJTSU9OXSwgW0FDVElPTi1J Ri1GT1VORF0sIFtBQ1RJT04tSUYtTk9ULUZPVU5EXSkKLStkbmwKLStkbmwgVGVzdCBmb3IgdGhl IEJvb3N0IEMrKyBsaWJyYXJpZXMgb2YgYSBwYXJ0aWN1bGFyIHZlcnNpb24gKG9yIG5ld2VyKQot K2RubAotK2RubCBJZiBubyBwYXRoIHRvIHRoZSBpbnN0YWxsZWQgYm9vc3QgbGlicmFyeSBpcyBn aXZlbiB0aGUgbWFjcm8KLStkbmwgc2VhcmNocyB1bmRlciAvdXNyLCAvdXNyL2xvY2FsLCBhbmQg L29wdCwgYW5kIGV2YWx1YXRlcyB0aGUKLStkbmwgJEJPT1NUX1JPT1QgZW52aXJvbm1lbnQgdmFy aWFibGUuCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gY2FsbHM6Ci0rZG5sCi0rZG5sICAgQUNfU1VC U1QoQk9PU1RfQ0ZMQUdTKSAvIEFDX1NVQlNUKEJPT1NUX0xJQlMpCi0rZG5sICAgQUNfU1VCU1Qo Qk9PU1RfRklMRVNZU1RFTV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9USFJFQURfTElCKQotK2RubCAgIEFDX1NV QlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKQotK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0RB VEVfVElNRV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKQotK2RubCAgIEFD X1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCKQotK2RubAotK2RubCBBbmQgc2V0 czoKLStkbmwKLStkbmwgICBIQVZFX0JPT1NUCi0rZG5sICAgSEFWRV9CT09TVF9GSUxFU1lTVEVN Ci0rZG5sICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKLStkbmwgICBIQVZFX0JPT1NUX1RI UkVBRAotK2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rZG5sICAgSEFWRV9CT09TVF9TRVJJ QUxJWkFUSU9OCi0rZG5sICAgSEFWRV9CT09TVF9TSUdOQUxTCi0rZG5sICAgSEFWRV9CT09TVF9E QVRFX1RJTUUKLStkbmwgICBIQVZFX0JPT1NUX1JFR0VYCi0rZG5sICAgSEFWRV9CT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwot K2RubCBAYXV0aG9yIFRob21hcyBQb3JzY2hiZXJnIDx0aG9tYXNAcmFuZHNwcmluZ2VyLmRlPgot K2RubCBAdmVyc2lvbiAyMDA2LTAxLTAyCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKLSsK LStBQ19ERUZVTihbQVhfQk9PU1RdLAotK1sKLSsgICAgQUNfQVJHX1dJVEgoW2Jvb3N0XSwKLSsg ICAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1ib29zdD1ESVJdLAotKyAgICAg ICAgICAgICAgICBbdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNpZnkgdGhlIHJvb3Qg ZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCldKSwKLSsgICAgICAgICAgICAg ICAgWwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0r CQkgICAgICAgICAgICB3YW50X2Jvb3N0PSJubyIKLSsgICAgICAgICAgICAgICAgZWxpZiB0ZXN0 ICIkd2l0aHZhbCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgd2FudF9ib29z dD0ieWVzIgotKyAgICAgICAgICAgICAgICAgICAgYWNfYm9vc3RfcGF0aD0iIgotKyAgICAgICAg ICAgICAgICBlbHNlCi0rCQkJICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCi0rICAgICAgICAgICAg CQlhY19ib29zdF9wYXRoPSIkd2l0aHZhbCIKLSsJCSAgICAgICAgZmkKLSsgICAgICAgICAgICAJ XSwKLSsgICAgICAgICAgICAgICAgW3dhbnRfYm9vc3Q9InllcyJdKQotKwotKyMgICAgQUNfQ0FO T05JQ0FMX0JVSUxECi0rQk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9NRFdf VkVSU0lPTj0iMV8zM18xIgotKwotKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0 aGVuCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sICwxLjIwLjAsJDEpCi0r CQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25f cmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVx X21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKLSsJ CWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVx IDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1 Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1d KlwuXChbWzAtOV1dKlwpJ2AKLSsJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1 Yl9taW5vciIgPSAieCIgOyB0aGVuCi0rCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5v cj0iMCIKLSsgICAgCWZpCi0rCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0X2xpYl92 ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWlu b3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAotKwkJQUNfTVNH X0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxKQotKwkJc3Vj Y2VlZGVkPW5vCi0rCi0rCQlkbmwgZmlyc3Qgd2UgY2hlY2sgdGhlIHN5c3RlbSBsb2NhdGlvbiBm b3IgYm9vc3QgbGlicmFyaWVzCi0rCQlkbmwgdGhpcyBsb2NhdGlvbiBpcyBjaG9zZW4gaWYgYm9v c3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCi0rCQlkbmwgd2l0aCB0aGUgLS1sYXlvdXQ9c3lz dGVtIG9wdGlvbgotKwkJZG5sIG9yIGlmIHlvdSBpbnN0YWxsIGJvb3N0IHdpdGggUlBNCi0rCQlp ZiB0ZXN0IC1kIC9saWI2NDsgdGhlbgotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYjY0IgotKwkJ ZWxzZQotKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKLSsJCWZpCi0rCQlpZiB0ZXN0ICIkYWNf Ym9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsJCQlpZiB0ZXN0ICIkQk9PU1RfTElCRElSVFlQRSIg PT0gImxpYjY0IjsgdGhlbgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8kQk9PU1Rf TElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUi OyB0aGVuCi0rCSAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRC T09TVF9MSUJESVJUWVBFIgotKwkJCQllbHNlCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9M SUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJCUJPT1NU X0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCWZpCi0rCQkJQk9PU1RfQ0ZMQUdTPSIt SSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCi0rCQllbHNlCi0rCQkJZm9yIGFjX2Jvb3N0X3BhdGhf dG1wIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdCA7IGRvCi0rCQkJCWlm IHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIk YWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCI7IHRoZW4KLSsJCQkJCUJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJQk9PU1RfQ0ZM QUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgotKwkJCQkJYnJlYWs7Ci0rCQkJCWZp Ci0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09T VF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IjsgdGhlbgotKwkJCQkJQk9PU1RfTElC Uz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9D RkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJT SU9OIgotKwkJCQotKwkJCQkJZG5sIEhhY2sgZm9yIHdyb25nbHkgaW5zdGFsbGVkIEJvb3N0IGxp YnJhcmllcyAoQU1ENjQgbGlicmFyaWVzIGluc3RhbGxlZCBpbiBib29zdC9saWIgZGlyZWN0b3J5 KQotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAtciAi JGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgJiYgdGVzdCAhIC1kICIkYWNfYm9vc3RfcGF0aF90bXAv bGliNjQiOyB0aGVuCi0rCQkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvbGli IgotKwkJCQkJCWVjaG8gIkhhY2s6ICRCT09TVF9MSUJTIgotKwkJCQkJZmkKLSsJCQkJCWJyZWFr OwotKwkJCQlmaQotKwkJCWRvbmUKLSsJCWZpCi0rCi0rCQlDUFBGTEFHU19TQVZFRD0iJENQUEZM QUdTIgotKwkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJZXhwb3J0IENQ UEZMQUdTCi0rCi0rCQlMREZMQUdTX1NBVkVEPSIkTERGTEFHUyIKLSsJCUxERkxBR1M9IiRMREZM QUdTICRCT09TVF9MSUJTIgotKwkJZXhwb3J0IExERkxBR1MKLSsKLSsgICAgIAlBQ19UUllfQ09N UElMRSgKLSsgICAgICAgCVsKLStAJTpAaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rXSwK LSsgICAgICAgWwotKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04KLSsv LyBFdmVyeXRoaW5nIGlzIG9rYXkKLSsjZWxzZQotKyMgIGVycm9yIEJvb3N0IHZlcnNpb24gaXMg dG9vIG9sZAotKyNlbmRpZgotKwotKwkJXSwKLSsgICAgCVsKLSsgICAgICAgICBBQ19NU0dfUkVT VUxUKHllcykKLSsJCSBzdWNjZWVkZWQ9eWVzCi0rCQkgZm91bmRfc3lzdGVtPXllcwotKyAgICAg ICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0sCi0rICAgICAgIFsKLSsgICAg ICAgXSkKLSsKLSsJCWRubCBpZiB3ZSBmb3VuZCBubyBib29zdCB3aXRoIHN5c3RlbSBsYXlvdXQg d2Ugc2VhcmNoIGZvciBib29zdCBsaWJyYXJpZXMKLSsJCWRubCBidWlsdCBhbmQgaW5zdGFsbGVk IHdpdGhvdXQgdGhlIC0tbGF5b3V0PXN5c3RlbSBvcHRpb24gb3IgZm9yIGEgc3RhZ2VkKG5vdCBp bnN0YWxsZWQpIHZlcnNpb24KLSsJCWlmIHRlc3QgIngkc3VjY2VlZGVkIiAhPSAieHllcyI7IHRo ZW4KLSsJCQlfdmVyc2lvbj0wCi0rCQkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiOyB0 aGVuCi0rICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NU X0xJQkRJUlRZUEUiCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoIiAmJiB0ZXN0IC1y ICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3Rf cGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCV92ZXJzaW9uX3Rt cD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVc L2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lv bl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRo ZW4KLSsJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAotKwkJCQkJCWZpCi0rCQkJCQkJVkVS U0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9cLi9fLydgCi0rCQkJCQkJ Qk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZFUlNJT05fVU5E RVJTQ09SRSIKLSsJCQkJCWRvbmUKLSsJCQkJZmkKLSsJCQllbHNlCi0rCQkJCWZvciBhY19ib29z dF9wYXRoIGluIC91c3IgL3Vzci9sb2NhbCAvb3B0IDsgZG8KLSsJCQkJCWlmIHRlc3QgLWQgIiRh Y19ib29zdF9wYXRoIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aCI7IHRoZW4KLSsJCQkJCQlm b3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxs YDsgZG8KLSsJCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29zdF9w YXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAotKwkJ CQkJCQlWX0NIRUNLPWBleHByICRfdmVyc2lvbl90bXAgXD4gJF92ZXJzaW9uYAotKwkJCQkJCQlp ZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNp b25fdG1wCi0rCQkJCQkJCQliZXN0X3BhdGg9JGFjX2Jvb3N0X3BhdGgKLSsJCQkJCQkJZmkKLSsJ CQkJCQlkb25lCi0rCQkJCQlmaQotKwkJCQlkb25lCi0rCi0rCQkJCVZFUlNJT05fVU5ERVJTQ09S RT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAotKwkJCQlCT09TVF9DRkxBR1M9Ii1J JGJlc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJCUJPT1NU X0xJQlM9Ii1MJGJlc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsKLSsJICAgIAkJaWYgdGVz dCAieCRCT09TVF9ST09UIiAhPSAieCI7IHRoZW4KLSsJCQkJCWlmIHRlc3QgLWQgIiRCT09TVF9S T09UIiAmJiB0ZXN0IC1yICIkQk9PU1RfUk9PVCI7IHRoZW4KLSsJCQkJCQl2ZXJzaW9uX2Rpcj1g ZXhwciAvLyRCT09TVF9ST09UIDogJy4qL1woLipcKSdgCi0rCQkJCQkJc3RhZ2VfdmVyc2lvbj1g ZWNobyAkdmVyc2lvbl9kaXIgfCBzZWQgJ3MvYm9vc3RfLy8nIHwgc2VkICdzL18vLi9nJ2AKLSsJ CQkJCQlzdGFnZV92ZXJzaW9uX3Nob3J0ZW49YGV4cHIgJHN0YWdlX3ZlcnNpb24gOiAnXChbWzAt OV1dKlwuW1swLTldXSpcKSdgCi0rCQkJCQkJVl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVyc2lvbl9z aG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7 IHRoZW4KLSsJCQkJCQkJQUNfTVNHX05PVElDRShXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBs aWJyYXJ5IGZyb20gJEJPT1NUX1JPT1QpCi0rCQkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkQk9PU1Rf Uk9PVCIKLSsJCQkJCQkJQk9PU1RfTElCUz0iLUwkQk9PU1RfUk9PVC9zdGFnZS8kQk9PU1RfTElC RElSVFlQRSIKLSsJCQkJCQlmaQotKwkJCQkJZmkKLSsJICAgIAkJZmkKLSsJCQlmaQotKwotKwkJ CUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJCQlleHBvcnQgQ1BQRkxBR1MK LSsJCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCQlleHBvcnQgTERGTEFHUwot KwotKyAgICAgCQlBQ19UUllfQ09NUElMRSgKLSsgICAgICAgCQlbCi0rQCU6QGluY2x1ZGUgPGJv b3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAgICAgIFsKLSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAk V0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBl cnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKLSsjZW5kaWYKLSsKLSsJCV0sCi0rICAgIAlb Ci0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5ZXMgKCRfdmVyc2lvbikpCi0rCQkgc3VjY2VlZGVk PXllcwotKyAgICAgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pCi0rICAgICAgIF0sCi0rICAg ICAgIFsKLSsgICAgICAgICBBQ19NU0dfUkVTVUxUKG5vICgkX3ZlcnNpb24pKQotKyAgICAgICAg IGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICAgICAgIF0pCi0rCQlmaQotKwotKwkJaWYgdGVz dCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0aGVuCi0rCQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9 ICIwIiA7IHRoZW4KLSsJCQkJQUNfTVNHX0VSUk9SKFtbV2UgY291bGQgbm90IGRldGVjdCB0aGUg Ym9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbiBv ciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IChzdGlsbCBub3Qg aW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4geW91ciBlbnZpcm9ubWVu dCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBvcHRpb24uICBJZiB5b3Ug YXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNoZWNrIHlvdXIgdmVyc2lv biBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+Ll1dKQotKwkJCWVsc2UKLSsJ CQkJQUNfTVNHX0VSUk9SKCdZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNp b24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0 ZW4nKQotKwkJCWZpCi0rCQllbHNlCi0rCQkJQUNfU1VCU1QoQk9PU1RfQ0ZMQUdTKQotKwkJCUFD X1NVQlNUKEJPT1NUX0xJQlMpCi0rCQkJQUNfREVGSU5FKEhBVkVfQk9PU1QsLFtkZWZpbmUgaWYg dGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsKLSsJCQlBQ19DQUNIRV9DSEVDSyhb d2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFibGVdLAotKwkJ CQkJCSAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0sCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJ CSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD5dXSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxl c3lzdGVtOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBteV9wYXRo KCAiZm9vL2Jhci9kYXRhLnR4dCIgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAJCQkJICAgICAgIGF4X2N2X2Jvb3N0X2Zp bGVzeXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxlc3lzdGVtPW5vKQotKwkJIAkJICAgICAgICAJ CQlBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxl c3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0ZJTEVTWVNU RU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxl XSkKLSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkQk4tbWd3LXMgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJ CQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW0JPT1NUX0ZJTEVTWVNURU1fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJP T1NUX0ZJTEVTWVNURU1fTElCKSBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWtdLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX2ZpbGVzeXN0ZW09Im5vIl0pCi0rICAJ CQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgot KwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJ CQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6 UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSwKLSsJCQkJCQkgICBheF9jdl9i b29zdF9wcm9ncmFtX29wdGlvbnMsCi0rCQkJCQkJICAgW0FDX0xBTkdfU0FWRQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJICAgICAgICAgICAgICAg QUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3By b2dyYW1fb3B0aW9ucy5ocHA+XV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbW2Jvb3N0Ojpwcm9ncmFtX29wdGlvbnM6Om9wdGlvbnNfZGVzY3JpcHRpb24gZ2VuZXJpYygi R2VuZXJpYyBvcHRpb25zIik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcHJv Z3JhbV9vcHRpb25zPXllcywgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vKQotKwkJCSAg ICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAiJGF4X2N2 X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVf Qk9PU1RfUFJPR1JBTV9PUFRJT05TLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJ T05TIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25z Ci0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMg JEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJO LSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT047IGRv Ci0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQj0iLWwkYXhfbGliIiBB Q19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBsaW5rX3Byb2dyYW1fb3B0aW9ucz0i eWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfcHJv Z3JhbV9vcHRpb25zPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3By b2dyYW1fb3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENv dWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJ QUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWls YWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF90aHJlYWQsCi0rCQkJCQkJW0FDX0xBTkdfU0FW RQotKwkJCSBBQ19MQU5HX0NQTFVTUExVUwotKwkJCSBDWFhGTEFHU19TQVZFPSRDWFhGTEFHUwot KwotKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCi0rICAJCQkJ IENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgotKwkJCSBlbGlmIHRlc3QgIngkYnVpbGRf b3MiID0gInhtaW5nMzIiIDsgdGhlbgotKwkJCQkgQ1hYRkxBR1M9Ii1tdGhyZWFkcyAkQ1hYRkxB R1MiCi0rCQkJIGVsc2UKLSsJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRDWFhGTEFHUyIKLSsJCQkg ZmkKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUg PGJvb3N0L3RocmVhZC90aHJlYWQuaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW1tib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAotKyAgICAgICAgICAgICAgICAgICBheF9j dl9ib29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJlYWQ9bm8pCi0rCQkJIENYWEZMQUdT PSRDWFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAg aWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJICBCT09TVF9D RkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVzdCAieCRidWls ZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRz ICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJl YWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwkJCQlBQ19TVUJTVChCT09TVF9DRkxB R1MpCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVBRCwsW2RlZmluZSBpZiB0aGUgQm9v c3Q6OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3RocmVhZAot KwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRC Ti0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0k Q0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRv Ci0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1RIUkVBRF9MSUI9 Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikgbGlua190aHJlYWQ9InllcyIg YnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0i bm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7 IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBC b29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jv b3N0X2lvc3RyZWFtcywKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQ TFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRl IDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+Ci0rCQkJCQkJCQkJCQkJIEAl OkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+Ci0rCQkJCQkJCQkJCQkJ XV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6c3RyaW5nICBp bnB1dCA9ICJIZWxsbyBXb3JsZCEiOwotKwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8gPSBib29zdDo6 aW9zdHJlYW1zOwotKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGluKGJvb3N0Ojpt YWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Ci0rCQkJCQkJCQkJIHJldHVybiAwOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAgICAgICBh eF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9ib29zdF9pb3N0cmVhbXM9bm8pCi0rCQkJ IEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9pb3N0 cmVhbXMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0lPU1RSRUFN UywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0p Ci0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQt cyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xp YiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1Rf SU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJ CWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJ Q0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsK LSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJy YXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uLAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09N UElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+Ci0rCQkJ CQkJCQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAJTpAaW5j bHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbc3RkOjpvZnN0cmVhbSBvZnMo ImZpbGVuYW1lIik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eo b2ZzKTsKLSsJCQkJCQkJCQkgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBdXSksCi0rICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRp b249eWVzLCBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RP UkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPSAi eHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiwsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGVdKQot KwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0k Q0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0Mt bXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1t Z3cgJEJOLW1ndy1tdCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1t dC1zICRCTi1tZ3ctcyAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0Mt bXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhf bGliLCBtYWluLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9TRVJJ QUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCUJOPWJvb3N0X3dz ZXJpYWxpemF0aW9uCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9 Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKSBsaW5rX3RocmVh ZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtf dGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIg PSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0 ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRo ZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4 X2N2X2Jvb3N0X3NpZ25hbHMsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQ TFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5j bHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9i b29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubykKLSsJCQkgQUNfTEFOR19S RVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5 ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NJR05BTFMsLFtkZWZpbmUgaWYg dGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rf c2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVS U0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1NJ R05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKSBsaW5rX3Ro cmVhZD0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xp bmtfdGhyZWFkPSJubyJdKQotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdo ZXRoZXIgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJ ICAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNf TEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtb QCU6QGluY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhw cD4KLSsJCQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtbdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAotKyAgICAgICAgICAgICAgICAgICBh eF9jdl9ib29zdF9kYXRlX3RpbWU9eWVzLCBheF9jdl9ib29zdF9kYXRlX3RpbWU9bm8pCi0rCQkJ IEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9kYXRl X3RpbWUiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX0RBVEVfVElN RSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0p Ci0rCQkJCUJOPWJvb3N0X2RhdGVfdGltZQotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQt cyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xp YiwgbWFpbiwgW0JPT1NUX0RBVEVfVElNRV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1Rf REFURV9USU1FX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJ CWlmIHRlc3QgIngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNH X05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlm aQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9yZWdleCwKLSsJCQkJCQlbQUNf TEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNF KEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+Ci0rCQkJCQkJ CQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojpy ZWdleCByKCk7IHJldHVybiAwO11dKSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rf cmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0r CQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgot KwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlJl Z2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfcmVnZXgKLSsJCQkJZm9y IGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRC Ti0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkg ICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9SRUdFWF9MSUI9Ii1sJGF4X2xp YiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQotKyAg CQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJ CQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJ ZmkKLSsJCQlmaQotKwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpVbml0 VGVzdEZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29z dF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFO R19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbQCU6 QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7 Ci0rCQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJ VEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtdXSksCi0rICAgICAgICAgICAg ICAgICAgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcms9eWVzLCBheF9jdl9ib29zdF91 bml0X3Rlc3RfZnJhbWV3b3JrPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJ CWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPSAieHllcyI7IHRo ZW4KLSsgICAgCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLLCxbZGVm aW5lIGlmIHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJs ZV0pCi0rCQkJQk49Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yawotKyAgICAJCXNhdmVkX2xkZmxh Z3M9IiR7TERGTEFHU30iCi0rCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10 ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3 LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1zICRCTi0kQ0MtbXQt JEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtM REZMQUdTfSAtbCRheF9saWIiCi0rICAgIAkJCUFDX0NBQ0hFX0NIRUNLKHRoZSBuYW1lIG9mIHRo ZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSwKLSsJICAgICAgCQkJCQkgICBheF9j dl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkg QUNfTEFOR19DUExVU1BMVVMKLSsgICAgICAgICAgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFO R19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0 ZXN0X3N1aXRlOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0 ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7 XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJ5ZXMi XSxbbGlua190aHJlYWQ9Im5vIl0pCi0rCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKyAgICAgICAg ICAgICAgIF0pCi0rICAgICAgICAgICAgICAgIExERkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0r CQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAg ICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKyAg ICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIp Ci0rCQkJCQlicmVhawotKwkJCQlmaQotKyAgICAgICAgICAgICAgZG9uZQotKwkJCSAgICBpZiB0 ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCSAgIEFDX01TR19OT1RJQ0Uo Q291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsJCWZp Ci0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgotKyAgICAgICAgTERGTEFHUz0i JExERkxBR1NfU0FWRUQiCi0rCWZpCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvYXhfbXlzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9teXNxbC5tNAot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNAkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlz cWwubTQJMjAwOS0wNS0yMiAyMjo1NDozNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTcy IEBACi0rZG5sICRJZDogYXhfbXlzcWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9z a290IEV4cCAkCi0rZG5sCi0rZG5sIEBzeW5vcHNpcyBBWF9MSUJfTVlTUUwoW01JTklNVU0tVkVS U0lPTl0pCi0rZG5sCi0rZG5sIFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmls aXR5IG9mIE15U1FMIGNsaWVudCBsaWJyYXJ5Ci0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBv ciBuZXdlci4KLStkbmwgCi0rZG5sIEFYX0xJQl9NWVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBh cmd1bWVudCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVk IHZlcnNpb24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0r ZG5sCi0rZG5sIFRoZSAtLXdpdGgtbXlzcWwgb3B0aW9uIHRha2VzIG9uZSBvZiB0aHJlZSBwb3Nz aWJsZSB2YWx1ZXM6Ci0rZG5sIG5vICAgLSBkbyBub3QgY2hlY2sgZm9yIE15U1FMIGNsaWVudCBs aWJyYXJ5Ci0rZG5sIHllcyAgLSBkbyBjaGVjayBmb3IgTXlTUUwgbGlicmFyeSBpbiBzdGFuZGFy ZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChteXNxbF9jb25maWcgc2hvdWxkIGJlIGluIHRoZSBQ QVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBteXNxbF9jb25maWcgdXRpbGl0eSwg dXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBteXNxbF9jb25maWcgY2FuJ3QgYmUgZm91 bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwg ICBBQ19TVUJTVChNWVNRTF9DRkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoTVlTUUxfTERGTEFHUykK LStkbmwgICBBQ19TVUJTVChNWVNRTF9WRVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoKLStk bmwKLStkbmwgICBIQVZFX01ZU1FMCi0rZG5sCi0rZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNr YWdlcwotK2RubCBAY2F0ZWdvcnkgQ3h4Ci0rZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1h dGV1c3pAbG9za290Lm5ldD4KLStkbmwgQHZlcnNpb24gJERhdGU6IDIwMDcvMDYvMjMgMDE6NTE6 MjIgJAotK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCi0rZG5sCi0rZG5sICRJZDogYXhfbXlz cWwubTQsdiAxLjMgMjAwNy8wNi8yMyAwMTo1MToyMiBtbG9za290IEV4cCAkCi0rZG5sCi0rQUNf REVGVU4oW0FYX0xJQl9NWVNRTF0sCi0rWwotKyAgICBBQ19BUkdfV0lUSChbbXlzcWxdLAotKyAg ICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1teXNxbD1APDpAQVJHQDo+QF0sCi0rICAgICAg ICAgICAgW3VzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBAPDpAZGVmYXVsdD15ZXNAOj5ALCBvcHRp b25hbGx5IHNwZWNpZnkgcGF0aCB0byBteXNxbF9jb25maWddCi0rICAgICAgICApLAotKyAgICAg ICAgWwotKwlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUiCi0rICAgICAgICBp ZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9teXNxbD0i bm8iCi0rICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAg ICAgICAgd2FudF9teXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHdhbnRf bXlzcWw9InllcyIKLSsgICAgICAgICAgICBNWVNRTF9DT05GSUc9IiR3aXRodmFsIgotKyAgICAg ICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9teXNxbD0ieWVzIgotKwlNWVNRTF9p bmNfY2hlY2s9Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiXQotKyAgICApCi0rCi0rICAg IE1ZU1FMX0NGTEFHUz0iIgotKyAgICBNWVNRTF9MREZMQUdTPSIiCi0rICAgIE1ZU1FMX1ZFUlNJ T049IiIKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVjayBNeVNRTCBsaWJyYXJpZXMgKGxpYm15 c3FsY2xpZW50KQotKyAgICBkbmwKLSsgICAgCi0rICAgIGlmIHRlc3QgIiR3YW50X215c3FsIiA9 ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfQ09ORklHIiAtbyB0 ZXN0OyB0aGVuCi0rICAgICAgICAgICAgQUNfUEFUSF9QUk9HKFtNWVNRTF9DT05GSUddLCBbbXlz cWxfY29uZmlnXSwgW10pCi0rICAgICAgICBmaQotKwotKyAgICAgICAgZG5sIE1ZU1FMX0NPTkZJ RyBpcyBwcm92aWRlZCBidXQgaXQgZG9lcyBub3QgcG9pbnQgdG8gZXhlY3V0YWJsZSBmaWxlCi0r ICAgICAgICBpZiB0ZXN0ICEgLXggIiRNWVNRTF9DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAg QUNfTVNHX0VSUk9SKFskTVlTUUxfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBh biBleGVjdHVhYmxlIGZpbGVdKQotKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0ibm8iCi0rICAg ICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRl c3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4KLSsgICAgICAgICAgICAjCi0rICAgICAg ICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCi0rICAgICAgICAgICAgIwotKyAg ICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5XSkK LSsgICAgICAgICAgICBNWVNRTF9pbmNkaXI9Ci0rICAgICAgICAgICAgZm9yIG15c3FsX2luY19k aXIgaW4gJE1ZU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAgICAg IGlmIHRlc3QgLWQgIiRteXNxbF9pbmNfZGlyIiBcCi0rICAgICAgICAgICAgICAgICYmIHRlc3Qg LWYgIiRteXNxbF9pbmNfZGlyL215c3FsL215c3FsLmgiCi0rICAgICAgICAgICAgICAgIHRoZW4K LSsgICAgICAgICAgICAgICAgICAgIE1ZU1FMX2luY2Rpcj0kbXlzcWxfaW5jX2RpcgotKyAgICAg ICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBk b25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsgICAgICAg ICAgICB0aGVuCi0rICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhl IE15U1FMIGluY2x1ZGUgZGlyIGluICckTVlTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAgICAgICAg ZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkTVlTUUxfaW5jZGlyIiBpbgotKyAgICAgICAgICAg ICAgICAvKiApIDs7Ci0rICAgICAgICAgICAgICAgICogKSAgQUNfTVNHX0VSUk9SKFtUaGUgTXlT UUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUg cGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICBBQ19NU0dfUkVT VUxUKFskTVlTUUxfaW5jZGlyXSkKLSsKLSsgICAgICAgICAgICBpZiB0ZXN0ICIkTVlTUUxfaW5j ZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9 IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBNWVNRTF9DRkxBR1M9Ii1JJHtN WVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgTVlTUUxfTERG TEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKLSsKLSsgICAgICAgICAgICBNWVNRTF9WRVJT SU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgICAgICAgICBBQ19ERUZJTkUo W0hBVkVfTVlTUUxdLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiBNeVNRTCBsaWJyYXJpZXMgYXJlIGF2 YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9InllcyIK LSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBmb3VuZF9teXNxbD0ibm8iCi0rICAgICAgICBm aQotKyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNrIGlmIHJlcXVpcmVkIHZlcnNp b24gb2YgTXlTUUwgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICAKLSsKLSsgICAgbXlzcWxf dmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYgdGVzdCAi JGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0r Ci0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3Fs X3ZlcnNpb25fcmVxXSkKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lv biBzdHJpbmcgb2YgTXlTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIg cmVwcmVzZW50YXRpb24KLSsgICAgICAgIG15c3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRt eXNxbF92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lv bl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05 XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89YGV4cHIgJG15c3FsX3Zl cnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAg IGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCi0rICAgICAg ICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAgICAg ICAgbXlzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX3JlcV9tYWpv ciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRt eXNxbF92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAgICAgIGRu bCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVkIE15U1FMCi0rICAgICAgICBk bmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCi0rICAgICAgICBteXNx bF92ZXJzaW9uX21ham9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCi0r ICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRNWVNRTF9WRVJTSU9OIDogJ1tbMC05 XV0qXC5cKFtbMC05XV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz1gZXhwciAk TVlTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rICAg ICAgICBpZiB0ZXN0ICJ4JG15c3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0aGVuCi0rICAgICAg ICAgICAgbXlzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBt eXNxbF92ZXJzaW9uX251bWJlcj1gZXhwciAkbXlzcWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAw IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRteXNxbF92ZXJzaW9u X21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsg JG15c3FsX3ZlcnNpb25fbWljcm9gCi0rCi0rICAgICAgICBteXNxbF92ZXJzaW9uX2NoZWNrPWBl eHByICRteXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRteXNxbF92ZXJzaW9uX3JlcV9udW1iZXJg Ci0rICAgICAgICBpZiB0ZXN0ICIkbXlzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsg ICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKyAgICAgICAgZWxzZQotKyAgICAgICAg ICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAgIEFD X1NVQlNUKFtNWVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW01ZU1FMX0NGTEFHU10pCi0r ICAgIEFDX1NVQlNUKFtNWVNRTF9MREZMQUdTXSkKLStdKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv YXhfb3JhY2xlX29jaS5tNAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVf b2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTIwMDktMDUtMjIgMjI6NTQ6MzcuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI4NiBAQAotK2RubCAkSWQ6IGF4X29yYWNsZV9vY2ku bTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBFeHAgJAotK2RubAotK2RubCBA c3lub3BzaXMgQVhfTElCX09SQUNMRV9PQ0koW01JTklNVU0tVkVSU0lPTl0pCi0rZG5sCi0rZG5s IFRoaXMgbWFjcm8gcHJvdmlkZXMgdGVzdHMgb2YgYXZhaWxhYmlsaXR5IG9mIE9yYWNsZSBPQ0kg QVBJCi0rZG5sIG9mIHBhcnRpY3VsYXIgdmVyc2lvbiBvciBuZXdlci4KLStkbmwgVGhpcyBtYWNy b3MgY2hlY2tzIGZvciBPcmFjbGUgT0NJIGhlYWRlcnMgYW5kIGxpYnJhcmllcyAKLStkbmwgYW5k IGRlZmluZXMgY29tcGlsYXRpb24gZmxhZ3MKLStkbmwgCi0rZG5sIE1hY3JvIHN1cHBvcnRzIGZv bGxvd2luZyBvcHRpb25zIGFuZCB0aGVpciB2YWx1ZXM6Ci0rZG5sIDEpIFNpbmdsZS1vcHRpb24g dXNhZ2U6Ci0rZG5sIC0td2l0aC1vcmFjbGUgLSBwYXRoIHRvIE9SQUNMRV9IT01FIGRpcmVjdG9y eQotK2RubCAyKSBUd28tb3B0aW9ucyB1c2FnZSAoYm90aCBvcHRpb25zIGFyZSByZXF1aXJlZCk6 Ci0rZG5sIC0td2l0aC1vcmFjbGUtaW5jbHVkZSAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGggT0NJ IGhlYWRlcnMKLStkbmwgLS13aXRoLW9yYWNsZS1saWIgLSBwYXRoIHRvIGRpcmVjdG9yeSB3aXRo IE9DSSBsaWJyYXJpZXMgCi0rZG5sCi0rZG5sIE5PVEU6IFRoZXNlIG9wdGlvbnMgZGVzY3JpYmVk IGFib3ZlIGRvZXMgbm90IHRha2UgeWVzfG5vIHZhbHVlcy4KLStkbmwgSWYgJ3llcycgdmFsdWUg aXMgcGFzc2VkLCB0aGVuIFdBUk5JTkcgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCwKLStkbmwg J25vJyB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgLS13aXRob3V0LW9yYWNsZSogdmFyaWF0aW9ucyB3 aWxsIGNhdXNlCi0rZG5sIHRoZSBtYWNybyB3b24ndCBjaGVjayBlbnl0aGluZy4KLStkbmwKLStk bmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0NG TEFHUykKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX0xERkxBR1MpCi0rZG5sICAgQUNfU1VC U1QoT1JBQ0xFX09DSV9WRVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwKLStkbmwg ICBIQVZFX09SQUNMRQotK2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKLStk bmwgQGNhdGVnb3J5IEN4eAotK2RubCBAYXV0aG9yIE1hdGV1c3ogTG9za290IDxtYXRldXN6QGxv c2tvdC5uZXQ+Ci0rZG5sIEB2ZXJzaW9uICREYXRlOiAyMDA4LzA0LzI4IDE5OjU4OjU0ICQKLStk bmwgQGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQotK2RubAotK2RubCAkSWQ6IGF4X29yYWNsZV9vY2ku bTQsdiAxLjExIDIwMDgvMDQvMjggMTk6NTg6NTQgbWxvc2tvdCBFeHAgJAotK2RubAotK0FDX0RF RlVOKFtBWF9MSUJfT1JBQ0xFX09DSV0sCi0rWwotKyAgICBBQ19SRVFVSVJFKFtBQ19DQU5PTklD QUxfSE9TVF0pCi0rICAgIEFDX0FSR19XSVRIKFtvcmFjbGVdLAotKyAgICAgICAgQUNfSEVMUF9T VFJJTkcoWy0td2l0aC1vcmFjbGU9QDw6QERJUkA6PkBdLAotKyAgICAgICAgICAgIFt1c2UgT3Jh Y2xlIE9DSSBBUEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lIGRpcmVjdG9yeV0KLSsg ICAgICAgICksCi0rICAgICAgICBbCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAieWVz IjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KLSsg ICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0rICAgICAgICAg ICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsgICAgICAgICAg ICBmaSAKLSsgICAgICAgIGZpCi0rICAgICAgICBdLAotKyAgICAgICAgWwotKyAgICAgICAgaWYg dGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9ob21lX2Rp cj0iJE9SQUNMRV9IT01FIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIG9yYWNsZV9ob21l X2Rpcj0iIgotKyAgICAgICAgZmkgCi0rICAgICAgICBdCi0rICAgICkKLSsKLSsgICAgQUNfQVJH X1dJVEgoW29yYWNsZS1pbmNsdWRlXSwKLSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgt b3JhY2xlLWluY2x1ZGU9QDw6QERJUkA6PkBdLAotKyAgICAgICAgICAgIFt1c2UgT3JhY2xlIE9D SSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGhdCi0rICAgICAgICApLAotKyAgICAgICAgW29y YWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCJdLAotKyAgICAgICAgW29yYWNsZV9ob21l X2luY2x1ZGVfZGlyPSIiXQotKyAgICApCi0rICAgIEFDX0FSR19XSVRIKFtvcmFjbGUtbGliXSwK LSsgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xlLWxpYj1APDpARElSQDo+QF0s Ci0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBw YXRoXQotKyAgICAgICAgKSwKLSsgICAgICAgIFtvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZh bCJdLAotKyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiJdCi0rICAgICkKLSsKLSsgICAg T1JBQ0xFX09DSV9DRkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIiCi0rICAgIE9S QUNMRV9PQ0lfVkVSU0lPTj0iIgotKwotKyAgICBkbmwKLSsgICAgZG5sIENvbGxlY3QgaW5jbHVk ZS9saWIgcGF0aHMKLSsgICAgZG5sIAotKyAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ibm8i Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCi0rCi0rICAgICAg ICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfZGly IiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGRubCBPUkFDTEVfSE9NRSBwYXRoIHByb3Zp ZGVkCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZG5sIFByaW1hcnkgcGF0aCB0byBPQ0kg aGVhZGVycywgYXZhaWxhYmxlIGluIE9yYWNsZT49MTAKLSsgICAgICAgICAgICBvcmFjbGVfaW5j bHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvcHVibGljIgotKyAgICAgICAgICAgIAot KyAgICAgICAgICAgIGRubCBTZWNvbmRhcnkgcGF0aCB0byBPQ0kgaGVhZGVycyB1c2VkIGJ5IG9s ZGVyIHZlcnNpb25zCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9o b21lX2Rpci9yZGJtcy9kZW1vIgotKwotKyAgICAgICAgICAgIGRubCBMaWJyYXJ5IHBhdGgKLSsg ICAgICAgICAgICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2Rpci9saWIiCi0rICAgICAg ICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAg ICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsKLSsgICAgZWxp ZiB0ZXN0IC1uICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiIC1vIC1uICIkb3JhY2xlX2hvbWVf bGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRl X2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAieWVzIjsgdGhl bgotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9ob21lX2luY2x1ZGVf ZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiID0gInll cyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAg ICAgICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAi bm8iIC1hICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gInllcyI7IHRoZW4KLSsgICAgICAgICAg ICBvcmFjbGVfbGliX2Rpcj0iJG9yYWNsZV9ob21lX2xpYl9kaXIiCi0rICAgICAgICBlbGlmIHRl c3QgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2Fu dF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rICAg IGlmIHRlc3QgIiR3YW50X29yYWNsZV9idXRfbm9fcGF0aCIgPSAieWVzIjsgdGhlbgotKyAgICAg ICAgQUNfTVNHX1dBUk4oW09yYWNsZSBzdXBwb3J0IGlzIHJlcXVlc3RlZCBidXQgbm8gT3JhY2xl IHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1BsZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJl Y3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwKLSstLXdpdGgtb3JhY2xlLWluY2x1ZGUg YW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuXSkKLSsgICAgZmkKLSsKLSsgICAgZG5sCi0r ICAgIGRubCBDaGVjayBPQ0kgZmlsZXMKLSsgICAgZG5sCi0rICAgIGlmIHRlc3QgLW4gIiRvcmFj bGVfaW5jbHVkZV9kaXIiIC1hIC1uICIkb3JhY2xlX2xpYl9kaXIiOyB0aGVuCi0rCi0rICAgICAg ICBzYXZlZF9DUFBGTEFHUz0iJENQUEZMQUdTIgotKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFH UyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIiCi0rCi0rICAgICAgICBkbmwgQWRkaXRpb25hbCBwYXRo IGZvciBvbGRlciBPcmFjbGUgaW5zdGFsbGF0aW9ucyAKLSsgICAgICAgIGlmIHRlc3QgLW4gIiRv cmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxB R1MgLUkkb3JhY2xlX2luY2x1ZGVfZGlyMiIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICAjIEZp Z3VyZSBvdXQgaWYgd2UgYXJlIGJ1aWxkaW5nIG9uIHdpbjMyLgotKyAgICAgICAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICAgICAgICAgICptaW5ndzMyKiApIFdJTjMyPXllcyA7OwotKyAgICAgICAg ICAgICpjeWd3aW4qICkgIFdJTjMyPXllcyA7OwotKyAgICAgICAgICAgICopIFdJTjMyPW5vIDs7 Ci0rICAgICAgICBlc2FjCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkV0lOMzIiID0gIm5vIgotKyAg ICAgICAgdGhlbgotKyAgICAgICAgICAgIG9jaV9saWJzPSItbGNsbnRzaCAtbG5uejExIgotKyAg ICAgICAgZWxzZQotKyAgICAgICAgICAgIG9jaV9saWJzPSItbG9jaSIKLSsgICAgICAgIGZpCi0r Ci0rICAgICAgICBzYXZlZF9MREZMQUdTPSIkTERGTEFHUyIKLSsgICAgICAgIHNhdmVkX0xJQlM9 IiRMSUJTIgotKyAgICAgICAgb2NpX2xkZmxhZ3M9Ii1MJG9yYWNsZV9saWJfZGlyIgotKyAgICAg ICAgTERGTEFHUz0iJExERkxBR1MgJG9jaV9sZGZsYWdzIgotKyAgICAgICAgTElCUz0iJExJQlMg JG9jaV9saWJzIgotKwotKyAgICAgICAgZG5sCi0rICAgICAgICBkbmwgQ2hlY2sgT0NJIGhlYWRl cnMKLSsgICAgICAgIGRubAotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9D SSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXJdKQotKwotKyAgICAgICAgQUNfTEFOR19Q VVNIKEMrKykKLSsgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKFsKLSsgICAgICAgICAgICBBQ19M QU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8b2NpLmg+XV0sCi0rICAgICAgICAgICAgICAgIFtb Ci0rI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZFUlNJT04pCi0rI2lmIE9DSV9NQUpPUl9WRVJTSU9O ID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9OID09IDIKLSsvLyBPcmFjbGUgMTAuMiBkZXRlY3Rl ZAotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQoT0NJX1Y3X1NZTlRBWCkKLSsvLyBPSywgb2xkZXIg T3JhY2xlIGRldGVjdGVkCi0rLy8gVE9ETyAtIG1sb3Nrb3Q6IGZpbmQgYmV0dGVyIG1hY3JvIHRv IGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsgCi0rI2Vsc2UKLSsjICBlcnJvciBPcmFjbGUgb2Np LmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRpZgotKyAgICAgICAgICAgICAgICBdXQotKyAgICAg ICAgICAgICldLAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFH Uz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRv cmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NG TEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAg ICAgICAgZmkKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCi0rICAgICAg ICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAgICBdLAotKyAgICAgICAgICAg IFsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJubyIKLSsgICAgICAgICAgICBBQ19N U0dfUkVTVUxUKFtub3QgZm91bmRdKQotKyAgICAgICAgICAgIF0KLSsgICAgICAgICkKLSsgICAg ICAgIEFDX0xBTkdfUE9QKFtDKytdKQotKyAgICAgICAgCi0rICAgICAgICBkbmwKLSsgICAgICAg IGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCi0rICAgICAgICBkbmwKLSsgICAgICAgIGlmIHRlc3Qg IiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAgICAgQUNfTVNH X0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyXSkK LSsKLSsgICAgICAgICAgICBBQ19MQU5HX1BVU0goQysrKQotKyAgICAgICAgICAgIEFDX0xJTktf SUZFTFNFKFsKLSsgICAgICAgICAgICAgICAgQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUg PG9jaS5oPl1dLAotKyAgICAgICAgICAgICAgICAgICAgW1sKLStPQ0lFbnYqIGVudmggPSAwOwot K09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAsIDApOwotK2lm IChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOwotKyAgICAgICAgICAg ICAgICAgICAgXV0KLSsgICAgICAgICAgICAgICAgKV0sCi0rICAgICAgICAgICAgICAgIFsKLSsg ICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJz IgotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgICAg IEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgICAgICAgICAgIF0sCi0rICAgICAgICAgICAg ICAgIFsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0ibm8iCi0rICAgICAgICAgICAg ICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0rICAgICAgICAgICAgICAgIF0KLSsgICAg ICAgICAgICApCi0rICAgICAgICAgICAgQUNfTEFOR19QT1AoW0MrK10pCi0rICAgICAgICBmaQot KwotKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIKLSsgICAgICAgIExERkxBR1M9 IiRzYXZlZF9MREZMQUdTIgotKyAgICAgICAgTElCUz0iJHNhdmVkX0xJQlMiCi0rICAgIGZpCi0r Ci0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgcmVxdWlyZWQgdmVyc2lvbiBvZiBPcmFjbGUgaXMg YXZhaWxhYmxlCi0rICAgIGRubAotKyAgICBvcmFjbGVfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0s IFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInll cyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKLSsgICAgICAgIC1uICIkb3JhY2xl X3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNh dCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04uKicgXAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAg Ki8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wq LipcKlwvLy8nYAotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xl X2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3Jl cCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8n YAotKwotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBPcmFjbGUgT0NJIHZlcnNpb24gaXMg Pj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xl X3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNpb25fbWlub3IiOyB0aGVuCi0rCi0r ICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3JhY2xlX3ZlcnNpb25fbWFqb3IuJG9y YWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAgICAgICAgICAgIGRubCBEZWNvbXBvc2UgcmVxdWly ZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCi0rICAgICAgICAgICAgZG5sIGFuZCBjYWxjdWxh dGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9u X3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCi0r ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRvcmFjbGVfdmVyc2lv bl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rCi0rICAgICAgICAgICAgb3JhY2xl X3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxX21ham9yIFwqIDEw MDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRvcmFj bGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKLSsKLSsgICAgICAgICAgICBkbmwgQ2FsY3Vs YXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNp b25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwq IDEwMDBgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNs ZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAotKyAgICAg ICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsgICAg ICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgICAgICAgICAgQUNfREVG SU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJy YXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBB Q19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbT3JhY2xl ICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJlZCB2ZXJzaW9uIGlzICRvcmFj bGVfdmVyc2lvbl9yZXFdKQotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAg ICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAgICAgICAgICAgIEFDX01TR19S RVNVTFQoW25vXSkKLSsgICAgICAgICAgICBBQ19NU0dfV0FSTihbT3JhY2xlIHZlcnNpb24gdW5r bm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGVdKQotKyAgICAg ICAgZmkKLSsgICAgZmkKLSsKLSsgICAgQUNfU1VCU1QoW09SQUNMRV9PQ0lfVkVSU0lPTl0pCi0r ICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVf T0NJX0xERkxBR1NdKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00 Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2F4X3Bvc3RncmVzcWwubTQJMjAwOS0wNS0yMiAyMjo1NDozNy4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsMTcxIEBACi0rZG5sICRJZDogYXhfcG9zdGdyZXNxbC5tNCx2IDEuMyAyMDA3LzA2 LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKLStkbmwKLStkbmwgQHN5bm9wc2lzIEFYX0xJQl9Q T1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQotK2RubAotK2RubCBUaGlzIG1hY3JvIHByb3Zp ZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0Z3JlU1FMICdsaWJwcScgbGlicmFyeQot K2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCi0rZG5sIAotK2RubCBBWF9MSUJf UE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVudCB3aGljaCBpcyBvcHRpb25h bC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVkIHZlcnNpb24gcGFzc2VkLCB0aGVuIG1h Y3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0rZG5sCi0rZG5sIFRoZSAtLXdpdGgtcG9z dGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVlIHBvc3NpYmxlIHZhbHVlczoKLStkbmwg bm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNRTCBjbGllbnQgbGlicmFyeQotK2RubCB5 ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGlicmFyeSBpbiBzdGFuZGFyZCBsb2NhdGlv bnMKLStkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxkIGJlIGluIHRoZSBQQVRIKQotK2RubCBw YXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcgdXRpbGl0eSwgdXNlIHRoaXMgb3B0aW9u Ci0rZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3QgYmUgZm91bmQgaW4gdGhlIFBBVEgKLStk bmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwgICBBQ19TVUJTVChQT1NUR1JF U1FMX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FMX0xERkxBR1MpCi0rZG5sICAg QUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQotK2RubAotK2RubCBBbmQgc2V0czoKLStkbmwK LStkbmwgICBIQVZFX1BPU1RHUkVTUUwKLStkbmwKLStkbmwgQGNhdGVnb3J5IEluc3RhbGxlZFBh Y2thZ2VzCi0rZG5sIEBjYXRlZ29yeSBDeHgKLStkbmwgQGF1dGhvciBNYXRldXN6IExvc2tvdCA8 bWF0ZXVzekBsb3Nrb3QubmV0PgotK2RubCBAdmVyc2lvbiAkRGF0ZTogMjAwNy8wNi8yMyAwMTo1 MToyMiAkCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKLStkbmwKLStkbmwgJElkOiBheF9w b3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIgbWxvc2tvdCBFeHAgJAotK2Ru bAotK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0sCi0rWwotKyAgICBBQ19BUkdfV0lUSChb cG9zdGdyZXNxbF0sCi0rICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLXBvc3RncmVzcWw9 QDw6QEFSR0A6PkBdLAotKyAgICAgICAgICAgIFt1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IEA8OkBk ZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lmeSBwYXRoIHRvIHBnX2NvbmZpZ10KLSsg ICAgICAgICksCi0rICAgICAgICBbCi0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9wb3N0 Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0aGVu Ci0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGVsaWYgdGVzdCAi JHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9Inll cyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsg ICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsgICAgICAgIF0s Ci0rICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBPU1RHUkVTUUxfaW5jX2NoZWNr PSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KLSsgICAgKQotKwotKyAgICBQT1NUR1JF U1FMX0NGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX0xERkxBR1M9IiIKLSsgICAgUE9TVEdSRVNR TF9QT1NUR1JFU1FMPSIiCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgUG9zdGdyZVNRTCBs aWJyYXJpZXMgKGxpYnBxKQotKyAgICBkbmwKLSsgICAgCi0rICAgIGlmIHRlc3QgIiR3YW50X3Bv c3RncmVzcWwiID0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgLXogIiRQR19DT05G SUciIC1vIHRlc3Q7IHRoZW4KLSsgICAgICAgICAgICBBQ19QQVRIX1BST0coW1BHX0NPTkZJR10s IFtwZ19jb25maWddLCBbXSkKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0ZXN0ICEgLXgg IiRQR19DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFskUEdfQ09ORklH IGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGVdKQotKyAgICAg ICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8i Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsg dGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwg QyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICBBQ19NU0dfQ0hFQ0tJ TkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5XSkKLSsgICAgICAgICAgICBQT1NU R1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQ T1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAgICAgIGlm IHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKLSsgICAgICAgICAgICAgICAgJiYgdGVz dCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKLSsgICAgICAgICAgICAg ICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVz cWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAg ZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RH UkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgQUNfTVNH X0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRpciBpbiAnJFBPU1RH UkVTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNl ICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsgICAg ICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1RoZSBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGly ZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7 OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFskUE9T VEdSRVNRTF9pbmNkaXJdKQotKwotKyAgICAgICAgICAgIGlmIHRlc3QgIiRQT1NUR1JFU1FMX2lu Y2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9D RkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NG TEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsgICAgICAgICAgICBmaQotKwotKyAgICAg ICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJRyAtLWxpYmRpcmAgLWxwcSIK LSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQR19DT05GSUcgLS12ZXJzaW9u IHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwotKyAgICAgICAgICAgIEFDX0RFRklORShb SEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJp ZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZm91bmRfcG9z dGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVz cWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgZG5sCi0rICAgIGRubCBDaGVj ayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgaXMgYXZhaWxhYmxlCi0rICAgIGRu bAotKyAgICAKLSsKLSsgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcT1pZmVsc2UoWyQxXSwgW10s IFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAt YSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0rCi0rICAgICAgICBBQ19NU0df Q0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV0pCi0rCi0rICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5n IG9mIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVw cmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIg JHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIHBvc3Rn cmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAn W1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVx X21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5bWzAtOV1d KlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAw MDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxf dmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAgICAgIGRu bCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVkIFBvc3RncmVTUUwKLSsgICAg ICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1wo W1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBP U1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIHBv c3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1tbMC05 XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdy ZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAgICAgICAgIHBvc3RncmVzcWxf dmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJz aW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251bWJlciBcPlw9ICRwb3N0Z3Jl c3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRlc3QgIiRwb3N0Z3Jlc3FsX3Zl cnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVz XSkKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAg ICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJTVChbUE9TVEdSRVNRTF9WRVJTSU9OXSkK LSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdTXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RH UkVTUUxfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcv Y29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1ZXNzCi0tLS0g c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLmd1 ZXNzCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE1NDIg QEAKLSsjISAvYmluL3NoCi0rIyBBdHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBu YW1lLgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDgKLSsjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0r Ci0rdGltZXN0YW1wPScyMDA4LTExLTE1JwotKwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKLSsjIHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsj Ci0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyMgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRh dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEK LSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsjCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMg ZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRp b24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVy Ci0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVz dCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rCi0rIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJv dGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0rIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25m aWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKLSsjIGRpZmYgYW5kIGEgcHJv cGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBlbnRyeS4KLSsjCi0rIyBUaGlzIHNjcmlwdCBhdHRl bXB0cyB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFyIHRvCi0rIyBjb25m aWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVtIG5hbWUgb24gc3Rk b3V0LCBhbmQKLSsjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgot KyMKLSsjIFRoZSBwbGFuIGlzIHRoYXQgdGhpcyBjYW4gYmUgY2FsbGVkIGJ5IGNvbmZpZ3VyZSBz Y3JpcHRzIGlmIHlvdQotKyMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBzeXN0ZW0g dHlwZS4KLSsKLSttZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKLSsKLSt1c2FnZT0i XAotK1VzYWdlOiAkMCBbT1BUSU9OXQotKwotK091dHB1dCB0aGUgY29uZmlndXJhdGlvbiBuYW1l IG9mIHRoZSBzeXN0ZW0gXGAkbWUnIGlzIHJ1biBvbi4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0r ICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAt LXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQK LSsgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0r Ci0rUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIK LSsKLSt2ZXJzaW9uPSJcCi0rR05VIGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKLSsKLStPcmln aW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkz LCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3Ig Y29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9y IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0r Ci0raGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwot KyMgUGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNl ICQxIGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAgIGVjaG8g IiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVj aG8gIiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAg ICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHBy b2Nlc3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBh cyBpbnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6 IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgotKyAgICAgICBleGl0IDEgOzsKLSsgICAgKiAp Ci0rICAgICAgIGJyZWFrIDs7Ci0rICBlc2FjCi0rZG9uZQotKwotK2lmIHRlc3QgJCMgIT0gMDsg dGhlbgotKyAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICBleGl0 IDEKLStmaQotKwotK3RyYXAgJ2V4aXQgMScgMSAyIDE1Ci0rCi0rIyBDQ19GT1JfQlVJTEQgLS0g Y29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQotKyMg Y29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQg cmVxdWlyZXMKLSsjIHRlbXBvcmFyeSBmaWxlcyB0byBiZSBjcmVhdGVkIGFuZCwgYXMgeW91IGNh biBzZWUgYmVsb3csIGl0IGlzIGEKLSsjIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRh YmxlIGZhc2hpb24uCi0rCi0rIyBIaXN0b3JpY2FsbHksIGBDQ19GT1JfQlVJTEQnIHVzZWQgdG8g YmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGlsbAotKyMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVk LCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KLSsKLSsjIFBvcnRhYmxlIHRtcCBkaXJlY3RvcnkgY3Jl YXRpb24gaW5zcGlyZWQgYnkgdGhlIEF1dG9jb25mIHRlYW0uCi0rCi0rc2V0X2NjX2Zvcl9idWls ZD0nCi0rdHJhcCAiZXhpdGNvZGU9XCQ/OyAocm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsg cm1kaXIgXCR0bXAgMj4vZGV2L251bGwpICYmIGV4aXQgXCRleGl0Y29kZSIgMCA7Ci0rdHJhcCAi cm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4 aXQgMSIgMSAyIDEzIDE1IDsKLSs6ICR7VE1QRElSPS90bXB9IDsKLSsgeyB0bXA9YCh1bWFzayAw NzcgJiYgbWt0ZW1wIC1kICIkVE1QRElSL2NnWFhYWFhYIikgMj4vZGV2L251bGxgICYmIHRlc3Qg LW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiIDsgfSB8fAotKyB7IHRlc3QgLW4gIiRSQU5ET00i ICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXAp IDsgfSB8fAotKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRt cCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4m MiA7IH0gfHwKLSsgeyBlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0 b3J5IGluICRUTVBESVIiID4mMiA7IGV4aXQgMSA7IH0gOwotK2R1bW15PSR0bXAvZHVtbXkgOwot K3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOwotK2Nhc2Ug JENDX0ZPUl9CVUlMRCwkSE9TVF9DQywkQ0MgaW4KLSsgLCwpICAgIGVjaG8gImludCB4OyIgPiAk ZHVtbXkuYyA7Ci0rCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsgZG8KLSsJICBpZiAoJGMgLWMg LW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KLSsJICAgICBDQ19G T1JfQlVJTEQ9IiRjIjsgYnJlYWsgOwotKwkgIGZpIDsKLSsJZG9uZSA7Ci0rCWlmIHRlc3QgeCIk Q0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCi0rCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2Zv dW5kIDsKLSsJZmkKLSsJOzsKLSsgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKLSsgLCosKikg IENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7OwotK2VzYWMgOyBzZXRfY2NfZm9yX2J1aWxkPSA7Jwot KwotKyMgVGhpcyBpcyBuZWVkZWQgdG8gZmluZCB1bmFtZSBvbiBhIFB5cmFtaWQgT1N4IHdoZW4g cnVuIGluIHRoZSBCU0QgdW5pdmVyc2UuCi0rIyAoZ2hhemlAbm9jLnJ1dGdlcnMuZWR1IDE5OTQt MDgtMjQpCi0raWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRo ZW4KLSsJUEFUSD0kUEFUSDovLmF0dGJpbiA7IGV4cG9ydCBQQVRICi0rZmkKLSsKLStVTkFNRV9N QUNISU5FPWAodW5hbWUgLW0pIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9NQUNISU5FPXVua25vd24K LStVTkFNRV9SRUxFQVNFPWAodW5hbWUgLXIpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9SRUxFQVNF PXVua25vd24KLStVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFN RV9TWVNURU09dW5rbm93bgotK1VOQU1FX1ZFUlNJT049YCh1bmFtZSAtdikgMj4vZGV2L251bGxg IHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgotKwotKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNh bnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KLSsKLStjYXNlICIke1VO QU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVS U0lPTn0iIGluCi0rICAgICo6TmV0QlNEOio6KikKLSsJIyBOZXRCU0QgKG5ic2QpIHRhcmdldHMg c2hvdWxkICh3aGVyZSBhcHBsaWNhYmxlKSBtYXRjaCBvbmUgb3IKLSsJIyBtb3JlIG9mIHRoZSB0 dXBwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFvdXQqLAotKwkjICotKi1uZXRic2Rl Y29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQotKwkjIHN3 aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCogd291bGQgc2VsZWN0IHRoZSBvbGQKLSsJIyBvYmpl Y3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGggZm9yd2FyZAotKwkjIGNvbXBhdGli aWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKLSsJIyBv YmplY3QgZmlsZSBmb3JtYXQuCi0rCSMKLSsJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1 bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCi0rCSMgcG9ydGlvbiBvZiB0aGUgbmFtZS4gIFdl IGFsd2F5cyBzZXQgaXQgdG8gInVua25vd24iLgotKwlzeXNjdGw9InN5c2N0bCAtbiBody5tYWNo aW5lX2FyY2giCi0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251 bGwgfHwgXAotKwkgICAgL3Vzci9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgZWNobyB1bmtu b3duKWAKLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgotKwkgICAgYXJtZWIpIG1h Y2hpbmU9YXJtZWItdW5rbm93biA7OwotKwkgICAgYXJtKikgbWFjaGluZT1hcm0tdW5rbm93biA7 OwotKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24gOzsKLSsJICAgIHNoM2ViKSBtYWNo aW5lPXNoLXVua25vd24gOzsKLSsJICAgIHNoNWVsKSBtYWNoaW5lPXNoNWxlLXVua25vd24gOzsK LSsJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24gOzsKLSsJZXNh YwotKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBp dCBoYXMgc3dpdGNoZWQKLSsJIyB0byBFTEYgcmVjZW50bHksIG9yIHdpbGwgaW4gdGhlIGZ1dHVy ZS4KLSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgotKwkgICAgYXJtKnxpMzg2fG02 OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCQlp ZiBlY2hvIF9fRUxGX18gfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAotKwkJCXwg Z3JlcCBfX0VMRl9fID4vZGV2L251bGwKLSsJCXRoZW4KLSsJCSAgICAjIE9uY2UgYWxsIHV0aWxp dGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBhLm91dCAobmV0YnNkYW91dCkuCi0r CQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/Ci0rCQkgICAgb3M9bmV0YnNk Ci0rCQllbHNlCi0rCQkgICAgb3M9bmV0YnNkZWxmCi0rCQlmaQotKwkJOzsKLSsJICAgICopCi0r CSAgICAgICAgb3M9bmV0YnNkCi0rCQk7OwotKwllc2FjCi0rCSMgVGhlIE9TIHJlbGVhc2UKLSsJ IyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEgZGlmZmVyZW50IHVzZXJsYW5kLCBh bmQKLSsJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBu b3QgbmVlZAotKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0aW9uLCBzbyBpdCBjYW4gYmUgcmVw bGFjZWQgd2l0aCBhCi0rCSMgc3VpdGFibGUgdGFnLCBpbiB0aGUgc3R5bGUgb2YgbGludXgtZ251 LgotKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgotKwkgICAgRGViaWFuKikKLSsJCXJlbGVh c2U9Jy1nbnUnCi0rCQk7OwotKwkgICAgKikKLSsJCXJlbGVhc2U9YGVjaG8gJHtVTkFNRV9SRUxF QVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCi0rCQk7OwotKwllc2FjCi0rCSMgU2luY2UgQ1BV X1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNOgotKwkjIGNvbnRhaW5z IHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKLSsJIyBDUFVfVFlQRS1N QU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2VkLgotKwllY2hvICIke21hY2hpbmV9 LSR7b3N9JHtyZWxlYXNlfSIKLSsJZXhpdCA7OwotKyAgICAqOk9wZW5CU0Q6KjoqKQotKwlVTkFN RV9NQUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3BlbkJTRC4vLydgCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7 OwotKyAgICAqOmVra29CU0Q6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1l a2tvYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6U29saWRCU0Q6KjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICBtYWNwcGM6TWlyQlNEOio6KikKLSsJZWNobyBwb3dlcnBjLXVua25v d24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6TWlyQlNEOio6KikK LSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQot KwlleGl0IDs7Ci0rICAgIGFscGhhOk9TRjE6KjoqKQotKwljYXNlICRVTkFNRV9SRUxFQVNFIGlu Ci0rCSo0LjApCi0rCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3tw cmludCAkM30nYAotKwkJOzsKLSsJKjUuKikKLSsJICAgICAgICBVTkFNRV9SRUxFQVNFPWAvdXNy L3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAotKwkJOzsKLSsJZXNhYwotKwkjIEFj Y29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBv bgotKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhv cGUgdGhhdAotKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMgcnVubmluZyB0b2RheS4gIFRoaXMgY29k ZSBwaXBlcyB0aGUgQ1BVCi0rCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkg ZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgotKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9zYmluL3Bz cmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNzb3IuKiQv XDEvcCcgfCBoZWFkIC1uIDFgCi0rCWNhc2UgIiRBTFBIQV9DUFVfVFlQRSIgaW4KLSsJICAgICJF VjQgKDIxMDY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKLSsJICAgICJFVjQuNSAo MjEwNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotKwkgICAgIkxDQTQgKDIxMDY2 LzIxMDY4KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKLSsJICAgICJFVjUgKDIxMTY0 KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKLSsJICAgICJFVjUuNiAoMjExNjRB KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7Ci0rCSAgICAiRVY1LjYgKDIxMTY0 UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTYiIDs7Ci0rCSAgICAiRVY1LjcgKDIx MTY0UEMpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7Ci0rCSAgICAiRVY2ICgy MTI2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7Ci0rCSAgICAiRVY2LjcgKDIx MjY0QSkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY3IiA7OwotKwkgICAgIkVWNi44Q0Ig KDIxMjY0QykiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotKwkgICAgIkVWNi44 QUwgKDIxMjY0QikiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotKwkgICAgIkVW Ni44Q1ggKDIxMjY0RCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OwotKwkgICAg IkVWNi45QSAoMjEyNjQvRVY2OUEpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OSIgOzsK LSsJICAgICJFVjcgKDIxMzY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIgOzsKLSsJ ICAgICJFVjcuOSAoMjEzNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NzkiIDs7Ci0r CWVzYWMKLSsJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KLSsJIyBBIFZu Lm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24uCi0rCSMgQSBUbi5uIHZlcnNpb24gaXMg YSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCi0rCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4g dW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgotKwkjIDEuMiB1c2VzICIxLjIiIGZv ciB1bmFtZSAtci4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1F X1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFS U1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0rCWV4aXQgOzsKLSsgICAg QWxwaGFcICo6V2luZG93c19OVCo6KikKLSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXgg cmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPwotKwkjIFNob3VsZCB3ZSBj aGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQK LSsJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/Ci0rCWVjaG8gYWxwaGEtcGMtaW50ZXJp eAotKwlleGl0IDs7Ci0rICAgIDIxMDY0OldpbmRvd3NfTlQ6NTA6MykKLSsJZWNobyBhbHBoYS1k ZWMtd2lubnQzLjUKLSsJZXhpdCA7OwotKyAgICBBbWlnYSo6VU5JWF9TeXN0ZW1fVjo0LjA6KikK LSsJZWNobyBtNjhrLXVua25vd24tc3lzdjQKLSsJZXhpdCA7OwotKyAgICAqOltBYV1taWdhW09v XVtTc106KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hbWlnYW9zCi0rCWV4 aXQgOzsKLSsgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXVua25vd24tbW9ycGhvcwotKwlleGl0IDs7Ci0rICAgICo6T1MvMzkwOio6KikKLSsJZWNo byBpMzcwLWlibS1vcGVuZWRpdGlvbgotKwlleGl0IDs7Ci0rICAgICo6ei9WTToqOiopCi0rCWVj aG8gczM5MC1pYm0tenZtb2UKLSsJZXhpdCA7OwotKyAgICAqOk9TNDAwOio6KikKLSsgICAgICAg IGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLSsJZXhpdCA7OwotKyAgICBhcm06UklTQyo6MS5bMDEy XSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0rCWVjaG8gYXJtLWFjb3JuLXJpc2NpeCR7VU5B TUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhcm06cmlzY29zOio6Knxhcm06UklTQ09TOio6 KikKLSsJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKLSsJZXhpdCA7OwotKyAgICBTUjI/MDE6SEkt VVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQotKwllY2hvIGhwcGExLjEtaGl0YWNo aS1oaXV4bXBwCi0rCWV4aXQgOzsKLSsgICAgUHlyYW1pZCo6T1N4KjoqOiogfCBNSVMqOk9TeCo6 KjoqIHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCi0rCSMgYWtlZUB3cGRpczAzLndwYWZiLmFmLm1p bCAoRWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMgYW5kIE5JTEUuCi0rCWlmIHRlc3QgImAo L2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KLSsJCWVjaG8gcHlyYW1p ZC1weXJhbWlkLXN5c3YzCi0rCWVsc2UKLSsJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAotKwlm aQotKwlleGl0IDs7Ci0rICAgIE5JTEUqOio6KjpkY29zeCkKLSsJZWNobyBweXJhbWlkLXB5cmFt aWQtc3ZyNAotKwlleGl0IDs7Ci0rICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQotKwllY2hvIHNw YXJjLWljbC1ueDYKLSsJZXhpdCA7OwotKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBE UlM/NjAwMDppc2lzOjQuMio6NyopCi0rCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBpbgotKwkg ICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhpdCA7OwotKwllc2FjIDs7Ci0rICAgIHN1 bjRIOlN1bk9TOjUuKjoqKQotKwllY2hvIHNwYXJjLWhhbC1zb2xhcmlzMmBlY2hvICR7VU5BTUVf UkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9T OjUuKjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCi0rCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMy YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSsg ICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3VuT1M6NS4qOiopCi0rCWV2YWwgJHNldF9j Y19mb3JfYnVpbGQKLSsJU1VOX0FSQ0g9ImkzODYiCi0rCSMgSWYgdGhlcmUgaXMgYSBjb21waWxl ciwgc2VlIGlmIGl0IGlzIGNvbmZpZ3VyZWQgZm9yIDY0LWJpdCBvYmplY3RzLgotKwkjIE5vdGUg dGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1cm4gX19MUDY0X18gaW50byAxIGxpa2UgZ2NjIGRv ZXMuCi0rCSMgVGhpcyB0ZXN0IHdvcmtzIGZvciBib3RoIGNvbXBpbGVycy4KLSsJaWYgWyAiJEND X0ZPUl9CVUlMRCIgIT0gJ25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCi0rCSAgICBpZiBlY2hv ICdcbiNpZmRlZiBfX2FtZDY0XG5JU182NEJJVF9BUkNIXG4jZW5kaWYnIHwgXAotKwkJKENDT1BU Uz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8IFwKLSsJCWdyZXAgSVNfNjRCSVRf QVJDSCA+L2Rldi9udWxsCi0rCSAgICB0aGVuCi0rCQlTVU5fQVJDSD0ieDg2XzY0IgotKwkgICAg ZmkKLSsJZmkKLSsJZWNobyAke1NVTl9BUkNIfS1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjQqOlN1bk9TOjYq OiopCi0rCSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkg dG8gY2Fub25pY2FsaXplCi0rCSMgU3VuT1M2LiAgSGFyZCB0byBndWVzcyBleGFjdGx5IHdoYXQg U3VuT1M2IHdpbGwgYmUgbGlrZSwgYnV0Ci0rCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtl IFNvbGFyaXMgdGhhbiBTdW5PUzQuCi0rCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMzYGVjaG8gJHtV TkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuNCo6 U3VuT1M6KjoqKQotKwljYXNlICJgL3Vzci9iaW4vYXJjaCAta2AiIGluCi0rCSAgICBTZXJpZXMq fFM0KikKLSsJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAotKwkJOzsKLSsJZXNhYwotKwkjIEph cGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEu My1KTCcuCi0rCWVjaG8gc3BhcmMtc3VuLXN1bm9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQg LWUgJ3MvLS9fLydgCi0rCWV4aXQgOzsKLSsgICAgc3VuMyo6U3VuT1M6KjoqKQotKwllY2hvIG02 OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHN1bio6Kjo0LjJC U0Q6KikKLSsJVU5BTUVfUkVMRUFTRT1gKHNlZCAxcSAvZXRjL21vdGQgfCBhd2sgJ3twcmludCBz dWJzdHIoJDUsMSwzKX0nKSAyPi9kZXYvbnVsbGAKLSsJdGVzdCAieCR7VU5BTUVfUkVMRUFTRX0i ID0gIngiICYmIFVOQU1FX1JFTEVBU0U9MwotKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KLSsJICAg IHN1bjMpCi0rCQllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwkJOzsKLSsJ ICAgIHN1bjQpCi0rCQllY2hvIHNwYXJjLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJCTs7 Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAgICBhdXNocDpTdW5PUzoqOiopCi0rCWVjaG8gc3BhcmMt YXVzcGV4LXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICMgVGhlIHNpdHVh dGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCi0r ICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5v dAotKyAgICAjICJhdGFyaXN0IiBvciAiYXRhcmlzdGUiIGF0IGxlYXN0IHNob3VsZCBoYXZlIGEg cHJvY2Vzc29yCi0rICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9t ICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKLSsgICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24g Im1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKLSsgICAgIyB0aGUgc3lzdGVtIG5hbWUg IlRPUyIgZGVub3RlcyBhIHN5c3RlbSB3aGljaCBpcyBhY3R1YWxseSBub3QKLSsgICAgIyBNaU5U LiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxk Ci0rICAgICMgYmUgbm8gcHJvYmxlbS4KLSsgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFy aXN0W2VdOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02 OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBhdGFyaSo6Kk1p TlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0rCWVjaG8g bTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICAq ZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6 KikKLSsgICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgIG1pbGFuKjoqTWlOVDoqOiogfCBtaWxhbio6Km1pbnQ6KjoqIHwgKm1pbGFuKjoq VE9TOio6KikKLSsgICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQot KyAgICAgICAgZXhpdCA7OwotKyAgICBoYWRlcyo6Kk1pTlQ6KjoqIHwgaGFkZXMqOiptaW50Oio6 KiB8ICpoYWRlcyo6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5B TUVfUkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAgKjoqTWlOVDoqOiogfCAqOiptaW50 Oio6KiB8ICo6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFN RV9SRUxFQVNFfQotKyAgICAgICAgZXhpdCA7OwotKyAgICBtNjhrOm1hY2h0ZW46KjoqKQotKwll Y2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBw b3dlcnBjOm1hY2h0ZW46KjoqKQotKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBSSVNDKjpNYWNoOio6KikKLSsJZWNobyBtaXBzLWRl Yy1tYWNoX2JzZDQuMwotKwlleGl0IDs7Ci0rICAgIFJJU0MqOlVMVFJJWDoqOiopCi0rCWVjaG8g bWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFZBWCo6VUxU UklYKjoqOiopCi0rCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQg OzsKLSsgICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCi0rCWVjaG8gY2xpcHBlci1p bnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgbWlwczoqOio6 VU1JUFMgfCBtaXBzOio6KjpSSVNDb3MpCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJc2Vk ICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSsjaW5jbHVk ZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KLSsJaW50IG1haW4gKGlu dCBhcmdjLCBjaGFyICphcmd2W10pIHsKLSsjZWxzZQotKwlpbnQgbWFpbiAoYXJnYywgYXJndikg aW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgewotKyNlbmRpZgotKwkjaWYgZGVmaW5lZCAoaG9zdF9t aXBzKSAmJiBkZWZpbmVkIChNSVBTRUIpCi0rCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCi0r CSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDAp OwotKwkjZW5kaWYKLSsJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKLSsJICBwcmludGYgKCJt aXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgot KwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKLSsJ ICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsK LSsJI2VuZGlmCi0rCSNlbmRpZgotKwkgIGV4aXQgKC0xKTsKLSsJfQotK0VPRgotKwkkQ0NfRk9S X0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJgotKwkgIGR1bW15YXJnPWBlY2hvICIke1VOQU1F X1JFTEVBU0V9IiB8IHNlZCAtbiAncy9cKFswLTldKlwpLiovXDEvcCdgICYmCi0rCSAgU1lTVEVN X05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCi0rCSAgICB7IGVjaG8gIiRTWVNURU1fTkFNRSI7 IGV4aXQ7IH0KLSsJZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKLSsJZWNobyBwb3dlcnBjLW1vdG9y b2xhLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTW90b3JvbGE6Kjo0LjM6UEw4LSopCi0rCWVj aG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJtYXgKLSsJZXhpdCA7OwotKyAgICBOaWdodF9IYXdrOio6 KjpQb3dlck1BWF9PUyB8IFN5bmVyZ3k6UG93ZXJNQVhfT1M6KjoqKQotKwllY2hvIHBvd2VycGMt aGFycmlzLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsgICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6 KikKLSsJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKLSsJZXhpdCA7OwotKyAgICBtODhr OkNYL1VYOjcqOiopCi0rCWVjaG8gbTg4ay1oYXJyaXMtY3h1eDcKLSsJZXhpdCA7OwotKyAgICBt ODhrOio6NCo6UjQqKQotKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKLSsJZXhpdCA7OwotKyAg ICBtODhrOio6Myo6UjMqKQotKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKLSsJZXhpdCA7Owot KyAgICBBVmlpT046ZGd1eDoqOiopCi0rICAgICAgICAjIERHL1VYIHJldHVybnMgQVZpaU9OIGZv ciBhbGwgYXJjaGl0ZWN0dXJlcwotKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91 bmFtZSAtcGAKLSsJaWYgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1F X1BST0NFU1NPUiA9IG1jODgxMTAgXQotKwl0aGVuCi0rCSAgICBpZiBbICR7VEFSR0VUX0JJTkFS WV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKLSsJICAgICAgIFsgJHtUQVJHRVRf QklOQVJZX0lOVEVSRkFDRX14ID0geCBdCi0rCSAgICB0aGVuCi0rCQllY2hvIG04OGstZGctZGd1 eCR7VU5BTUVfUkVMRUFTRX0KLSsJICAgIGVsc2UKLSsJCWVjaG8gbTg4ay1kZy1kZ3V4YmNzJHtV TkFNRV9SRUxFQVNFfQotKwkgICAgZmkKLSsJZWxzZQotKwkgICAgZWNobyBpNTg2LWRnLWRndXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWZpCi0rIAlleGl0IDs7Ci0rICAgIE04OCo6RG9scGhpbk9TOio6 KikJIyBEb2xwaGluT1MgKFNWUjMpCi0rCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCi0rCWV4aXQg OzsKLSsgICAgTTg4KjoqOlIzKjoqKQotKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIz Ci0rCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwotKwlleGl0IDs7Ci0rICAgIFhEODgqOio6Kjoq KSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQotKwllY2hvIG04 OGstdGVrdHJvbml4LXN5c3YzCi0rCWV4aXQgOzsKLSsgICAgVGVrNDNbMC05XVswLTldOlVUZWs6 KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKLSsJZWNobyBt NjhrLXRla3Ryb25peC1ic2QKLSsJZXhpdCA7OwotKyAgICAqOklSSVgqOio6KikKLSsJZWNobyBt aXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAotKwll eGl0IDs7Ci0rICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlY IDIuMS4xIGlzIFJUL1BDIEFJWC4KLSsJZWNobyByb21wLWlibS1haXggICAgICMgdW5hbWUgLW0g Z2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKLSsJZXhpdCA7OyAgICAgICAgICAgICAgICMgTm90 ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJwotKyAgICBpKjg2OkFJWDoq OiopCi0rCWVjaG8gaTM4Ni1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsgICAgaWE2NDpBSVg6KjoqKQot KwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KLSsJCUlCTV9SRVY9YC91c3IvYmlu L29zbGV2ZWxgCi0rCWVsc2UKLSsJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JF TEVBU0V9Ci0rCWZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQot KwlleGl0IDs7Ci0rICAgICo6QUlYOjI6MykKLSsJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRl L3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCQlldmFsICRzZXRfY2NfZm9yX2J1aWxk Ci0rCQlzZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJCSNpbmNsdWRlIDxzeXMvc3lz dGVtY2ZnLmg+Ci0rCi0rCQltYWluKCkKLSsJCQl7Ci0rCQkJaWYgKCFfX3Bvd2VyX3BjKCkpCi0r CQkJCWV4aXQoMSk7Ci0rCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKLSsJCQlleGl0 KDApOwotKwkJCX0KLStFT0YKLSsJCWlmICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5j ICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgCi0rCQl0aGVuCi0rCQkJZWNobyAiJFNZU1RFTV9OQU1F IgotKwkJZWxzZQotKwkJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQotKwkJZmkKLSsJZWxpZiBn cmVwIGJvczMyNCAvdXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJ CWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNAotKwllbHNlCi0rCQllY2hvIHJzNjAwMC1pYm0tYWl4 My4yCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgKjpBSVg6KjpbNDU2XSkKLSsJSUJNX0NQVV9JRD1g L3Vzci9zYmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBh d2sgJ3sgcHJpbnQgJDEgfSdgCi0rCWlmIC91c3Ivc2Jpbi9sc2F0dHIgLUVsICR7SUJNX0NQVV9J RH0gfCBncmVwICcgUE9XRVInID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkJSUJNX0FSQ0g9cnM2 MDAwCi0rCWVsc2UKLSsJCUlCTV9BUkNIPXBvd2VycGMKLSsJZmkKLSsJaWYgWyAteCAvdXNyL2Jp bi9vc2xldmVsIF0gOyB0aGVuCi0rCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAotKwllbHNl Ci0rCQlJQk1fUkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKwll Y2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9Ci0rCWV4aXQgOzsKLSsgICAgKjpBSVg6 KjoqKQotKwllY2hvIHJzNjAwMC1pYm0tYWl4Ci0rCWV4aXQgOzsKLSsgICAgaWJtcnQ6NC40QlNE Oip8cm9tcC1pYm06QlNEOiopCi0rCWVjaG8gcm9tcC1pYm0tYnNkNC40Ci0rCWV4aXQgOzsKLSsg ICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJTRDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BD IEJTRCBhbmQKLSsJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0 aCB1bmFtZSBhZGRlZCB0bwotKwlleGl0IDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IHJlcG9ydDogcm9tcC1pYm0gQlNEIDQuMwotKyAgICAqOkJPU1g6KjoqKQotKwllY2hvIHJzNjAw MC1idWxsLWJvc3gKLSsJZXhpdCA7OwotKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQotKwllY2hv IG02OGstYnVsbC1zeXN2MwotKwlleGl0IDs7Ci0rICAgIDkwMDAvWzM0XT8/OjQuM2JzZDoxLio6 KikKLSsJZWNobyBtNjhrLWhwLWJzZAotKwlleGl0IDs7Ci0rICAgIGhwMzAwOjQuNEJTRDoqOiog fCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCi0rCWVjaG8gbTY4ay1ocC1ic2Q0LjQKLSsJZXhp dCA7OwotKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAotKwljYXNlICIke1VOQU1F X01BQ0hJTkV9IiBpbgotKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAw IDs7Ci0rCSAgICA5MDAwL1szNF0/PyApICAgICAgICAgSFBfQVJDSD1tNjhrIDs7Ci0rCSAgICA5 MDAwL1s2NzhdWzAtOV1bMC05XSkKLSsJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVu Ci0rCQkgICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04g Mj4vZGV2L251bGxgCi0rICAgICAgICAgICAgICAgICAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9i aW4vZ2V0Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKLSsgICAgICAgICAgICAgICAg ICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotKyAgICAgICAgICAgICAgICAgICAgICA1 MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKLSsgICAgICAgICAgICAg ICAgICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8xCi0rICAg ICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklT QzJfMAotKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBp bgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpIEhQX0FSQ0g9ImhwcGEyLjBuIiA7Owot KyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotKwkJ CSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAxMC4yMAotKyAgICAgICAgICAg ICAgICAgICAgICAgIGVzYWMgOzsKLSsgICAgICAgICAgICAgICAgICAgIGVzYWMKLSsJCWZpCi0r CQlpZiBbICIke0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4KLSsJCSAgICBldmFsICRzZXRfY2NfZm9y X2J1aWxkCi0rCQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBFT0YgPiRkdW1teS5j Ci0rCi0rICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotKyAgICAgICAgICAgICAg I2luY2x1ZGUgPHN0ZGxpYi5oPgotKyAgICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgot KwotKyAgICAgICAgICAgICAgaW50IG1haW4gKCkKLSsgICAgICAgICAgICAgIHsKLSsgICAgICAg ICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLSsgICAgICAgICAgICAgICAgICBs b25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7Ci0rICAgICAgICAgICAgICAjZW5k aWYKLSsgICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJ T04pOwotKwotKyAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQotKyAgICAgICAgICAgICAg CXsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIp OyBicmVhazsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBw YTEuMSIpOyBicmVhazsKLSsgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotKyAg ICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotKyAgICAgICAgICAgICAg CSAgICBzd2l0Y2ggKGJpdHMpCi0rICAgICAgICAgICAgICAJCXsKLSsgICAgICAgICAgICAgIAkJ Y2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQljYXNl IDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJCWRlZmF1bHQ6 IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotKyAgICAgICAgICAgICAgCQl9IGJyZWFrOwotKyAg ICAgICAgICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KLSsgICAg ICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAj ZW5kaWYKLSsgICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsK LSsgICAgICAgICAgICAgIAl9Ci0rICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0rICAgICAg ICAgICAgICB9Ci0rRU9GCi0rCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkg JGR1bW15LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKLSsJCSAgICB0ZXN0IC16 ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1ocHBhCi0rCQlmaSA7OwotKwllc2FjCi0rCWlmIFsgJHtI UF9BUkNIfSA9ICJocHBhMi4wdyIgXQotKwl0aGVuCi0rCSAgICBldmFsICRzZXRfY2NfZm9yX2J1 aWxkCi0rCi0rCSAgICAjIGhwcGEyLjB3LWhwLWhwdXgqIGhhcyBhIDY0LWJpdCBrZXJuZWwgYW5k IGEgY29tcGlsZXIgZ2VuZXJhdGluZwotKwkgICAgIyAzMi1iaXQgY29kZS4gIGhwcGE2NC1ocC1o cHV4KiBoYXMgdGhlIHNhbWUga2VybmVsIGFuZCBhIGNvbXBpbGVyCi0rCSAgICAjIGdlbmVyYXRp bmcgNjQtYml0IGNvZGUuICBHTlUgYW5kIEhQIHVzZSBkaWZmZXJlbnQgbm9tZW5jbGF0dXJlOgot KwkgICAgIwotKwkgICAgIyAkIENDX0ZPUl9CVUlMRD1jYyAuL2NvbmZpZy5ndWVzcwotKwkgICAg IyA9PiBocHBhMi4wdy1ocC1ocHV4MTEuMjMKLSsJICAgICMgJCBDQ19GT1JfQlVJTEQ9ImNjICtE QTIuMHciIC4vY29uZmlnLmd1ZXNzCi0rCSAgICAjID0+IGhwcGE2NC1ocC1ocHV4MTEuMjMKLSsK LSsJICAgIGlmIGVjaG8gX19MUDY0X18gfCAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4v ZGV2L251bGwpIHwKLSsJCWdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkJ SFBfQVJDSD0iaHBwYTIuMHciCi0rCSAgICBlbHNlCi0rCQlIUF9BUkNIPSJocHBhNjQiCi0rCSAg ICBmaQotKwlmaQotKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9Ci0rCWV4aXQg OzsKLSsgICAgaWE2NDpIUC1VWDoqOiopCi0rCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFT RX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAotKwllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9S RVZ9Ci0rCWV4aXQgOzsKLSsgICAgMzA1MCo6SEktVVg6KjoqKQotKwlldmFsICRzZXRfY2NfZm9y X2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSNpbmNsdWRlIDx1bmlz dGQuaD4KLSsJaW50Ci0rCW1haW4gKCkKLSsJewotKwkgIGxvbmcgY3B1ID0gc3lzY29uZiAoX1ND X0NQVV9WRVJTSU9OKTsKLSsJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNf SFBfTUM2OEsgZXJyb25lb3VzbHkgcmV0dXJucwotKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVND MV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0Ci0rCSAgICAgcmVzdWx0cywgaG93 ZXZlci4gICovCi0rCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQotKwkgICAgewotKwkgICAg ICBzd2l0Y2ggKGNwdSkKLSsJCXsKLSsJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhw cGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJICBjYXNlIENQVV9QQV9SSVNDMV8x OiBwdXRzICgiaHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Ci0rCQkgIGNhc2UgQ1BV X1BBX1JJU0MyXzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLSsJ CSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOwotKwkJfQot KwkgICAgfQotKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKLSsJICAgIHB1dHMg KCJtNjhrLWhpdGFjaGktaGl1eHdlMiIpOwotKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNo aS1oaXV4d2UyIik7Ci0rCSAgZXhpdCAoMCk7Ci0rCX0KLStFT0YKLSsJJENDX0ZPUl9CVUlMRCAt byAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKLSsJCXsgZWNobyAi JFNZU1RFTV9OQU1FIjsgZXhpdDsgfQotKwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCi0r CWV4aXQgOzsKLSsgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkwMDAvOD9bNzldOjQuM2JzZDoq OiogKQotKwllY2hvIGhwcGExLjEtaHAtYnNkCi0rCWV4aXQgOzsKLSsgICAgOTAwMC84Pz86NC4z YnNkOio6KikKLSsJZWNobyBocHBhMS4wLWhwLWJzZAotKwlleGl0IDs7Ci0rICAgICo5Pz8qOk1Q RS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKLSsJZWNobyBocHBhMS4wLWhwLW1wZWl4Ci0r CWV4aXQgOzsKLSsgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5XTpPU0YxOio6KiApCi0rCWVj aG8gaHBwYTEuMS1ocC1vc2YKLSsJZXhpdCA7OwotKyAgICBocDg/PzpPU0YxOio6KikKLSsJZWNo byBocHBhMS4wLWhwLW9zZgotKwlleGl0IDs7Ci0rICAgIGkqODY6T1NGMToqOiopCi0rCWlmIFsg LXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLW9zZjFtawotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1vc2YxCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQot KwllY2hvIGhwcGExLjEtaHAtbGl0ZXMKLSsJZXhpdCA7OwotKyAgICBDMSo6Q29udmV4T1M6Kjoq IHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQotKwllY2hvIGMxLWNvbnZleC1ic2QKLSsgICAgICAg IGV4aXQgOzsKLSsgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikK LSsJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCi0rCXRoZW4gZWNobyBjMzItY29udmV4LWJz ZAotKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAotKwlmaQotKyAgICAgICAgZXhpdCA7OwotKyAg ICBDMzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCi0rCWVjaG8gYzM0 LWNvbnZleC1ic2QKLSsgICAgICAgIGV4aXQgOzsKLSsgICAgQzM4KjpDb252ZXhPUzoqOiogfCBj b252ZXg6Q29udmV4T1M6QzM4KjoqKQotKwllY2hvIGMzOC1jb252ZXgtYnNkCi0rICAgICAgICBl eGl0IDs7Ci0rICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCi0r CWVjaG8gYzQtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7OwotKyAgICBDUkFZKlktTVA6Kjoq OiopCi0rCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9c LlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwKLSsJfCBzZWQg LWUgJ3MvQ1JBWS4qXChbQS1aXTkwXCkvXDEvJyBcCi0rCSAgICAgIC1lIHkvQUJDREVGR0hJSktM TU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKLSsJICAgICAgLWUg J3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIENSQVkqVFM6KjoqOiopCi0rCWVjaG8g dDkwLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8n Ci0rCWV4aXQgOzsKLSsgICAgQ1JBWSpUM0U6KjoqOiopCi0rCWVjaG8gYWxwaGFldjUtY3JheS11 bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0 IDs7Ci0rICAgIENSQVkqU1YxOio6KjoqKQotKwllY2hvIHN2MS1jcmF5LXVuaWNvcyR7VU5BTUVf UkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgICo6VU5J Q09TL21wOio6KikKLSsJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVfUkVMRUFTRX0g fCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotKwlleGl0IDs7Ci0rICAgIEYzMFswMV06VU5JWF9T eXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQotKwlGVUpJVFNVX1BST0M9YHVu YW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5v cHFyc3R1dnd4eXonYAotKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RF RkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2Vk IC1lICdzL1wvLy8nYAotKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNF fSB8IHNlZCAtZSAncy8gL18vJ2AKLSsgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWpp dHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0rICAgICAgICBleGl0IDs7Ci0rICAg IDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSsgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAt cCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0 dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSsgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7 VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCi0rICAgICAgICBlY2hvICJz cGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0rCWV4aXQgOzsKLSsg ICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRl ZC9PUzoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNF fQotKwlleGl0IDs7Ci0rICAgIHNwYXJjKjpCU0QvT1M6KjoqKQotKwllY2hvIHNwYXJjLXVua25v d24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkJTRC9PUzoqOiopCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4 aXQgOzsKLSsgICAgKjpGcmVlQlNEOio6KikKLSsJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCi0r CSAgICBwYzk4KQotKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKLSsJICAgIGFtZDY0KQotKwkJZWNobyB4ODZf NjQtdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4q Ly8nYCA7OwotKwkgICAgKikKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVi c2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7Ci0rCWVzYWMK LSsJZXhpdCA7OwotKyAgICBpKjpDWUdXSU4qOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1w Yy1jeWd3aW4KLSsJZXhpdCA7OwotKyAgICAqOk1JTkdXKjoqKQotKwllY2hvICR7VU5BTUVfTUFD SElORX0tcGMtbWluZ3czMgotKwlleGl0IDs7Ci0rICAgIGkqOndpbmRvd3MzMio6KikKLSsgICAg CSMgdW5hbWUgLW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCi0rICAgIAllY2hvICR7 VU5BTUVfTUFDSElORX0tbWluZ3czMgotKwlleGl0IDs7Ci0rICAgIGkqOlBXKjoqKQotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgotKwlleGl0IDs7Ci0rICAgICo6SW50ZXJpeCo6WzM0 NTZdKikKLSsgICAgCWNhc2UgJHtVTkFNRV9NQUNISU5FfSBpbgotKwkgICAgeDg2KQotKwkJZWNo byBpNTg2LXBjLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQlleGl0IDs7Ci0rCSAgICBFTTY0 VCB8IGF1dGhlbnRpY2FtZCB8IGdlbnVpbmVpbnRlbCkKLSsJCWVjaG8geDg2XzY0LXVua25vd24t aW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQgOzsKLSsJICAgIElBNjQpCi0rCQllY2hv IGlhNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQotKwkJZXhpdCA7OwotKwllc2Fj IDs7Ci0rICAgIFszNDVdODY6V2luZG93c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4OiogfCBb MzQ1XTg2OldpbmRvd3NfTlQ6KikKLSsJZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKLSsJ ZXhpdCA7OwotKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikK LSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMg UE9TSVggc3Vic3lzdGVtPwotKwkjIEl0IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2ZXJz aW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQotKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24g dGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/Ci0rCWVjaG8gaTU4Ni1wYy1pbnRl cml4Ci0rCWV4aXQgOzsKLSsgICAgaSo6VVdJTio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXBjLXV3aW4KLSsJZXhpdCA7OwotKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdX SU4qOio6KikKLSsJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3aW4KLSsJZXhpdCA7OwotKyAgICBw KjpDWUdXSU4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCi0rCWV4aXQgOzsK LSsgICAgcHJlcCo6U3VuT1M6NS4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24tc29sYXJp czJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhpdCA7Owot KyAgICAqOkdOVToqOiopCi0rCSMgdGhlIEdOVSBzeXN0ZW0KLSsJZWNobyBgZWNobyAke1VOQU1F X01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVf UkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0rCWV4aXQgOzsKLSsgICAgKjpHTlUvKjoqOiop Ci0rCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1c2VybGFuZAotKwllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlte L10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAt ZSAncy9bLShdLiovLydgLWdudQotKwlleGl0IDs7Ci0rICAgIGkqODY6TWluaXg6KjoqKQotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLSsJZXhpdCA7OwotKyAgICBhcm0qOkxpbnV4 Oio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlpZiBlY2hvIF9fQVJNX0VBQklfXyB8 ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCi0rCSAgICB8IGdyZXAgLXEgX19BUk1f RUFCSV9fCi0rCXRoZW4KLSsJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4 LWdudQotKwllbHNlCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1n bnVlYWJpCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYXZyMzIqOkxpbnV4Oio6KikKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgY3JpczpM aW51eDoqOiopCi0rCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGNy aXN2MzI6TGludXg6KjoqKQotKwllY2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7 OwotKyAgICBmcnY6TGludXg6KjoqKQotKyAgICAJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUK LSsJZXhpdCA7OwotKyAgICBpYTY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbTMycio6TGludXg6KjoqKQotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBt NjgqOkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 Ci0rCWV4aXQgOzsKLSsgICAgbWlwczpMaW51eDoqOiopCi0rCWV2YWwgJHNldF9jY19mb3JfYnVp bGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJI3VuZGVmIENQVQotKwkjdW5k ZWYgbWlwcwotKwkjdW5kZWYgbWlwc2VsCi0rCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRl ZmluZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCi0r CUNQVT1taXBzZWwKLSsJI2Vsc2UKLSsJI2lmIGRlZmluZWQoX19NSVBTRUJfXykgfHwgZGVmaW5l ZChfX01JUFNFQikgfHwgZGVmaW5lZChfTUlQU0VCKSB8fCBkZWZpbmVkKE1JUFNFQikKLSsJQ1BV PW1pcHMKLSsJI2Vsc2UKLSsJQ1BVPQotKwkjZW5kaWYKLSsJI2VuZGlmCi0rRU9GCi0rCWV2YWwg ImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKLSsJICAg IC9eQ1BVL3sKLSsJCXM6IDo6ZwotKwkJcAotKwkgICAgfSdgIgotKwl0ZXN0IHgiJHtDUFV9IiAh PSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQotKwk7Owot KyAgICBtaXBzNjQ6TGludXg6KjoqKQotKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0rCXNlZCAn cy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCSN1bmRlZiBDUFUKLSsJI3VuZGVmIG1pcHM2NAot KwkjdW5kZWYgbWlwczY0ZWwKLSsJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChf X01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLSsJQ1BVPW1p cHM2NGVsCi0rCSNlbHNlCi0rCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19N SVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0rCUNQVT1taXBz NjQKLSsJI2Vsc2UKLSsJQ1BVPQotKwkjZW5kaWYKLSsJI2VuZGlmCi0rRU9GCi0rCWV2YWwgImAk Q0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgc2VkIC1uICcKLSsJICAgIC9e Q1BVL3sKLSsJCXM6IDo6ZwotKwkJcAotKwkgICAgfSdgIgotKwl0ZXN0IHgiJHtDUFV9IiAhPSB4 ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQotKwk7OwotKyAg ICBvcjMyOkxpbnV4Oio6KikKLSsJZWNobyBvcjMyLXVua25vd24tbGludXgtZ251Ci0rCWV4aXQg OzsKLSsgICAgcHBjOkxpbnV4Oio6KikKLSsJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251 Ci0rCWV4aXQgOzsKLSsgICAgcHBjNjQ6TGludXg6KjoqKQotKwllY2hvIHBvd2VycGM2NC11bmtu b3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGFscGhhOkxpbnV4Oio6KikKLSsJY2FzZSBg c2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2Ag aW4KLSsJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7OwotKwkgIEVWNTYpICBVTkFN RV9NQUNISU5FPWFscGhhZXY1NiA7OwotKwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNh NTYgOzsKLSsJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0rCSAgRVY2KSAg IFVOQU1FX01BQ0hJTkU9YWxwaGFldjYgOzsKLSsJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBo YWV2NjcgOzsKLSsJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKLSsgICAgICAg IGVzYWMKLSsJb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4x ID4vZGV2L251bGwKLSsJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsgZWxz ZSBMSUJDPSIiIDsgZmkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 JHtMSUJDfQotKwlleGl0IDs7Ci0rICAgIHBhZHJlOkxpbnV4Oio6KikKLSsJZWNobyBzcGFyYy11 bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHBhcmlzYzpMaW51eDoqOiogfCBocHBh OkxpbnV4Oio6KikKLSsJIyBMb29rIGZvciBDUFUgbGV2ZWwKLSsJY2FzZSBgZ3JlcCAnXmNwdVte YS16XSo6JyAvcHJvYy9jcHVpbmZvIDI+L2Rldi9udWxsIHwgY3V0IC1kJyAnIC1mMmAgaW4KLSsJ ICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJICBQQTgqKSBlY2hv IGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKLSsJICAqKSAgICBlY2hvIGhwcGEtdW5rbm93 bi1saW51eC1nbnUgOzsKLSsJZXNhYwotKwlleGl0IDs7Ci0rICAgIHBhcmlzYzY0OkxpbnV4Oio6 KiB8IGhwcGE2NDpMaW51eDoqOiopCi0rCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKLSsJZXhpdCA7OwotKyAgICBzaDY0KjpMaW51eDoq OiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhp dCA7OwotKyAgICBzaCo6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0Okxp bnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgdmF4OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1s aW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB4ODZfNjQ6TGludXg6KjoqKQotKwllY2hvIHg4Nl82 NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHh0ZW5zYSo6TGludXg6KjoqKQot KyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsK LSsgICAgaSo4NjpMaW51eDoqOiopCi0rCSMgVGhlIEJGRCBsaW5rZXIga25vd3Mgd2hhdCB0aGUg ZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMsIHNvCi0rCSMgZmlyc3Qgc2VlIGlmIGl0IHdp bGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXZlbnQKLSsJIyBwcm9i bGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNhbGxlZCBgbGQnIGluIHRo ZSBwYXRoLgotKwkjIFNldCBMQ19BTEw9QyB0byBlbnN1cmUgbGQgb3V0cHV0cyBtZXNzYWdlcyBp biBFbmdsaXNoLgotKwlsZF9zdXBwb3J0ZWRfdGFyZ2V0cz1gY2QgLzsgTENfQUxMPUMgbGQgLS1o ZWxwIDI+JjEgXAotKwkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFyZ2V0czovIWQKLSsJCQkJ ICAgIHMvWyAJXVsgCV0qLyAvZwotKwkJCQkgICAgcy8uKnN1cHBvcnRlZCB0YXJnZXRzOiAqLy8K LSsJCQkJICAgIHMvIC4qLy8KLSsJCQkJICAgIHAnYAotKyAgICAgICAgY2FzZSAiJGxkX3N1cHBv cnRlZF90YXJnZXRzIiBpbgotKwkgIGVsZjMyLWkzODYpCi0rCQlURU5UQVRJVkU9IiR7VU5BTUVf TUFDSElORX0tcGMtbGludXgtZ251IgotKwkJOzsKLSsJICBhLm91dC1pMzg2LWxpbnV4KQotKwkJ ZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVhb3V0IgotKwkJZXhpdCA7OwotKwkg ICIiKQotKwkJIyBFaXRoZXIgYSBwcmUtQkZEIGEub3V0IGxpbmtlciAobGludXgtZ251b2xkbGQp IG9yCi0rCQkjIG9uZSB0aGF0IGRvZXMgbm90IGdpdmUgdXMgdXNlZnVsIC0taGVscC4KLSsJCWVj aG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251b2xkbGQiCi0rCQlleGl0IDs7Ci0rCWVz YWMKLSsJIyBEZXRlcm1pbmUgd2hldGhlciB0aGUgZGVmYXVsdCBjb21waWxlciBpcyBhLm91dCBv ciBlbGYKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4k ZHVtbXkuYwotKwkjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSsJI2lmZGVmIF9fRUxGX18KLSsJIyBp ZmRlZiBfX0dMSUJDX18KLSsJIyAgaWYgX19HTElCQ19fID49IDIKLSsJTElCQz1nbnUKLSsJIyAg ZWxzZQotKwlMSUJDPWdudWxpYmMxCi0rCSMgIGVuZGlmCi0rCSMgZWxzZQotKwlMSUJDPWdudWxp YmMxCi0rCSMgZW5kaWYKLSsJI2Vsc2UKLSsJI2lmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikg fHwgZGVmaW5lZChfX1BHSSkgfHwgZGVmaW5lZChfX1NVTlBST19DKSB8fCBkZWZpbmVkKF9fU1VO UFJPX0NDKQotKwlMSUJDPWdudQotKwkjZWxzZQotKwlMSUJDPWdudWFvdXQKLSsJI2VuZGlmCi0r CSNlbmRpZgotKwkjaWZkZWYgX19kaWV0bGliY19fCi0rCUxJQkM9ZGlldGxpYmMKLSsJI2VuZGlm Ci0rRU9GCi0rCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwg c2VkIC1uICcKLSsJICAgIC9eTElCQy97Ci0rCQlzOiA6OmcKLSsJCXAKLSsJICAgIH0nYCIKLSsJ dGVzdCB4IiR7TElCQ30iICE9IHggJiYgewotKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1s aW51eC0ke0xJQkN9IgotKwkJZXhpdAotKwl9Ci0rCXRlc3QgeCIke1RFTlRBVElWRX0iICE9IHgg JiYgeyBlY2hvICIke1RFTlRBVElWRX0iOyBleGl0OyB9Ci0rCTs7Ci0rICAgIGkqODY6RFlOSVgv cHR4OjQqOiopCi0rCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0aCBEWU5J WC9wdHggaW4gdGhlcmUuCi0rCSMgZWFybGllciB2ZXJzaW9ucyBhcmUgbWVzc2VkIHVwIGFuZCBw dXQgdGhlIG5vZGVuYW1lIGluIGJvdGgKLSsJIyBzeXNuYW1lIGFuZCBub2RlbmFtZS4KLSsJZWNo byBpMzg2LXNlcXVlbnQtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6 Mi4qKQotKyAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9vdCBvZiBTVlI0LCBidXQgaXQg aGFzIGl0cyBvd24gdmVyc2lvbgotKyAgICAgICAgIyBudW1iZXIgc2VyaWVzIHN0YXJ0aW5nIHdp dGggMi4uLgotKyAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lz dGVtcyB3b24ndCBtYXRjaCB0aGlzLAotKwkjIEkganVzdCBoYXZlIHRvIGhvcGUuICAtLSBybXMu Ci0rICAgICAgICAjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBzeXN2NCogbWF0Y2hlcyBpdC4K LSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7VU5BTUVfVkVSU0lPTn0KLSsJ ZXhpdCA7OwotKyAgICBpKjg2Ok9TLzI6KjoqKQotKwkjIElmIHdlIHdlcmUgYWJsZSB0byBmaW5k IGB1bmFtZScsIHRoZW4gRU1YIFVuaXggY29tcGF0aWJpbGl0eQotKwkjIGlzIHByb2JhYmx5IGlu c3RhbGxlZC4KLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9zMi1lbXgKLSsJZXhpdCA7Owot KyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1zdG9wCi0rCWV4aXQgOzsKLSsgICAgaSo4NjphdGhlb3M6KjoqKQotKwllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1hdGhlb3MKLSsJZXhpdCA7OwotKyAgICBpKjg2OnN5bGxhYmxlOio6 KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCi0rCWV4aXQgOzsKLSsgICAg aSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhPUzo0 LjAqOiopCi0rCWVjaG8gaTM4Ni11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhp dCA7OwotKyAgICBpKjg2OipET1M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbXNk b3NkamdwcAotKwlleGl0IDs7Ci0rICAgIGkqODY6Kjo0Lio6KiB8IGkqODY6U1lTVEVNX1Y6NC4q OiopCi0rCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdzL1wvTVAkLy8n YAotKwlpZiBncmVwIE5vdmVsbCAvdXNyL2luY2x1ZGUvbGluay5oID4vZGV2L251bGwgMj4vZGV2 L251bGw7IHRoZW4KLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bml2ZWwtc3lzdiR7VU5BTUVf UkVMfQotKwllbHNlCi0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdiR7VU5BTUVfUkVM fQotKwlmaQotKwlleGl0IDs7Ci0rICAgIGkqODY6Kjo1Ols2NzhdKikKLSsgICAgCSMgVW5peFdh cmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgotKwljYXNlIGAvYmluL3VuYW1lIC1Y IHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgotKwkgICAgKjQ4NiopCSAgICAgVU5BTUVfTUFDSElORT1p NDg2IDs7Ci0rCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNISU5FPWk1ODYgOzsKLSsJICAg ICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7Ci0rCWVzYWMKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0ke1VOQU1FX1NZU1RF TX0ke1VOQU1FX1ZFUlNJT059Ci0rCWV4aXQgOzsKLSsgICAgaSo4NjoqOjMuMjoqKQotKwlpZiB0 ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCi0rCQlVTkFNRV9SRUw9YHNlZCAtbiAn cy8uKlZlcnNpb24gLy9wJyA8L3Vzci9vcHRpb25zL2NiLm5hbWVgCi0rCQllY2hvICR7VU5BTUVf TUFDSElORX0tcGMtaXNjJFVOQU1FX1JFTAotKwllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251 bGwgPi9kZXYvbnVsbCA7IHRoZW4KLSsJCVVOQU1FX1JFTD1gKC9iaW4vdW5hbWUgLVh8Z3JlcCBS ZWxlYXNlfHNlZCAtZSAncy8uKj0gLy8nKWAKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgaTgwNDg2 ID4vZGV2L251bGwpICYmIFVOQU1FX01BQ0hJTkU9aTQ4NgotKwkJKC9iaW4vdW5hbWUgLVh8Z3Jl cCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKLSsJCQkmJiBVTkFNRV9NQUNISU5F PWk1ODYKLSsJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50ICpJSScgPi9kZXYv bnVsbCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgotKwkJKC9iaW4vdW5hbWUgLVh8Z3Jl cCAnXk1hY2hpbmUuKlBlbnRpdW0gUHJvJyA+L2Rldi9udWxsKSBcCi0rCQkJJiYgVU5BTUVfTUFD SElORT1pNjg2Ci0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAotKwll bHNlCi0rCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjMyCi0rCWZpCi0rCWV4aXQgOzsK LSsgICAgcGM6KjoqOiopCi0rCSMgTGVmdCBoZXJlIGZvciBjb21wYXRpYmlsaXR5OgotKyAgICAg ICAgIyB1bmFtZSAtbSBwcmludHMgZm9yIERKR1BQIGFsd2F5cyAncGMnLCBidXQgaXQgcHJpbnRz IG5vdGhpbmcgYWJvdXQKLSsgICAgICAgICMgdGhlIHByb2Nlc3Nvciwgc28gd2UgcGxheSBzYWZl IGJ5IGFzc3VtaW5nIGkzODYuCi0rCWVjaG8gaTM4Ni1wYy1tc2Rvc2RqZ3BwCi0rICAgICAgICBl eGl0IDs7Ci0rICAgIEludGVsOk1hY2g6Myo6KikKLSsJZWNobyBpMzg2LXBjLW1hY2gzCi0rCWV4 aXQgOzsKLSsgICAgcGFyYWdvbjoqOio6KikKLSsJZWNobyBpODYwLWludGVsLW9zZjEKLSsJZXhp dCA7OwotKyAgICBpODYwOio6NC4qOiopICMgaTg2MC1TVlI0Ci0rCWlmIGdyZXAgU3RhcmRlbnQg L3Vzci9pbmNsdWRlL3N5cy91YWRtaW4uaCA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0rCSAgZWNo byBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4 NjAtU1ZSNAotKwllbHNlICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRo ZXkgYXJlIGRpc2NvdmVyZWQuCi0rCSAgZWNobyBpODYwLXVua25vd24tc3lzdiR7VU5BTUVfUkVM RUFTRX0gICMgVW5rbm93biBpODYwLVNWUjQKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBtaW5pKjpD VElYOlNZUyo1OiopCi0rCSMgIm1pbmlmcmFtZSIKLSsJZWNobyBtNjgwMTAtY29udmVyZ2VudC1z eXN2Ci0rCWV4aXQgOzsKLSsgICAgbWM2OGs6VU5JWDpTWVNURU01OjMuNTFtKQotKwllY2hvIG02 OGstY29udmVyZ2VudC1zeXN2Ci0rCWV4aXQgOzsKLSsgICAgTTY4MD8wOkQtTklYOjUuMzoqKQot KwllY2hvIG02OGstZGlhYi1kbml4Ci0rCWV4aXQgOzsKLSsgICAgTTY4KjoqOlIzVls1Njc4XSo6 KikKLSsJdGVzdCAtciAvc3lzVjY4ICYmIHsgZWNobyAnbTY4ay1tb3Rvcm9sYS1zeXN2JzsgZXhp dDsgfSA7OwotKyAgICAzWzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAz WzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4w IHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDozLjAgfCBTRFMyOio6NC4wOjMuMCB8IFNI RzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkKLSsJT1NfUkVMPScnCi0rCXRlc3QgLXIg L2V0Yy8ucmVsaWQgXAotKwkmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05 XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9u dWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsJICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQu MyR7T1NfUkVMfTsgZXhpdDsgfQotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9n cmVwIGVudGl1bSA+L2Rldi9udWxsIFwKLSsJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7 T1NfUkVMfTsgZXhpdDsgfSA7OwotKyAgICAzWzM0XT8/Oio6NC4wOiogfCAzWzM0XT8/LCo6Kjo0 LjA6KikKLSsgICAgICAgIC9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2 L251bGwgXAotKyAgICAgICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsK LSsgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzozLjAqOiopCi0rCWVjaG8gbTY4 ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBtYzY4MDMw OlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0rCWVjaG8gbTY4ay1hdGFyaS1zeXN2NAotKwlleGl0IDs7 Ci0rICAgIFRTVU5BTUk6THlueE9TOjIuKjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tbHlueG9z JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHJzNjAwMDpMeW54T1M6Mi4qOiopCi0r CWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93 ZXJQQzpMeW54T1M6NC4wKjoqKQotKwllY2hvIHBvd2VycGMtdW5rbm93bi1seW54b3Mke1VOQU1F X1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU01bQkVdUzpVTklYX1NWOio6KikKLSsJZWNobyBt aXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFJNKjpSZWxpYW50 VU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAotKwlleGl0IDs7Ci0rICAgIFJNKjpT SU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAotKwlleGl0IDs7Ci0rICAgICo6U0lO SVgtKjoqOiopCi0rCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVuCi0r CQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotKwkJZWNobyAke1VOQU1F X01BQ0hJTkV9LXNuaS1zeXN2NAotKwllbHNlCi0rCQllY2hvIG5zMzJrLXNuaS1zeXN2Ci0rCWZp Ci0rCWV4aXQgOzsKLSsgICAgUEVOVElVTToqOjQuMCo6KikgIyBVbmlzeXMgYENsZWFyUGF0aCBI TVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKLSsgICAgICAgICAgICAgICAgICAgICAgIyBzYXlz IDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5DZW5zdXMuR09WPgotKyAgICAgICAgZWNobyBpNTg2 LXVuaXN5cy1zeXN2NAotKyAgICAgICAgZXhpdCA7OwotKyAgICAqOlVOSVhfU3lzdGVtX1Y6NCo6 RlRYKikKLSsJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNAb3Blbm1hcmtldC5jb20+LgotKwkj IEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBzdHJhdHVzIGFyY2hpdGVjdHVyZXM/ IC1kam0KLSsJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKLSsJZXhpdCA7OwotKyAgICAqOio6 KjpGVFgqKQotKwkjIEZyb20gc2VhbmZAc3dkYy5zdHJhdHVzLmNvbS4KLSsJZWNobyBpODYwLXN0 cmF0dXMtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBpKjg2OlZPUzoqOiopCi0rCSMgRnJvbSBQYXVs LkdyZWVuQHN0cmF0dXMuY29tLgotKwllY2hvICR7VU5BTUVfTUFDSElORX0tc3RyYXR1cy12b3MK LSsJZXhpdCA7OwotKyAgICAqOlZPUzoqOiopCi0rCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMu Y29tLgotKwllY2hvIGhwcGExLjEtc3RyYXR1cy12b3MKLSsJZXhpdCA7OwotKyAgICBtYzY4KjpB L1VYOio6KikKLSsJZWNobyBtNjhrLWFwcGxlLWF1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7 OwotKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCi0rCWVjaG8gbWlwcy1zb255LW5ld3NvczYKLSsJ ZXhpdCA7OwotKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lTVjoq OiogfCBSKjAwMDpVTklYX1NWOio6KikKLSsJaWYgWyAtZCAvdXNyL25lYyBdOyB0aGVuCi0rCSAg ICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwllbHNlCi0rCSAgICAg ICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSsJZmkKLSsgICAgICAg IGV4aXQgOzsKLSsgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIGhhcmR3YXJl IG1hZGUgYnkgQmUsIFBQQyBvbmx5LgotKwllY2hvIHBvd2VycGMtYmUtYmVvcwotKwlleGl0IDs7 Ci0rICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBNYWMgb3IgTWFjIGNsb25l LCBQUEMgb25seS4KLSsJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MKLSsJZXhpdCA7OwotKyAgICBC ZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRpYmxlLgotKwll Y2hvIGk1ODYtcGMtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJlUEM6SGFpa3U6KjoqKQkjIEhhaWt1 IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJZWNobyBpNTg2LXBjLWhhaWt1Ci0r CWV4aXQgOzsKLSsgICAgU1gtNDpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g0LW5lYy1zdXBlcnV4 JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTU6U1VQRVItVVg6KjoqKQotKwll Y2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBTWC02 OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDYtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0r CWV4aXQgOzsKLSsgICAgU1gtNzpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g3LW5lYy1zdXBlcnV4 JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTg6U1VQRVItVVg6KjoqKQotKwll Y2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBTWC04 UjpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g4ci1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0K LSsJZXhpdCA7OwotKyAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQotKwllY2hvIHBvd2VycGMtYXBw bGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpSaGFwc29keToq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICAqOkRhcndpbjoqOiopCi0rCVVOQU1FX1BST0NFU1NPUj1gdW5h bWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0rCWNhc2UgJFVOQU1FX1BST0NFU1NP UiBpbgotKwkgICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBvd2VycGMgOzsKLSsJZXNhYwot KwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4ke1VOQU1FX1JFTEVBU0V9Ci0r CWV4aXQgOzsKLSsgICAgKjpwcm9jbnRvKjoqOiogfCAqOlFOWDpbMDEyMzQ1Njc4OV0qOiopCi0r CVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCi0rCWlmIHRlc3QgIiRVTkFNRV9QUk9DRVNTT1Ii ID0gIng4NiI7IHRoZW4KLSsJCVVOQU1FX1BST0NFU1NPUj1pMzg2Ci0rCQlVTkFNRV9NQUNISU5F PXBjCi0rCWZpCi0rCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LSR7VU5BTUVfTUFDSElORX0tbnRv LXFueCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOlFOWDoqOjQqKQotKwllY2hv IGkzODYtcGMtcW54Ci0rCWV4aXQgOzsKLSsgICAgTlNFLT86Tk9OU1RPUF9LRVJORUw6KjoqKQot KwllY2hvIG5zZS10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIE5T Ui0/Ok5PTlNUT1BfS0VSTkVMOio6KikKLSsJZWNobyBuc3ItdGFuZGVtLW5zayR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOk5vblN0b3AtVVg6KjoqKQotKwllY2hvIG1pcHMtY29t cGFxLW5vbnN0b3B1eAotKwlleGl0IDs7Ci0rICAgIEJTMjAwMDpQT1NJWCo6KjoqKQotKwllY2hv IGJzMjAwMC1zaWVtZW5zLXN5c3YKLSsJZXhpdCA7OwotKyAgICBEUy8qOlVOSVhfU3lzdGVtX1Y6 KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tJHtVTkFNRV9TWVNURU19LSR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOlBsYW45Oio6KikKLSsJIyAidW5hbWUgLW0iIGlzIG5v dCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4gMzg2Ci0rCSMgaXMgY29udmVy dGVkIHRvIGkzODYgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgeDg2Ci0rCSMgb3BlcmF0aW5n IHN5c3RlbXMuCi0rCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYiOyB0aGVuCi0rCSAgICBVTkFN RV9NQUNISU5FPWkzODYKLSsJZWxzZQotKwkgICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCi0r CWZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXBsYW45Ci0rCWV4aXQgOzsKLSsg ICAgKjpUT1BTLTEwOio6KikKLSsJZWNobyBwZHAxMC11bmtub3duLXRvcHMxMAotKwlleGl0IDs7 Ci0rICAgICo6VEVORVg6KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24tdGVuZXgKLSsJZXhpdCA7 OwotKyAgICBLUzEwOlRPUFMtMjA6KjoqIHwgS0wxMDpUT1BTLTIwOio6KiB8IFRZUEU0OlRPUFMt MjA6KjoqKQotKwllY2hvIHBkcDEwLWRlYy10b3BzMjAKLSsJZXhpdCA7OwotKyAgICBYS0wtMTpU T1BTLTIwOio6KiB8IFRZUEU1OlRPUFMtMjA6KjoqKQotKwllY2hvIHBkcDEwLXhrbC10b3BzMjAK LSsJZXhpdCA7OwotKyAgICAqOlRPUFMtMjA6KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24tdG9w czIwCi0rCWV4aXQgOzsKLSsgICAgKjpJVFM6KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24taXRz Ci0rCWV4aXQgOzsKLSsgICAgU0VJOio6KjpTRUlVWCkKLSsgICAgICAgIGVjaG8gbWlwcy1zZWkt c2VpdXgke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpEcmFnb25GbHk6KjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1kcmFnb25mbHlgZWNobyAke1VOQU1FX1JF TEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgCi0rCWV4aXQgOzsKLSsgICAgKjoqVk1TOio6KikK LSsgICAgCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCi0rCWNhc2UgIiR7 VU5BTUVfTUFDSElORX0iIGluCi0rCSAgICBBKikgZWNobyBhbHBoYS1kZWMtdm1zIDsgZXhpdCA7 OwotKwkgICAgSSopIGVjaG8gaWE2NC1kZWMtdm1zIDsgZXhpdCA7OwotKwkgICAgViopIGVjaG8g dmF4LWRlYy12bXMgOyBleGl0IDs7Ci0rCWVzYWMgOzsKLSsgICAgKjpYRU5JWDoqOlN5c1YpCi0r CWVjaG8gaTM4Ni1wYy14ZW5peAotKwlleGl0IDs7Ci0rICAgIGkqODY6c2t5b3M6KjoqKQotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2t5b3NgZWNobyAke1VOQU1FX1JFTEVBU0V9YCB8IHNl ZCAtZSAncy8gLiokLy8nCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpyZG9zOio6KikKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXBjLXJkb3MKLSsJZXhpdCA7OwotK2VzYWMKLSsKLSsjZWNobyAnKE5v IHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5vdCByZWNvZ25pemVkLiknIDE+JjIKLSsj ZWNobyAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfTok e1VOQU1FX1ZFUlNJT059IiAxPiYyCi0rCi0rZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotK2NhdCA+ JGR1bW15LmMgPDxFT0YKLSsjaWZkZWYgX1NFUVVFTlRfCi0rIyBpbmNsdWRlIDxzeXMvdHlwZXMu aD4KLSsjIGluY2x1ZGUgPHN5cy91dHNuYW1lLmg+Ci0rI2VuZGlmCi0rbWFpbiAoKQotK3sKLSsj aWYgZGVmaW5lZCAoc29ueSkKLSsjaWYgZGVmaW5lZCAoTUlQU0VCKQotKyAgLyogQkZEIHdhbnRz ICJic2QiIGluc3RlYWQgb2YgIm5ld3NvcyIuICBQZXJoYXBzIEJGRCBzaG91bGQgYmUgY2hhbmdl ZCwKLSsgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCi0rICBwcmludGYgKCJtaXBzLXNvbnktYnNk XG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0rICBwcmlu dGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0rI2lmZGVmIE5FV1NPUzQKLSsgICAgICAgICAg IjQiCi0rI2Vsc2UKLSsJICAiIgotKyNlbmRpZgotKyAgICAgICAgICk7IGV4aXQgKDApOwotKyNl bmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfX2FybSkgJiYgZGVmaW5lZCAoX19hY29y bikgJiYgZGVmaW5lZCAoX191bml4KQotKyAgcHJpbnRmICgiYXJtLWFjb3JuLXJpc2NpeFxuIik7 IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChocDMwMCkgJiYgIWRlZmluZWQg KGhwdXgpCi0rICBwcmludGYgKCJtNjhrLWhwLWJzZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgot KwotKyNpZiBkZWZpbmVkIChOZVhUKQotKyNpZiAhZGVmaW5lZCAoX19BUkNISVRFQ1RVUkVfXykK LSsjZGVmaW5lIF9fQVJDSElURUNUVVJFX18gIm02OGsiCi0rI2VuZGlmCi0rICBpbnQgdmVyc2lv bjsKLSsgIHZlcnNpb249YChob3N0aW5mbyB8IHNlZCAtbiAncy8uKk5lWFQgTWFjaCBcKFswLTld KlwpLiovXDEvcCcpIDI+L2Rldi9udWxsYDsKLSsgIGlmICh2ZXJzaW9uIDwgNCkKLSsgICAgcHJp bnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsK LSsgIGVsc2UKLSsgICAgcHJpbnRmICgiJXMtbmV4dC1vcGVuc3RlcCVkXG4iLCBfX0FSQ0hJVEVD VFVSRV9fLCB2ZXJzaW9uKTsKLSsgIGV4aXQgKDApOwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVk IChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQotKyNpZiBkZWZpbmVkIChVTUFYVikKLSsgIHBy aW50ZiAoIm5zMzJrLWVuY29yZS1zeXN2XG4iKTsgZXhpdCAoMCk7Ci0rI2Vsc2UKLSsjaWYgZGVm aW5lZCAoQ01VKQotKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLW1hY2hcbiIpOyBleGl0ICgwKTsK LSsjZWxzZQotKyAgcHJpbnRmICgibnMzMmstZW5jb3JlLWJzZFxuIik7IGV4aXQgKDApOwotKyNl bmRpZgotKyNlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfXzM4NkJTRF9fKQotKyAg cHJpbnRmICgiaTM4Ni1wYy1ic2RcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsjaWYgZGVm aW5lZCAoc2VxdWVudCkKLSsjaWYgZGVmaW5lZCAoaTM4NikKLSsgIHByaW50ZiAoImkzODYtc2Vx dWVudC1keW5peFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKyNpZiBkZWZpbmVkIChuczMyMDAw KQotKyAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOwotKyNlbmRp ZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfU0VRVUVOVF8pCi0rICAgIHN0cnVjdCB1dHNu YW1lIHVuOwotKwotKyAgICB1bmFtZSgmdW4pOwotKwotKyAgICBpZiAoc3RybmNtcCh1bi52ZXJz aW9uLCAiVjIiLCAyKSA9PSAwKSB7Ci0rCXByaW50ZiAoImkzODYtc2VxdWVudC1wdHgyXG4iKTsg ZXhpdCAoMCk7Ci0rICAgIH0KLSsgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYxIiwgMikg PT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KLSsJcHJpbnRmICgiaTM4Ni1zZXF1ZW50 LXB0eDFcbiIpOyBleGl0ICgwKTsKLSsgICAgfQotKyAgICBwcmludGYgKCJpMzg2LXNlcXVlbnQt cHR4XG4iKTsgZXhpdCAoMCk7Ci0rCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQgKHZheCkKLSsj IGlmICFkZWZpbmVkICh1bHRyaXgpCi0rIyAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0rIyAgaWYg ZGVmaW5lZCAoQlNEKQotKyMgICBpZiBCU0QgPT0gNDMKLSsgICAgICBwcmludGYgKCJ2YXgtZGVj LWJzZDQuM1xuIik7IGV4aXQgKDApOwotKyMgICBlbHNlCi0rIyAgICBpZiBCU0QgPT0gMTk5MDA2 Ci0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4iKTsgZXhpdCAoMCk7Ci0rIyAg ICBlbHNlCi0rICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIpOyBleGl0ICgwKTsKLSsjICAg IGVuZGlmCi0rIyAgIGVuZGlmCi0rIyAgZWxzZQotKyAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxu Iik7IGV4aXQgKDApOwotKyMgIGVuZGlmCi0rIyBlbHNlCi0rICAgIHByaW50ZiAoInZheC1kZWMt dWx0cml4XG4iKTsgZXhpdCAoMCk7Ci0rIyBlbmRpZgotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVk IChhbGxpYW50KSAmJiBkZWZpbmVkIChpODYwKQotKyAgcHJpbnRmICgiaTg2MC1hbGxpYW50LWJz ZFxuIik7IGV4aXQgKDApOwotKyNlbmRpZgotKwotKyAgZXhpdCAoMSk7Ci0rfQotK0VPRgotKwot KyRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsICYmIFNZU1RFTV9O QU1FPWAkZHVtbXlgICYmCi0rCXsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQotKwotKyMg QXBvbGxvcyBwdXQgdGhlIHN5c3RlbSB0eXBlIGluIHRoZSBlbnZpcm9ubWVudC4KLSsKLSt0ZXN0 IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0tYXBvbGxvLSR7U1lTVFlQRX07IGV4aXQ7 IH0KLSsKLSsjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRz eXNpbmZvKDEpCi0rCi0raWYgWyAteCAvdXNyL2NvbnZleC9nZXRzeXNpbmZvIF0KLSt0aGVuCi0r ICAgIGNhc2UgYGdldHN5c2luZm8gLWYgY3B1X3R5cGVgIGluCi0rICAgIGMxKikKLSsJZWNobyBj MS1jb252ZXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgYzIqKQotKwlpZiBnZXRzeXNpbmZvIC1mIHNj YWxhcl9hY2MKLSsJdGhlbiBlY2hvIGMzMi1jb252ZXgtYnNkCi0rCWVsc2UgZWNobyBjMi1jb252 ZXgtYnNkCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgYzM0KikKLSsJZWNobyBjMzQtY29udmV4LWJz ZAotKwlleGl0IDs7Ci0rICAgIGMzOCopCi0rCWVjaG8gYzM4LWNvbnZleC1ic2QKLSsJZXhpdCA7 OwotKyAgICBjNCopCi0rCWVjaG8gYzQtY29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGVzYWMK LStmaQotKwotK2NhdCA+JjIgPDxFT0YKLSskMDogdW5hYmxlIHRvIGd1ZXNzIHN5c3RlbSB0eXBl Ci0rCi0rVGhpcyBzY3JpcHQsIGxhc3QgbW9kaWZpZWQgJHRpbWVzdGFtcCwgaGFzIGZhaWxlZCB0 byByZWNvZ25pemUKLSt0aGUgb3BlcmF0aW5nIHN5c3RlbSB5b3UgYXJlIHVzaW5nLiBJdCBpcyBh ZHZpc2VkIHRoYXQgeW91Ci0rZG93bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9m IHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCi0rCi0rICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5v cmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhF QUQKLSthbmQKLSsgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmln LmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQKLSsKLStJZiB0aGUgdmVyc2lv biB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1cCB0byBkYXRlLCBwbGVhc2UKLStzZW5kIHRoZSBm b2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQotK3Bl cnRpbmVudCB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4gaW4gb3JkZXIgdG8gcHJvdmlkZSB0 aGUgbmVlZGVkCi0raW5mb3JtYXRpb24gdG8gaGFuZGxlIHlvdXIgc3lzdGVtLgotKwotK2NvbmZp Zy5ndWVzcyB0aW1lc3RhbXAgPSAkdGltZXN0YW1wCi0rCi0rdW5hbWUgLW0gPSBgKHVuYW1lIC1t KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAy Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9k ZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCi0rdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYv bnVsbCB8fCBlY2hvIHVua25vd25gCi0rCi0rL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmlu L3VuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFt ZSAtWCkgMj4vZGV2L251bGxgCi0rCi0raG9zdGluZm8gICAgICAgICAgICAgICA9IGAoaG9zdGlu Zm8pIDI+L2Rldi9udWxsYAotKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVy c2UpIDI+L2Rldi9udWxsYAotKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2Fy Y2ggLWspIDI+L2Rldi9udWxsYAotKy9iaW4vYXJjaCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJj aCkgMj4vZGV2L251bGxgCi0rL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3Ns ZXZlbCkgMj4vZGV2L251bGxgCi0rL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252 ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGxgCi0rCi0rVU5BTUVfTUFDSElORSA9ICR7VU5BTUVf TUFDSElORX0KLStVTkFNRV9SRUxFQVNFID0gJHtVTkFNRV9SRUxFQVNFfQotK1VOQU1FX1NZU1RF TSAgPSAke1VOQU1FX1NZU1RFTX0KLStVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQot K0VPRgotKwotK2V4aXQgMQotKwotKyMgTG9jYWwgdmFyaWFibGVzOgotKyMgZXZhbDogKGFkZC1o b29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDog InRpbWVzdGFtcD0nIgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgotKyMg dGltZS1zdGFtcC1lbmQ6ICInIgotKyMgRW5kOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9jb25maWcuc3ViIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1Ygot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuc3ViCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcu c3ViCTIwMDktMDUtMjMgMTA6MDI6MDEuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2Nzcg QEAKLSsjISAvYmluL3NoCi0rIyBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gc3Vicm91dGluZSBz Y3JpcHQuCi0rIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwKLSsjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOAotKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsKLSt0aW1lc3RhbXA9JzIwMDgtMDktMDgnCi0rCi0rIyBUaGlzIGZpbGUgaXMgKGluIHByaW5j aXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0rIyBUaGUgcHJlc2VuY2Ugb2YgYSBt YWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCi0rIyBj YW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdh cmUgY2FuLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsj IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCi0rIyAwMjExMC0xMzAxLCBV U0EuCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UsIGlmIHlvdQotKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBh IHByb2dyYW0gdGhhdCBjb250YWlucyBhCi0rIyBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0 ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBpdCB1bmRlcgotKyMgdGhlIHNhbWUgZGlz dHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFt LgotKwotKwotKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9y Zz4uICBTdWJtaXQgYSBjb250ZXh0Ci0rIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBD aGFuZ2VMb2cgZW50cnkuCi0rIwotKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlk YXRlIGFuZCBjYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCi0rIyBTdXBwbHkgdGhl IHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCi0rIyBJZiBpdCBp cyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3 aXRoIGNvZGUgMS4KLSsjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcg dHlwZSBvbiBzdGRvdXQgYW5kIHN1Y2NlZWQuCi0rCi0rIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQg dG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKLSsjIGFuZCByZWNvZ25pemUgYWxs IHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcwotKyMgdGhhdCBhcmUgbWVh bmluZ2Z1bCB3aXRoICphbnkqIEdOVSBzb2Z0d2FyZS4KLSsjIEVhY2ggcGFja2FnZSBpcyByZXNw b25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCi0rIyBpdCBk b2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gK LSsjIGEgZmFpbHVyZSB0byBzdXBwb3J0IGEgdmFsaWQgY29uZmlndXJhdGlvbiBmcm9tIGEgbWVh bmluZ2xlc3MKLSsjIGNvbmZpZ3VyYXRpb24uCi0rCi0rIyBUaGUgZ29hbCBvZiB0aGlzIGZpbGUg aXMgdG8gbWFwIGFsbCB0aGUgdmFyaW91cyB2YXJpYXRpb25zIG9mIGEgZ2l2ZW4KLSsjIG1hY2hp bmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06 Ci0rIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQotKyMgb3IgaW4gc29t ZSBjYXNlcywgdGhlIG5ld2VyIGZvdXItcGFydCBmb3JtOgotKyMJQ1BVX1RZUEUtTUFOVUZBQ1RV UkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCi0rIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBv dGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCi0rCi0rbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAn cywuKi8sLCdgCi0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZ UwotKyAgICAgICAkMCBbT1BUSU9OXSBBTElBUwotKwotK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3Vy YXRpb24gbmFtZS4KLSsKLStPcGVyYXRpb24gbW9kZXM6Ci0rICAtaCwgLS1oZWxwICAgICAgICAg cHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBk YXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKLSsgIC12LCAtLXZlcnNpb24gICAg ICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0Ci0rCi0rUmVwb3J0IGJ1Z3MgYW5kIHBh dGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKLSsKLSt2ZXJzaW9uPSJcCi0rR05V IGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCi0rCi0rQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAx OTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKzIwMDIsIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rCi0rVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29w eWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSt3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCi0rCi0r aGVscD0iCi0rVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotKwotKyMg UGFyc2UgY29tbWFuZCBsaW5lCi0rd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0rICBjYXNlICQx IGluCi0rICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCi0rICAgICAgIGVjaG8gIiR0 aW1lc3RhbXAiIDsgZXhpdCA7OwotKyAgICAtLXZlcnNpb24gfCAtdiApCi0rICAgICAgIGVjaG8g IiR2ZXJzaW9uIiA7IGV4aXQgOzsKLSsgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICAg ZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nl c3NpbmcKLSsgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0rICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBp bnB1dC4KLSsgICAgICAgYnJlYWsgOzsKLSsgICAgLSogKQotKyAgICAgICBlY2hvICIkbWU6IGlu dmFsaWQgb3B0aW9uICQxJGhlbHAiCi0rICAgICAgIGV4aXQgMSA7OwotKwotKyAgICAqbG9jYWwq KQotKyAgICAgICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4K LSsgICAgICAgZWNobyAkMQotKyAgICAgICBleGl0IDs7Ci0rCi0rICAgICogKQotKyAgICAgICBi cmVhayA7OwotKyAgZXNhYwotK2RvbmUKLSsKLStjYXNlICQjIGluCi0rIDApIGVjaG8gIiRtZTog bWlzc2luZyBhcmd1bWVudCRoZWxwIiA+JjIKLSsgICAgZXhpdCAxOzsKLSsgMSkgOzsKLSsgKikg ZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCi0rICAgIGV4aXQgMTs7Ci0r ZXNhYwotKwotKyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkg YW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KLSsjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUg YWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgotK21heWJlX29zPWBlY2hvICQx IHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAotK2Nhc2UgJG1heWJlX29z IGluCi0rICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5l d2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAotKyAgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1n bnUqIHwga2ZyZWVic2QqLWdudSogfCBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgXAot KyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQotKyAgICBvcz0tJG1heWJl X29zCi0rICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0q LVteLV0qXCkkL1wxLydgCi0rICAgIDs7Ci0rICAqKQotKyAgICBiYXNpY19tYWNoaW5lPWBlY2hv ICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCi0rICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEg XQotKyAgICB0aGVuIG9zPWBlY2hvICQxIHwgc2VkICdzLy4qLS8tLydgCi0rICAgIGVsc2Ugb3M9 OyBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsjIyMgTGV0J3MgcmVjb2duaXplIGNvbW1vbiBtYWNo aW5lcyBhcyBub3QgYmVpbmcgb3BlcmF0aW5nIHN5c3RlbXMgc28KLSsjIyMgdGhhdCB0aGluZ3Mg bGlrZSBjb25maWcuc3ViIGRlY3N0YXRpb24tMzEwMCB3b3JrLiAgV2UgYWxzbwotKyMjIyByZWNv Z25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywg c28gd2UKLSsjIyMgY2FuIHByb3ZpZGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyBiZWxvdy4K LStjYXNlICRvcyBpbgotKwktc3VuKm9zKikKLSsJCSMgUHJldmVudCBmb2xsb3dpbmcgY2xhdXNl IGZyb20gaGFuZGxpbmcgdGhpcyBpbnZhbGlkIGlucHV0LgotKwkJOzsKLSsJLWRlYyogfCAtbWlw cyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwK LSsJLWF0dCogfCAtNzMwMCogfCAtMzMwMCogfCAtZGVsdGEqIHwgLW1vdG9yb2xhKiB8IC1zdW5b MjM0XSogfCBcCi0rCS11bmljb20qIHwgLWlibSogfCAtbmV4dCB8IC1ocCB8IC1pc2kqIHwgLWFw b2xsbyB8IC1hbHRvcyogfCBcCi0rCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIq IHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCi0rCS1jWzEyM10qIHwgLWNvbnZleCog fCAtc3VuIHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0rCS1o YXJyaXMgfCAtZG9scGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5zIHwgLW1h c3Njb21wIHwgXAotKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5KQotKwkJb3M9Ci0r CQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKwktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMg fCAtd2luYm9uZCkKLSsJCW9zPQotKwkJYmFzaWNfbWFjaGluZT0kMQotKwkJOzsKLSsJLXNjb3V0 KQotKwkJOzsKLSsJLXdycykKLSsJCW9zPS12eHdvcmtzCi0rCQliYXNpY19tYWNoaW5lPSQxCi0r CQk7OwotKwktY2hvcnVzb3MqKQotKwkJb3M9LWNob3J1c29zCi0rCQliYXNpY19tYWNoaW5lPSQx Ci0rCQk7OwotKyAJLWNob3J1c3JkYikKLSsgCQlvcz0tY2hvcnVzcmRiCi0rCQliYXNpY19tYWNo aW5lPSQxCi0rIAkJOzsKLSsJLWhpdXgqKQotKwkJb3M9LWhpdXh3ZTIKLSsJCTs7Ci0rCS1zY282 KQotKwkJb3M9LXNjbzV2NgotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84 Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzUpCi0rCQlvcz0tc2NvMy4ydjUKLSsJCWJhc2lj X21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1z Y280KQotKwkJb3M9LXNjbzMuMnY0Ci0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1l ICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktc2NvMy4yLls0LTldKikKLSsJCW9zPWBlY2hv ICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKLSsJCWJhc2ljX21hY2hpbmU9YGVj aG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28zLjJ2WzQtOV0q KQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7 Ci0rCS1zY281djYqKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBv ciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYt cGMvJ2AKLSsJCTs7Ci0rCS1zY28qKQotKwkJb3M9LXNjbzMuMnYyCi0rCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktdWRrKikKLSsJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7 Ci0rCS1pc2MpCi0rCQlvcz0taXNjMi4yCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktY2xpeCopCi0rCQliYXNpY19tYWNoaW5l PWNsaXBwZXItaW50ZXJncmFwaAotKwkJOzsKLSsJLWlzYyopCi0rCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktbHlueCopCi0rCQlv cz0tbHlueG9zCi0rCQk7OwotKwktcHR4KikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAotKwkJOzsKLSsJLXdpbmRvd3NudCopCi0rCQlv cz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50LydgCi0rCQk7OwotKwktcHNv cyopCi0rCQlvcz0tcHNvcwotKwkJOzsKLSsJLW1pbnQgfCAtbWludFswLTldKikKLSsJCWJhc2lj X21hY2hpbmU9bTY4ay1hdGFyaQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rZXNhYwotKwotKyMgRGVj b2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgotK2Nhc2Ug JGJhc2ljX21hY2hpbmUgaW4KLSsJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRo b3V0IGNvbXBhbnkgbmFtZS4KLSsJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5 IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KLSsJMTc1MGEgfCA1ODAgXAotKwl8IGEyOWsg XAotKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwg YWxwaGFwY2E1WzY3XSBcCi0rCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2 NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCi0rCXwgYW0zM18yLjAgXAot Kwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlsz NDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKLSsJfCBiZmluIFwKLSsJfCBjNHggfCBjbGlwcGVyIFwK LSsJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAotKwl8IGZpZG8gfCBmcjMwIHwgZnJ2 IFwKLSsJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBw YTIuMFtud10gfCBocHBhNjQgXAotKwl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAotKwl8 IGlwMmsgfCBpcTIwMDAgXAotKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4 ayB8IG04OGsgXAotKwl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1l dGFnIFwKLSsJfCBtaXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKLSsJ fCBtaXBzMTYgXAotKwl8IG1pcHM2NCB8IG1pcHM2NGVsIFwKLSsJfCBtaXBzNjRvY3Rlb24gfCBt aXBzNjRvY3Rlb25lbCBcCi0rCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKLSsJfCBt aXBzNjRyNTkwMCB8IG1pcHM2NHI1OTAwZWwgXAotKwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBc Ci0rCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAotKwl8IG1pcHM2NHZyNDMwMCB8 IG1pcHM2NHZyNDMwMGVsIFwKLSsJfCBtaXBzNjR2cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCi0r CXwgbWlwczY0dnI1OTAwIHwgbWlwczY0dnI1OTAwZWwgXAotKwl8IG1pcHNpc2EzMiB8IG1pcHNp c2EzMmVsIFwKLSsJfCBtaXBzaXNhMzJyMiB8IG1pcHNpc2EzMnIyZWwgXAotKwl8IG1pcHNpc2E2 NCB8IG1pcHNpc2E2NGVsIFwKLSsJfCBtaXBzaXNhNjRyMiB8IG1pcHNpc2E2NHIyZWwgXAotKwl8 IG1pcHNpc2E2NHNiMSB8IG1pcHNpc2E2NHNiMWVsIFwKLSsJfCBtaXBzaXNhNjRzcjcxayB8IG1p cHNpc2E2NHNyNzFrZWwgXAotKwl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCi0rCXwgbW4xMDIw MCB8IG1uMTAzMDAgXAotKwl8IG10IFwKLSsJfCBtc3A0MzAgXAotKwl8IG5pb3MgfCBuaW9zMiBc Ci0rCXwgbnMxNmsgfCBuczMyayBcCi0rCXwgb3IzMiBcCi0rCXwgcGRwMTAgfCBwZHAxMSB8IHBq IHwgcGpsIFwKLSsJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBj bGUgfCBwcGNiZSBcCi0rCXwgcHlyYW1pZCBcCi0rCXwgc2NvcmUgXAotKwl8IHNoIHwgc2hbMTIz NF0gfCBzaFsyNF1hIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hlYiB8IHNoYmUgfCBzaGxlIHwg c2hbMTIzNF1sZSB8IHNoM2VsZSBcCi0rCXwgc2g2NCB8IHNoNjRsZSBcCi0rCXwgc3BhcmMgfCBz cGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFy Y2xpdGUgXAotKwl8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5diBcCi0r CXwgc3B1IHwgc3Ryb25nYXJtIFwKLSsJfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8 IHRyb24gXAotKwl8IHY4NTAgfCB2ODUwZSBcCi0rCXwgd2UzMmsgXAotKwl8IHg4NiB8IHhjMTZ4 IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAotKwl8IHo4ayB8 IHo4MCkKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgotKwkJOzsKLSsJ bTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyKQotKwkJIyBNb3Rvcm9sYSA2OEhDMTEv MTIuCi0rCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KLSsJCW9zPS1ub25l Ci0rCQk7OwotKwltODgxMTAgfCBtNjgwWzEyMzQ2XTAgfCBtNjgzPzIgfCBtNjgzNjAgfCBtNTIw MCB8IHY3MCB8IHc2NSB8IHo4aykKLSsJCTs7Ci0rCW1zMSkKLSsJCWJhc2ljX21hY2hpbmU9bXQt dW5rbm93bgotKwkJOzsKLSsKLSsJIyBXZSB1c2UgYHBjJyByYXRoZXIgdGhhbiBgdW5rbm93bicK LSsJIyBiZWNhdXNlICgxKSB0aGF0J3Mgd2hhdCB0aGV5IG5vcm1hbGx5IGFyZSwgYW5kCi0rCSMg KDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNlIGJlZ2lubmluZyB1c2Vycy4K LSsJaSo4NiB8IHg4Nl82NCkKLSsJICBiYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXBjCi0r CSAgOzsKLSsJIyBPYmplY3QgaWYgbW9yZSB0aGFuIG9uZSBjb21wYW55IG5hbWUgd29yZC4KLSsJ Ki0qLSopCi0rCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hpbmUgXGAk YmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKLSsJCWV4aXQgMQotKwkJOzsKLSsJ IyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNvbXBhbnkgbmFtZS4KLSsJNTgw LSogXAotKwl8IGEyOWstKiBcCi0rCXwgYWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFl djU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCi0rCXwgYWxwaGE2NC0qIHwgYWxwaGE2NGV2WzQtOF0t KiB8IGFscGhhNjRldjU2LSogfCBhbHBoYTY0ZXY2Wzc4XS0qIFwKLSsJfCBhbHBoYXBjYTVbNjdd LSogfCBhbHBoYTY0cGNhNVs2N10tKiB8IGFyYy0qIFwKLSsJfCBhcm0tKiAgfCBhcm1iZS0qIHwg YXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKLSsJfCBhdnItKiB8IGF2cjMyLSogXAotKwl8 IGJmaW4tKiB8IGJzMjAwMC0qIFwKLSsJfCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBj NHgtKiB8IGM1NHgtKiB8IGM1NXgtKiB8IGM2eC0qIFwKLSsJfCBjbGlwcGVyLSogfCBjcmF5bnYt KiB8IGN5ZHJhLSogXAotKwl8IGQxMHYtKiB8IGQzMHYtKiB8IGRseC0qIFwKLSsJfCBlbHhzaS0q IFwKLSsJfCBmMzBbMDFdLSogfCBmNzAwLSogfCBmaWRvLSogfCBmcjMwLSogfCBmcnYtKiB8IGZ4 ODAtKiBcCi0rCXwgaDgzMDAtKiB8IGg4NTAwLSogXAotKwl8IGhwcGEtKiB8IGhwcGExLlswMV0t KiB8IGhwcGEyLjAtKiB8IGhwcGEyLjBbbnddLSogfCBocHBhNjQtKiBcCi0rCXwgaSo4Ni0qIHwg aTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKLSsJfCBpcDJrLSogfCBpcTIwMDAtKiBcCi0rCXwg bTMyYy0qIHwgbTMyci0qIHwgbTMycmxlLSogXAotKwl8IG02ODAwMC0qIHwgbTY4MFswMTIzNDZd MC0qIHwgbTY4MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCi0rCXwgbTg4MTEwLSogfCBtODhr LSogfCBtYXhxLSogfCBtY29yZS0qIHwgbWV0YWctKiBcCi0rCXwgbWlwcy0qIHwgbWlwc2JlLSog fCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAotKwl8IG1pcHMxNi0qIFwKLSsJfCBt aXBzNjQtKiB8IG1pcHM2NGVsLSogXAotKwl8IG1pcHM2NG9jdGVvbi0qIHwgbWlwczY0b2N0ZW9u ZWwtKiBcCi0rCXwgbWlwczY0b3Jpb24tKiB8IG1pcHM2NG9yaW9uZWwtKiBcCi0rCXwgbWlwczY0 cjU5MDAtKiB8IG1pcHM2NHI1OTAwZWwtKiBcCi0rCXwgbWlwczY0dnItKiB8IG1pcHM2NHZyZWwt KiBcCi0rCXwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwKLSsJfCBtaXBzNjR2 cjQzMDAtKiB8IG1pcHM2NHZyNDMwMGVsLSogXAotKwl8IG1pcHM2NHZyNTAwMC0qIHwgbWlwczY0 dnI1MDAwZWwtKiBcCi0rCXwgbWlwczY0dnI1OTAwLSogfCBtaXBzNjR2cjU5MDBlbC0qIFwKLSsJ fCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAotKwl8IG1pcHNpc2EzMnIyLSogfCBtaXBz aXNhMzJyMmVsLSogXAotKwl8IG1pcHNpc2E2NC0qIHwgbWlwc2lzYTY0ZWwtKiBcCi0rCXwgbWlw c2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwtKiBcCi0rCXwgbWlwc2lzYTY0c2IxLSogfCBtaXBz aXNhNjRzYjFlbC0qIFwKLSsJfCBtaXBzaXNhNjRzcjcxay0qIHwgbWlwc2lzYTY0c3I3MWtlbC0q IFwKLSsJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKLSsJfCBtbWl4LSogXAotKwl8IG10 LSogXAotKwl8IG1zcDQzMC0qIFwKLSsJfCBuaW9zLSogfCBuaW9zMi0qIFwKLSsJfCBub25lLSog fCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKLSsJfCBvcmlvbi0qIFwKLSsJfCBwZHAxMC0q IHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8IHBuLSogfCBwb3dlci0qIFwKLSsJfCBwb3dlcnBj LSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSog XAotKwl8IHB5cmFtaWQtKiBcCi0rCXwgcm9tcC0qIHwgcnM2MDAwLSogXAotKwl8IHNoLSogfCBz aFsxMjM0XS0qIHwgc2hbMjRdYS0qIHwgc2hbMjNdZS0qIHwgc2hbMzRdZWItKiB8IHNoZWItKiB8 IHNoYmUtKiBcCi0rCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSog fCBzaDY0bGUtKiBcCi0rCXwgc3BhcmMtKiB8IHNwYXJjNjQtKiB8IHNwYXJjNjRiLSogfCBzcGFy YzY0di0qIHwgc3BhcmM4NngtKiB8IHNwYXJjbGV0LSogXAotKwl8IHNwYXJjbGl0ZS0qIFwKLSsJ fCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN0cm9u Z2FybS0qIHwgc3YxLSogfCBzeD8tKiBcCi0rCXwgdGFob2UtKiB8IHRodW1iLSogXAotKwl8IHRp YzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0q IHwgdGlsZS0qIFwKLSsJfCB0cm9uLSogXAotKwl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBc Ci0rCXwgd2UzMmstKiBcCi0rCXwgeDg2LSogfCB4ODZfNjQtKiB8IHhjMTZ4LSogfCB4cHMxMDAt KiB8IHhzY2FsZS0qIHwgeHNjYWxlZVtibF0tKiBcCi0rCXwgeHN0b3JteTE2LSogfCB4dGVuc2Eq LSogXAotKwl8IHltcC0qIFwKLSsJfCB6OGstKiB8IHo4MC0qKQotKwkJOzsKLSsJIyBSZWNvZ25p emUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZSwgd2l0aCBnbG9iIG1h dGNoLgotKwl4dGVuc2EqKQotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3du Ci0rCQk7OwotKwkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5hbWVzIGFuZCBhbGlh c2VzIHdoaWNoIHN0YW5kCi0rCSMgZm9yIGEgQ1BVIHR5cGUgYW5kIGEgY29tcGFueSBhbmQgc29t ZXRpbWVzIGV2ZW4gYW4gT1MuCi0rCTM4NmJzZCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtu b3duCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkzYjEgfCA3MzAwIHwgNzMwMC1hdHQgfCBhdHQtNzMw MCB8IHBjNzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKLSsJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWF0 dAotKwkJOzsKLSsJM2IqKQotKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKLSsJCTs7Ci0rCWEy OWtoaWYpCi0rCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCi0rCQlvcz0tdWRpCi0rCQk7OwotKyAg ICAJYWJhY3VzKQotKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5rbm93bgotKwkJOzsKLSsJYWRv YmU2OGspCi0rCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQotKwkJb3M9LXNjb3V0Ci0rCQk7 OwotKwlhbGxpYW50IHwgZng4MCkKLSsJCWJhc2ljX21hY2hpbmU9Zng4MC1hbGxpYW50Ci0rCQk7 OwotKwlhbHRvcyB8IGFsdG9zMzA2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hbHRvcwotKwkJ OzsKLSsJYW0yOWspCi0rCQliYXNpY19tYWNoaW5lPWEyOWstbm9uZQotKwkJb3M9LWJzZAotKwkJ OzsKLSsJYW1kNjQpCi0rCQliYXNpY19tYWNoaW5lPXg4Nl82NC1wYwotKwkJOzsKLSsJYW1kNjQt KikKLSsJCWJhc2ljX21hY2hpbmU9eDg2XzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdz L15bXi1dKi0vLydgCi0rCQk7OwotKwlhbWRhaGwpCi0rCQliYXNpY19tYWNoaW5lPTU4MC1hbWRh aGwKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlhbWlnYSB8IGFtaWdhLSopCi0rCQliYXNpY19tYWNo aW5lPW02OGstdW5rbm93bgotKwkJOzsKLSsJYW1pZ2FvcyB8IGFtaWdhZG9zKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9zPS1hbWlnYW9zCi0rCQk7OwotKwlhbWlnYXVuaXgg fCBhbWl4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9zPS1zeXN2NAotKwkJ OzsKLSsJYXBvbGxvNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCi0rCQlvcz0tc3lz dgotKwkJOzsKLSsJYXBvbGxvNjhic2QpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCi0r CQlvcz0tYnNkCi0rCQk7OwotKwlhdXgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKLSsJ CW9zPS1hdXgKLSsJCTs7Ci0rCWJhbGFuY2UpCi0rCQliYXNpY19tYWNoaW5lPW5zMzJrLXNlcXVl bnQKLSsJCW9zPS1keW5peAotKwkJOzsKLSsJYmxhY2tmaW4pCi0rCQliYXNpY19tYWNoaW5lPWJm aW4tdW5rbm93bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlibGFja2Zpbi0qKQotKwkJYmFzaWNf bWFjaGluZT1iZmluLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0r CQlvcz0tbGludXgKLSsJCTs7Ci0rCWM5MCkKLSsJCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKLSsJ CW9zPS11bmljb3MKLSsJCTs7Ci0rICAgICAgICBjZWdjYykKLSsJCWJhc2ljX21hY2hpbmU9YXJt LXVua25vd24KLSsJCW9zPS1jZWdjYwotKwkJOzsKLSsJY29udmV4LWMxKQotKwkJYmFzaWNfbWFj aGluZT1jMS1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZleC1jMikKLSsJCWJhc2lj X21hY2hpbmU9YzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252ZXgtYzMyKQotKwkJ YmFzaWNfbWFjaGluZT1jMzItY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252ZXgtYzM0 KQotKwkJYmFzaWNfbWFjaGluZT1jMzQtY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwljb252 ZXgtYzM4KQotKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4Ci0rCQlvcz0tYnNkCi0rCQk7Owot KwljcmF5IHwgajkwKQotKwkJYmFzaWNfbWFjaGluZT1qOTAtY3JheQotKwkJb3M9LXVuaWNvcwot KwkJOzsKLSsJY3JheW52KQotKwkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQotKwkJb3M9LXVu aWNvc21wCi0rCQk7OwotKwljcjE2KQotKwkJYmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KLSsJ CW9zPS1lbGYKLSsJCTs7Ci0rCWNyZHMgfCB1bm9zKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWNy ZHMKLSsJCTs7Ci0rCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikKLSsJCWJhc2ljX21h Y2hpbmU9Y3Jpc3YzMi1heGlzCi0rCQk7OwotKwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQotKwkJ YmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKLSsJCTs7Ci0rCWNyeCkKLSsJCWJhc2ljX21hY2hpbmU9 Y3J4LXVua25vd24KLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCWRhMzAgfCBkYTMwLSopCi0rCQliYXNp Y19tYWNoaW5lPW02OGstZGEzMAotKwkJOzsKLSsJZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEw MCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwgZGVjMzEwMCB8IGRlY3N0YXRuKQotKwkJYmFzaWNf bWFjaGluZT1taXBzLWRlYwotKwkJOzsKLSsJZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQotKwkJYmFz aWNfbWFjaGluZT1wZHAxMC1kZWMKLSsJCW9zPS10b3BzMTAKLSsJCTs7Ci0rCWRlY3N5c3RlbTIw KiB8IGRlYzIwKikKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCi0rCQlvcz0tdG9wczIwCi0r CQk7OwotKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAot KwkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBkZWx0YS1tb3Rvcm9sYSkKLSsJCWJhc2ljX21hY2hp bmU9bTY4ay1tb3Rvcm9sYQotKwkJOzsKLSsJZGVsdGE4OCkKLSsJCWJhc2ljX21hY2hpbmU9bTg4 ay1tb3Rvcm9sYQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwlkaWNvcykKLSsJCWJhc2ljX21hY2hp bmU9aTY4Ni1wYwotKwkJb3M9LWRpY29zCi0rCQk7OwotKwlkamdwcCkKLSsJCWJhc2ljX21hY2hp bmU9aTU4Ni1wYwotKwkJb3M9LW1zZG9zZGpncHAKLSsJCTs7Ci0rCWRweDIwIHwgZHB4MjAtKikK LSsJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLSsJCW9zPS1ib3N4Ci0rCQk7OwotKwlkcHgy KiB8IGRweDIqLWJ1bGwpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAotKwkJb3M9LXN5c3Yz Ci0rCQk7OwotKwllYm1vbjI5aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS1l Ym1vbgotKwkJOzsKLSsJZWx4c2kpCi0rCQliYXNpY19tYWNoaW5lPWVseHNpLWVseHNpCi0rCQlv cz0tYnNkCi0rCQk7OwotKwllbmNvcmUgfCB1bWF4IHwgbW1heCkKLSsJCWJhc2ljX21hY2hpbmU9 bnMzMmstZW5jb3JlCi0rCQk7OwotKwllczE4MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBP U0UpCi0rCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KLSsJCW9zPS1vc2UKLSsJCTs7Ci0r CWZ4MjgwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50Ci0rCQk7OwotKwlnZW5peCkK LSsJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMKLSsJCTs7Ci0rCWdtaWNybykKLSsJCWJhc2ljX21h Y2hpbmU9dHJvbi1nbWljcm8KLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlnbzMyKQotKwkJYmFzaWNf bWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tZ28zMgotKwkJOzsKLSsJaDMwNTByKiB8IGhpdXgqKQot KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJCW9zPS1oaXV4d2UyCi0rCQk7Owot KwloODMwMGhtcykKLSsJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQotKwkJb3M9LWhtcwot KwkJOzsKLSsJaDgzMDB4cmF5KQotKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCi0rCQlv cz0teHJheQotKwkJOzsKLSsJaDg1MDBobXMpCi0rCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFj aGkKLSsJCW9zPS1obXMKLSsJCTs7Ci0rCWhhcnJpcykKLSsJCWJhc2ljX21hY2hpbmU9bTg4ay1o YXJyaXMKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJaHAzMDAtKikKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1ocAotKwkJOzsKLSsJaHAzMDBic2QpCi0rCQliYXNpY19tYWNoaW5lPW02OGstaHAKLSsJ CW9zPS1ic2QKLSsJCTs7Ci0rCWhwMzAwaHB1eCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAot KwkJb3M9LWhwdXgKLSsJCTs7Ci0rCWhwM2s5WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCi0r CQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKLSsJCTs7Ci0rCWhwOWsyWzAtOV1bMC05XSB8IGhw OWszMVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAKLSsJCTs7Ci0rCWhwOWszWzIt OV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJOzsKLSsJaHA5azZbMC05XVsw LTldIHwgaHA2WzAtOV1bMC05XSkKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAotKwkJOzsK LSsJaHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1o cHBhMS4xLWhwCi0rCQk7OwotKwlocDlrNzhbMC05XSB8IGhwNzhbMC05XSkKLSsJCSMgRklYTUU6 IHJlYWxseSBocHBhMi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7Ci0r CWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBocDgwWzI0XSB8IGhwOWs4Wzc4 XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBocDg5MykKLSsJCSMgRklYTUU6IHJlYWxseSBocHBh Mi4wLWhwCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7Ci0rCWhwOWs4WzAtOV1b MTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0r CQk7OwotKwlocDlrOFswLTldWzAtOV0gfCBocDhbMC05XVswLTldKQotKwkJYmFzaWNfbWFjaGlu ZT1ocHBhMS4wLWhwCi0rCQk7OwotKwlocHBhLW5leHQpCi0rCQlvcz0tbmV4dHN0ZXAzCi0rCQk7 OwotKwlocHBhb3NmKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQlvcz0tb3NmCi0r CQk7OwotKwlocHBybykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJb3M9LXByb2Vs ZgotKwkJOzsKLSsJaTM3MC1pYm0qIHwgaWJtKikKLSsJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0K LSsJCTs7Ci0rIyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBtZWFucy4gIFNob3VsZCB0aGlz IGJlIHN5c3YzLjI/Ci0rCWkqODZ2MzIpCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2MzIKLSsJCTs7Ci0rCWkqODZ2NCopCi0r CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9z PS1zeXN2NAotKwkJOzsKLSsJaSo4NnYpCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LiovODYtcGMvJ2AKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlpKjg2c29sMikKLSsJ CWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotKwkJb3M9 LXNvbGFyaXMyCi0rCQk7OwotKwlpMzg2bWFjaCkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNo Ci0rCQlvcz0tbWFjaAotKwkJOzsKLSsJaTM4Ni12c3RhIHwgdnN0YSkKLSsJCWJhc2ljX21hY2hp bmU9aTM4Ni11bmtub3duCi0rCQlvcz0tdnN0YQotKwkJOzsKLSsJaXJpcyB8IGlyaXM0ZCkKLSsJ CWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLWlyaXgqKQot KwkJCTs7Ci0rCQkgICAgKikKLSsJCQlvcz0taXJpeDQKLSsJCQk7OwotKwkJZXNhYwotKwkJOzsK LSsJaXNpNjggfCBpc2kpCi0rCQliYXNpY19tYWNoaW5lPW02OGstaXNpCi0rCQlvcz0tc3lzdgot KwkJOzsKLSsJbTY4a25vbW11KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KLSsJCW9z PS1saW51eAotKwkJOzsKLSsJbTY4a25vbW11LSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCW9zPS1saW51eAotKwkJ OzsKLSsJbTg4ay1vbXJvbiopCi0rCQliYXNpY19tYWNoaW5lPW04OGstb21yb24KLSsJCTs7Ci0r CW1hZ251bSB8IG0zMjMwKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKLSsJCW9zPS1zeXN2 Ci0rCQk7OwotKwltZXJsaW4pCi0rCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKLSsJCW9zPS1z eXN2Ci0rCQk7OwotKwltaW5ndzMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0t bWluZ3czMgotKwkJOzsKLSsJbWluZ3czMmNlKQotKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93 bgotKwkJb3M9LW1pbmd3MzJjZQotKwkJOzsKLSsJbWluaWZyYW1lKQotKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtY29udmVyZ2VudAotKwkJOzsKLSsJKm1pbnQgfCAtbWludFswLTldKiB8ICpNaU5U IHwgKk1pTlRbMC05XSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKLSsJCW9zPS1taW50 Ci0rCQk7OwotKwltaXBzMyotKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgCi0rCQk7OwotKwltaXBzMyopCi0rCQliYXNp Y19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8n YC11bmtub3duCi0rCQk7OwotKwltb25pdG9yKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXJvbTY4 awotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCW1vcnBob3MpCi0rCQliYXNpY19tYWNoaW5lPXBvd2Vy cGMtdW5rbm93bgotKwkJb3M9LW1vcnBob3MKLSsJCTs7Ci0rCW1zZG9zKQotKwkJYmFzaWNfbWFj aGluZT1pMzg2LXBjCi0rCQlvcz0tbXNkb3MKLSsJCTs7Ci0rCW1zMS0qKQotKwkJYmFzaWNfbWFj aGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9tczEtL210LS8nYAotKwkJOzsK LSsJbXZzKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotKwkJb3M9LW12cwotKwkJOzsKLSsJ bmNyMzAwMCkKLSsJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKLSsJCW9zPS1zeXN2NAotKwkJOzsK LSsJbmV0YnNkMzg2KQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KLSsJCW9zPS1uZXRi c2QKLSsJCTs7Ci0rCW5ldHdpbmRlcikKLSsJCWJhc2ljX21hY2hpbmU9YXJtdjRsLXJlYmVsCi0r CQlvcz0tbGludXgKLSsJCTs7Ci0rCW5ld3MgfCBuZXdzNzAwIHwgbmV3czgwMCB8IG5ld3M5MDAp Ci0rCQliYXNpY19tYWNoaW5lPW02OGstc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmV3 czEwMDApCi0rCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255Ci0rCQlvcz0tbmV3c29zCi0rCQk7 OwotKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtc29ueQot KwkJb3M9LW5ld3NvcwotKwkJOzsKLSsJbmVjdjcwKQotKwkJYmFzaWNfbWFjaGluZT12NzAtbmVj Ci0rCQlvcz0tc3lzdgotKwkJOzsKLSsJbmV4dCB8IG0qLW5leHQgKQotKwkJYmFzaWNfbWFjaGlu ZT1tNjhrLW5leHQKLSsJCWNhc2UgJG9zIGluCi0rCQkgICAgLW5leHRzdGVwKiApCi0rCQkJOzsK LSsJCSAgICAtbnMyKikKLSsJCSAgICAgIG9zPS1uZXh0c3RlcDIKLSsJCQk7OwotKwkJICAgICop Ci0rCQkgICAgICBvcz0tbmV4dHN0ZXAzCi0rCQkJOzsKLSsJCWVzYWMKLSsJCTs7Ci0rCW5oMzAw MCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1oYXJyaXMKLSsJCW9zPS1jeHV4Ci0rCQk7OwotKwlu aFs0NV0wMDApCi0rCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCi0rCQlvcz0tY3h1eAotKwkJ OzsKLSsJbmluZHk5NjApCi0rCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKLSsJCW9zPS1uaW5k eQotKwkJOzsKLSsJbW9uOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0rCQlvcz0t bW9uOTYwCi0rCQk7OwotKwlub25zdG9wdXgpCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtY29tcGFx Ci0rCQlvcz0tbm9uc3RvcHV4Ci0rCQk7OwotKwlucDEpCi0rCQliYXNpY19tYWNoaW5lPW5wMS1n b3VsZAotKwkJOzsKLSsJbnNyLXRhbmRlbSkKLSsJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQot KwkJOzsKLSsJb3A1MG4tKiB8IG9wNjBjLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tp Ci0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwlvcGVucmlzYyB8IG9wZW5yaXNjLSopCi0rCQliYXNp Y19tYWNoaW5lPW9yMzItdW5rbm93bgotKwkJOzsKLSsJb3M0MDApCi0rCQliYXNpY19tYWNoaW5l PXBvd2VycGMtaWJtCi0rCQlvcz0tb3M0MDAKLSsJCTs7Ci0rCU9TRTY4MDAwIHwgb3NlNjgwMDAp Ci0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgotKwkJb3M9LW9zZQotKwkJOzsKLSsJ b3M2OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstbm9uZQotKwkJb3M9LW9zNjhrCi0rCQk7Owot KwlwYS1oaXRhY2hpKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKLSsJCW9zPS1o aXV4d2UyCi0rCQk7OwotKwlwYXJhZ29uKQotKwkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCi0r CQlvcz0tb3NmCi0rCQk7OwotKwlwYXJpc2MpCi0rCQliYXNpY19tYWNoaW5lPWhwcGEtdW5rbm93 bgotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlwYXJpc2MtKikKLSsJCWJhc2ljX21hY2hpbmU9aHBw YS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJb3M9LWxpbnV4 Ci0rCQk7OwotKwlwYmQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0aQotKwkJOzsKLSsJcGJi KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQotKwkJOzsKLSsJcGM1MzIgfCBwYzUzMi0qKQot KwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgotKwkJOzsKLSsJcGM5OCkKLSsJCWJhc2ljX21h Y2hpbmU9aTM4Ni1wYwotKwkJOzsKLSsJcGM5OC0qKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwZW50aXVt IHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCi0rCQliYXNpY19tYWNoaW5lPWk1ODYt cGMKLSsJCTs7Ci0rCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBhdGhsb24gfCBhdGhsb25fKikK LSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJOzsKLSsJcGVudGl1bWlpIHwgcGVudGl1bTIg fCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCTs7 Ci0rCXBlbnRpdW00KQotKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCi0rCQk7OwotKwlwZW50aXVt LSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZpYWMzLSopCi0rCQliYXNpY19t YWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJ CTs7Ci0rCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBhdGhsb24tKikKLSsJCWJhc2lj X21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAot KwkJOzsKLSsJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVudGl1bWlpaS0qIHwgcGVudGl1 bTMtKikKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAn cy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bTQtKikKLSsJCWJhc2ljX21hY2hpbmU9aTc4 Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcG4p Ci0rCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCi0rCQk7OwotKwlwb3dlcikJYmFzaWNfbWFjaGlu ZT1wb3dlci1pYm0KLSsJCTs7Ci0rCXBwYykJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24K LSsJCTs7Ci0rCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwY2xlIHwgcG93ZXJwY2xpdHRsZSB8 IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5r bm93bgotKwkJOzsKLSsJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUtKikKLSsJCWJhc2ljX21hY2hp bmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0r CQk7OwotKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtdW5rbm93bgotKwkJOzsKLSsJ cHBjNjQtKikgYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBz ZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBw cGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCi0rCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxl LXVua25vd24KLSsJCTs7Ci0rCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQotKwkJYmFz aWNfbWFjaGluZT1wb3dlcnBjNjRsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14t XSotLy8nYAotKwkJOzsKLSsJcHMyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LWlibQotKwkJOzsK LSsJcHczMikKLSsJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCi0rCQlvcz0tcHczMgotKwkJ OzsKLSsJcmRvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LXJkb3MKLSsJCTs7 Ci0rCXJvbTY4aykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKLSsJCW9zPS1jb2ZmCi0r CQk7OwotKwlybVs0Nl0wMCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwcy1zaWVtZW5zCi0rCQk7Owot KwlydHBjIHwgcnRwYy0qKQotKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotKwkJOzsKLSsJczM5 MCB8IHMzOTAtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MC1pYm0KLSsJCTs7Ci0rCXMzOTB4IHwg czM5MHgtKikKLSsJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCi0rCQk7OwotKwlzYTI5MjAwKQot KwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsKLSsJc2IxKQotKwkJ YmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgotKwkJOzsKLSsJc2IxZWwpCi0rCQli YXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KLSsJCTs7Ci0rCXNkZSkKLSsJCWJh c2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJb3M9LWVsZgotKwkJOzsKLSsJc2VpKQotKwkJ YmFzaWNfbWFjaGluZT1taXBzLXNlaQotKwkJb3M9LXNlaXV4Ci0rCQk7OwotKwlzZXF1ZW50KQot KwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKLSsJCTs7Ci0rCXNoKQotKwkJYmFzaWNfbWFj aGluZT1zaC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwlzaDVlbCkKLSsJCWJhc2ljX21h Y2hpbmU9c2g1bGUtdW5rbm93bgotKwkJOzsKLSsJc2g2NCkKLSsJCWJhc2ljX21hY2hpbmU9c2g2 NC11bmtub3duCi0rCQk7OwotKwlzcGFyY2xpdGUtd3JzIHwgc2ltc28td3JzKQotKwkJYmFzaWNf bWFjaGluZT1zcGFyY2xpdGUtd3JzCi0rCQlvcz0tdnh3b3JrcwotKwkJOzsKLSsJc3BzNykKLSsJ CWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0tc3lzdjIKLSsJCTs7Ci0rCXNwdXIpCi0r CQliYXNpY19tYWNoaW5lPXNwdXItdW5rbm93bgotKwkJOzsKLSsJc3QyMDAwKQotKwkJYmFzaWNf bWFjaGluZT1tNjhrLXRhbmRlbQotKwkJOzsKLSsJc3RyYXR1cykKLSsJCWJhc2ljX21hY2hpbmU9 aTg2MC1zdHJhdHVzCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCXN1bjIpCi0rCQliYXNpY19tYWNo aW5lPW02ODAwMC1zdW4KLSsJCTs7Ci0rCXN1bjJvczMpCi0rCQliYXNpY19tYWNoaW5lPW02ODAw MC1zdW4KLSsJCW9zPS1zdW5vczMKLSsJCTs7Ci0rCXN1bjJvczQpCi0rCQliYXNpY19tYWNoaW5l PW02ODAwMC1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjNvczMpCi0rCQliYXNpY19t YWNoaW5lPW02OGstc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW4zb3M0KQotKwkJYmFz aWNfbWFjaGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zNAotKwkJOzsKLSsJc3VuNG9zMykKLSsJ CWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW40b3M0 KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1 bjRzb2wyKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCW9zPS1zb2xhcmlzMgotKwkJ OzsKLSsJc3VuMyB8IHN1bjMtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KLSsJCTs7Ci0r CXN1bjQpCi0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsKLSsJc3VuMzg2IHwgc3Vu Mzg2aSB8IHJvYWRydW5uZXIpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtc3VuCi0rCQk7OwotKwlz djEpCi0rCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5Ci0rCQlvcz0tdW5pY29zCi0rCQk7OwotKwlz eW1tZXRyeSkKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0rCQlvcz0tZHluaXgKLSsJ CTs7Ci0rCXQzZSkKLSsJCWJhc2ljX21hY2hpbmU9YWxwaGFldjUtY3JheQotKwkJb3M9LXVuaWNv cwotKwkJOzsKLSsJdDkwKQotKwkJYmFzaWNfbWFjaGluZT10OTAtY3JheQotKwkJb3M9LXVuaWNv cwotKwkJOzsKLSsJdGljNTR4IHwgYzU0eCopCi0rCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtu b3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4IHwgYzU1eCopCi0rCQliYXNpY19tYWNo aW5lPXRpYzU1eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNnggfCBjNngqKQot KwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGls ZSopCi0rCQliYXNpY19tYWNoaW5lPXRpbGUtdW5rbm93bgotKwkJb3M9LWxpbnV4LWdudQotKwkJ OzsKLSsJdHgzOSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93bgotKwkJOzsKLSsJ dHgzOWVsKQotKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24KLSsJCTs7Ci0rCXRv YWQxKQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKLSsJCW9zPS10b3BzMjAKLSsJCTs7Ci0r CXRvd2VyIHwgdG93ZXItMzIpCi0rCQliYXNpY19tYWNoaW5lPW02OGstbmNyCi0rCQk7OwotKwl0 cGYpCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJb3M9LXRwZgotKwkJOzsKLSsJdWRp MjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsKLSsJdWx0 cmEzKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQotKwkJb3M9LXN5bTEKLSsJCTs7Ci0rCXY4 MTAgfCBuZWN2ODEwKQotKwkJYmFzaWNfbWFjaGluZT12ODEwLW5lYwotKwkJb3M9LW5vbmUKLSsJ CTs7Ci0rCXZheHYpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9zPS1zeXN2Ci0rCQk7 OwotKwl2bXMpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCW9zPS12bXMKLSsJCTs7Ci0r CXZwcCp8dnh8dngtKikKLSsJCWJhc2ljX21hY2hpbmU9ZjMwMS1mdWppdHN1Ci0rCQk7OwotKwl2 eHdvcmtzOTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJ CTs7Ci0rCXZ4d29ya3M2OCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay13cnMKLSsJCW9zPS12eHdv cmtzCi0rCQk7OwotKwl2eHdvcmtzMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLXdycwotKwkJ b3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXc2NSopCi0rCQliYXNpY19tYWNoaW5lPXc2NS13ZGMKLSsJ CW9zPS1ub25lCi0rCQk7OwotKwl3ODlrLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2lu Ym9uZAotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJeGJveCkKLSsJCWJhc2ljX21hY2hpbmU9aTY4 Ni1wYwotKwkJb3M9LW1pbmd3MzIKLSsJCTs7Ci0rCXhwcyB8IHhwczEwMCkKLSsJCWJhc2ljX21h Y2hpbmU9eHBzMTAwLWhvbmV5d2VsbAotKwkJOzsKLSsJeW1wKQotKwkJYmFzaWNfbWFjaGluZT15 bXAtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJejhrLSotY29mZikKLSsJCWJhc2ljX21h Y2hpbmU9ejhrLXVua25vd24KLSsJCW9zPS1zaW0KLSsJCTs7Ci0rCXo4MC0qLWNvZmYpCi0rCQli YXNpY19tYWNoaW5lPXo4MC11bmtub3duCi0rCQlvcz0tc2ltCi0rCQk7OwotKwlub25lKQotKwkJ YmFzaWNfbWFjaGluZT1ub25lLW5vbmUKLSsJCW9zPS1ub25lCi0rCQk7OwotKwotKyMgSGVyZSB3 ZSBoYW5kbGUgdGhlIGRlZmF1bHQgbWFudWZhY3R1cmVyIG9mIGNlcnRhaW4gQ1BVIHR5cGVzLiAg SXQgaXMgaW4KLSsjIHNvbWUgY2FzZXMgdGhlIG9ubHkgbWFudWZhY3R1cmVyLCBpbiBvdGhlcnMs IGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCi0rCXc4OWspCi0rCQliYXNpY19tYWNoaW5lPWhwcGEx LjEtd2luYm9uZAotKwkJOzsKLSsJb3A1MG4pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tp Ci0rCQk7OwotKwlvcDYwYykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKLSsJCTs7Ci0r CXJvbXApCi0rCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCi0rCQk7OwotKwltbWl4KQotKwkJYmFz aWNfbWFjaGluZT1tbWl4LWtudXRoCi0rCQk7OwotKwlyczYwMDApCi0rCQliYXNpY19tYWNoaW5l PXJzNjAwMC1pYm0KLSsJCTs7Ci0rCXZheCkKLSsJCWJhc2ljX21hY2hpbmU9dmF4LWRlYwotKwkJ OzsKLSsJcGRwMTApCi0rCQkjIHRoZXJlIGFyZSBtYW55IGNsb25lcywgc28gREVDIGlzIG5vdCBh IHNhZmUgYmV0Ci0rCQliYXNpY19tYWNoaW5lPXBkcDEwLXVua25vd24KLSsJCTs7Ci0rCXBkcDEx KQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKLSsJCTs7Ci0rCXdlMzJrKQotKwkJYmFzaWNf bWFjaGluZT13ZTMyay1hdHQKLSsJCTs7Ci0rCXNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzM0XWVi IHwgc2hbMTIzNF1sZSB8IHNoWzIzXWVsZSkKLSsJCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgot KwkJOzsKLSsJc3BhcmMgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYp Ci0rCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJOzsKLSsJY3lkcmEpCi0rCQliYXNpY19t YWNoaW5lPWN5ZHJhLWN5ZHJvbWUKLSsJCTs7Ci0rCW9yaW9uKQotKwkJYmFzaWNfbWFjaGluZT1v cmlvbi1oaWdobGV2ZWwKLSsJCTs7Ci0rCW9yaW9uMTA1KQotKwkJYmFzaWNfbWFjaGluZT1jbGlw cGVyLWhpZ2hsZXZlbAotKwkJOzsKLSsJbWFjIHwgbXB3IHwgbWFjLW1wdykKLSsJCWJhc2ljX21h Y2hpbmU9bTY4ay1hcHBsZQotKwkJOzsKLSsJcG1hYyB8IHBtYWMtbXB3KQotKwkJYmFzaWNfbWFj aGluZT1wb3dlcnBjLWFwcGxlCi0rCQk7OwotKwkqLXVua25vd24pCi0rCQkjIE1ha2Ugc3VyZSB0 byBtYXRjaCBhbiBhbHJlYWR5LWNhbm9uaWNhbGl6ZWQgbWFjaGluZSBuYW1lLgotKwkJOzsKLSsJ KikKLSsJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNp Y19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotK2VzYWMK LSsKLSsjIEhlcmUgd2UgY2Fub25pY2FsaXplIGNlcnRhaW4gYWxpYXNlcyBmb3IgbWFudWZhY3R1 cmVycy4KLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotZGlnaXRhbCopCi0rCQliYXNpY19t YWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2RpZ2l0YWwuKi9kZWMvJ2AKLSsJ CTs7Ci0rCSotY29tbW9kb3JlKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hp bmUgfCBzZWQgJ3MvY29tbW9kb3JlLiovY2JtLydgCi0rCQk7OwotKwkqKQotKwkJOzsKLStlc2Fj Ci0rCi0rIyBEZWNvZGUgbWFudWZhY3R1cmVyLXNwZWNpZmljIGFsaWFzZXMgZm9yIGNlcnRhaW4g b3BlcmF0aW5nIHN5c3RlbXMuCi0rCi0raWYgWyB4IiRvcyIgIT0geCIiIF0KLSt0aGVuCi0rY2Fz ZSAkb3MgaW4KLSsgICAgICAgICMgRmlyc3QgbWF0Y2ggc29tZSBzeXN0ZW0gdHlwZSBhbGlhc2Vz Ci0rICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5 cGVzLgotKwkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25l IGV4Y2VwdGlvbi4KLSsJLXNvbGFyaXMxIHwgLXNvbGFyaXMxLiopCi0rCQlvcz1gZWNobyAkb3Mg fCBzZWQgLWUgJ3N8c29sYXJpczF8c3Vub3M0fCdgCi0rCQk7OwotKwktc29sYXJpcykKLSsJCW9z PS1zb2xhcmlzMgotKwkJOzsKLSsJLXN2cjQqKQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwktdW5p eHdhcmUqKQotKwkJb3M9LXN5c3Y0LjJ1dwotKwkJOzsKLSsJLWdudS9saW51eCopCi0rCQlvcz1g ZWNobyAkb3MgfCBzZWQgLWUgJ3N8Z251L2xpbnV4fGxpbnV4LWdudXwnYAotKwkJOzsKLSsJIyBG aXJzdCBhY2NlcHQgdGhlIGJhc2ljIHN5c3RlbSB0eXBlcy4KLSsJIyBUaGUgcG9ydGFibGUgc3lz dGVtcyBjb21lcyBmaXJzdC4KLSsJIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOIEEgKiwg dG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KLSsJIyAtc3lzdiogaXMgbm90IGhlcmUgYmVjYXVz ZSBpdCBjb21lcyBsYXRlciwgYWZ0ZXIgc3lzdnI0LgotKwktZ251KiB8IC1ic2QqIHwgLW1hY2gq IHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCi0rCSAgICAgIHwgLSp2 bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLXN1bm9zIHwgLXN1bm9zWzM0 XSpcCi0rCSAgICAgIHwgLWhwdXgqIHwgLXVub3MqIHwgLW9zZiogfCAtbHVuYSogfCAtZGd1eCog fCAtc29sYXJpcyogfCAtc3ltKiBcCi0rCSAgICAgIHwgLWFtaWdhb3MqIHwgLWFtaWdhZG9zKiB8 IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAotKwkgICAgICB8IC1hb3Mq IFwKLSsJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC1lYm1vbiogfCAt aG1zKiB8IC1tdnMqIFwKLSsJICAgICAgfCAtY2xpeCogfCAtcmlzY29zKiB8IC11bmlwbHVzKiB8 IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCi0rCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCog fCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKLSsJICAgICAgfCAtb3BlbmJzZCog fCAtc29saWRic2QqIFwKLSsJICAgICAgfCAtZWtrb2JzZCogfCAta2ZyZWVic2QqIHwgLWZyZWVi c2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCi0rCSAgICAgIHwgLWJvc3gqIHwgLW5leHRzdGVw KiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKLSsJICAgICAgfCAtcHR4KiB8 IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRvbWFpbiogfCAtdnN0YSogXAotKwkgICAg ICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1pZWVlKiB8IC1nbzMyKiB8IC1hdXgqIFwK LSsJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAtY2VnY2MqIFwKLSsJICAgICAg fCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9zcyogfCAtcHJvZWxmKiB8IC1ydGVtcyog XAotKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LW5ld2xpYiogfCAt bGludXgtdWNsaWJjKiBcCi0rCSAgICAgIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11 ZGsqIFwKLSsJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtbWtzKiB8IC1yaGFwc29keSog fCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKLSsJICAgICAgfCAtb3BlbnN0ZXAqIHwgLW9za2l0KiB8 IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCi0rCSAgICAgIHwgLXN0b3JtLWNoYW9z KiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0cyogXAotKwkgICAgICB8IC1v czIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1udWNsZXVzKiBcCi0rCSAgICAg IHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0bWstbm92YSogfCAtd2luZGlz cyogXAotKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8IC1zZWkq IHwgLWRyYWdvbmZseSogXAotKwkgICAgICB8IC1za3lvcyogfCAtaGFpa3UqIHwgLXJkb3MqIHwg LXRvcHBlcnMqIHwgLWRyb3BzKikKLSsJIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNU IEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgotKwkJOzsKLSsJLXFueCopCi0r CQljYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCQkgICAgeDg2LSogfCBpKjg2LSopCi0rCQkJOzsK LSsJCSAgICAqKQotKwkJCW9zPS1udG8kb3MKLSsJCQk7OwotKwkJZXNhYwotKwkJOzsKLSsJLW50 by1xbngqKQotKwkJOzsKLSsJLW50byopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bnRv fG50by1xbnh8J2AKLSsJCTs7Ci0rCS1zaW0gfCAtZXMxODAwKiB8IC1obXMqIHwgLXhyYXkgfCAt b3M2OGsqIHwgLW5vbmUqIHwgLXY4OHIqIFwKLSsJICAgICAgfCAtd2luZG93cyogfCAtb3N4IHwg LWFidWcgfCAtbmV0d2FyZSogfCAtb3M5KiB8IC1iZW9zKiB8IC1oYWlrdSogXAotKwkgICAgICB8 IC1tYWNvcyogfCAtbXB3KiB8IC1tYWdpYyogfCAtbW1peHdhcmUqIHwgLW1vbjk2MCogfCAtbG5l d3MqKQotKwkJOzsKLSsJLW1hYyopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bWFjfG1h Y29zfCdgCi0rCQk7OwotKwktbGludXgtZGlldGxpYmMpCi0rCQlvcz0tbGludXgtZGlldGxpYmMK LSsJCTs7Ci0rCS1saW51eCopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bGludXh8bGlu dXgtZ251fCdgCi0rCQk7OwotKwktc3Vub3M1KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAn c3xzdW5vczV8c29sYXJpczJ8J2AKLSsJCTs7Ci0rCS1zdW5vczYqKQotKwkJb3M9YGVjaG8gJG9z IHwgc2VkIC1lICdzfHN1bm9zNnxzb2xhcmlzM3wnYAotKwkJOzsKLSsJLW9wZW5lZCopCi0rCQlv cz0tb3BlbmVkaXRpb24KLSsJCTs7Ci0rICAgICAgICAtb3M0MDAqKQotKwkJb3M9LW9zNDAwCi0r CQk7OwotKwktd2luY2UqKQotKwkJb3M9LXdpbmNlCi0rCQk7OwotKwktb3Nmcm9zZSopCi0rCQlv cz0tb3Nmcm9zZQotKwkJOzsKLSsJLW9zZiopCi0rCQlvcz0tb3NmCi0rCQk7OwotKwktdXRlayop Ci0rCQlvcz0tYnNkCi0rCQk7OwotKwktZHluaXgqKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJLWFj aXMqKQotKwkJb3M9LWFvcwotKwkJOzsKLSsJLWF0aGVvcyopCi0rCQlvcz0tYXRoZW9zCi0rCQk7 OwotKwktc3lsbGFibGUqKQotKwkJb3M9LXN5bGxhYmxlCi0rCQk7OwotKwktMzg2YnNkKQotKwkJ b3M9LWJzZAotKwkJOzsKLSsJLWN0aXgqIHwgLXV0cyopCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJ LW5vdmEqKQotKwkJb3M9LXJ0bWstbm92YQotKwkJOzsKLSsJLW5zMiApCi0rCQlvcz0tbmV4dHN0 ZXAyCi0rCQk7OwotKwktbnNrKikKLSsJCW9zPS1uc2sKLSsJCTs7Ci0rCSMgUHJlc2VydmUgdGhl IHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KLSsJLXNpbml4NS4qKQotKwkJb3M9YGVjaG8gJG9z IHwgc2VkIC1lICdzfHNpbml4fHN5c3Z8J2AKLSsJCTs7Ci0rCS1zaW5peCopCi0rCQlvcz0tc3lz djQKLSsJCTs7Ci0rICAgICAgICAtdHBmKikKLSsJCW9zPS10cGYKLSsJCTs7Ci0rCS10cml0b24q KQotKwkJb3M9LXN5c3YzCi0rCQk7OwotKwktb3NzKikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJ LXN2cjQpCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCS1zdnIzKQotKwkJb3M9LXN5c3YzCi0rCQk7 OwotKwktc3lzdnI0KQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwkjIFRoaXMgbXVzdCBjb21lIGFm dGVyIC1zeXN2cjQuCi0rCS1zeXN2KikKLSsJCTs7Ci0rCS1vc2UqKQotKwkJb3M9LW9zZQotKwkJ OzsKLSsJLWVzMTgwMCopCi0rCQlvcz0tb3NlCi0rCQk7OwotKwkteGVuaXgpCi0rCQlvcz0teGVu aXgKLSsJCTs7Ci0rCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSop Ci0rCQlvcz0tbWludAotKwkJOzsKLSsJLWFyb3MqKQotKwkJb3M9LWFyb3MKLSsJCTs7Ci0rCS1r YW9zKikKLSsJCW9zPS1rYW9zCi0rCQk7OwotKwktenZtb2UpCi0rCQlvcz0tenZtb2UKLSsJCTs7 Ci0rCS1kaWNvcyopCi0rCQlvcz0tZGljb3MKLSsJCTs7Ci0rCS1ub25lKQotKwkJOzsKLSsJKikK LSsJCSMgR2V0IHJpZCBvZiB0aGUgYC0nIGF0IHRoZSBiZWdpbm5pbmcgb2YgJG9zLgotKwkJb3M9 YGVjaG8gJG9zIHwgc2VkICdzL1teLV0qLS8vJ2AKLSsJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0 aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29nbml6ZWQgMT4mMgotKwkJZXhpdCAx Ci0rCQk7OwotK2VzYWMKLStlbHNlCi0rCi0rIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBv cGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJpb3VzIG1hY2hpbmVzLgotKyMgVGhl IHZhbHVlIHNob3VsZCBiZSB3aGF0IHRoZSB2ZW5kb3IgY3VycmVudGx5IHNoaXBzIG91dCB0aGUg ZG9vciB3aXRoIHRoZWlyCi0rIyBtYWNoaW5lIG9yIHB1dCBhbm90aGVyIHdheSwgdGhlIG1vc3Qg cG9wdWxhciBvcyBwcm92aWRlZCB3aXRoIHRoZSBtYWNoaW5lLgotKwotKyMgTm90ZSB0aGF0IGlm IHlvdSdyZSBnb2luZyB0byB0cnkgdG8gbWF0Y2ggIi1NQU5VRkFDVFVSRVIiIGhlcmUgKHNheSwK LSsjICItc3VuIiksIHRoZW4geW91IGhhdmUgdG8gdGVsbCB0aGUgY2FzZSBzdGF0ZW1lbnQgdXAg dG93YXJkcyB0aGUgdG9wCi0rIyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcg c3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCi0rIyB3aWxsIHNpZ25hbCBhbiBlcnJvciBz YXlpbmcgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3QgYW4gb3BlcmF0aW5nCi0rIyBzeXN0ZW0sIGFu ZCB3ZSdsbCBuZXZlciBnZXQgdG8gdGhpcyBwb2ludC4KLSsKLStjYXNlICRiYXNpY19tYWNoaW5l IGluCi0rICAgICAgICBzY29yZS0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsgICAgICAgIHNwdS0q KQotKwkJb3M9LWVsZgotKwkJOzsKLSsJKi1hY29ybikKLSsJCW9zPS1yaXNjaXgxLjIKLSsJCTs7 Ci0rCWFybSotcmViZWwpCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCWFybSotc2VtaSkKLSsJCW9z PS1hb3V0Ci0rCQk7OwotKyAgICAgICAgYzR4LSogfCB0aWM0eC0qKQotKyAgICAgICAgCW9zPS1j b2ZmCi0rCQk7OwotKwkjIFRoaXMgbXVzdCBjb21lIGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCi0r CXBkcDEwLSopCi0rCQlvcz0tdG9wczIwCi0rCQk7OwotKwlwZHAxMS0qKQotKwkJb3M9LW5vbmUK LSsJCTs7Ci0rCSotZGVjIHwgdmF4LSopCi0rCQlvcz0tdWx0cml4NC4yCi0rCQk7OwotKwltNjgq LWFwb2xsbykKLSsJCW9zPS1kb21haW4KLSsJCTs7Ci0rCWkzODYtc3VuKQotKwkJb3M9LXN1bm9z NC4wLjIKLSsJCTs7Ci0rCW02ODAwMC1zdW4pCi0rCQlvcz0tc3Vub3MzCi0rCQkjIFRoaXMgYWxz byBleGlzdHMgaW4gdGhlIGNvbmZpZ3VyZSBwcm9ncmFtLCBidXQgd2FzIG5vdCB0aGUKLSsJCSMg ZGVmYXVsdC4KLSsJCSMgb3M9LXN1bm9zNAotKwkJOzsKLSsJbTY4Ki1jaXNjbykKLSsJCW9zPS1h b3V0Ci0rCQk7OwotKyAgICAgICAgbWVwLSopCi0rCQlvcz0tZWxmCi0rCQk7OwotKwltaXBzKi1j aXNjbykKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCW1pcHMqLSopCi0rCQlvcz0tZWxmCi0rCQk7Owot KwlvcjMyLSopCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi10dGkpCSMgbXVzdCBiZSBiZWZvcmUg c3BhcmMgZW50cnkgb3Igd2UgZ2V0IHRoZSB3cm9uZyBvcy4KLSsJCW9zPS1zeXN2MwotKwkJOzsK LSsJc3BhcmMtKiB8ICotc3VuKQotKwkJb3M9LXN1bm9zNC4xLjEKLSsJCTs7Ci0rCSotYmUpCi0r CQlvcz0tYmVvcwotKwkJOzsKLSsJKi1oYWlrdSkKLSsJCW9zPS1oYWlrdQotKwkJOzsKLSsJKi1p Ym0pCi0rCQlvcz0tYWl4Ci0rCQk7OwotKyAgICAJKi1rbnV0aCkKLSsJCW9zPS1tbWl4d2FyZQot KwkJOzsKLSsJKi13ZWMpCi0rCQlvcz0tcHJvZWxmCi0rCQk7OwotKwkqLXdpbmJvbmQpCi0rCQlv cz0tcHJvZWxmCi0rCQk7OwotKwkqLW9raSkKLSsJCW9zPS1wcm9lbGYKLSsJCTs7Ci0rCSotaHAp Ci0rCQlvcz0taHB1eAotKwkJOzsKLSsJKi1oaXRhY2hpKQotKwkJb3M9LWhpdXgKLSsJCTs7Ci0r CWk4NjAtKiB8ICotYXR0IHwgKi1uY3IgfCAqLWFsdG9zIHwgKi1tb3Rvcm9sYSB8ICotY29udmVy Z2VudCkKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwkqLWNibSkKLSsJCW9zPS1hbWlnYW9zCi0rCQk7 OwotKwkqLWRnKQotKwkJb3M9LWRndXgKLSsJCTs7Ci0rCSotZG9scGhpbikKLSsJCW9zPS1zeXN2 MwotKwkJOzsKLSsJbTY4ay1jY3VyKQotKwkJb3M9LXJ0dQotKwkJOzsKLSsJbTg4ay1vbXJvbiop Ci0rCQlvcz0tbHVuYQotKwkJOzsKLSsJKi1uZXh0ICkKLSsJCW9zPS1uZXh0c3RlcAotKwkJOzsK LSsJKi1zZXF1ZW50KQotKwkJb3M9LXB0eAotKwkJOzsKLSsJKi1jcmRzKQotKwkJb3M9LXVub3MK LSsJCTs7Ci0rCSotbnMpCi0rCQlvcz0tZ2VuaXgKLSsJCTs7Ci0rCWkzNzAtKikKLSsJCW9zPS1t dnMKLSsJCTs7Ci0rCSotbmV4dCkKLSsJCW9zPS1uZXh0c3RlcDMKLSsJCTs7Ci0rCSotZ291bGQp Ci0rCQlvcz0tc3lzdgotKwkJOzsKLSsJKi1oaWdobGV2ZWwpCi0rCQlvcz0tYnNkCi0rCQk7Owot KwkqLWVuY29yZSkKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCSotc2dpKQotKwkJb3M9LWlyaXgKLSsJ CTs7Ci0rCSotc2llbWVucykKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJKi1tYXNzY29tcCkKLSsJ CW9zPS1ydHUKLSsJCTs7Ci0rCWYzMFswMV0tZnVqaXRzdSB8IGY3MDAtZnVqaXRzdSkKLSsJCW9z PS11eHB2Ci0rCQk7OwotKwkqLXJvbTY4aykKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwkqLSpidWcp Ci0rCQlvcz0tY29mZgotKwkJOzsKLSsJKi1hcHBsZSkKLSsJCW9zPS1tYWNvcwotKwkJOzsKLSsJ Ki1hdGFyaSopCi0rCQlvcz0tbWludAotKwkJOzsKLSsJKikKLSsJCW9zPS1ub25lCi0rCQk7Owot K2VzYWMKLStmaQotKwotKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2Uga25vdyB0 aGUgb3MsIGFuZCB0aGUgQ1BVIHR5cGUsIGJ1dCBub3QgdGhlCi0rIyBtYW51ZmFjdHVyZXIuICBX ZSBwaWNrIHRoZSBsb2dpY2FsIG1hbnVmYWN0dXJlci4KLSt2ZW5kb3I9dW5rbm93bgotK2Nhc2Ug JGJhc2ljX21hY2hpbmUgaW4KLSsJKi11bmtub3duKQotKwkJY2FzZSAkb3MgaW4KLSsJCQktcmlz Y2l4KikKLSsJCQkJdmVuZG9yPWFjb3JuCi0rCQkJCTs7Ci0rCQkJLXN1bm9zKikKLSsJCQkJdmVu ZG9yPXN1bgotKwkJCQk7OwotKwkJCS1haXgqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0r CQkJLWJlb3MqKQotKwkJCQl2ZW5kb3I9YmUKLSsJCQkJOzsKLSsJCQktaHB1eCopCi0rCQkJCXZl bmRvcj1ocAotKwkJCQk7OwotKwkJCS1tcGVpeCopCi0rCQkJCXZlbmRvcj1ocAotKwkJCQk7Owot KwkJCS1oaXV4KikKLSsJCQkJdmVuZG9yPWhpdGFjaGkKLSsJCQkJOzsKLSsJCQktdW5vcyopCi0r CQkJCXZlbmRvcj1jcmRzCi0rCQkJCTs7Ci0rCQkJLWRndXgqKQotKwkJCQl2ZW5kb3I9ZGcKLSsJ CQkJOzsKLSsJCQktbHVuYSopCi0rCQkJCXZlbmRvcj1vbXJvbgotKwkJCQk7OwotKwkJCS1nZW5p eCopCi0rCQkJCXZlbmRvcj1ucwotKwkJCQk7OwotKwkJCS1tdnMqIHwgLW9wZW5lZCopCi0rCQkJ CXZlbmRvcj1pYm0KLSsJCQkJOzsKLSsJCQktb3M0MDAqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJ CTs7Ci0rCQkJLXB0eCopCi0rCQkJCXZlbmRvcj1zZXF1ZW50Ci0rCQkJCTs7Ci0rCQkJLXRwZiop Ci0rCQkJCXZlbmRvcj1pYm0KLSsJCQkJOzsKLSsJCQktdnhzaW0qIHwgLXZ4d29ya3MqIHwgLXdp bmRpc3MqKQotKwkJCQl2ZW5kb3I9d3JzCi0rCQkJCTs7Ci0rCQkJLWF1eCopCi0rCQkJCXZlbmRv cj1hcHBsZQotKwkJCQk7OwotKwkJCS1obXMqKQotKwkJCQl2ZW5kb3I9aGl0YWNoaQotKwkJCQk7 OwotKwkJCS1tcHcqIHwgLW1hY29zKikKLSsJCQkJdmVuZG9yPWFwcGxlCi0rCQkJCTs7Ci0rCQkJ LSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKLSsJCQkJdmVuZG9y PWF0YXJpCi0rCQkJCTs7Ci0rCQkJLXZvcyopCi0rCQkJCXZlbmRvcj1zdHJhdHVzCi0rCQkJCTs7 Ci0rCQllc2FjCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICJz L3Vua25vd24vJHZlbmRvci8iYAotKwkJOzsKLStlc2FjCi0rCi0rZWNobyAkYmFzaWNfbWFjaGlu ZSRvcwotK2V4aXQKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAn d3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1l c3RhbXA9JyIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKLSsjIHRpbWUt c3RhbXAtZW5kOiAiJyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvY3BwdW5pdC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NwcHVuaXQubTQKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9jb25maWcvY3BwdW5pdC5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY3BwdW5pdC5tNAky MDA5LTA1LTIyIDIyOjU0OjM3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5MyBAQAotK2Ru bAotK2RubCBBTV9QQVRIX0NQUFVOSVQoTUlOSU1VTS1WRVJTSU9OLCBbQUNUSU9OLUlGLUZPVU5E IFssIEFDVElPTi1JRi1OT1QtRk9VTkRdXSkKLStkbmwKLStBQ19ERUZVTihbQU1fUEFUSF9DUFBV TklUXSwKLStbCi0rCi0rQUNfQVJHX1dJVEgoY3BwdW5pdC1wcmVmaXgsWyAgLS13aXRoLWNwcHVu aXQtcHJlZml4PVBGWCAgIFByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9u YWwpXSwKLSsgICAgICAgICAgICBjcHB1bml0X2NvbmZpZ19wcmVmaXg9IiR3aXRodmFsIiwgY3Bw dW5pdF9jb25maWdfcHJlZml4PSIiKQotK0FDX0FSR19XSVRIKGNwcHVuaXQtZXhlYy1wcmVmaXgs WyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBV bml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpXSwKLSsgICAgICAgICAgICBjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeD0iJHdpdGh2YWwiLCBjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeD0iIikK LSsKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgot KyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXBy ZWZpeD0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVO SVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRj cHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0r ICBmaQotKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAg ICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNw cHVuaXRfY29uZmlnX3ByZWZpeCIKLSsgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0 fSAhPSB4c2V0IDsgdGhlbgotKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmln X3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKwotKyAgQUNfUEFU SF9QUk9HKENQUFVOSVRfQ09ORklHLCBjcHB1bml0LWNvbmZpZywgbm8pCi0rICBjcHB1bml0X3Zl cnNpb25fbWluPSQxCi0rCi0rICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIENwcHVuaXQgLSB2ZXJzaW9u ID49ICRjcHB1bml0X3ZlcnNpb25fbWluKQotKyAgbm9fY3BwdW5pdD0iIgotKyAgaWYgdGVzdCAi JENQUFVOSVRfQ09ORklHIiA9ICJubyIgOyB0aGVuCi0rICAgIEFDX01TR19SRVNVTFQobm8pCi0r ICAgIG5vX2NwcHVuaXQ9eWVzCi0rICBlbHNlCi0rICAgIENQUFVOSVRfQ0ZMQUdTPWAkQ1BQVU5J VF9DT05GSUcgLS1jZmxhZ3NgCi0rICAgIENQUFVOSVRfTElCUz1gJENQUFVOSVRfQ09ORklHIC0t bGlic2AKLSsgICAgQ1BQVU5JVF9WRVJTSU9OPWAkQ1BQVU5JVF9DT05GSUcgLS12ZXJzaW9uYAot KwotKyAgICBjcHB1bml0X21ham9yX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lPTiB8IFwK LSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpc KS9cMS8nYAotKyAgICBjcHB1bml0X21pbm9yX3ZlcnNpb249YGVjaG8gJENQUFVOSVRfVkVSU0lP TiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1sw LTldXSpcKS9cMi8nYAotKyAgICBjcHB1bml0X21pY3JvX3ZlcnNpb249YGVjaG8gJENQUFVOSVRf VkVSU0lPTiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwp LlwoW1swLTldXSpcKS9cMy8nYAotKwotKyAgICBjcHB1bml0X21ham9yX21pbj1gZWNobyAkY3Bw dW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChb WzAtOV1dKlwpLlwoW1swLTldXSpcKS9cMS8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21h am9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21ham9yX21pbj0wCi0rICAg IGZpCi0rICAgIAotKyAgICBjcHB1bml0X21pbm9yX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9u X21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwo W1swLTldXSpcKS9cMi8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pbm9yX21pbn0iID0g IngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pbm9yX21pbj0wCi0rICAgIGZpCi0rICAgIAot KyAgICBjcHB1bml0X21pY3JvX21pbj1gZWNobyAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsg ICAgICAgICAgIHNlZCAncy9cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS9c My8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pY3JvX21pbn0iID0gIngiIDsgdGhlbgot KyAgICAgICBjcHB1bml0X21pY3JvX21pbj0wCi0rICAgIGZpCi0rCi0rICAgIGNwcHVuaXRfdmVy c2lvbl9wcm9wZXI9YGV4cHIgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBcPiAk Y3BwdW5pdF9tYWpvcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVyc2lvbiBc PSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3JfdmVyc2lv biBcPiAkY3BwdW5pdF9taW5vcl9taW4gXHwgXAotKyAgICAgICAgJGNwcHVuaXRfbWFqb3JfdmVy c2lvbiBcPSAkY3BwdW5pdF9tYWpvcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlub3Jf dmVyc2lvbiBcPSAkY3BwdW5pdF9taW5vcl9taW4gXCYgXAotKyAgICAgICAgJGNwcHVuaXRfbWlj cm9fdmVyc2lvbiBcPj0gJGNwcHVuaXRfbWljcm9fbWluIGAKLSsKLSsgICAgaWYgdGVzdCAiJGNw cHVuaXRfdmVyc2lvbl9wcm9wZXIiID0gIjEiIDsgdGhlbgotKyAgICAgIEFDX01TR19SRVNVTFQo WyRjcHB1bml0X21ham9yX3ZlcnNpb24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9t aWNyb192ZXJzaW9uXSkKLSsgICAgZWxzZQotKyAgICAgIEFDX01TR19SRVNVTFQobm8pCi0rICAg ICAgbm9fY3BwdW5pdD15ZXMKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0ZXN0ICJ4JG5vX2Nw cHVuaXQiID0geCA7IHRoZW4KLSsgICAgIGlmZWxzZShbJDJdLCAsIDosIFskMl0pICAgICAKLSsg IGVsc2UKLSsgICAgIENQUFVOSVRfQ0ZMQUdTPSIiCi0rICAgICBDUFBVTklUX0xJQlM9IiIKLSsg ICAgIGlmZWxzZShbJDNdLCAsIDosIFskM10pCi0rICBmaQotKwotKyAgQUNfU1VCU1QoQ1BQVU5J VF9DRkxBR1MpCi0rICBBQ19TVUJTVChDUFBVTklUX0xJQlMpCi0rICBBQ19TVUJTVChDUFBVTklU X1ZFUlNJT04pCi0rXSkKLSsKLSsKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvZGVwY29tcCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2RlcGNvbXAKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvZGVwY29tcAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvZGVwY29tcAkyMDA5LTA1LTIzIDEw OjAyOjAyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1ODkgQEAKLSsjISAvYmluL3NoCi0r IyBkZXBjb21wIC0gY29tcGlsZSBhIHByb2dyYW0gZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMgYXMg c2lkZS1lZmZlY3RzCi0rCi0rc2NyaXB0dmVyc2lvbj0yMDA3LTAzLTI5LjAxCi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgRnJlZSBT b2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy LCBvciAoYXQgeW91ciBvcHRpb24pCi0rIyBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07 IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4s IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKLSsjIDAyMTEwLTEz MDEsIFVTQS4KLSsKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQg b2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2Vu ZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1l IGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJv Z3JhbS4KLSsKLSsjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBBbGV4YW5kcmUgT2xpdmEgPG9saXZh QGRjYy51bmljYW1wLmJyPi4KLSsKLStjYXNlICQxIGluCi0rICAnJykKLSsgICAgIGVjaG8gIiQw OiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+ JjIKLSsgICAgIGV4aXQgMTsKLSsgICAgIDs7Ci0rICAtaCB8IC0taCopCi0rICAgIGNhdCA8PFxF T0YKLStVc2FnZTogZGVwY29tcCBbLS1oZWxwXSBbLS12ZXJzaW9uXSBQUk9HUkFNIFtBUkdTXQot KwotK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNvbXBpbGUgYSBmaWxlLCBnZW5lcmF0aW5nIGRlcGVu ZGVuY2llcwotK2FzIHNpZGUtZWZmZWN0cy4KLSsKLStFbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0r ICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRyYWNraW5nIG1vZGUuCi0rICBzb3VyY2UgICAgICBT b3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFNUyBBUkdTJy4KLSsgIG9iamVjdCAgICAgIE9iamVj dCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMgQVJHUycuCi0rICBERVBESVIgICAgICBkaXJlY3Rv cnkgd2hlcmUgdG8gc3RvcmUgZGVwZW5kZW5jaWVzLgotKyAgZGVwZmlsZSAgICAgRGVwZW5kZW5j eSBmaWxlIHRvIG91dHB1dC4KLSsgIHRtcGRlcGZpbGUgIFRlbXBvcmFyeSBmaWxlIHRvIHVzZSB3 aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMuCi0rICBsaWJ0b29sICAgICBXaGV0aGVyIGxpYnRv b2wgaXMgdXNlZCAoeWVzL25vKS4KLSsKLStSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdu dS5vcmc+LgotK0VPRgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rICAtdiB8IC0tdiopCi0rICAg IGVjaG8gImRlcGNvbXAgJHNjcmlwdHZlcnNpb24iCi0rICAgIGV4aXQgJD8KLSsgICAgOzsKLStl c2FjCi0rCi0raWYgdGVzdCAteiAiJGRlcG1vZGUiIHx8IHRlc3QgLXogIiRzb3VyY2UiIHx8IHRl c3QgLXogIiRvYmplY3QiOyB0aGVuCi0rICBlY2hvICJkZXBjb21wOiBWYXJpYWJsZXMgc291cmNl LCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBiZSBzZXQiIDE+JjIKLSsgIGV4aXQgMQotK2ZpCi0r Ci0rIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9iYXIubyBvciBzdWIvYmFyLm9iaiBnbyBpbnRvIHN1 Yi8uZGVwcy9iYXIuUG8uCi0rZGVwZmlsZT0ke2RlcGZpbGUtYGVjaG8gIiRvYmplY3QiIHwKLSsg IHNlZCAnc3xbXlxcL10qJHwnJHtERVBESVItLmRlcHN9Jy8mfDtzfFwuXChbXi5dKlwpJHwuUFwx fDtzfFBvYmokfFBvfCdgfQotK3RtcGRlcGZpbGU9JHt0bXBkZXBmaWxlLWBlY2hvICIkZGVwZmls ZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9Ci0rCi0rcm0gLWYgIiR0bXBkZXBmaWxl IgotKwotKyMgU29tZSBtb2RlcyB3b3JrIGp1c3QgbGlrZSBvdGhlciBtb2RlcywgYnV0IHVzZSBk aWZmZXJlbnQgZmxhZ3MuICBXZQotKyMgcGFyYW1ldGVyaXplIGhlcmUsIGJ1dCBzdGlsbCBsaXN0 IHRoZSBtb2RlcyBpbiB0aGUgYmlnIGNhc2UgYmVsb3csCi0rIyB0byBtYWtlIGRlcGVuZC5tNCBl YXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCogdXNlIGEgY2FzZQotKyMgaGVy ZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9ubHkgY29udGFpbiBvbmUgY2FzZSBzdGF0ZW1lbnQu Ci0raWYgdGVzdCAiJGRlcG1vZGUiID0gaHA7IHRoZW4KLSsgICMgSFAgY29tcGlsZXIgdXNlcyAt TSBhbmQgbm8gZXh0cmEgYXJnLgotKyAgZ2NjZmxhZz0tTQotKyAgZGVwbW9kZT1nY2MKLStmaQot KwotK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGRhc2hYbXN0ZG91dDsgdGhlbgotKyAgICMgVGhpcyBp cyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVudCBhcmd1bWVudC4KLSsgICBk YXNobWZsYWc9LXhNCi0rICAgZGVwbW9kZT1kYXNobXN0ZG91dAotK2ZpCi0rCi0rY2FzZSAiJGRl cG1vZGUiIGluCi0rZ2NjMykKLSsjIyBnY2MgMyBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgdHJhY2tp bmcgdGhhdCBkb2VzIGV4YWN0bHkgd2hhdAotKyMjIHdlIHdhbnQuICBZYXkhICBOb3RlOiBmb3Ig c29tZSByZWFzb24gbGlidG9vbCAxLjQgZG9lc24ndCBsaWtlCi0rIyMgaXQgaWYgLU1EIC1NUCBj b21lcyBhZnRlciB0aGUgLU1GIHN0dWZmLiAgSG1tLgotKyMjIFVuZm9ydHVuYXRlbHksIEZyZWVC U0QgYzg5IGFjY2VwdGFuY2Ugb2YgZmxhZ3MgZGVwZW5kcyB1cG9uCi0rIyMgdGhlIGNvbW1hbmQg bGluZSBhcmd1bWVudCBvcmRlcjsgc28gYWRkIHRoZSBmbGFncyB3aGVyZSB0aGV5Ci0rIyMgYXBw ZWFyIGluIGRlcGVuZDIuYW0uICBOb3RlIHRoYXQgdGhlIHNsb3dkb3duIGluY3VycmVkIGhlcmUK LSsjIyBhZmZlY3RzIG9ubHkgY29uZmlndXJlOiBpbiBtYWtlZmlsZXMsICVGQVNUREVQJSBzaG9y dGN1dHMgdGhpcy4KLSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGFyZyBpbgotKyAgICAt Yykgc2V0IGZub3JkICIkQCIgLU1UICIkb2JqZWN0IiAtTUQgLU1QIC1NRiAiJHRtcGRlcGZpbGUi ICIkYXJnIiA7OwotKyAgICAqKSAgc2V0IGZub3JkICIkQCIgIiRhcmciIDs7Ci0rICAgIGVzYWMK LSsgICAgc2hpZnQgIyBmbm9yZAotKyAgICBzaGlmdCAjICRhcmcKLSsgIGRvbmUKLSsgICIkQCIK LSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAg ICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBtdiAiJHRt cGRlcGZpbGUiICIkZGVwZmlsZSIKLSsgIDs7Ci0rCi0rZ2NjKQotKyMjIFRoZXJlIGFyZSB2YXJp b3VzIHdheXMgdG8gZ2V0IGRlcGVuZGVuY3kgb3V0cHV0IGZyb20gZ2NjLiAgSGVyZSdzCi0rIyMg d2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRob2Q6Ci0rIyMgLSBEb24ndCB3YW50 IHRvIHVzZSAtTUQgYmVjYXVzZSB3ZSdkIGxpa2UgdGhlIGRlcGVuZGVuY2llcyB0byBlbmQKLSsj IyAgIHVwIGluIGEgc3ViZGlyLiAgSGF2aW5nIHRvIHJlbmFtZSBieSBoYW5kIGlzIHVnbHkuCi0r IyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55d2F5IHRvIHN1cHBvcnQgb3RoZXIg Y29tcGlsZXJzLikKLSsjIyAtIFRoZSBERVBFTkRFTkNJRVNfT1VUUFVUIGVudmlyb25tZW50IHZh cmlhYmxlIG1ha2VzIGdjYyBhY3QgbGlrZQotKyMjICAgLU1NLCBub3QgLU0gKGRlc3BpdGUgd2hh dCB0aGUgZG9jcyBzYXkpLgotKyMjIC0gVXNpbmcgLU0gZGlyZWN0bHkgbWVhbnMgcnVubmluZyB0 aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKLSsjIyAgIHRoYW4gcmVuYW1pbmcpLgotKyAg aWYgdGVzdCAteiAiJGdjY2ZsYWciOyB0aGVuCi0rICAgIGdjY2ZsYWc9LU1ELAotKyAgZmkKLSsg ICIkQCIgLVdwLCIkZ2NjZmxhZyR0bXBkZXBmaWxlIgotKyAgc3RhdD0kPwotKyAgaWYgdGVzdCAk c3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsg ICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGVjaG8gIiRvYmpl Y3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0rICBhbHBoYT1BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZ WmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Ci0rIyMgVGhlIHNlY29uZCAtZSBleHByZXNzaW9u IGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBkcml2ZSBsZXR0ZXJzLgotKyAgc2Vk IC1lICdzL15bXjpdKjogLyAvJyBcCi0rICAgICAgLWUgJ3MvXlsnJGFscGhhJ106XC9bXjpdKjog LyAvJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotKyMjIFRoaXMgbmV4dCBwaWVjZSBv ZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBmaWxlJyBwcm9ibGVtLgotKyMjIFRo ZSBwcm9ibGVtIGlzIHRoYXQgd2hlbiBhIGhlYWRlciBmaWxlIHdoaWNoIGFwcGVhcnMgaW4gYSAu UCBmaWxlCi0rIyMgaXMgZGVsZXRlZCwgdGhlIGRlcGVuZGVuY3kgY2F1c2VzIG1ha2UgdG8gZGll IChiZWNhdXNlIHRoZXJlIGlzCi0rIyMgdHlwaWNhbGx5IG5vIHdheSB0byByZWJ1aWxkIHRoZSBo ZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKLSsjIyBkdW1teSBkZXBlbmRlbmNpZXMg Zm9yIGVhY2ggaGVhZGVyIGZpbGUuICBUb28gYmFkIGdjYyBkb2Vzbid0IGRvCi0rIyMgdGhpcyBm b3IgdXMgZGlyZWN0bHkuCi0rICB0ciAnICcgJwotKycgPCAiJHRtcGRlcGZpbGUiIHwKLSsjIyBT b21lIHZlcnNpb25zIG9mIGdjYyBwdXQgYSBzcGFjZSBiZWZvcmUgdGhlIGA6Jy4gIE9uIHRoZSB0 aGVvcnkKLSsjIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21ldGhpbmcsIHdlIGFkZCBhIHNwYWNl IHRvIHRoZSBvdXRwdXQgYXMKLSsjIyB3ZWxsLgotKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQ VVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rIyMgY29ycmVjdGx5 LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4K LSsgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdz LyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwot K2hwKQotKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMg d29yay4gIEl0IHdvcmtzIGJ5Ci0rICAjIGxvb2tpbmcgYXQgdGhlIHRleHQgb2YgdGhpcyBzY3Jp cHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCi0rICAjIHNpbmNlIGl0IGlzIGNoZWNr ZWQgZm9yIGFib3ZlLgotKyAgZXhpdCAxCi0rICA7OwotKwotK3NnaSkKLSsgIGlmIHRlc3QgIiRs aWJ0b29sIiA9IHllczsgdGhlbgotKyAgICAiJEAiICItV3AsLU1EdXBkYXRlLCR0bXBkZXBmaWxl IgotKyAgZWxzZQotKyAgICAiJEAiIC1NRHVwZGF0ZSAiJHRtcGRlcGZpbGUiCi0rICBmaQotKyAg c3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJt IC1mICIkdG1wZGVwZmlsZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIHJtIC1mICIkZGVw ZmlsZSIKLSsKLSsgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbiAgIyB5ZXMsIHRoZSBz b3VyY2VmaWxlIGRlcGVuZCBvbiBvdGhlciBmaWxlcwotKyAgICBlY2hvICIkb2JqZWN0IDogXFwi ID4gIiRkZXBmaWxlIgotKwotKyAgICAjIENsaXAgb2ZmIHRoZSBpbml0aWFsIGVsZW1lbnQgKHRo ZSBkZXBlbmRlbnQpLiAgRG9uJ3QgdHJ5IHRvIGJlCi0rICAgICMgY2xldmVyIGFuZCByZXBsYWNl IHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29uJ3QgaGFuZGxlCi0rICAgICMgbGlu ZXMgd2l0aCBtb3JlIHRoYW4gYSBmaXhlZCBudW1iZXIgb2YgY2hhcmFjdGVycyAoNDA5NiBpbgot KyAgICAjIElSSVggNi4yIHNlZCwgODE5MiBpbiBJUklYIDYuNSkuICBXZSBhbHNvIHJlbW92ZSBj b21tZW50IGxpbmVzOwotKyAgICAjIHRoZSBJUklYIGNjIGFkZHMgY29tbWVudHMgbGlrZSBgIzpm ZWMnIHRvIHRoZSBlbmQgb2YgdGhlCi0rICAgICMgZGVwZW5kZW5jeSBsaW5lLgotKyAgICB0ciAn ICcgJwotKycgPCAiJHRtcGRlcGZpbGUiIFwKLSsgICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAt ZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIHwgXAotKyAgICB0ciAnCi0rJyAnICcgPj4gJGRlcGZp bGUKLSsgICAgZWNobyA+PiAkZGVwZmlsZQotKwotKyAgICAjIFRoZSBzZWNvbmQgcGFzcyBnZW5l cmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KLSsgICAgdHIgJyAnICcK LSsnIDwgIiR0bXBkZXBmaWxlIiBcCi0rICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8j LiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKLSsgICA+PiAkZGVwZmlsZQotKyAgZWxz ZQotKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2ll cywgc28ganVzdAotKyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBl cnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKLSsgICAgIyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNj aGVtZS4KLSsgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgIGZpCi0rICBybSAtZiAi JHRtcGRlcGZpbGUiCi0rICA7OwotKwotK2FpeCkKLSsgICMgVGhlIEMgZm9yIEFJWCBDb21waWxl ciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMKLSsgICMgaW4gYSAudSBmaWxl LiAgSW4gb2xkZXIgdmVyc2lvbnMsIHRoaXMgZmlsZSBhbHdheXMgbGl2ZXMgaW4gdGhlCi0rICAj IGN1cnJlbnQgZGlyZWN0b3J5LiAgQWxzbywgdGhlIEFJWCBjb21waWxlciBwdXRzIGAkb2JqZWN0 OicgYXQgdGhlCi0rICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUg ZGlyZWN0b3J5IGluZm9ybWF0aW9uLgotKyAgIyBWZXJzaW9uIDYgdXNlcyB0aGUgZGlyZWN0b3J5 IGluIGJvdGggY2FzZXMuCi0rICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9d KiR8L3wnYAotKyAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9Ci0rICBiYXNlPWBl Y2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5s byQvLydgCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAgdG1wZGVwZmls ZTE9JGRpciRiYXNlLnUKLSsgICAgdG1wZGVwZmlsZTI9JGJhc2UudQotKyAgICB0bXBkZXBmaWxl Mz0kZGlyLmxpYnMvJGJhc2UudQotKyAgICAiJEAiIC1XYywtTQotKyAgZWxzZQotKyAgICB0bXBk ZXBmaWxlMT0kZGlyJGJhc2UudQotKyAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UudQotKyAgICB0 bXBkZXBmaWxlMz0kZGlyJGJhc2UudQotKyAgICAiJEAiIC1NCi0rICBmaQotKyAgc3RhdD0kPwot KwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJtIC1mICIk dG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiCi0rICAgIGV4aXQgJHN0 YXQKLSsgIGZpCi0rCi0rICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRl cGZpbGUyIiAiJHRtcGRlcGZpbGUzIgotKyAgZG8KLSsgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUi ICYmIGJyZWFrCi0rICBkb25lCi0rICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KLSsg ICAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBkZXBlbmRlbnQuaCcuCi0rICAg ICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCi0rICAgICMgYCRv YmplY3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRvIHNpbXBseSBgZGVwZW5kZW50Lmg6Jy4KLSsg ICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIk ZGVwZmlsZSIKLSsgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgotKyAg ICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZp bGUiID4+ICIkZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5v dCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNvIGp1c3QKLSsgICAgIyBzdG9yZSBhIGR1bW15 IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3JzIHdpdGggdGhlIE1ha2VmaWxlCi0rICAgICMg ImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCi0rICAgIGVjaG8gIiNkdW1teSIgPiAiJGRl cGZpbGUiCi0rICBmaQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLStpY2MpCi0r ICAjIEludGVsJ3MgQyBjb21waWxlciB1bmRlcnN0YW5kcyBgLU1EIC1NRiBmaWxlJy4gIEhvd2V2 ZXIgb24KLSsgICMgICAgaWNjIC1NRCAtTUYgZm9vLmQgLWMgLW8gc3ViL2Zvby5vIHN1Yi9mb28u YwotKyAgIyBJQ0MgNy4wIHdpbGwgZmlsbCBmb28uZCB3aXRoIHNvbWV0aGluZyBsaWtlCi0rICAj ICAgIGZvby5vOiBzdWIvZm9vLmMKLSsgICMgICAgZm9vLm86IHN1Yi9mb28uaAotKyAgIyB3aGlj aCBpcyB3cm9uZy4gIFdlIHdhbnQ6Ci0rICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5jCi0rICAj ICAgIHN1Yi9mb28ubzogc3ViL2Zvby5oCi0rICAjICAgIHN1Yi9mb28uYzoKLSsgICMgICAgc3Vi L2Zvby5oOgotKyAgIyBJQ0MgNy4xIHdpbGwgb3V0cHV0Ci0rICAjICAgIGZvby5vOiBzdWIvZm9v LmMgc3ViL2Zvby5oCi0rICAjIGFuZCB3aWxsIHdyYXAgbG9uZyBsaW5lcyB1c2luZyBcIDoKLSsg ICMgICAgZm9vLm86IHN1Yi9mb28uYyAuLi4gXAotKyAgIyAgICAgc3ViL2Zvby5oIC4uLiBcCi0r ICAjICAgICAuLi4KLSsKLSsgICIkQCIgLU1EIC1NRiAiJHRtcGRlcGZpbGUiCi0rICBzdGF0PSQ/ Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0 bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAgcm0gLWYgIiRkZXBmaWxlIgot KyAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gYGZvby5vOiBkZXBlbmRlbnQuaCcsCi0rICAj IG9yIGBmb28ubzogZGVwMS5oIGRlcDIuaCBcJywgb3IgYCBkZXAzLmggZGVwNC5oIFwnLgotKyAg IyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KLSsgICMgYCRvYmpl Y3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRvIHNpbXBseSBgZGVwZW5kZW50Lmg6Jy4KLSsgIHNl ZCAicyxeW146XSo6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSsg ICMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlz IGludm9jYXRpb24KLSsgICMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGlu dm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KLSsgIHNlZCAncyxeW146XSo6IFwoLipcKSQsXDEs O3MvXlxcJC8vOy9eJC9kOy86JC9kJyA8ICIkdG1wZGVwZmlsZSIgfAotKyAgICBzZWQgLWUgJ3Mv JC8gOi8nID4+ICIkZGVwZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0r aHAyKQotKyAgIyBUaGUgImhwIiBzdGFuemEgYWJvdmUgZG9lcyBub3Qgd29yayB3aXRoIGFDQyAo QysrKSBhbmQgSFAncyBpYTY0Ci0rICAjIGNvbXBpbGVycywgd2hpY2ggaGF2ZSBpbnRlZ3JhdGVk IHByZXByb2Nlc3NvcnMuICBUaGUgY29ycmVjdCBvcHRpb24KLSsgICMgdG8gdXNlIHdpdGggdGhl c2UgaXMgK01ha2VkOyBpdCB3cml0ZXMgZGVwZW5kZW5jaWVzIHRvIGEgZmlsZSBuYW1lZAotKyAg IyAnZm9vLmQnLCB3aGljaCBsYW5kcyBuZXh0IHRvIHRoZSBvYmplY3QgZmlsZSwgd2hlcmV2ZXIg dGhhdAotKyAgIyBoYXBwZW5zIHRvIGJlLgotKyAgIyBNdWNoIG9mIHRoaXMgaXMgc2ltaWxhciB0 byB0aGUgdHJ1NjQgY2FzZTsgc2VlIGNvbW1lbnRzIHRoZXJlLgotKyAgZGlyPWBlY2hvICIkb2Jq ZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AKLSsgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVj dCIgJiYgZGlyPQotKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAt ZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVz OyB0aGVuCi0rICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFzZS5kCi0rICAgIHRtcGRlcGZpbGUyPSRk aXIubGlicy8kYmFzZS5kCi0rICAgICIkQCIgLVdjLCtNYWtlZAotKyAgZWxzZQotKyAgICB0bXBk ZXBmaWxlMT0kZGlyJGJhc2UuZAotKyAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAotKyAgICAi JEAiICtNYWtlZAotKyAgZmkKLSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRo ZW4gOgotKyAgZWxzZQotKyAgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIK LSsgICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rCi0rICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRl cGZpbGUxIiAiJHRtcGRlcGZpbGUyIgotKyAgZG8KLSsgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUi ICYmIGJyZWFrCi0rICBkb25lCi0rICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KLSsg ICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiICIkdG1wZGVwZmlsZSIgPiAiJGRl cGZpbGUiCi0rICAgICMgQWRkIGBkZXBlbmRlbnQuaDonIGxpbmVzLgotKyAgICBzZWQgLW5lICcy LCR7OyBzL14gKi8vOyBzLyBcXCokLy87IHMvJC86LzsgcDt9JyAiJHRtcGRlcGZpbGUiID4+ICIk ZGVwZmlsZSIKLSsgIGVsc2UKLSsgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgIGZp Ci0rICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1wZGVwZmlsZTIiCi0rICA7OwotKwotK3RydTY0 KQotKyAgICMgVGhlIFRydTY0IGNvbXBpbGVyIHVzZXMgLU1EIHRvIGdlbmVyYXRlIGRlcGVuZGVu Y2llcyBhcyBhIHNpZGUKLSsgICAjIGVmZmVjdC4gIGBjYyAtTUQgLW8gZm9vLm8gLi4uJyBwdXRz IHRoZSBkZXBlbmRlbmNpZXMgaW50byBgZm9vLm8uZCcuCi0rICAgIyBBdCBsZWFzdCBvbiBBbHBo YS9SZWRoYXQgNi4xLCBDb21wYXEgQ0NDIFY2LjItNTA0IHNlZW1zIHRvIHB1dAotKyAgICMgZGVw ZW5kZW5jaWVzIGluIGBmb28uZCcgaW5zdGVhZCwgc28gd2UgY2hlY2sgZm9yIHRoYXQgdG9vLgot KyAgICMgU3ViZGlyZWN0b3JpZXMgYXJlIHJlc3BlY3RlZC4KLSsgICBkaXI9YGVjaG8gIiRvYmpl Y3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAotKyAgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVj dCIgJiYgZGlyPQotKyAgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfF4uKi98fCcg LWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsKLSsgICBpZiB0ZXN0ICIkbGlidG9vbCIg PSB5ZXM7IHRoZW4KLSsgICAgICAjIFdpdGggVHJ1NjQgY2MsIHNoYXJlZCBvYmplY3RzIGNhbiBh bHNvIGJlIHVzZWQgdG8gbWFrZSBhCi0rICAgICAgIyBzdGF0aWMgbGlicmFyeS4gIFRoaXMgbWVj aGFuaXNtIGlzIHVzZWQgaW4gbGlidG9vbCAxLjQgc2VyaWVzIHRvCi0rICAgICAgIyBoYW5kbGUg Ym90aCBzaGFyZWQgYW5kIHN0YXRpYyBsaWJyYXJpZXMgaW4gYSBzaW5nbGUgY29tcGlsYXRpb24u Ci0rICAgICAgIyBXaXRoIGxpYnRvb2wgMS40LCBkZXBlbmRlbmNpZXMgd2VyZSBvdXRwdXQgaW4g JGRpci5saWJzLyRiYXNlLmxvLmQuCi0rICAgICAgIwotKyAgICAgICMgV2l0aCBsaWJ0b29sIDEu NSB0aGlzIGV4Y2VwdGlvbiB3YXMgcmVtb3ZlZCwgYW5kIGxpYnRvb2wgbm93Ci0rICAgICAgIyBn ZW5lcmF0ZXMgMiBzZXBhcmF0ZSBvYmplY3RzIGZvciB0aGUgMiBsaWJyYXJpZXMuICBUaGVzZSB0 d28KLSsgICAgICAjIGNvbXBpbGF0aW9ucyBvdXRwdXQgZGVwZW5kZW5jaWVzIGluICRkaXIubGli cy8kYmFzZS5vLmQgYW5kCi0rICAgICAgIyBpbiAkZGlyJGJhc2Uuby5kLiAgV2UgaGF2ZSB0byBj aGVjayBmb3IgYm90aCBmaWxlcywgYmVjYXVzZQotKyAgICAgICMgb25lIG9mIHRoZSB0d28gY29t cGlsYXRpb25zIGNhbiBiZSBkaXNhYmxlZC4gIFdlIHNob3VsZCBwcmVmZXIKLSsgICAgICAjICRk aXIkYmFzZS5vLmQgb3ZlciAkZGlyLmxpYnMvJGJhc2Uuby5kIGJlY2F1c2UgdGhlIGxhdHRlciBp cwotKyAgICAgICMgYXV0b21hdGljYWxseSBjbGVhbmVkIHdoZW4gLmxpYnMvIGlzIGRlbGV0ZWQs IHdoaWxlIGlnbm9yaW5nCi0rICAgICAgIyB0aGUgZm9ybWVyIHdvdWxkIGNhdXNlIGEgZGlzdGNs ZWFuY2hlY2sgcGFuaWMuCi0rICAgICAgdG1wZGVwZmlsZTE9JGRpci5saWJzLyRiYXNlLmxvLmQg ICAjIGxpYnRvb2wgMS40Ci0rICAgICAgdG1wZGVwZmlsZTI9JGRpciRiYXNlLm8uZCAgICAgICAg ICAjIGxpYnRvb2wgMS41Ci0rICAgICAgdG1wZGVwZmlsZTM9JGRpci5saWJzLyRiYXNlLm8uZCAg ICAjIGxpYnRvb2wgMS41Ci0rICAgICAgdG1wZGVwZmlsZTQ9JGRpci5saWJzLyRiYXNlLmQgICAg ICAjIENvbXBhcSBDQ0MgVjYuMi01MDQKLSsgICAgICAiJEAiIC1XYywtTUQKLSsgICBlbHNlCi0r ICAgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLm8uZAotKyAgICAgIHRtcGRlcGZpbGUyPSRkaXIk YmFzZS5kCi0rICAgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLmQKLSsgICAgICB0bXBkZXBmaWxl ND0kZGlyJGJhc2UuZAotKyAgICAgICIkQCIgLU1ECi0rICAgZmkKLSsKLSsgICBzdGF0PSQ/Ci0r ICAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICAgZWxzZQotKyAgICAgIHJtIC1mICIk dG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQi Ci0rICAgICAgZXhpdCAkc3RhdAotKyAgIGZpCi0rCi0rICAgZm9yIHRtcGRlcGZpbGUgaW4gIiR0 bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIgIiR0bXBkZXBmaWxlNCIK LSsgICBkbwotKyAgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCi0rICAgZG9uZQot KyAgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotKyAgICAgIHNlZCAtZSAicyxeLipc LlthLXpdKjosJG9iamVjdDosIiA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICAgICAg IyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgotKyAgICAgIHNlZCAtZSAncyxe LipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBm aWxlIgotKyAgIGVsc2UKLSsgICAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgIGZp Ci0rICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgIDs7Ci0rCi0rI25vc2lkZWVmZmVjdCkKLSsg ICMgVGhpcyBjb21tZW50IGFib3ZlIGlzIHVzZWQgYnkgYXV0b21ha2UgdG8gdGVsbCBzaWRlLWVm ZmVjdAotKyAgIyBkZXBlbmRlbmN5IHRyYWNraW5nIG1lY2hhbmlzbXMgZnJvbSBzbG93ZXIgb25l cy4KLSsKLStkYXNobXN0ZG91dCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1 cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdheXMgd3JpdGUgdGhl IHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dCwgcmVnYXJkbGVzcyBvZiAtby4KLSsgICIkQCIg fHwgZXhpdCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSsgIGlmIHRl c3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9 Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9uZQotKyAgICBzaGlmdAotKyAgZmkK LSsKLSsgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KLSsgIElGUz0iICIKLSsgIGZvciBhcmcKLSsg IGRvCi0rICAgIGNhc2UgJGFyZyBpbgotKyAgICAtbykKLSsgICAgICBzaGlmdAotKyAgICAgIDs7 Ci0rICAgICRvYmplY3QpCi0rICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAg IHNldCBmbm9yZCAiJEAiICIkYXJnIgotKyAgICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgICBzaGlm dCAjICRhcmcKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0rICB0ZXN0IC16ICIk ZGFzaG1mbGFnIiAmJiBkYXNobWZsYWc9LU0KLSsgICMgUmVxdWlyZSBhdCBsZWFzdCB0d28gY2hh cmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKLSsgICMgaW4gdGhlIHRhcmdldCBuYW1l LiAgVGhpcyBpcyB0byBjb3BlIHdpdGggRE9TLXN0eWxlIGZpbGVuYW1lczoKLSsgICMgYSBkZXBl bmRlbmN5IHN1Y2ggYXMgYGM6L2Zvby9iYXInIGNvdWxkIGJlIHNlZW4gYXMgdGFyZ2V0IGBjJyBv dGhlcndpc2UuCi0rICAiJEAiICRkYXNobWZsYWcgfAotKyAgICBzZWQgJ3M6XlsgIF0qW146IF1b XjpdW146XSpcOlsgICAgXSo6JyIkb2JqZWN0IidcOiA6JyA+ICIkdG1wZGVwZmlsZSIKLSsgIHJt IC1mICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCi0rICB0 ciAnICcgJwotKycgPCAiJHRtcGRlcGZpbGUiIHwgXAotKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhl IEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rIyMgY29ycmVj dGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3Vu ZC4KLSsgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1l ICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7Owot KwotK2Rhc2hYbXN0ZG91dCkKLSsgICMgVGhpcyBjYXNlIG9ubHkgZXhpc3RzIHRvIHNhdGlzZnkg ZGVwZW5kLm00LiAgSXQgaXMgbmV2ZXIgYWN0dWFsbHkKLSsgICMgcnVuLCBhcyB0aGlzIG1vZGUg aXMgc3BlY2lhbGx5IHJlY29nbml6ZWQgaW4gdGhlIHByZWFtYmxlLgotKyAgZXhpdCAxCi0rICA7 OwotKwotK21ha2VkZXBlbmQpCi0rICAiJEAiIHx8IGV4aXQgJD8KLSsgICMgUmVtb3ZlIGFueSBM aWJ0b29sIGNhbGwKLSsgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGls ZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9u ZQotKyAgICBzaGlmdAotKyAgZmkKLSsgICMgWCBtYWtlZGVwZW5kCi0rICBzaGlmdAotKyAgY2xl YXJlZD1ubwotKyAgZm9yIGFyZyBpbiAiJEAiOyBkbwotKyAgICBjYXNlICRjbGVhcmVkIGluCi0r ICAgIG5vKQotKyAgICAgIHNldCAiIjsgc2hpZnQKLSsgICAgICBjbGVhcmVkPXllcyA7OwotKyAg ICBlc2FjCi0rICAgIGNhc2UgIiRhcmciIGluCi0rICAgIC1EKnwtSSopCi0rICAgICAgc2V0IGZu b3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotKyAgICAjIFN0cmlwIGFueSBvcHRpb24gdGhhdCBt YWtlZGVwZW5kIG1heSBub3QgdW5kZXJzdGFuZC4gIFJlbW92ZQotKyAgICAjIHRoZSBvYmplY3Qg dG9vLCBvdGhlcndpc2UgbWFrZWRlcGVuZCB3aWxsIHBhcnNlIGl0IGFzIGEgc291cmNlIGZpbGUu Ci0rICAgIC0qfCRvYmplY3QpCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBzZXQgZm5vcmQg IiRAIiAiJGFyZyI7IHNoaWZ0IDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgIG9ial9zdWZmaXg9 ImBlY2hvICRvYmplY3QgfCBzZWQgJ3MvXi4qXC4vLi8nYCIKLSsgIHRvdWNoICIkdG1wZGVwZmls ZSIKLSsgICR7TUFLRURFUEVORC1tYWtlZGVwZW5kfSAtbyIkb2JqX3N1ZmZpeCIgLWYiJHRtcGRl cGZpbGUiICIkQCIKLSsgIHJtIC1mICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIg PiAiJGRlcGZpbGUiCi0rICBzZWQgJzEsMmQnICIkdG1wZGVwZmlsZSIgfCB0ciAnICcgJwotKycg fCBcCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2Vz cyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBz ZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotKyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAt ZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKLSsg IHJtIC1mICIkdG1wZGVwZmlsZSIgIiR0bXBkZXBmaWxlIi5iYWsKLSsgIDs7Ci0rCi0rY3BwKQot KyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29t cGlsZXIgKm11c3QqCi0rICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8g c3Rkb3V0LgotKyAgIiRAIiB8fCBleGl0ICQ/Ci0rCi0rICAjIFJlbW92ZSB0aGUgY2FsbCB0byBM aWJ0b29sLgotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxlIHRl c3QgJDEgIT0gJy0tbW9kZT1jb21waWxlJzsgZG8KLSsgICAgICBzaGlmdAotKyAgICBkb25lCi0r ICAgIHNoaWZ0Ci0rICBmaQotKwotKyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgotKyAgSUZTPSIg IgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgY2FzZSAkYXJnIGluCi0rICAgIC1vKQotKyAgICAg IHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgJG9iamVjdCkKLSsgICAgICBzaGlmdAotKyAgICAgIDs7 Ci0rICAgICopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciCi0rICAgICAgc2hpZnQgIyBm bm9yZAotKyAgICAgIHNoaWZ0ICMgJGFyZwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUK LSsKLSsgICIkQCIgLUUgfAotKyAgICBzZWQgLW4gLWUgJy9eIyBbMC05XVswLTldKiAiXChbXiJd KlwpIi4qLyBzOjogXDEgXFw6cCcgXAotKyAgICAgICAtZSAnL14jbGluZSBbMC05XVswLTldKiAi XChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgfAotKyAgICBzZWQgJyQgczogXFwkOjonID4gIiR0 bXBkZXBmaWxlIgotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ ICIkZGVwZmlsZSIKLSsgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgotKyAgc2Vk IDwgIiR0bXBkZXBmaWxlIiAnL14kL2Q7cy9eIC8vO3MvIFxcJC8vO3MvJC8gOi8nID4+ICIkZGVw ZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0rbXN2aXN1YWxjcHApCi0r ICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21w aWxlciAqbXVzdCoKLSsgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBz dGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8sCi0rICAjIGJlY2F1c2Ugd2UgbXVzdCB1c2UgLW8gd2hl biBydW5uaW5nIGxpYnRvb2wuCi0rICAiJEAiIHx8IGV4aXQgJD8KLSsgIElGUz0iICIKLSsgIGZv ciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgIiRhcmciIGluCi0rICAgICItR20ifCIvR20ifCItR2ki fCIvR2kifCItWkkifCIvWkkiKQotKwlzZXQgZm5vcmQgIiRAIgotKwlzaGlmdAotKwlzaGlmdAot Kwk7OwotKyAgICAqKQotKwlzZXQgZm5vcmQgIiRAIiAiJGFyZyIKLSsJc2hpZnQKLSsJc2hpZnQK LSsJOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgIiRAIiAtRSB8Ci0rICBzZWQgLW4gJy9eI2xp bmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OmVjaG8gImBjeWdwYXRoIC11IFxcIlwxXFwi YCI6cCcgfCBzb3J0IHwgdW5pcSA+ICIkdG1wZGVwZmlsZSIKLSsgIHJtIC1mICIkZGVwZmlsZSIK LSsgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0rICAuICIkdG1wZGVwZmlsZSIg fCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwpJC8gczo6CVwxIFxcOnAnID4+ICIk ZGVwZmlsZSIKLSsgIGVjaG8gIgkiID4+ICIkZGVwZmlsZSIKLSsgIC4gIiR0bXBkZXBmaWxlIiB8 IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVw ZmlsZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0rbm9uZSkKLSsgIGV4ZWMg IiRAIgotKyAgOzsKLSsKLSsqKQotKyAgZWNobyAiVW5rbm93biBkZXBtb2RlICRkZXBtb2RlIiAx PiYyCi0rICBleGl0IDEKLSsgIDs7Ci0rZXNhYwotKwotK2V4aXQgMAotKwotKyMgTG9jYWwgVmFy aWFibGVzOgotKyMgbW9kZTogc2hlbGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjogMgotKyMg ZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1z dGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnkt JTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0rIyBFbmQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2ggc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9pbnN0YWxsLXNoCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwt c2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL2luc3RhbGwtc2gJMjAwOS0wNS0yMyAxMDowMjowMS4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsNTE5IEBACi0rIyEvYmluL3NoCi0rIyBpbnN0YWxsIC0gaW5zdGFsbCBh IHByb2dyYW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKLSsKLStzY3JpcHR2ZXJzaW9uPTIwMDYtMTIt MjUuMDAKLSsKLSsjIFRoaXMgb3JpZ2luYXRlcyBmcm9tIFgxMVI1IChtaXQvdXRpbC9zY3JpcHRz L2luc3RhbGwuc2gpLCB3aGljaCB3YXMKLSsjIGxhdGVyIHJlbGVhc2VkIGluIFgxMVI2ICh4Yy9j b25maWcvdXRpbC9pbnN0YWxsLnNoKSB3aXRoIHRoZQotKyMgZm9sbG93aW5nIGNvcHlyaWdodCBh bmQgbGljZW5zZS4KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQgWCBDb25zb3J0aXVtCi0rIwot KyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEgY29weQotKyMgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCi0rIyBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uIHRoZQotKyMgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCi0rIyBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotKyMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK LSsjCi0rIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotKyMgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rIwotKyMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSsjIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAotKyMgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotKyMgWCBDT05TT1JUSVVNIEJF IExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF UiBJTgotKyMgQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDLQotKyMgVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSsjCi0rIyBFeGNl cHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiB0aGUgWCBDb25zb3J0 aXVtIHNoYWxsIG5vdAotKyMgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8g cHJvbW90ZSB0aGUgc2FsZSwgdXNlIG9yIG90aGVyIGRlYWwtCi0rIyBpbmdzIGluIHRoaXMgU29m dHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gZnJvbSB0aGUgWCBDb25z b3ItCi0rIyB0aXVtLgotKyMKLSsjCi0rIyBGU0YgY2hhbmdlcyB0byB0aGlzIGZpbGUgYXJlIGlu IHRoZSBwdWJsaWMgZG9tYWluLgotKyMKLSsjIENhbGxpbmcgdGhpcyBzY3JpcHQgaW5zdGFsbC1z aCBpcyBwcmVmZXJyZWQgb3ZlciBpbnN0YWxsLnNoLCB0byBwcmV2ZW50Ci0rIyBgbWFrZScgaW1w bGljaXQgcnVsZXMgZnJvbSBjcmVhdGluZyBhIGZpbGUgY2FsbGVkIGluc3RhbGwgZnJvbSBpdAot KyMgd2hlbiB0aGVyZSBpcyBubyBNYWtlZmlsZS4KLSsjCi0rIyBUaGlzIHNjcmlwdCBpcyBjb21w YXRpYmxlIHdpdGggdGhlIEJTRCBpbnN0YWxsIHNjcmlwdCwgYnV0IHdhcyB3cml0dGVuCi0rIyBm cm9tIHNjcmF0Y2guCi0rCi0rbmw9JwotKycKLStJRlM9IiAiIgkkbmwiCi0rCi0rIyBzZXQgRE9J VFBST0cgdG8gZWNobyB0byB0ZXN0IHRoaXMgc2NyaXB0Ci0rCi0rIyBEb24ndCB1c2UgOi0gc2lu Y2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBkb24ndCBsaWtlIGl0LgotK2RvaXQ9JHtET0lU UFJPRy19Ci0raWYgdGVzdCAteiAiJGRvaXQiOyB0aGVuCi0rICBkb2l0X2V4ZWM9ZXhlYwotK2Vs c2UKLSsgIGRvaXRfZXhlYz0kZG9pdAotK2ZpCi0rCi0rIyBQdXQgaW4gYWJzb2x1dGUgZmlsZSBu YW1lcyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGluIHlvdXIgcGF0aDsKLSsjIG9yIHVzZSBlbnZp cm9ubWVudCB2YXJzLgotKwotK2NoZ3JwcHJvZz0ke0NIR1JQUFJPRy1jaGdycH0KLStjaG1vZHBy b2c9JHtDSE1PRFBST0ctY2htb2R9Ci0rY2hvd25wcm9nPSR7Q0hPV05QUk9HLWNob3dufQotK2Nt cHByb2c9JHtDTVBQUk9HLWNtcH0KLStjcHByb2c9JHtDUFBST0ctY3B9Ci0rbWtkaXJwcm9nPSR7 TUtESVJQUk9HLW1rZGlyfQotK212cHJvZz0ke01WUFJPRy1tdn0KLStybXByb2c9JHtSTVBST0ct cm19Ci0rc3RyaXBwcm9nPSR7U1RSSVBQUk9HLXN0cmlwfQotKwotK3Bvc2l4X2dsb2I9Jz8nCi0r aW5pdGlhbGl6ZV9wb3NpeF9nbG9iPScKLSsgIHRlc3QgIiRwb3NpeF9nbG9iIiAhPSAiPyIgfHwg ewotKyAgICBpZiAoc2V0IC1mKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgIHBvc2l4X2dsb2I9 Ci0rICAgIGVsc2UKLSsgICAgICBwb3NpeF9nbG9iPToKLSsgICAgZmkKLSsgIH0KLSsnCi0rCi0r cG9zaXhfbWtkaXI9Ci0rCi0rIyBEZXNpcmVkIG1vZGUgb2YgaW5zdGFsbGVkIGZpbGUuCi0rbW9k ZT0wNzU1Ci0rCi0rY2hncnBjbWQ9Ci0rY2htb2RjbWQ9JGNobW9kcHJvZwotK2Nob3duY21kPQot K212Y21kPSRtdnByb2cKLStybWNtZD0iJHJtcHJvZyAtZiIKLStzdHJpcGNtZD0KLSsKLStzcmM9 Ci0rZHN0PQotK2Rpcl9hcmc9Ci0rZHN0X2FyZz0KLSsKLStjb3B5X29uX2NoYW5nZT1mYWxzZQot K25vX3RhcmdldF9kaXJlY3Rvcnk9Ci0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0u Li4gWy1UXSBTUkNGSUxFIERTVEZJTEUKLSsgICBvcjogJDAgW09QVElPTl0uLi4gU1JDRklMRVMu Li4gRElSRUNUT1JZCi0rICAgb3I6ICQwIFtPUFRJT05dLi4uIC10IERJUkVDVE9SWSBTUkNGSUxF Uy4uLgotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtZCBESVJFQ1RPUklFUy4uLgotKwotK0luIHRo ZSAxc3QgZm9ybSwgY29weSBTUkNGSUxFIHRvIERTVEZJTEUuCi0rSW4gdGhlIDJuZCBhbmQgM3Jk LCBjb3B5IGFsbCBTUkNGSUxFUyB0byBESVJFQ1RPUlkuCi0rSW4gdGhlIDR0aCwgY3JlYXRlIERJ UkVDVE9SSUVTLgotKwotK09wdGlvbnM6Ci0rICAgICAtLWhlbHAgICAgIGRpc3BsYXkgdGhpcyBo ZWxwIGFuZCBleGl0LgotKyAgICAgLS12ZXJzaW9uICBkaXNwbGF5IHZlcnNpb24gaW5mbyBhbmQg ZXhpdC4KLSsKLSsgIC1jICAgICAgICAgICAgKGlnbm9yZWQpCi0rICAtQyAgICAgICAgICAgIGlu c3RhbGwgb25seSBpZiBkaWZmZXJlbnQgKHByZXNlcnZlIHRoZSBsYXN0IGRhdGEgbW9kaWZpY2F0 aW9uIHRpbWUpCi0rICAtZCAgICAgICAgICAgIGNyZWF0ZSBkaXJlY3RvcmllcyBpbnN0ZWFkIG9m IGluc3RhbGxpbmcgZmlsZXMuCi0rICAtZyBHUk9VUCAgICAgICRjaGdycHByb2cgaW5zdGFsbGVk IGZpbGVzIHRvIEdST1VQLgotKyAgLW0gTU9ERSAgICAgICAkY2htb2Rwcm9nIGluc3RhbGxlZCBm aWxlcyB0byBNT0RFLgotKyAgLW8gVVNFUiAgICAgICAkY2hvd25wcm9nIGluc3RhbGxlZCBmaWxl cyB0byBVU0VSLgotKyAgLXMgICAgICAgICAgICAkc3RyaXBwcm9nIGluc3RhbGxlZCBmaWxlcy4K LSsgIC10IERJUkVDVE9SWSAgaW5zdGFsbCBpbnRvIERJUkVDVE9SWS4KLSsgIC1UICAgICAgICAg ICAgcmVwb3J0IGFuIGVycm9yIGlmIERTVEZJTEUgaXMgYSBkaXJlY3RvcnkuCi0rCi0rRW52aXJv bm1lbnQgdmFyaWFibGVzIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbW1hbmRzOgotKyAgQ0hHUlBQ Uk9HIENITU9EUFJPRyBDSE9XTlBST0cgQ01QUFJPRyBDUFBST0cgTUtESVJQUk9HIE1WUFJPRwot KyAgUk1QUk9HIFNUUklQUFJPRwotKyIKLSsKLSt3aGlsZSB0ZXN0ICQjIC1uZSAwOyBkbwotKyAg Y2FzZSAkMSBpbgotKyAgICAtYykgOzsKLSsKLSsgICAgLUMpIGNvcHlfb25fY2hhbmdlPXRydWU7 OwotKwotKyAgICAtZCkgZGlyX2FyZz10cnVlOzsKLSsKLSsgICAgLWcpIGNoZ3JwY21kPSIkY2hn cnBwcm9nICQyIgotKwlzaGlmdDs7Ci0rCi0rICAgIC0taGVscCkgZWNobyAiJHVzYWdlIjsgZXhp dCAkPzs7Ci0rCi0rICAgIC1tKSBtb2RlPSQyCi0rCWNhc2UgJG1vZGUgaW4KLSsJICAqJyAnKiB8 IConCScqIHwgKicKLSsnKgkgIHwgKicqJyogfCAqJz8nKiB8IConWycqKQotKwkgICAgZWNobyAi JDA6IGludmFsaWQgbW9kZTogJG1vZGUiID4mMgotKwkgICAgZXhpdCAxOzsKLSsJZXNhYwotKwlz aGlmdDs7Ci0rCi0rICAgIC1vKSBjaG93bmNtZD0iJGNob3ducHJvZyAkMiIKLSsJc2hpZnQ7Owot KwotKyAgICAtcykgc3RyaXBjbWQ9JHN0cmlwcHJvZzs7Ci0rCi0rICAgIC10KSBkc3RfYXJnPSQy Ci0rCXNoaWZ0OzsKLSsKLSsgICAgLVQpIG5vX3RhcmdldF9kaXJlY3Rvcnk9dHJ1ZTs7Ci0rCi0r ICAgIC0tdmVyc2lvbikgZWNobyAiJDAgJHNjcmlwdHZlcnNpb24iOyBleGl0ICQ/OzsKLSsKLSsg ICAgLS0pCXNoaWZ0Ci0rCWJyZWFrOzsKLSsKLSsgICAgLSopCWVjaG8gIiQwOiBpbnZhbGlkIG9w dGlvbjogJDEiID4mMgotKwlleGl0IDE7OwotKwotKyAgICAqKSAgYnJlYWs7OwotKyAgZXNhYwot KyAgc2hpZnQKLStkb25lCi0rCi0raWYgdGVzdCAkIyAtbmUgMCAmJiB0ZXN0IC16ICIkZGlyX2Fy ZyRkc3RfYXJnIjsgdGhlbgotKyAgIyBXaGVuIC1kIGlzIHVzZWQsIGFsbCByZW1haW5pbmcgYXJn dW1lbnRzIGFyZSBkaXJlY3RvcmllcyB0byBjcmVhdGUuCi0rICAjIFdoZW4gLXQgaXMgdXNlZCwg dGhlIGRlc3RpbmF0aW9uIGlzIGFscmVhZHkgc3BlY2lmaWVkLgotKyAgIyBPdGhlcndpc2UsIHRo ZSBsYXN0IGFyZ3VtZW50IGlzIHRoZSBkZXN0aW5hdGlvbi4gIFJlbW92ZSBpdCBmcm9tICRALgot KyAgZm9yIGFyZwotKyAgZG8KLSsgICAgaWYgdGVzdCAtbiAiJGRzdF9hcmciOyB0aGVuCi0rICAg ICAgIyAkQCBpcyBub3QgZW1wdHk6IGl0IGNvbnRhaW5zIGF0IGxlYXN0ICRhcmcuCi0rICAgICAg c2V0IGZub3JkICIkQCIgIiRkc3RfYXJnIgotKyAgICAgIHNoaWZ0ICMgZm5vcmQKLSsgICAgZmkK LSsgICAgc2hpZnQgIyBhcmcKLSsgICAgZHN0X2FyZz0kYXJnCi0rICBkb25lCi0rZmkKLSsKLStp ZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCi0rICBpZiB0ZXN0IC16ICIkZGlyX2FyZyI7IHRoZW4KLSsg ICAgZWNobyAiJDA6IG5vIGlucHV0IGZpbGUgc3BlY2lmaWVkLiIgPiYyCi0rICAgIGV4aXQgMQot KyAgZmkKLSsgICMgSXQncyBPSyB0byBjYWxsIGBpbnN0YWxsLXNoIC1kJyB3aXRob3V0IGFyZ3Vt ZW50LgotKyAgIyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBjcmVhdGluZyBjb25kaXRpb25hbCBkaXJl Y3Rvcmllcy4KLSsgIGV4aXQgMAotK2ZpCi0rCi0raWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVu Ci0rICB0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEgMiAxMyAxNQotKwotKyAgIyBTZXQgdW1hc2sg c28gYXMgbm90IHRvIGNyZWF0ZSB0ZW1wcyB3aXRoIHRvby1nZW5lcm91cyBtb2Rlcy4KLSsgICMg SG93ZXZlciwgJ3N0cmlwJyByZXF1aXJlcyBib3RoIHJlYWQgYW5kIHdyaXRlIGFjY2VzcyB0byB0 ZW1wcy4KLSsgIGNhc2UgJG1vZGUgaW4KLSsgICAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCi0r ICAgICo2NDQpIGNwX3VtYXNrPTEzMzs7Ci0rICAgICo3NTUpIGNwX3VtYXNrPTIyOzsKLSsKLSsg ICAgKlswLTddKQotKyAgICAgIGlmIHRlc3QgLXogIiRzdHJpcGNtZCI7IHRoZW4KLSsJdV9wbHVz X3J3PQotKyAgICAgIGVsc2UKLSsJdV9wbHVzX3J3PSclIDIwMCcKLSsgICAgICBmaQotKyAgICAg IGNwX3VtYXNrPWBleHByICcoJyA3NzcgLSAkbW9kZSAlIDEwMDAgJyknICR1X3BsdXNfcndgOzsK LSsgICAgKikKLSsgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCi0rCXVfcGx1c19y dz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0sdStydwotKyAgICAgIGZpCi0rICAgICAgY3Bf dW1hc2s9JG1vZGUkdV9wbHVzX3J3OzsKLSsgIGVzYWMKLStmaQotKwotK2ZvciBzcmMKLStkbwot KyAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nLgotKyAgY2FzZSAkc3JjIGluCi0r ICAgIC0qKSBzcmM9Li8kc3JjOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgLW4gIiRkaXJfYXJn IjsgdGhlbgotKyAgICBkc3Q9JHNyYwotKyAgICBkc3RkaXI9JGRzdAotKyAgICB0ZXN0IC1kICIk ZHN0ZGlyIgotKyAgICBkc3RkaXJfc3RhdHVzPSQ/Ci0rICBlbHNlCi0rCi0rICAgICMgV2FpdGlu ZyBmb3IgdGhpcyB0byBiZSBkZXRlY3RlZCBieSB0aGUgIiRjcHByb2cgJHNyYyAkZHN0dG1wIiBj b21tYW5kCi0rICAgICMgbWlnaHQgY2F1c2UgZGlyZWN0b3JpZXMgdG8gYmUgY3JlYXRlZCwgd2hp Y2ggd291bGQgYmUgZXNwZWNpYWxseSBiYWQKLSsgICAgIyBpZiAkc3JjIChhbmQgdGh1cyAkZHN0 dG1wKSBjb250YWlucyAnKicuCi0rICAgIGlmIHRlc3QgISAtZiAiJHNyYyIgJiYgdGVzdCAhIC1k ICIkc3JjIjsgdGhlbgotKyAgICAgIGVjaG8gIiQwOiAkc3JjIGRvZXMgbm90IGV4aXN0LiIgPiYy Ci0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLXogIiRkc3RfYXJnIjsg dGhlbgotKyAgICAgIGVjaG8gIiQwOiBubyBkZXN0aW5hdGlvbiBzcGVjaWZpZWQuIiA+JjIKLSsg ICAgICBleGl0IDEKLSsgICAgZmkKLSsKLSsgICAgZHN0PSRkc3RfYXJnCi0rICAgICMgUHJvdGVj dCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KLSsgICAgY2FzZSAkZHN0IGluCi0rICAgICAgLSop IGRzdD0uLyRkc3Q7OwotKyAgICBlc2FjCi0rCi0rICAgICMgSWYgZGVzdGluYXRpb24gaXMgYSBk aXJlY3RvcnksIGFwcGVuZCB0aGUgaW5wdXQgZmlsZW5hbWU7IHdvbid0IHdvcmsKLSsgICAgIyBp ZiBkb3VibGUgc2xhc2hlcyBhcmVuJ3QgaWdub3JlZC4KLSsgICAgaWYgdGVzdCAtZCAiJGRzdCI7 IHRoZW4KLSsgICAgICBpZiB0ZXN0IC1uICIkbm9fdGFyZ2V0X2RpcmVjdG9yeSI7IHRoZW4KLSsJ ZWNobyAiJDA6ICRkc3RfYXJnOiBJcyBhIGRpcmVjdG9yeSIgPiYyCi0rCWV4aXQgMQotKyAgICAg IGZpCi0rICAgICAgZHN0ZGlyPSRkc3QKLSsgICAgICBkc3Q9JGRzdGRpci9gYmFzZW5hbWUgIiRz cmMiYAotKyAgICAgIGRzdGRpcl9zdGF0dXM9MAotKyAgICBlbHNlCi0rICAgICAgIyBQcmVmZXIg ZGlybmFtZSwgYnV0IGZhbGwgYmFjayBvbiBhIHN1YnN0aXR1dGUgaWYgZGlybmFtZSBmYWlscy4K LSsgICAgICBkc3RkaXI9YAotKwkoZGlybmFtZSAiJGRzdCIpIDI+L2Rldi9udWxsIHx8Ci0rCWV4 cHIgWCIkZHN0IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgICAgIFgi JGRzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJICAgICBYIiRkc3QiIDogJ1hcKC8vXCkkJyBc fCBcCi0rCSAgICAgWCIkZHN0IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSsJZWNo byBYIiRkc3QiIHwKLSsJICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97 Ci0rCQkgICBzLy9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15YXChcL1wvXClbXi9dLiovewot KwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cL1wpJC97Ci0rCQkgICBz Ly9cMS8KLSsJCSAgIHEKLSsJCSB9Ci0rCQkgL15YXChcL1wpLiovewotKwkJICAgcy8vXDEvCi0r CQkgICBxCi0rCQkgfQotKwkJIHMvLiovLi87IHEnCi0rICAgICAgYAotKwotKyAgICAgIHRlc3Qg LWQgIiRkc3RkaXIiCi0rICAgICAgZHN0ZGlyX3N0YXR1cz0kPwotKyAgICBmaQotKyAgZmkKLSsK LSsgIG9ic29sZXRlX21rZGlyX3VzZWQ9ZmFsc2UKLSsKLSsgIGlmIHRlc3QgJGRzdGRpcl9zdGF0 dXMgIT0gMDsgdGhlbgotKyAgICBjYXNlICRwb3NpeF9ta2RpciBpbgotKyAgICAgICcnKQotKwkj IENyZWF0ZSBpbnRlcm1lZGlhdGUgZGlycyB1c2luZyBtb2RlIDc1NSBhcyBtb2RpZmllZCBieSB0 aGUgdW1hc2suCi0rCSMgVGhpcyBpcyBsaWtlIEZyZWVCU0QgJ2luc3RhbGwnIGFzIG9mIDE5OTct MTAtMjguCi0rCXVtYXNrPWB1bWFza2AKLSsJY2FzZSAkc3RyaXBjbWQuJHVtYXNrIGluCi0rCSAg IyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCi0rCSAgKlsyMzY3XVsyMzY3XSkgbWtkaXJfdW1hc2s9 JHVtYXNrOzsKLSsJICAuKjBbMDJdWzAyXSB8IC5bMDJdWzAyXSB8IC5bMDJdKSBta2Rpcl91bWFz az0yMjs7Ci0rCi0rCSAgKlswLTddKQotKwkgICAgbWtkaXJfdW1hc2s9YGV4cHIgJHVtYXNrICsg MjIgXAotKwkgICAgICAtICR1bWFzayAlIDEwMCAlIDQwICsgJHVtYXNrICUgMjAgXAotKwkgICAg ICAtICR1bWFzayAlIDEwICUgNCArICR1bWFzayAlIDIKLSsJICAgIGA7OwotKwkgICopIG1rZGly X3VtYXNrPSR1bWFzayxnby13OzsKLSsJZXNhYwotKwotKwkjIFdpdGggLWQsIGNyZWF0ZSB0aGUg bmV3IGRpcmVjdG9yeSB3aXRoIHRoZSB1c2VyLXNwZWNpZmllZCBtb2RlLgotKwkjIE90aGVyd2lz ZSwgcmVseSBvbiAkbWtkaXJfdW1hc2suCi0rCWlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgot KwkgIG1rZGlyX21vZGU9LW0kbW9kZQotKwllbHNlCi0rCSAgbWtkaXJfbW9kZT0KLSsJZmkKLSsK LSsJcG9zaXhfbWtkaXI9ZmFsc2UKLSsJY2FzZSAkdW1hc2sgaW4KLSsJICAqWzEyMzU2N11bMC03 XVswLTddKQotKwkgICAgIyBQT1NJWCBta2RpciAtcCBzZXRzIHUrd3ggYml0cyByZWdhcmRsZXNz IG9mIHVtYXNrLCB3aGljaAotKwkgICAgIyBpcyBpbmNvbXBhdGlibGUgd2l0aCBGcmVlQlNEICdp bnN0YWxsJyB3aGVuICh1bWFzayAmIDMwMCkgIT0gMC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IHRtcGRpcj0ke1RNUERJUi0vdG1wfS9pbnMkUkFORE9NLSQkCi0rCSAgICB0cmFwICdyZXQ9JD87 IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIiAyPi9kZXYvbnVsbDsgZXhpdCAkcmV0JyAwCi0r Ci0rCSAgICBpZiAodW1hc2sgJG1rZGlyX3VtYXNrICYmCi0rCQlleGVjICRta2RpcnByb2cgJG1r ZGlyX21vZGUgLXAgLS0gIiR0bXBkaXIvZCIpID4vZGV2L251bGwgMj4mMQotKwkgICAgdGhlbgot KwkgICAgICBpZiB0ZXN0IC16ICIkZGlyX2FyZyIgfHwgewotKwkJICAgIyBDaGVjayBmb3IgUE9T SVggaW5jb21wYXRpYmlsaXRpZXMgd2l0aCAtbS4KLSsJCSAgICMgSFAtVVggMTEuMjMgYW5kIElS SVggNi41IG1rZGlyIC1tIC1wIHNldHMgZ3JvdXAtIG9yCi0rCQkgICAjIG90aGVyLXdyaXRlYWJs ZSBiaXQgb2YgcGFyZW50IGRpcmVjdG9yeSB3aGVuIGl0IHNob3VsZG4ndC4KLSsJCSAgICMgRnJl ZUJTRCA2LjEgbWtkaXIgLW0gLXAgc2V0cyBtb2RlIG9mIGV4aXN0aW5nIGRpcmVjdG9yeS4KLSsJ CSAgIGxzX2xkX3RtcGRpcj1gbHMgLWxkICIkdG1wZGlyImAKLSsJCSAgIGNhc2UgJGxzX2xkX3Rt cGRpciBpbgotKwkJICAgICBkPz8/Py0/ci0qKSBkaWZmZXJlbnRfbW9kZT03MDA7OwotKwkJICAg ICBkPz8/Py0/LS0qKSBkaWZmZXJlbnRfbW9kZT03NTU7OwotKwkJICAgICAqKSBmYWxzZTs7Ci0r CQkgICBlc2FjICYmCi0rCQkgICAkbWtkaXJwcm9nIC1tJGRpZmZlcmVudF9tb2RlIC1wIC0tICIk dG1wZGlyIiAmJiB7Ci0rCQkgICAgIGxzX2xkX3RtcGRpcl8xPWBscyAtbGQgIiR0bXBkaXIiYAot KwkJICAgICB0ZXN0ICIkbHNfbGRfdG1wZGlyIiA9ICIkbHNfbGRfdG1wZGlyXzEiCi0rCQkgICB9 Ci0rCQkgfQotKwkgICAgICB0aGVuIHBvc2l4X21rZGlyPToKLSsJICAgICAgZmkKLSsJICAgICAg cm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgUmVtb3Zl IGFueSBkaXJzIGxlZnQgYmVoaW5kIGJ5IGFuY2llbnQgbWtkaXIgaW1wbGVtZW50YXRpb25zLgot KwkgICAgICBybWRpciAuLyRta2Rpcl9tb2RlIC4vLXAgLi8tLSAyPi9kZXYvbnVsbAotKwkgICAg ZmkKLSsJICAgIHRyYXAgJycgMDs7Ci0rCWVzYWM7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmCi0r ICAgICAgJHBvc2l4X21rZGlyICYmICgKLSsJdW1hc2sgJG1rZGlyX3VtYXNrICYmCi0rCSRkb2l0 X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJGRzdGRpciIKLSsgICAgICApCi0r ICAgIHRoZW4gOgotKyAgICBlbHNlCi0rCi0rICAgICAgIyBUaGUgdW1hc2sgaXMgcmlkaWN1bG91 cywgb3IgbWtkaXIgZG9lcyBub3QgY29uZm9ybSB0byBQT1NJWCwKLSsgICAgICAjIG9yIGl0IGZh aWxlZCBwb3NzaWJseSBkdWUgdG8gYSByYWNlIGNvbmRpdGlvbi4gIENyZWF0ZSB0aGUKLSsgICAg ICAjIGRpcmVjdG9yeSB0aGUgc2xvdyB3YXksIHN0ZXAgYnkgc3RlcCwgY2hlY2tpbmcgZm9yIHJh Y2VzIGFzIHdlIGdvLgotKwotKyAgICAgIGNhc2UgJGRzdGRpciBpbgotKwkvKikgcHJlZml4PScv Jzs7Ci0rCS0qKSBwcmVmaXg9Jy4vJzs7Ci0rCSopICBwcmVmaXg9Jyc7OwotKyAgICAgIGVzYWMK LSsKLSsgICAgICBldmFsICIkaW5pdGlhbGl6ZV9wb3NpeF9nbG9iIgotKwotKyAgICAgIG9JRlM9 JElGUwotKyAgICAgIElGUz0vCi0rICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mCi0rICAgICAgc2V0 IGZub3JkICRkc3RkaXIKLSsgICAgICBzaGlmdAotKyAgICAgICRwb3NpeF9nbG9iIHNldCArZgot KyAgICAgIElGUz0kb0lGUwotKwotKyAgICAgIHByZWZpeGVzPQotKwotKyAgICAgIGZvciBkCi0r ICAgICAgZG8KLSsJdGVzdCAteiAiJGQiICYmIGNvbnRpbnVlCi0rCi0rCXByZWZpeD0kcHJlZml4 JGQKLSsJaWYgdGVzdCAtZCAiJHByZWZpeCI7IHRoZW4KLSsJICBwcmVmaXhlcz0KLSsJZWxzZQot KwkgIGlmICRwb3NpeF9ta2RpcjsgdGhlbgotKwkgICAgKHVtYXNrPSRta2Rpcl91bWFzayAmJgot KwkgICAgICRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJGRzdGRpciIp ICYmIGJyZWFrCi0rCSAgICAjIERvbid0IGZhaWwgaWYgdHdvIGluc3RhbmNlcyBhcmUgcnVubmlu ZyBjb25jdXJyZW50bHkuCi0rCSAgICB0ZXN0IC1kICIkcHJlZml4IiB8fCBleGl0IDEKLSsJICBl bHNlCi0rCSAgICBjYXNlICRwcmVmaXggaW4KLSsJICAgICAgKlwnKikgcXByZWZpeD1gZWNobyAi JHByZWZpeCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OwotKwkgICAgICAqKSBxcHJlZml4 PSRwcmVmaXg7OwotKwkgICAgZXNhYwotKwkgICAgcHJlZml4ZXM9IiRwcmVmaXhlcyAnJHFwcmVm aXgnIgotKwkgIGZpCi0rCWZpCi0rCXByZWZpeD0kcHJlZml4LwotKyAgICAgIGRvbmUKLSsKLSsg ICAgICBpZiB0ZXN0IC1uICIkcHJlZml4ZXMiOyB0aGVuCi0rCSMgRG9uJ3QgZmFpbCBpZiB0d28g aW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJlbnRseS4KLSsJKHVtYXNrICRta2Rpcl91bWFz ayAmJgotKwkgZXZhbCAiXCRkb2l0X2V4ZWMgXCRta2RpcnByb2cgJHByZWZpeGVzIikgfHwKLSsJ ICB0ZXN0IC1kICIkZHN0ZGlyIiB8fCBleGl0IDEKLSsJb2Jzb2xldGVfbWtkaXJfdXNlZD10cnVl Ci0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rCi0rICBpZiB0ZXN0IC1uICIkZGlyX2FyZyI7 IHRoZW4KLSsgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRz dCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0ICRjaGdycGNtZCAi JGRzdCI7IH0gJiYKLSsgICAgeyB0ZXN0ICIkb2Jzb2xldGVfbWtkaXJfdXNlZCRjaG93bmNtZCRj aGdycGNtZCIgPSBmYWxzZSB8fAotKyAgICAgIHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQg JGNobW9kY21kICRtb2RlICIkZHN0IjsgfSB8fCBleGl0IDEKLSsgIGVsc2UKLSsKLSsgICAgIyBN YWtlIGEgY291cGxlIG9mIHRlbXAgZmlsZSBuYW1lcyBpbiB0aGUgcHJvcGVyIGRpcmVjdG9yeS4K LSsgICAgZHN0dG1wPSRkc3RkaXIvX2luc3QuJCRfCi0rICAgIHJtdG1wPSRkc3RkaXIvX3JtLiQk XwotKwotKyAgICAjIFRyYXAgdG8gY2xlYW4gdXAgdGhvc2UgdGVtcCBmaWxlcyBhdCBleGl0Lgot KyAgICB0cmFwICdyZXQ9JD87IHJtIC1mICIkZHN0dG1wIiAiJHJtdG1wIiAmJiBleGl0ICRyZXQn IDAKLSsKLSsgICAgIyBDb3B5IHRoZSBmaWxlIG5hbWUgdG8gdGhlIHRlbXAgbmFtZS4KLSsgICAg KHVtYXNrICRjcF91bWFzayAmJiAkZG9pdF9leGVjICRjcHByb2cgIiRzcmMiICIkZHN0dG1wIikg JiYKLSsKLSsgICAgIyBhbmQgc2V0IGFueSBvcHRpb25zOyBkbyBjaG1vZCBsYXN0IHRvIHByZXNl cnZlIHNldHVpZCBiaXRzLgotKyAgICAjCi0rICAgICMgSWYgYW55IG9mIHRoZXNlIGZhaWwsIHdl IGFib3J0IHRoZSB3aG9sZSB0aGluZy4gIElmIHdlIHdhbnQgdG8KLSsgICAgIyBpZ25vcmUgZXJy b3JzIGZyb20gYW55IG9mIHRoZXNlLCBqdXN0IG1ha2Ugc3VyZSBub3QgdG8gaWdub3JlCi0rICAg ICMgZXJyb3JzIGZyb20gdGhlIGFib3ZlICIkZG9pdCAkY3Bwcm9nICRzcmMgJGRzdHRtcCIgY29t bWFuZC4KLSsgICAgIwotKyAgICB7IHRlc3QgLXogIiRjaG93bmNtZCIgfHwgJGRvaXQgJGNob3du Y21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQg JGNoZ3JwY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXogIiRzdHJpcGNtZCIgfHwg JGRvaXQgJHN0cmlwY21kICIkZHN0dG1wIjsgfSAmJgotKyAgICB7IHRlc3QgLXogIiRjaG1vZGNt ZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0dG1wIjsgfSAmJgotKwotKyAgICAjIElm IC1DLCBkb24ndCBib3RoZXIgdG8gY29weSBpZiBpdCB3b3VsZG4ndCBjaGFuZ2UgdGhlIGZpbGUu Ci0rICAgIGlmICRjb3B5X29uX2NoYW5nZSAmJgotKyAgICAgICBvbGQ9YExDX0FMTD1DIGxzIC1k bEwgIiRkc3QiCTI+L2Rldi9udWxsYCAmJgotKyAgICAgICBuZXc9YExDX0FMTD1DIGxzIC1kbEwg IiRkc3R0bXAiCTI+L2Rldi9udWxsYCAmJgotKwotKyAgICAgICBldmFsICIkaW5pdGlhbGl6ZV9w b3NpeF9nbG9iIiAmJgotKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQgLWYgJiYKLSsgICAgICAgc2V0 IFggJG9sZCAmJiBvbGQ9OiQyOiQ0OiQ1OiQ2ICYmCi0rICAgICAgIHNldCBYICRuZXcgJiYgbmV3 PTokMjokNDokNTokNiAmJgotKyAgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YgJiYKLSsKLSsgICAg ICAgdGVzdCAiJG9sZCIgPSAiJG5ldyIgJiYKLSsgICAgICAgJGNtcHByb2cgIiRkc3QiICIkZHN0 dG1wIiA+L2Rldi9udWxsIDI+JjEKLSsgICAgdGhlbgotKyAgICAgIHJtIC1mICIkZHN0dG1wIgot KyAgICBlbHNlCi0rICAgICAgIyBSZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRp b24uCi0rICAgICAgJGRvaXQgJG12Y21kIC1mICIkZHN0dG1wIiAiJGRzdCIgMj4vZGV2L251bGwg fHwKLSsKLSsgICAgICAjIFRoZSByZW5hbWUgZmFpbGVkLCBwZXJoYXBzIGJlY2F1c2UgbXYgY2Fu J3QgcmVuYW1lIHNvbWV0aGluZyBlbHNlCi0rICAgICAgIyB0byBpdHNlbGYsIG9yIHBlcmhhcHMg YmVjYXVzZSBtdiBpcyBzbyBhbmNpZW50IHRoYXQgaXQgZG9lcyBub3QKLSsgICAgICAjIHN1cHBv cnQgLWYuCi0rICAgICAgewotKwkjIE5vdyByZW1vdmUgb3IgbW92ZSBhc2lkZSBhbnkgb2xkIGZp bGUgYXQgZGVzdGluYXRpb24gbG9jYXRpb24uCi0rCSMgV2UgdHJ5IHRoaXMgdHdvIHdheXMgc2lu Y2Ugcm0gY2FuJ3QgdW5saW5rIGl0c2VsZiBvbiBzb21lCi0rCSMgc3lzdGVtcyBhbmQgdGhlIGRl c3RpbmF0aW9uIGZpbGUgbWlnaHQgYmUgYnVzeSBmb3Igb3RoZXIKLSsJIyByZWFzb25zLiAgSW4g dGhpcyBjYXNlLCB0aGUgZmluYWwgY2xlYW51cCBtaWdodCBmYWlsIGJ1dCB0aGUgbmV3Ci0rCSMg ZmlsZSBzaG91bGQgc3RpbGwgaW5zdGFsbCBzdWNjZXNzZnVsbHkuCi0rCXsKLSsJICB0ZXN0ICEg LWYgIiRkc3QiIHx8Ci0rCSAgJGRvaXQgJHJtY21kIC1mICIkZHN0IiAyPi9kZXYvbnVsbCB8fAot KwkgIHsgJGRvaXQgJG12Y21kIC1mICIkZHN0IiAiJHJtdG1wIiAyPi9kZXYvbnVsbCAmJgotKwkg ICAgeyAkZG9pdCAkcm1jbWQgLWYgIiRybXRtcCIgMj4vZGV2L251bGw7IDo7IH0KLSsJICB9IHx8 Ci0rCSAgeyBlY2hvICIkMDogY2Fubm90IHVubGluayBvciByZW5hbWUgJGRzdCIgPiYyCi0rCSAg ICAoZXhpdCAxKTsgZXhpdCAxCi0rCSAgfQotKwl9ICYmCi0rCi0rCSMgTm93IHJlbmFtZSB0aGUg ZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KLSsJJGRvaXQgJG12Y21kICIkZHN0dG1wIiAi JGRzdCIKLSsgICAgICB9Ci0rICAgIGZpIHx8IGV4aXQgMQotKwotKyAgICB0cmFwICcnIDAKLSsg IGZpCi0rZG9uZQotKwotKyMgTG9jYWwgdmFyaWFibGVzOgotKyMgZXZhbDogKGFkZC1ob29rICd3 cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlw dHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0r IyB0aW1lLXN0YW1wLWVuZDogIiQiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2xpYnRvb2wubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00 Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xpYnRv b2wubTQJMjAwOS0wNS0yMyAxMDowMTo1NS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNzM2 MCBAQAotKyMgbGlidG9vbC5tNCAtIENvbmZpZ3VyZSBsaWJ0b29sIGZvciB0aGUgaG9zdCBzeXN0 ZW0uIC0qLUF1dG9jb25mLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCi0rIyAgICAgICAgICAgICAg ICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjICAg V3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgotKyMKLSsjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdp dGhvdXQKLSsjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgotKwotK200X2RlZmluZShbX0xUX0NPUFlJTkddLCBbZG5sCi0rIyAgIENvcHlyaWdodCAo QykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwK LSsjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgotKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2Ci0rIwot KyMgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgTGlidG9vbC4KLSsjCi0rIyBHTlUgTGlidG9v bCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsjIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzCi0rIyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMiBvZgotKyMgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCi0rIwotKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UsCi0rIyBpZiB5b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMg cGFydCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0aGF0Ci0rIyBpcyBidWlsdCB1c2luZyBHTlUg TGlidG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMgZmlsZSB1bmRlciB0aGUKLSsjIHNhbWUgZGlz dHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFt LgotKyMKLSsjIEdOVSBMaWJ0b29sIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0 aCBHTlUgTGlidG9vbDsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIGEgY29weQotKyMg Y2FuIGJlIGRvd25sb2FkZWQgZnJvbSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0 bWwsIG9yCi0rIyBvYnRhaW5lZCBieSB3cml0aW5nIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4sCi0rIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BIDAyMTEwLTEzMDEsIFVTQS4KLStdKQotKwotKyMgc2VyaWFsIDU2IExUX0lOSVQKLSsKLSsK LSsjIExUX1BSRVJFUShWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDb21wbGFp biBhbmQgZXhpdCBpZiB0aGlzIGxpYnRvb2wgdmVyc2lvbiBpcyBsZXNzIHRoYXQgVkVSU0lPTi4K LSttNF9kZWZ1bihbTFRfUFJFUkVRXSwKLStbbTRfaWYobTRfdmVyc2lvbl9jb21wYXJlKG00X2Rl Zm4oW0xUX1BBQ0tBR0VfVkVSU0lPTl0pLCBbJDFdKSwgLTEsCi0rICAgICAgIFttNF9kZWZhdWx0 KFskM10sCi0rCQkgICBbbTRfZmF0YWwoW0xpYnRvb2wgdmVyc2lvbiAkMSBvciBoaWdoZXIgaXMg cmVxdWlyZWRdLAotKwkJICAgICAgICAgICAgIDYzKV0pXSwKLSsgICAgICAgWyQyXSldKQotKwot KwotKyMgX0xUX0NIRUNLX0JVSUxERElSCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENvbXBs YWluIGlmIHRoZSBhYnNvbHV0ZSBidWlsZCBkaXJlY3RvcnkgbmFtZSBjb250YWlucyB1bnVzdWFs IGNoYXJhY3RlcnMKLSttNF9kZWZ1bihbX0xUX0NIRUNLX0JVSUxERElSXSwKLStbY2FzZSBgcHdk YCBpbgotKyAgKlwgKiB8ICpcCSopCi0rICAgIEFDX01TR19XQVJOKFtMaWJ0b29sIGRvZXMgbm90 IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gYHB3ZGBdKSA7OwotK2VzYWMKLStdKQotKwot KwotKyMgTFRfSU5JVChbT1BUSU9OU10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZV TihbTFRfSU5JVF0sCi0rW0FDX1BSRVJFUShbMi41OF0pZG5sIFdlIHVzZSBBQ19JTkNMVURFU19E RUZBVUxUCi0rQUNfQkVGT1JFKFskMF0sIFtMVF9MQU5HXSlkbmwKLStBQ19CRUZPUkUoWyQwXSwg W0xUX09VVFBVVF0pZG5sCi0rQUNfQkVGT1JFKFskMF0sIFtMVERMX0lOSVRdKWRubAotK200X3Jl cXVpcmUoW19MVF9DSEVDS19CVUlMRERJUl0pZG5sCi0rCi0rZG5sIEF1dG9jb25mIGRvZXNuJ3Qg Y2F0Y2ggdW5leHBhbmRlZCBMVF8gbWFjcm9zIGJ5IGRlZmF1bHQ6Ci0rbTRfcGF0dGVybl9mb3Ji aWQoW15fP0xUX1tBLVpfXSskXSlkbmwKLSttNF9wYXR0ZXJuX2FsbG93KFteKF9MVF9FT0Z8TFRf RExHTE9CQUx8TFRfRExMQVpZX09SX05PV3xMVF9NVUxUSV9NT0RVTEUpJF0pZG5sCi0rZG5sIGFj bG9jYWwgZG9lc24ndCBwdWxsIGx0b3B0aW9ucy5tNCwgbHRzdWdhci5tNCwgb3IgbHR2ZXJzaW9u Lm00Ci0rZG5sIHVubGVzcyB3ZSByZXF1aXJlIGFuIEFDX0RFRlVOZWQgbWFjcm86Ci0rQUNfUkVR VUlSRShbTFRPUFRJT05TX1ZFUlNJT05dKWRubAotK0FDX1JFUVVJUkUoW0xUU1VHQVJfVkVSU0lP Tl0pZG5sCi0rQUNfUkVRVUlSRShbTFRWRVJTSU9OX1ZFUlNJT05dKWRubAotK0FDX1JFUVVJUkUo W0xUT0JTT0xFVEVfVkVSU0lPTl0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX1BST0dfTFRNQUlOXSlk bmwKLSsKLStkbmwgUGFyc2UgT1BUSU9OUwotK19MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQot KwotKyMgVGhpcyBjYW4gYmUgdXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKLStM SUJUT09MX0RFUFM9IiRsdG1haW4iCi0rCi0rIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4K LStMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKLStBQ19TVUJTVChM SUJUT09MKWRubAotKwotK19MVF9TRVRVUAotKwotKyMgT25seSBleHBhbmQgb25jZToKLSttNF9k ZWZpbmUoW0xUX0lOSVRdKQotK10pIyBMVF9JTklUCi0rCi0rIyBPbGQgbmFtZXM6Ci0rQVVfQUxJ QVMoW0FDX1BST0dfTElCVE9PTF0sIFtMVF9JTklUXSkKLStBVV9BTElBUyhbQU1fUFJPR19MSUJU T09MXSwgW0xUX0lOSVRdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKLStkbmwgQUNfREVGVU4oW0FDX1BST0dfTElCVE9PTF0sIFtdKQotK2RubCBBQ19ERUZVTihb QU1fUFJPR19MSUJUT09MXSwgW10pCi0rCi0rCi0rIyBfTFRfQ0NfQkFTRU5BTUUoQ0MpCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDYWxjdWxhdGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3du IGNvbXBpbGVyIHdyYXBwZXJzIGFuZCBjcm9zcy1wcmVmaXguCi0rbTRfZGVmdW4oW19MVF9DQ19C QVNFTkFNRV0sCi0rW2ZvciBjY190ZW1wIGluICQxIiI7IGRvCi0rICBjYXNlICRjY190ZW1wIGlu Ci0rICAgIGNvbXBpbGUgfCAqW1tcXC9dXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1tcXC9dXWNjYWNo ZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbW1xcL11dZGlzdGNjIHwgcHVyaWZ5IHwgKltbXFwvXV1w dXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0rICAgICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25l Ci0rY2NfYmFzZW5hbWU9YCRFQ0hPICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3MlLiovJSUnIC1l ICJzJV4kaG9zdF9hbGlhcy0lJSJgCi0rXSkKLSsKLSsKLSsjIF9MVF9GSUxFVVRJTFNfREVGQVVM VFMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEl0IGlzIG9rYXkgdG8gdXNlIHRoZXNl IGZpbGUgY29tbWFuZHMgYW5kIGFzc3VtZSB0aGV5IGhhdmUgYmVlbiBzZXQKLSsjIHNlbnNpYmx5 IGFmdGVyIGBtNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSknLgotK200X2RlZnVu KFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSwKLStbOiAke0NQPSJjcCAtZiJ9Ci0rOiAke01WPSJt diAtZiJ9Ci0rOiAke1JNPSJybSAtZiJ9Ci0rXSkjIF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKLSsK LSsKLSsjIF9MVF9TRVRVUAotKyMgLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9TRVRVUF0sCi0r W0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5P TklDQUxfQlVJTERdKWRubAotK19MVF9ERUNMKFtdLCBbaG9zdF9hbGlhc10sIFswXSwgW1RoZSBo b3N0IHN5c3RlbV0pZG5sCi0rX0xUX0RFQ0woW10sIFtob3N0XSwgWzBdKWRubAotK19MVF9ERUNM KFtdLCBbaG9zdF9vc10sIFswXSlkbmwKLStkbmwKLStfTFRfREVDTChbXSwgW2J1aWxkX2FsaWFz XSwgWzBdLCBbVGhlIGJ1aWxkIHN5c3RlbV0pZG5sCi0rX0xUX0RFQ0woW10sIFtidWlsZF0sIFsw XSlkbmwKLStfTFRfREVDTChbXSwgW2J1aWxkX29zXSwgWzBdKWRubAotK2RubAotK0FDX1JFUVVJ UkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAotK0FDX1JF UVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK2RubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfTE5fU10p ZG5sCi0rdGVzdCAteiAiJExOX1MiICYmIExOX1M9ImxuIC1zIgotK19MVF9ERUNMKFtdLCBbTE5f U10sIFsxXSwgW1doZXRoZXIgd2UgbmVlZCBzb2Z0IG9yIGhhcmQgbGlua3NdKWRubAotK2RubAot K0FDX1JFUVVJUkUoW0xUX0NNRF9NQVhfTEVOXSlkbmwKLStfTFRfREVDTChbb2JqZXh0XSwgW2Fj X29iamV4dF0sIFswXSwgW09iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKV0pZG5sCi0r X0xUX0RFQ0woW10sIFtleGVleHRdLCBbMF0sIFtFeGVjdXRhYmxlIGZpbGUgc3VmZml4IChub3Jt YWxseSAiIildKWRubAotK2RubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNd KWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10pZG5sCi0rbTRfcmVx dWlyZShbX0xUX0NNRF9SRUxPQURdKWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19NQUdJQ19N RVRIT0RdKWRubAotK200X3JlcXVpcmUoW19MVF9DTURfT0xEX0FSQ0hJVkVdKWRubAotK200X3Jl cXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAotKwotK19MVF9DT05GSUdfTElCVE9P TF9JTklUKFsKLSsjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9w dGlvbnMgd2hpY2ggYWxsb3cgb3VyCi0rIyBjb21tYW5kcyB0aHJvdWdoIHdpdGhvdXQgcmVtb3Zh bCBvZiBcIGVzY2FwZXMgSU5JVC4KLStpZiB0ZXN0IC1uICJcJHtaU0hfVkVSU0lPTitzZXR9IiA7 IHRoZW4KLSsgICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2ZpCi0rXSkKLStpZiB0ZXN0IC1uICIk e1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkK LSsKLStfTFRfQ0hFQ0tfT0JKRElSCi0rCi0rbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0p ZG5sCi0rX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4 MyopCi0rICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0 MiBwcm9ncmFtLiAgRm9yIHNvbWUKLSsgICMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1Rf TkFNRVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyAgIyB2YW5pc2ggaW4g YSBwdWZmIG9mIHNtb2tlLgotKyAgaWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBY c2V0OyB0aGVuCi0rICAgIENPTExFQ1RfTkFNRVM9Ci0rICAgIGV4cG9ydCBDT0xMRUNUX05BTUVT Ci0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscHMg dXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmllcwotKyMgbWV0YWNoYXJhY3Rl cnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmluZ3MuCi0r c2VkX3F1b3RlX3N1YnN0PSdzL1woW1siYCRcXF1dXCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBh Ym92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90 ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkvXFxcMS9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0 byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCi0rIyBk b3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xc XFxcXFxcXFxcJC9cXFxcXFwkL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4 cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KLStkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0 byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucwotK25vX2ds b2Jfc3Vic3Q9J3MvXCovXFxcKi9nJwotKwotKyMgR2xvYmFsIHZhcmlhYmxlczoKLStvZmlsZT1s aWJ0b29sCi0rY2FuX2J1aWxkX3NoYXJlZD15ZXMKLSsKLSsjIEFsbCBrbm93biBsaW5rZXJzIHJl cXVpcmUgYSBgLmEnIGFyY2hpdmUgZm9yIHN0YXRpYyBsaW5raW5nIChleGNlcHQgTVNWQywKLSsj IHdoaWNoIG5lZWRzICcubGliJykuCi0rbGliZXh0PWEKLSsKLSt3aXRoX2dudV9sZD0iJGx0X2N2 X3Byb2dfZ251X2xkIgotKwotK29sZF9DQz0iJENDIgotK29sZF9DRkxBR1M9IiRDRkxBR1MiCi0r Ci0rIyBTZXQgc2FuZSBkZWZhdWx0cyBmb3IgdmFyaW91cyB2YXJpYWJsZXMKLSt0ZXN0IC16ICIk Q0MiICYmIENDPWNjCi0rdGVzdCAteiAiJExUQ0MiICYmIExUQ0M9JENDCi0rdGVzdCAteiAiJExU Q0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCi0rdGVzdCAteiAiJExEIiAmJiBMRD1sZAotK3Rl c3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1vCi0rCi0rX0xUX0NDX0JBU0VOQU1FKFsk Y29tcGlsZXJdKQotKwotKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhl IGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAotK3Rlc3QgLXogIiRNQUdJQ19DTUQiICYmIE1BR0lD X0NNRD1maWxlCi0rY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLStmaWxlX21hZ2ljKikK LSsgIGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIgPSAnJE1BR0lDX0NNRCc7IHRoZW4KLSsgICAg X0xUX1BBVEhfTUFHSUMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIFVzZSBDIGZvciB0aGUg ZGVmYXVsdCBjb25maWd1cmF0aW9uIGluIHRoZSBsaWJ0b29sIHNjcmlwdAotK0xUX1NVUFBPUlRF RF9UQUcoW0NDXSkKLStfTFRfTEFOR19DX0NPTkZJRwotK19MVF9MQU5HX0RFRkFVTFRfQ09ORklH Ci0rX0xUX0NPTkZJR19DT01NQU5EUwotK10pIyBfTFRfU0VUVVAKLSsKLSsKLSsjIF9MVF9QUk9H X0xUTUFJTgotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBOb3RlIHRoYXQgdGhpcyBjb2RlIGlzIGNh bGxlZCBib3RoIGZyb20gYGNvbmZpZ3VyZScsIGFuZCBgY29uZmlnLnN0YXR1cycKLSsjIG5vdyB0 aGF0IHdlIHVzZSBBQ19DT05GSUdfQ09NTUFORFMgdG8gZ2VuZXJhdGUgbGlidG9vbC4gIE5vdGFi bHksCi0rIyBgY29uZmlnLnN0YXR1cycgaGFzIG5vIHZhbHVlIGZvciBhY19hdXhfZGlyIHVubGVz cyB3ZSBhcmUgdXNpbmcgQXV0b21ha2UsCi0rIyBzbyB3ZSBwYXNzIGEgY29weSBhbG9uZyB0byBt YWtlIHN1cmUgaXQgaGFzIGEgc2Vuc2libGUgdmFsdWUgYW55d2F5LgotK200X2RlZnVuKFtfTFRf UFJPR19MVE1BSU5dLAotK1ttNF9pZmRlZihbQUNfUkVRVUlSRV9BVVhfRklMRV0sIFtBQ19SRVFV SVJFX0FVWF9GSUxFKFtsdG1haW4uc2hdKV0pZG5sCi0rX0xUX0NPTkZJR19MSUJUT09MX0lOSVQo W2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJ10pCi0rbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1haW4u c2giCi0rXSkjIF9MVF9QUk9HX0xUTUFJTgotKwotKwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBBY2N1bXVsYXRlIGNvZGUgZm9yIGNyZWF0aW5nIGxp YnRvb2wuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwot KwotKyMgU28gdGhhdCB3ZSBjYW4gcmVjcmVhdGUgYSBmdWxsIGxpYnRvb2wgc2NyaXB0IGluY2x1 ZGluZyBhZGRpdGlvbmFsCi0rIyB0YWdzLCB3ZSBhY2N1bXVsYXRlIHRoZSBjaHVua3Mgb2YgY29k ZSB0byBzZW5kIHRvIEFDX0NPTkZJR19DT01NQU5EUwotKyMgaW4gbWFjcm9zIGFuZCB0aGVuIG1h a2UgYSBzaW5nbGUgY2FsbCBhdCB0aGUgZW5kIHVzaW5nIHRoZSBgbGlidG9vbCcKLSsjIGxhYmVs LgotKwotKwotKyMgX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW0lOSVQtQ09NTUFORFNdKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUmVnaXN0ZXIgSU5J VC1DT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklHX0NPTU1BTkRTIGxhdGVyLgotK200 X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MX0lOSVRdLAotK1ttNF9pZnZhbChbJDFdLAotKyAg ICAgICAgICBbbTRfYXBwZW5kKFtfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVF0sCi0rICAgICAgICAg ICAgICAgICAgICAgWyQxCi0rXSldKV0pCi0rCi0rIyBJbml0aWFsaXplLgotK200X2RlZmluZShb X0xUX09VVFBVVF9MSUJUT09MX0lOSVRdKQotKwotKwotKyMgX0xUX0NPTkZJR19MSUJUT09MKFtD T01NQU5EU10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFJlZ2lzdGVy IENPTU1BTkRTIHRvIGJlIHBhc3NlZCB0byBBQ19DT05GSUdfQ09NTUFORFMgbGF0ZXIuCi0rbTRf ZGVmaW5lKFtfTFRfQ09ORklHX0xJQlRPT0xdLAotK1ttNF9pZnZhbChbJDFdLAotKyAgICAgICAg ICBbbTRfYXBwZW5kKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdLAotKyAgICAgICAgICAg ICAgICAgICAgIFskMQotK10pXSldKQotKwotKyMgSW5pdGlhbGl6ZS4KLSttNF9kZWZpbmUoW19M VF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10pCi0rCi0rCi0rIyBfTFRfQ09ORklHX1NBVkVfQ09N TUFORFMoW0NPTU1BTkRTXSwgW0lOSVRfQ09NTUFORFNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NPTkZJ R19TQVZFX0NPTU1BTkRTXSwKLStbX0xUX0NPTkZJR19MSUJUT09MKFskMV0pCi0rX0xUX0NPTkZJ R19MSUJUT09MX0lOSVQoWyQyXSkKLStdKQotKwotKwotKyMgX0xUX0ZPUk1BVF9DT01NRU5UKFtD T01NRU5UXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBZGQgbGVhZGlu ZyBjb21tZW50IG1hcmtzIHRvIHRoZSBzdGFydCBvZiBlYWNoIGxpbmUsIGFuZCBhIHRyYWlsaW5n Ci0rIyBmdWxsLXN0b3AgdG8gdGhlIHdob2xlIGNvbW1lbnQgaWYgb25lIGlzIG5vdCBwcmVzZW50 IGFscmVhZHkuCi0rbTRfZGVmaW5lKFtfTFRfRk9STUFUX0NPTU1FTlRdLAotK1ttNF9pZnZhbChb JDFdLCBbCi0rbTRfYnBhdHN1YnN0KFttNF9icGF0c3Vic3QoWyQxXSwgW14gKl0sIFsjIF0pXSwK LSsgICAgICAgICAgICAgIFtbJ2AkXF1dLCBbXFxcJl0pXW00X2JtYXRjaChbJDFdLCBbWyE/Ll0k XSwgW10sIFsuXSkKLSspXSkKLSsKLSsKLSsKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IyMKLSsjIyBGSVhNRTogRWxpbWluYXRlIFZBUk5BTUUgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gIyMKLSsKLSsKLSsjIF9MVF9ERUNMKFtDT05GSUdOQU1FXSwgVkFSTkFNRSwgVkFM VUUsIFtERVNDUklQVElPTl0sIFtJUy1UQUdHRUQ/XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENPTkZJ R05BTUUgaXMgdGhlIG5hbWUgZ2l2ZW4gdG8gdGhlIHZhbHVlIGluIHRoZSBsaWJ0b29sIHNjcmlw dC4KLSsjIFZBUk5BTUUgaXMgdGhlIChiYXNlKSBuYW1lIHVzZWQgaW4gdGhlIGNvbmZpZ3VyZSBz Y3JpcHQuCi0rIyBWQUxVRSBtYXkgYmUgMCwgMSBvciAyIGZvciBhIGNvbXB1dGVkIHF1b3RlIGVz Y2FwZWQgdmFsdWUgYmFzZWQgb24KLSsjIFZBUk5BTUUuICBBbnkgb3RoZXIgdmFsdWUgd2lsbCBi ZSB1c2VkIGRpcmVjdGx5LgotK200X2RlZmluZShbX0xUX0RFQ0xdLAotK1tsdF9pZl9hcHBlbmRf dW5pcShbbHRfZGVjbF92YXJuYW1lc10sIFskMl0sIFssIF0sCi0rICAgIFtsdF9kaWN0X2FkZF9z dWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFtsaWJ0b29sX25hbWVdLAotKwlbbTRfaWZ2YWwo WyQxXSwgWyQxXSwgWyQyXSldKQotKyAgICBsdF9kaWN0X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGlj dF0sIFskMl0sIFt2YWx1ZV0sIFskM10pCi0rICAgIG00X2lmdmFsKFskNF0sCi0rCVtsdF9kaWN0 X2FkZF9zdWJrZXkoW2x0X2RlY2xfZGljdF0sIFskMl0sIFtkZXNjcmlwdGlvbl0sIFskNF0pXSkK LSsgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLAotKwlbdGFnZ2Vk P10sIFttNF9pZnZhbChbJDVdLCBbeWVzXSwgW25vXSldKV0pCi0rXSkKLSsKLSsKLSsjIF9MVF9U QUdERUNMKFtDT05GSUdOQU1FXSwgVkFSTkFNRSwgVkFMVUUsIFtERVNDUklQVElPTl0pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot K200X2RlZmluZShbX0xUX1RBR0RFQ0xdLCBbX0xUX0RFQ0woWyQxXSwgWyQyXSwgWyQzXSwgWyQ0 XSwgW3llc10pXSkKLSsKLSsKLSsjIGx0X2RlY2xfdGFnX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBb VkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX3RhZ192YXJuYW1lc10sCi0rW19sdF9kZWNs X2ZpbHRlcihbdGFnZ2VkP10sIFt5ZXNdLCAkQCldKQotKwotKwotKyMgX2x0X2RlY2xfZmlsdGVy KFNVQktFWSwgVkFMVUUsIFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLl0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZp bmUoW19sdF9kZWNsX2ZpbHRlcl0sCi0rW200X2Nhc2UoWyQjXSwKLSsgIFswXSwgW200X2ZhdGFs KFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAotKyAgWzFdLCBbbTRfZmF0YWwoWyQwOiB0 b28gZmV3IGFyZ3VtZW50czogJCM6ICQxXSldLAotKyAgWzJdLCBbbHRfZGljdF9maWx0ZXIoW2x0 X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFtdLCBsdF9kZWNsX3Zhcm5hbWVzKV0sCi0rICBbM10s IFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgWyQxXSwgWyQyXSwgWyQzXSwgbHRfZGVj bF92YXJuYW1lcyldLAotKyAgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCAkQCldKVtd ZG5sCi0rXSkKLSsKLSsKLSsjIGx0X2RlY2xfcXVvdGVfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtW QVJOQU1FMS4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGVjbF9xdW90ZV92YXJuYW1lc10sCi0rW19sdF9k ZWNsX2ZpbHRlcihbdmFsdWVdLCBbMV0sICRAKV0pCi0rCi0rCi0rIyBsdF9kZWNsX2RxdW90ZV92 YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGVjbF9k cXVvdGVfdmFybmFtZXNdLAotK1tfbHRfZGVjbF9maWx0ZXIoW3ZhbHVlXSwgWzJdLCAkQCldKQot KwotKwotKyMgbHRfZGVjbF92YXJuYW1lc190YWdnZWQoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4u Ll0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSttNF9kZWZpbmUoW2x0X2RlY2xfdmFybmFtZXNfdGFnZ2VkXSwKLStbbTRfYXNzZXJ0KFsk IyA8PSAyXSlkbmwKLStfJDAobTRfcXVvdGUobTRfZGVmYXVsdChbJDFdLCBbWywgXV0pKSwKLSsg ICAgbTRfaWZ2YWwoWyQyXSwgW1skMl1dLCBbbTRfZHF1b3RlKGx0X2RlY2xfdGFnX3Zhcm5hbWVz KV0pLAotKyAgICBtNF9zcGxpdChtNF9ub3JtYWxpemUobTRfcXVvdGUoX0xUX1RBR1MpKSwgWyBd KSldKQotK200X2RlZmluZShbX2x0X2RlY2xfdmFybmFtZXNfdGFnZ2VkXSwKLStbbTRfaWZ2YWwo WyQzXSwgW2x0X2NvbWJpbmUoWyQxXSwgWyQyXSwgW19dLCAkMyldKV0pCi0rCi0rCi0rIyBsdF9k ZWNsX2FsbF92YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRf ZGVjbF9hbGxfdmFybmFtZXNdLAotK1tfJDAobTRfcXVvdGUobTRfZGVmYXVsdChbJDFdLCBbWywg XV0pKSwKLSsgICAgIG00X2lmKFskMl0sIFtdLAotKwkgICBtNF9xdW90ZShsdF9kZWNsX3Zhcm5h bWVzKSwKLSsJbTRfcXVvdGUobTRfc2hpZnQoJEApKSkpW11kbmwKLStdKQotK200X2RlZmluZShb X2x0X2RlY2xfYWxsX3Zhcm5hbWVzXSwKLStbbHRfam9pbigkQCwgbHRfZGVjbF92YXJuYW1lc190 YWdnZWQoWyQxXSwKLSsJCQlsdF9kZWNsX3RhZ192YXJuYW1lcyhbWywgXV0sIG00X3NoaWZ0KCRA KSkpKWRubAotK10pCi0rCi0rCi0rIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJFKFtWQVJOQU1F XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUXVvdGUgYSB2 YXJpYWJsZSB2YWx1ZSwgYW5kIGZvcndhcmQgaXQgdG8gYGNvbmZpZy5zdGF0dXMnIHNvIHRoYXQg aXRzCi0rIyBkZWNsYXJhdGlvbiB0aGVyZSB3aWxsIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgaW4g YGNvbmZpZ3VyZScuICBWQVJOQU1FCi0rIyBtdXN0IGhhdmUgYSBzaW5nbGUgcXVvdGUgZGVsaW1p dGVkIHZhbHVlIGZvciB0aGlzIHRvIHdvcmsuCi0rbTRfZGVmaW5lKFtfTFRfQ09ORklHX1NUQVRV U19ERUNMQVJFXSwKLStbJDE9J2AkRUNITyAiWCRdWyQxIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnXSkKLSsKLSsKLSsjIF9MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFU SU9OUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBXZSBkZWxpbWl0IGxp YnRvb2wgY29uZmlnIHZhcmlhYmxlcyB3aXRoIHNpbmdsZSBxdW90ZXMsIHNvIHdoZW4KLSsjIHdl IHdyaXRlIHRoZW0gdG8gY29uZmlnLnN0YXR1cywgd2UgaGF2ZSB0byBiZSBzdXJlIHRvIHF1b3Rl IGFsbAotKyMgZW1iZWRkZWQgc2luZ2xlIHF1b3RlcyBwcm9wZXJseS4gIEluIGNvbmZpZ3VyZSwg dGhpcyBtYWNybyBleHBhbmRzCi0rIyBlYWNoIHZhcmlhYmxlIGRlY2xhcmVkIHdpdGggX0xUX0RF Q0wgKGFuZCBfTFRfVEFHREVDTCkgaW50bzoKLSsjCi0rIyAgICA8dmFyPj0nYCRFQ0hPICJYJDx2 YXI+IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbTRfZGVmdW4o W19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OU10sCi0rW200X2ZvcmVhY2goW19sdF92YXJd LCBtNF9xdW90ZShsdF9kZWNsX2FsbF92YXJuYW1lcyksCi0rICAgIFttNF9uKFtfTFRfQ09ORklH X1NUQVRVU19ERUNMQVJFKF9sdF92YXIpXSldKV0pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9UQUdT Ci0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rIyBPdXRwdXQgY29tbWVudCBhbmQgbGlzdCBvZiB0YWdz IHN1cHBvcnRlZCBieSB0aGUgc2NyaXB0Ci0rbTRfZGVmdW4oW19MVF9MSUJUT09MX1RBR1NdLAot K1tfTFRfRk9STUFUX0NPTU1FTlQoW1RoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRp b25zIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdF0pZG5sCi0rYXZhaWxhYmxlX3RhZ3M9Il9MVF9U QUdTImRubAotK10pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9ERUNMQVJFKFZBUk5BTUUsIFtUQUdd KQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEV4dHJhY3QgdGhl IGRpY3Rpb25hcnkgdmFsdWVzIGZvciBWQVJOQU1FIChvcHRpb25hbGx5IHdpdGggVEFHKSBhbmQK LSsjIGV4cGFuZCB0byBhIGNvbW1lbnRlZCBzaGVsbCB2YXJpYWJsZSBzZXR0aW5nOgotKyMKLSsj ICAgICMgU29tZSBjb21tZW50IGFib3V0IHdoYXQgVkFSIGlzIGZvci4KLSsjICAgIHZpc2libGVf bmFtZT0kbHRfaW50ZXJuYWxfbmFtZQotK200X2RlZmluZShbX0xUX0xJQlRPT0xfREVDTEFSRV0s Ci0rW19MVF9GT1JNQVRfQ09NTUVOVChtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2Rp Y3RdLCBbJDFdLAotKwkJCQkJICAgW2Rlc2NyaXB0aW9uXSkpKVtdZG5sCi0rbTRfcHVzaGRlZihb X2xpYnRvb2xfbmFtZV0sCi0rICAgIG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGlj dF0sIFskMV0sIFtsaWJ0b29sX25hbWVdKSkpW11kbmwKLSttNF9jYXNlKG00X3F1b3RlKGx0X2Rp Y3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pKSwKLSsgICAgWzBdLCBbX2xp YnRvb2xfbmFtZT1bJF0kMV0sCi0rICAgIFsxXSwgW19saWJ0b29sX25hbWU9JGx0X1tdJDFdLAot KyAgICBbMl0sIFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKLSsgICAgW19saWJ0b29sX25hbWU9 bHRfZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwgW3ZhbHVlXSldKVtdZG5sCi0rbTRf aWZ2YWwoWyQyXSwgW18kMl0pW11tNF9wb3BkZWYoW19saWJ0b29sX25hbWVdKVtdZG5sCi0rXSkK LSsKLSsKLSsjIF9MVF9MSUJUT09MX0NPTkZJR19WQVJTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgUHJvZHVjZSBjb21tZW50ZWQgZGVjbGFyYXRpb25zIG9mIG5vbi10YWdnZWQgbGli dG9vbCBjb25maWcgdmFyaWFibGVzCi0rIyBzdWl0YWJsZSBmb3IgaW5zZXJ0aW9uIGluIHRoZSBM SUJUT09MIENPTkZJRyBzZWN0aW9uIG9mIHRoZSBgbGlidG9vbCcKLSsjIHNjcmlwdC4gIFRhZ2dl ZCBsaWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMgKGV2ZW4gZm9yIHRoZSBMSUJUT09MIENPTkZJRwot KyMgc2VjdGlvbikgYXJlIHByb2R1Y2VkIGJ5IF9MVF9MSUJUT09MX1RBR19WQVJTLgotK200X2Rl ZnVuKFtfTFRfTElCVE9PTF9DT05GSUdfVkFSU10sCi0rW200X2ZvcmVhY2goW19sdF92YXJdLAot KyAgICBtNF9xdW90ZShfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbbm9dLCBbXSwgbHRfZGVj bF92YXJuYW1lcykpLAotKyAgICBbbTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShfbHRfdmFyKV0p XSldKQotKwotKwotKyMgX0xUX0xJQlRPT0xfVEFHX1ZBUlMoVEFHKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX0xJQlRPT0xfVEFHX1ZBUlNdLAotK1ttNF9m b3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpLAotKyAgICBb bTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShfbHRfdmFyLCBbJDFdKV0pXSldKQotKwotKwotKyMg X0xUX1RBR1ZBUihWQVJOQU1FLCBbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSttNF9kZWZpbmUoW19MVF9UQUdWQVJdLCBbbTRfaWZ2YWwoWyQyXSwgWyQxXyQy XSwgWyQxXSldKQotKwotKwotKyMgX0xUX0NPTkZJR19DT01NQU5EUwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgU2VuZCBhY2N1bXVsYXRlZCBvdXRwdXQgdG8gJENPTkZJR19TVEFUVVMuICBU aGFua3MgdG8gdGhlIGxpc3RzIG9mCi0rIyB2YXJpYWJsZXMgZm9yIHNpbmdsZSBhbmQgZG91Ymxl IHF1b3RlIGVzY2FwaW5nIHdlIHNhdmVkIGZyb20gY2FsbHMKLSsjIHRvIF9MVF9ERUNMLCB3ZSBj YW4gcHV0IHF1b3RlIGVzY2FwZWQgdmFyaWFibGVzIGRlY2xhcmF0aW9ucwotKyMgaW50byBgY29u ZmlnLnN0YXR1cycsIGFuZCB0aGVuIHRoZSBzaGVsbCBjb2RlIHRvIHF1b3RlIGVzY2FwZSB0aGVt IGluCi0rIyBmb3IgbG9vcHMgaW4gYGNvbmZpZy5zdGF0dXMnLiAgRmluYWxseSwgYW55IGFkZGl0 aW9uYWwgY29kZSBhY2N1bXVsYXRlZAotKyMgZnJvbSBjYWxscyB0byBfTFRfQ09ORklHX0xJQlRP T0xfSU5JVCBpcyBleHBhbmRlZC4KLSttNF9kZWZ1bihbX0xUX0NPTkZJR19DT01NQU5EU10sCi0r W0FDX1BST1ZJREVfSUZFTFNFKFtMVF9PVVRQVVRdLAotKwlkbmwgSWYgdGhlIGxpYnRvb2wgZ2Vu ZXJhdGlvbiBjb2RlIGhhcyBiZWVuIHBsYWNlZCBpbiAkQ09ORklHX0xULAotKwlkbmwgaW5zdGVh ZCBvZiBkdXBsaWNhdGluZyBpdCBhbGwgb3ZlciBhZ2FpbiBpbnRvIGNvbmZpZy5zdGF0dXMsCi0r CWRubCB0aGVuIHdlIHdpbGwgaGF2ZSBjb25maWcuc3RhdHVzIHJ1biAkQ09ORklHX0xUIGxhdGVy LCBzbyBpdAotKwlkbmwgbmVlZHMgdG8ga25vdyB3aGF0IG5hbWUgaXMgc3RvcmVkIHRoZXJlOgot KyAgICAgICAgW0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0sCi0rICAgICAgICAgICAgWyRT SEVMTCAkQ09ORklHX0xUIHx8IEFTX0VYSVQoMSldLCBbQ09ORklHX0xUPSckQ09ORklHX0xUJ10p XSwKLSsgICAgZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBpcyBkZXN0aW5lZCBm b3IgY29uZmlnLnN0YXR1cywKLSsgICAgZG5sIGV4cGFuZCB0aGUgYWNjdW11bGF0ZWQgY29tbWFu ZHMgYW5kIGluaXQgY29kZSBub3c6Ci0rICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xpYnRvb2xd LAotKyAgICAgICAgW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10sIFtfTFRfT1VUUFVUX0xJ QlRPT0xfQ09NTUFORFNfSU5JVF0pXSkKLStdKSNfTFRfQ09ORklHX0NPTU1BTkRTCi0rCi0rCi0r IyBJbml0aWFsaXplLgotK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lO SVRdLAotK1sKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0 YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQg Q0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0rc2VkX3F1b3RlX3N1 YnN0PSckc2VkX3F1b3RlX3N1YnN0JwotK2RvdWJsZV9xdW90ZV9zdWJzdD0nJGRvdWJsZV9xdW90 ZV9zdWJzdCcKLStkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxlX3N1YnN0Jwot K19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkFUSU9OUwotK0xUQ0M9JyRMVENDJwotK0xUQ0ZMQUdT PSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZBVUxUJwotKwotKyMgUXVvdGUg ZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBsdF9kZWNsX2FsbF92YXJuYW1lcyhbWyBcCi0r XV0sIGx0X2RlY2xfcXVvdGVfdmFybmFtZXMpOyBkbwotKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRF Q0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KLSsgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQotKyAg ICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8 IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKLSsgICAg ICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxc XFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBEb3VibGUtcXVvdGUgZG91 YmxlLWV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sg XAotK11dLCBsdF9kZWNsX2RxdW90ZV92YXJuYW1lcyk7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxc XFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1tcXFxcXFxcYFxcIlxcXCRdXSop Ci0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwkdmFy XFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwk c2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJpYWJsZV9zdWJzdFxcIlxcXGBc XFxcXFwiIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxc IlxcXCRcJHZhclxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2RvbmUKLSsKLSsjIEZp eC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5IHRoZSBhYm92ZSBxdW90aW5n IHJ1bGVzLgotK2Nhc2UgXCRsdF9FQ0hPIGluCi0rKidcXFxbJF0wIC0tZmFsbGJhY2stZWNobyIn KWRubCAiCi0rICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9c XFxcXFxcXFxcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJcWyRdL1xbJF0wIC0tZmFsbGJhY2st ZWNobyIvJ1xgCi0rICA7OwotK2VzYWMKLSsKLStfTFRfT1VUUFVUX0xJQlRPT0xfSU5JVAotK10p Ci0rCi0rCi0rIyBMVF9PVVRQVVQKLSsjIC0tLS0tLS0tLQotKyMgVGhpcyBtYWNybyBhbGxvd3Mg ZWFybHkgZ2VuZXJhdGlvbiBvZiB0aGUgbGlidG9vbCBzY3JpcHQgKGJlZm9yZQotKyMgQUNfT1VU UFVUIGlzIGNhbGxlZCksIGluY2FzZSBpdCBpcyB1c2VkIGluIGNvbmZpZ3VyZSBmb3IgY29tcGls YXRpb24KLSsjIHRlc3RzLgotK0FDX0RFRlVOKFtMVF9PVVRQVVRdLAotK1s6ICR7Q09ORklHX0xU PS4vY29uZmlnLmx0fQotK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRDT05GSUdfTFRdKQotK2Nh dCA+IiRDT05GSUdfTFQiIDw8X0xURU9GCi0rIyEgJFNIRUxMCi0rIyBHZW5lcmF0ZWQgYnkgJGFz X21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSBhIGxpYnRvb2wgc3R1YiB3aXRoIHRo ZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCi0rCi0rbHRfY2xfc2lsZW50PWZhbHNlCi0rU0hFTEw9 XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLStfTFRFT0YKLSsKLStjYXQgPj4iJENPTkZJR19MVCIg PDxcX0xURU9GCi0rQVNfU0hFTExfU0FOSVRJWkUKLStfQVNfUFJFUEFSRQotKwotK2V4ZWMgQVNf TUVTU0FHRV9GRD4mMQotK2V4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+PmNvbmZpZy5sb2cKLSt7Ci0r ICBlY2hvCi0rICBBU19CT1goW1J1bm5pbmcgJGFzX21lLl0pCi0rfSA+JkFTX01FU1NBR0VfTE9H X0ZECi0rCi0rbHRfY2xfaGVscD0iXAotK1xgJGFzX21lJyBjcmVhdGVzIGEgbG9jYWwgbGlidG9v bCBzdHViIGZyb20gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwKLStmb3IgdXNlIGluIGZ1cnRo ZXIgY29uZmlndXJlIHRpbWUgdGVzdHMgYmVmb3JlIHRoZSByZWFsIGxpYnRvb2wgaXMKLStnZW5l cmF0ZWQuCi0rCi0rVXNhZ2U6ICRbMF0gW1tPUFRJT05TXV0KLSsKLSsgIC1oLCAtLWhlbHAgICAg ICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAotKyAgLVYsIC0tdmVyc2lvbiAgIHByaW50IHZl cnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKLSsgIC1xLCAtLXF1aWV0ICAgICBkbyBub3QgcHJpbnQg cHJvZ3Jlc3MgbWVzc2FnZXMKLSsgIC1kLCAtLWRlYnVnICAgICBkb24ndCByZW1vdmUgdGVtcG9y YXJ5IGZpbGVzCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+LiIKLSsK LStsdF9jbF92ZXJzaW9uPSJcCi0rbTRfaWZzZXQoW0FDX1BBQ0tBR0VfTkFNRV0sIFtBQ19QQUNL QUdFX05BTUUgXSljb25maWcubHRbXWRubAotK200X2lmc2V0KFtBQ19QQUNLQUdFX1ZFUlNJT05d LCBbIEFDX1BBQ0tBR0VfVkVSU0lPTl0pCi0rY29uZmlndXJlZCBieSAkWzBdLCBnZW5lcmF0ZWQg YnkgbTRfUEFDS0FHRV9TVFJJTkcuCi0rCi0rQ29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotK1RoaXMgY29uZmlnLmx0IHNjcmlwdCBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgotKwotK3doaWxlIHRlc3Qg JFsjXSAhPSAwCi0rZG8KLSsgIGNhc2UgJFsxXSBpbgotKyAgICAtLXZlcnNpb24gfCAtLXYqIHwg LVYgKQotKyAgICAgIGVjaG8gIiRsdF9jbF92ZXJzaW9uIjsgZXhpdCAwIDs7Ci0rICAgIC0taGVs cCB8IC0taCogfCAtaCApCi0rICAgICAgZWNobyAiJGx0X2NsX2hlbHAiOyBleGl0IDAgOzsKLSsg ICAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCi0rICAgICAgZGVidWc9OiA7OwotKyAgICAtLXF1aWV0 IHwgLS1xKiB8IC0tc2lsZW50IHwgLS1zKiB8IC1xICkKLSsgICAgICBsdF9jbF9zaWxlbnQ9OiA7 OwotKwotKyAgICAtKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgb3B0aW9uOiAkWzFdCi0r VHJ5IFxgJFswXSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7Ci0rCi0rICAgICop IEFDX01TR19FUlJPUihbdW5yZWNvZ25pemVkIGFyZ3VtZW50OiAkWzFdCi0rVHJ5IFxgJFswXSAt LWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLl0pIDs7Ci0rICBlc2FjCi0rICBzaGlmdAotK2Rv bmUKLSsKLStpZiAkbHRfY2xfc2lsZW50OyB0aGVuCi0rICBleGVjIEFTX01FU1NBR0VfRkQ+L2Rl di9udWxsCi0rZmkKLStfTFRFT0YKLSsKLStjYXQgPj4iJENPTkZJR19MVCIgPDxfTFRFT0YKLStf TFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNfSU5JVAotK19MVEVPRgotKwotK2NhdCA+PiIkQ09O RklHX0xUIiA8PFxfTFRFT0YKLStBQ19NU0dfTk9USUNFKFtjcmVhdGluZyAkb2ZpbGVdKQotK19M VF9PVVRQVVRfTElCVE9PTF9DT01NQU5EUwotK0FTX0VYSVQoMCkKLStfTFRFT0YKLStjaG1vZCAr eCAiJENPTkZJR19MVCIKLSsKLSsjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2cs IGJ1dCBjb25maWcubHQgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLAotKyMgYXBwZW5kaW5nIHRv IGNvbmZpZy5sb2csIHdoaWNoIGZhaWxzIG9uIERPUywgYXMgY29uZmlnLmxvZyBpcyBzdGlsbCBr ZXB0Ci0rIyBvcGVuIGJ5IGNvbmZpZ3VyZS4gIEhlcmUgd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9u dWxsLCBlZmZlY3RpdmVseSBjbG9zaW5nCi0rIyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJv cGVybHkgKHJlKW9wZW5lZCBhbmQgYXBwZW5kZWQgdG8gYnkgY29uZmlnLmx0LgotK2lmIHRlc3Qg IiRub19jcmVhdGUiICE9IHllczsgdGhlbgotKyAgbHRfY2xfc3VjY2Vzcz06Ci0rICB0ZXN0ICIk c2lsZW50IiA9IHllcyAmJgotKyAgICBsdF9jb25maWdfbHRfYXJncz0iJGx0X2NvbmZpZ19sdF9h cmdzIC0tcXVpZXQiCi0rICBleGVjIEFTX01FU1NBR0VfTE9HX0ZEPi9kZXYvbnVsbAotKyAgJFNI RUxMICIkQ09ORklHX0xUIiAkbHRfY29uZmlnX2x0X2FyZ3MgfHwgbHRfY2xfc3VjY2Vzcz1mYWxz ZQotKyAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZwotKyAgJGx0X2NsX3N1Y2Nl c3MgfHwgQVNfRVhJVCgxKQotK2ZpCi0rXSkjIExUX09VVFBVVAotKwotKwotKyMgX0xUX0NPTkZJ RyhUQUcpCi0rIyAtLS0tLS0tLS0tLS0tLS0KLSsjIElmIFRBRyBpcyB0aGUgYnVpbHQtaW4gdGFn LCBjcmVhdGUgYW4gaW5pdGlhbCBsaWJ0b29sIHNjcmlwdCB3aXRoIGEKLSsjIGRlZmF1bHQgY29u ZmlndXJhdGlvbiBmcm9tIHRoZSB1bnRhZ2dlZCBjb25maWcgdmFycy4gIE90aGVyd2lzZSBhZGQg Y29kZQotKyMgdG8gY29uZmlnLnN0YXR1cyBmb3IgYXBwZW5kaW5nIHRoZSBjb25maWd1cmF0aW9u IG5hbWVkIGJ5IFRBRyBmcm9tIHRoZQotKyMgbWF0Y2hpbmcgdGFnZ2VkIGNvbmZpZyB2YXJzLgot K200X2RlZnVuKFtfTFRfQ09ORklHXSwKLStbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZB VUxUU10pZG5sCi0rX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFsKLSsgIG00X2RlZmluZShbX0xU X1RBR10sIG00X2lmKFskMV0sIFtdLCBbQ10sIFskMV0pKWRubAotKyAgbTRfaWYoX0xUX1RBRywg W0NdLCBbCi0rICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUg b3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsgICAgIyBjb21tYW5kcyB0aHJvdWdoIHdpdGhvdXQg cmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0 fSIgOyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsgICAgZmkKLSsKLSsgICAg Y2ZnZmlsZT0iJHtvZmlsZX1UIgotKyAgICB0cmFwICIkUk0gXCIkY2ZnZmlsZVwiOyBleGl0IDEi IDEgMiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgotKwotKyAgICBjYXQgPDxfTFRfRU9GID4+ICIk Y2ZnZmlsZSIKLSsjISAkU0hFTEwKLSsKLSsjIGAkRUNITyAiJG9maWxlIiB8IHNlZCAncyVeLiov JSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZp Y2VzLgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJGFzX21lICgkUEFDS0FHRSRUSU1F U1RBTVApICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhvc3QgYChob3N0 bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgotKyMgTk9URTogQ2hhbmdl cyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQgbHRtYWluLnNoLgotKyMK LStfTFRfQ09QWUlORwotK19MVF9MSUJUT09MX1RBR1MKLSsKLSsjICMjIyBCRUdJTiBMSUJUT09M IENPTkZJRwotK19MVF9MSUJUT09MX0NPTkZJR19WQVJTCi0rX0xUX0xJQlRPT0xfVEFHX1ZBUlMK LSsjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKLSsKLStfTFRfRU9GCi0rCi0rICBjYXNlICRob3N0 X29zIGluCi0rICBhaXgzKikKLSsgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKyMg QUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0u ICBGb3Igc29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJv bm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9r ZS4KLStpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgIENP TExFQ1RfTkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwotK2ZpCi0rX0xUX0VPRgotKyAg ICA7OwotKyAgZXNhYwotKwotKyAgX0xUX1BST0dfTFRNQUlOCi0rCi0rICAjIFdlIHVzZSBzZWQg aW5zdGVhZCBvZiBjYXQgYmVjYXVzZSBiYXNoIG9uIERKR1BQIGdldHMgY29uZnVzZWQgaWYKLSsg ICMgaWYgZmluZHMgbWl4ZWQgQ1IvTEYgYW5kIExGLW9ubHkgbGluZXMuICBTaW5jZSBzZWQgb3Bl cmF0ZXMgaW4KLSsgICMgdGV4dCBtb2RlLCBpdCBwcm9wZXJseSBjb252ZXJ0cyBsaW5lcyB0byBD Ui9MRi4gIFRoaXMgYmFzaCBwcm9ibGVtCi0rICAjIGlzIHJlcG9ydGVkbHkgZml4ZWQsIGJ1dCB3 aHkgbm90IHJ1biBvbiBvbGQgdmVyc2lvbnMgdG9vPwotKyAgc2VkICcvXiMgR2VuZXJhdGVkIHNo ZWxsIGZ1bmN0aW9ucyBpbnNlcnRlZCBoZXJlL3EnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwK LSsgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKLSsKLSsgIF9MVF9QUk9HX1hTSV9T SEVMTEZOUwotKwotKyAgc2VkIC1uICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9ucyBpbnNl cnRlZCBoZXJlLywkcCcgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYg IiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAot KyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAi JGNmZ2ZpbGUiKQotKyAgY2htb2QgK3ggIiRvZmlsZSIKLStdLAotK1tjYXQgPDxfTFRfRU9GID4+ ICIkb2ZpbGUiCi0rCi0rZG5sIFVuZm9ydHVuYXRlbHkgd2UgaGF2ZSB0byB1c2UgJDEgaGVyZSwg c2luY2UgX0xUX1RBRyBpcyBub3QgZXhwYW5kZWQKLStkbmwgaW4gYSBjb21tZW50IChpZSBhZnRl ciBhICMpLgotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJDEKLStfTFRfTElCVE9P TF9UQUdfVkFSUyhfTFRfVEFHKQotKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICQxCi0r X0xUX0VPRgotK10pZG5sIC9tNF9pZgotK10sCi0rW200X2lmKFskMV0sIFtdLCBbCi0rICAgIFBB Q0tBR0U9JyRQQUNLQUdFJwotKyAgICBWRVJTSU9OPSckVkVSU0lPTicKLSsgICAgVElNRVNUQU1Q PSckVElNRVNUQU1QJwotKyAgICBSTT0nJFJNJwotKyAgICBvZmlsZT0nJG9maWxlJ10sIFtdKQot K10pZG5sIC9fTFRfQ09ORklHX1NBVkVfQ09NTUFORFMKLStdKSMgX0xUX0NPTkZJRwotKwotKwot KyMgTFRfU1VQUE9SVEVEX1RBRyhUQUcpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRy YWNlIHRoaXMgbWFjcm8gdG8gZGlzY292ZXIgd2hhdCB0YWdzIGFyZSBzdXBwb3J0ZWQgYnkgdGhl IGxpYnRvb2wKLSsjIC0tdGFnIG9wdGlvbiwgdXNpbmc6Ci0rIyAgICBhdXRvY29uZiAtLXRyYWNl ICdMVF9TVVBQT1JURURfVEFHOiQxJwotK0FDX0RFRlVOKFtMVF9TVVBQT1JURURfVEFHXSwgW10p Ci0rCi0rCi0rIyBDIHN1cHBvcnQgaXMgYnVpbHQtaW4gZm9yIG5vdwotK200X2RlZmluZShbX0xU X0xBTkdfQ19lbmFibGVkXSwgW10pCi0rbTRfZGVmaW5lKFtfTFRfVEFHU10sIFtdKQotKwotKwot KyMgTFRfTEFORyhMQU5HKQotKyMgLS0tLS0tLS0tLS0tLQotKyMgRW5hYmxlIGxpYnRvb2wgc3Vw cG9ydCBmb3IgdGhlIGdpdmVuIGxhbmd1YWdlIGlmIG5vdCBhbHJlYWR5IGVuYWJsZWQuCi0rQUNf REVGVU4oW0xUX0xBTkddLAotK1tBQ19CRUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCi0rbTRf Y2FzZShbJDFdLAotKyAgW0NdLAkJCVtfTFRfTEFORyhDKV0sCi0rICBbQysrXSwJCVtfTFRfTEFO RyhDWFgpXSwKLSsgIFtKYXZhXSwJCVtfTFRfTEFORyhHQ0opXSwKLSsgIFtGb3J0cmFuIDc3XSwJ CVtfTFRfTEFORyhGNzcpXSwKLSsgIFtGb3J0cmFuXSwJCVtfTFRfTEFORyhGQyldLAotKyAgW1dp bmRvd3MgUmVzb3VyY2VdLAlbX0xUX0xBTkcoUkMpXSwKLSsgIFttNF9pZmRlZihbX0xUX0xBTkdf XSQxW19DT05GSUddLAotKyAgICBbX0xUX0xBTkcoJDEpXSwKLSsgICAgW200X2ZhdGFsKFskMDog dW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICIkMSJdKV0pXSlkbmwKLStdKSMgTFRfTEFORwotKwotKwot KyMgX0xUX0xBTkcoTEFOR05BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihb X0xUX0xBTkddLAotK1ttNF9pZmRlZihbX0xUX0xBTkdfXSQxW19lbmFibGVkXSwgW10sCi0rICBb TFRfU1VQUE9SVEVEX1RBRyhbJDFdKWRubAotKyAgbTRfYXBwZW5kKFtfTFRfVEFHU10sIFskMSBd KWRubAotKyAgbTRfZGVmaW5lKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRdLCBbXSlkbmwKLSsgIF9M VF9MQU5HXyQxX0NPTkZJRygkMSldKWRubAotK10pIyBfTFRfTEFORwotKwotKwotKyMgX0xUX0xB TkdfREVGQVVMVF9DT05GSUcKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4o W19MVF9MQU5HX0RFRkFVTFRfQ09ORklHXSwKLStbQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0df Q1hYXSwKLSsgIFtMVF9MQU5HKENYWCldLAotKyAgW200X2RlZmluZShbQUNfUFJPR19DWFhdLCBk ZWZuKFtBQ19QUk9HX0NYWF0pW0xUX0xBTkcoQ1hYKV0pXSkKLSsKLStBQ19QUk9WSURFX0lGRUxT RShbQUNfUFJPR19GNzddLAotKyAgW0xUX0xBTkcoRjc3KV0sCi0rICBbbTRfZGVmaW5lKFtBQ19Q Uk9HX0Y3N10sIGRlZm4oW0FDX1BST0dfRjc3XSlbTFRfTEFORyhGNzcpXSldKQotKwotK0FDX1BS T1ZJREVfSUZFTFNFKFtBQ19QUk9HX0ZDXSwKLSsgIFtMVF9MQU5HKEZDKV0sCi0rICBbbTRfZGVm aW5lKFtBQ19QUk9HX0ZDXSwgZGVmbihbQUNfUFJPR19GQ10pW0xUX0xBTkcoRkMpXSldKQotKwot K2RubCBUaGUgY2FsbCB0byBbQV1bTV9QUk9HX0dDSl0gaXMgcXVvdGVkIGxpa2UgdGhhdCB0byBz dG9wIGFjbG9jYWwKLStkbmwgcHVsbGluZyB0aGluZ3MgaW4gbmVlZGxlc3NseS4KLStBQ19QUk9W SURFX0lGRUxTRShbQUNfUFJPR19HQ0pdLAotKyAgW0xUX0xBTkcoR0NKKV0sCi0rICBbQUNfUFJP VklERV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLAotKyAgICBbTFRfTEFORyhHQ0opXSwKLSsgICAg W0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX0dDSl0sCi0rICAgICAgW0xUX0xBTkcoR0NKKV0s Ci0rICAgICAgW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sCi0rCVttNF9kZWZpbmUoW0FDX1BST0df R0NKXSwgZGVmbihbQUNfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pCi0rICAgICAgIG00X2lm ZGVmKFtBXVtNX1BST0dfR0NKXSwKLSsJW200X2RlZmluZShbQV1bTV9QUk9HX0dDSl0sIGRlZm4o W0FdW01fUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pCi0rICAgICAgIG00X2lmZGVmKFtMVF9Q Uk9HX0dDSl0sCi0rCVttNF9kZWZpbmUoW0xUX1BST0dfR0NKXSwgZGVmbihbTFRfUFJPR19HQ0pd KVtMVF9MQU5HKEdDSildKV0pXSldKV0pCi0rCi0rQUNfUFJPVklERV9JRkVMU0UoW0xUX1BST0df UkNdLAotKyAgW0xUX0xBTkcoUkMpXSwKLSsgIFttNF9kZWZpbmUoW0xUX1BST0dfUkNdLCBkZWZu KFtMVF9QUk9HX1JDXSlbTFRfTEFORyhSQyldKV0pCi0rXSkjIF9MVF9MQU5HX0RFRkFVTFRfQ09O RklHCi0rCi0rIyBPYnNvbGV0ZSBtYWNyb3M6Ci0rQVVfREVGVU4oW0FDX0xJQlRPT0xfQ1hYXSwg W0xUX0xBTkcoQysrKV0pCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRjc3XSwgW0xUX0xBTkcoRm9y dHJhbiA3NyldKQotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW0xUX0xBTkcoRm9ydHJhbild KQotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtMVF9MQU5HKEphdmEpXSkKLStkbmwgYWNs b2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJU T09MX0NYWF0sIFtdKQotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbXSkKLStkbmwg QUNfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xf R0NKXSwgW10pCi0rCi0rCi0rIyBfTFRfVEFHX0NPTVBJTEVSCi0rIyAtLS0tLS0tLS0tLS0tLS0t Ci0rbTRfZGVmdW4oW19MVF9UQUdfQ09NUElMRVJdLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0ND XSlkbmwKLSsKLStfTFRfREVDTChbTFRDQ10sIFtDQ10sIFsxXSwgW0EgQyBjb21waWxlcl0pZG5s Ci0rX0xUX0RFQ0woW0xUQ0ZMQUdTXSwgW0NGTEFHU10sIFsxXSwgW0xUQ0MgY29tcGlsZXIgZmxh Z3NdKWRubAotK19MVF9UQUdERUNMKFtDQ10sIFtjb21waWxlcl0sIFsxXSwgW0EgbGFuZ3VhZ2Ug c3BlY2lmaWMgY29tcGlsZXJdKWRubAotK19MVF9UQUdERUNMKFt3aXRoX2djY10sIFtHQ0NdLCBb MF0sIFtJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj9dKWRubAotKwotKyMgSWYgbm8g QyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0r Ci0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgot K0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rXSkjIF9MVF9UQUdf Q09NUElMRVIKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgY29tcGlsZXIgYm9pbGVycGxhdGUgb3V0cHV0 IG9yIHdhcm5pbmdzIHdpdGgKLSsjIHRoZSBzaW1wbGUgY29tcGlsZXIgdGVzdCBjb2RlLgotK200 X2RlZnVuKFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAotK1ttNF9yZXF1aXJlKFtfTFRfREVD TF9TRURdKWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2Nv bXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3Qu ZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBj b25mdGVzdCoKLStdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rCi0rCi0rIyBfTFRfTElO S0VSX0JPSUxFUlBMQVRFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3Ig bGlua2VyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCi0rIyB0aGUgc2ltcGxl IGxpbmsgdGVzdCBjb2RlLgotK200X2RlZnVuKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwKLStb bTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19v YmpleHQKLStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4 dAotK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisv ZCcgPmNvbmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5l cnJgCi0rJFJNIC1yIGNvbmZ0ZXN0KgotK10pIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0r IyBfTFRfUkVRVUlSRURfREFSV0lOX0NIRUNLUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotK200X2RlZnVuX29uY2UoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSxbCi0rICBjYXNl ICRob3N0X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAgIEFDX0NIRUNLX1RP T0woW0RTWU1VVElMXSwgW2RzeW11dGlsXSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09MKFtOTUVE SVRdLCBbbm1lZGl0XSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09MKFtMSVBPXSwgW2xpcG9dLCBb Ol0pCi0rICAgIEFDX0NIRUNLX1RPT0woW09UT09MXSwgW290b29sXSwgWzpdKQotKyAgICBBQ19D SEVDS19UT09MKFtPVE9PTDY0XSwgW290b29sNjRdLCBbOl0pCi0rICAgIF9MVF9ERUNMKFtdLCBb RFNZTVVUSUxdLCBbMV0sCi0rICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FS RiBkZWJ1ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW05N RURJVF0sIFsxXSwKLSsgICAgICBbVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRvIGxvY2FsIHN5bWJv bHMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW0xJUE9dLCBbMV0sCi0rICAgICAg W1Rvb2wgdG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2ZXMgb24gTWFjIE9TIFhd KQotKyAgICBfTFRfREVDTChbXSwgW09UT09MXSwgWzFdLAotKyAgICAgIFtsZGQvcmVhZGVsZiBs aWtlIHRvb2wgZm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWF0pCi0rICAgIF9MVF9ERUNM KFtdLCBbT1RPT0w2NF0sIFsxXSwKLSsgICAgICBbbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciA2 NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjRdKQotKwotKyAgICBBQ19DQUNI RV9DSEVDSyhbZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnXSxbbHRfY3ZfYXBwbGVfY2Nf c2luZ2xlX21vZF0sCi0rICAgICAgW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9bm8KLSsgICAg ICBpZiB0ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVuCi0rCSMgQnkgZGVmYXVsdCB3 ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKwkj IGJ5IGVpdGhlciBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBMVF9NVUxUSV9NT0RV TEUKLSsJIyBub24tZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlf bW9kdWxlIHRvIHRoZQotKwkjIGxpbmsgZmxhZ3MuCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxp YioKLSsJZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsJZWNo byAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSstZHlu YW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyIgPiZBU19NRVNTQUdFX0xPR19G RAotKwkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAotKwkg IC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJy Ci0rICAgICAgICBfbHRfcmVzdWx0PSQ/Ci0rCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIg JiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgot KwkgIGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCi0rCWVsc2UKLSsJICBjYXQgY29uZnRl c3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsJZmkKLSsJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5 bGliKgotKwlybSAtZiBjb25mdGVzdC4qCi0rICAgICAgZmldKQotKyAgICBBQ19DQUNIRV9DSEVD SyhbZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWddLAotKyAgICAgIFtsdF9j dl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3RdLAotKyAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgICAgICBlY2hv ICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBMREZMQUdTPSIkTERGTEFHUyAtV2wsLWV4 cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCi0rICAgICAgQUNfTElOS19JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbXSxbXSldLAotKwlbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19s aXN0PXllc10sCi0rCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm9dKQotKwlMREZM QUdTPSIkc2F2ZV9MREZMQUdTIgotKyAgICBdKQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAg IHJoYXBzb2R5KiB8IGRhcndpbjEuW1swMTJdXSkKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVm aW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndpbjEuKikK LSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3 bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndpbiopICMgZGFyd2luIDUu eCBvbgotKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxhdGVyLCB0aGUgZGVwbG95bWVu dCB0YXJnZXQgZGVmYXVsdHMKLSsgICAgICAjIHRvIHRoZSBPUyB2ZXJzaW9uLCBpZiBvbiB4ODYs IGFuZCAxMC40LCB0aGUgZGVwbG95bWVudAotKyAgICAgICMgdGFyZ2V0IGRlZmF1bHRzIHRvIDEw LjQuIERvbid0IHlvdSBsb3ZlIGl0PwotKyAgICAgIGNhc2UgJHtNQUNPU1hfREVQTE9ZTUVOVF9U QVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsJMTAuMCwqODYqLWRhcndpbjgqfDEwLjAsKi1kYXJ3aW5b WzkxXV0qKQotKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3 bH1keW5hbWljX2xvb2t1cCcgOzsKLSsJMTAuW1swMTJdXSopCi0rCSAgX2x0X2Rhcl9hbGxvd191 bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHBy ZXNzJyA7OwotKwkxMC4qKQotKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRl ZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKLSsgICAgICBlc2FjCi0rICAgIDs7Ci0rICBl c2FjCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA9ICJ5ZXMiOyB0 aGVuCi0rICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSckc2luZ2xlX21vZHVsZScKLSsgICAgZmkK LSsgICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPSAieWVzIjsg dGhlbgotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9JyAke3dsfS1leHBvcnRlZF9zeW1ib2xz X2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bScKLSsgICAgZWxz ZQotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34kTk1FRElUIC1zICRvdXRwdXRfb2JqZGly LyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAgICBmaQotKyAgICBpZiB0ZXN0 ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgotKyAgICAgIF9sdF9kc3ltdXRpbD0nfiREU1lNVVRJ TCAkbGliIHx8IDonCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZHN5bXV0aWw9Ci0rICAgIGZpCi0r ICAgIDs7Ci0rICBlc2FjCi0rXSkKLSsKLSsKLSsjIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVT Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2tzIGZvciBsaW5rZXIgYW5k IGNvbXBpbGVyIGZlYXR1cmVzIG9uIGRhcndpbgotK200X2RlZnVuKFtfTFRfREFSV0lOX0xJTktF Ul9GRUFUVVJFU10sCi0rWwotKyAgbTRfcmVxdWlyZShbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVD S1NdKQotKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICBfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1 dG9tYXRpYywgJDEpPXllcwotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9dW5zdXBwb3J0ZWQKLSsgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0nJwotKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICBfTFRfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIK LSsgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICBpZm9ydCopIF9sdF9kYXJfY2FuX3NoYXJl ZD15ZXMgOzsKLSsgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7Ci0rICBlc2FjCi0r ICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCi0rICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KLSsgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGli b2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRz b25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKLSsg ICAgX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2Zs YWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mk e19sdF9kc3ltdXRpbH0iCi0rICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xp Ym5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRf ZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3Rh bGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7X2x0X2Rhcl9zaW5nbGVfbW9k fSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgIF9MVF9UQUdWQVIo bW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJv bHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFs bG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsg ICAgbTRfaWYoWyQxXSwgW0NYWF0sCi0rWyAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5n bGVfbW9kIiAhPSAieWVzIjsgdGhlbgotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1h c3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcg LW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5z dGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCi0r ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9InNlZCAncyxeLF8sJyA8 IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5l eHBzeW1+XCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0t bWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxh ZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1p bnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2Rhcl9leHBvcnRf c3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgIGZpCi0rXSxbXSkKLSsgIGVsc2UKLSsgIF9MVF9U QUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgIGZpCi0rXSkKLSsKLSsjIF9MVF9TWVNfTU9EVUxF X1BBVEhfQUlYCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgTGlua3MgYSBtaW5pbWFs IHByb2dyYW0gYW5kIGNoZWNrcyB0aGUgZXhlY3V0YWJsZQotKyMgZm9yIHRoZSBzeXN0ZW0gZGVm YXVsdCBoYXJkY29kZWQgbGlicmFyeSBwYXRoLiBJbiBtb3N0IGNhc2VzLAotKyMgdGhpcyBpcyAv dXNyL2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAotKyMgdGhl IGxvY2F0aW9uIG9mIHRoZSBjb21tdW5pY2F0aW9uIGFuZCBNUEkgbGlicyBhcmUgaW5jbHVkZWQg dG9vLgotKyMgSWYgd2UgZG9uJ3QgZmluZCBhbnl0aGluZywgdXNlIHRoZSBkZWZhdWx0IGxpYnJh cnkgcGF0aCBhY2NvcmRpbmcKLSsjIHRvIHRoZSBhaXggbGQgbWFudWFsLgotK200X2RlZnVuKFtf TFRfU1lTX01PRFVMRV9QQVRIX0FJWF0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5s Ci0rQUNfTElOS19JRkVMU0UoQUNfTEFOR19QUk9HUkFNLFsKLStsdF9haXhfbGlicGF0aF9zZWQ9 JwotKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCS9eMC8gewotKwkgICAgcy9e MCAgKlwoLipcKSQvXDEvCi0rCSAgICBwCi0rCX0KLSsgICAgfScKLSthaXhfbGlicGF0aD1gZHVt cCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4 X2xpYnBhdGhfc2VkImAKLSsjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0 IGZpbmQgYW55dGhpbmcuCi0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotKyAgYWl4 X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNF RCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rZmldLFtdKQotK2lmIHRlc3QgLXogIiRh aXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQotK10pIyBf TFRfU1lTX01PRFVMRV9QQVRIX0FJWAotKwotKwotKyMgX0xUX1NIRUxMX0lOSVQoQVJHKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbX0xUX1NIRUxMX0lOSVRdLAotK1tpZmRl ZihbQUNfRElWRVJTSU9OX05PVElDRV0sCi0rCSAgICAgW0FDX0RJVkVSVF9QVVNIKEFDX0RJVkVS U0lPTl9OT1RJQ0UpXSwKLSsJIFtBQ19ESVZFUlRfUFVTSChOT1RJQ0UpXSkKLSskMQotK0FDX0RJ VkVSVF9QT1AKLStdKSMgX0xUX1NIRUxMX0lOSVQKLSsKLSsKLSsjIF9MVF9QUk9HX0VDSE9fQkFD S1NMQVNICi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQWRkIHNvbWUgY29kZSB0byB0 aGUgc3RhcnQgb2YgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0IHdoaWNoCi0rIyB3aWxs IGZpbmQgYW4gZWNobyBjb21tYW5kIHdoaWNoIGRvZXNuJ3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVz LgotK200X2RlZnVuKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCi0rW19MVF9TSEVMTF9JTklU KFsKLSsjIENoZWNrIHRoYXQgd2UgYXJlIHJ1bm5pbmcgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGwu Ci0rU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSsKLStjYXNlIFgkbHRfRUNITyBpbgot K1gqLS1mYWxsYmFjay1lY2hvKQotKyAgIyBSZW1vdmUgb25lIGxldmVsIG9mIHF1b3RhdGlvbiAo d2hpY2ggd2FzIHJlcXVpcmVkIGZvciBNYWtlKS4KLSsgIEVDSE89YGVjaG8gIiRsdF9FQ0hPIiB8 IHNlZCAncyxcXFxcXFskXVxcWyRdMCwnWyRdMCcsJ2AKLSsgIDs7Ci0rZXNhYwotKwotK0VDSE89 JHtsdF9FQ0hPLWVjaG99Ci0raWYgdGVzdCAiWFskXTEiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0r ICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KLSsgIHNoaWZ0 Ci0rZWxpZiB0ZXN0ICJYWyRdMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIEF2b2lk IGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVyCi0rICA6Ci0rZWxpZiB0 ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgOyB0aGVuCi0rICAj IFlpcHBlZSwgJEVDSE8gd29ya3MhCi0rICA6Ci0rZWxzZQotKyAgIyBSZXN0YXJ0IHVuZGVyIHRo ZSBjb3JyZWN0IHNoZWxsLgotKyAgZXhlYyAkU0hFTEwgIlskXTAiIC0tbm8tcmVleGVjICR7MSsi WyRdQCJ9Ci0rZmkKLSsKLStpZiB0ZXN0ICJYWyRdMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVu Ci0rICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwotKyAgc2hpZnQKLSsgIGNhdCA8PF9MVF9FT0YK LStbJF0qCi0rX0xUX0VPRgotKyAgZXhpdCAwCi0rZmkKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5k IFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYg Q0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQg Q0RQQVRICi0rCi0raWYgdGVzdCAteiAiJGx0X0VDSE8iOyB0aGVuCi0rICBpZiB0ZXN0ICJYJHtl Y2hvX3Rlc3Rfc3RyaW5nK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgICAgIyBmaW5kIGEgc3RyaW5n IGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRo IGl0Ci0rICAgIGZvciBjbWQgaW4gJ3NlZCA1MHEgIlskXTAiJyAnc2VkIDIwcSAiWyRdMCInICdz ZWQgMTBxICJbJF0wIicgJ3NlZCAycSAiWyRdMCInICdlY2hvIHRlc3QnOyBkbwotKyAgICAgICMg ZXhwZWN0ZWQgc2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAxNiBieXRlcywg Li4uCi0rICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgOyB9IDI+L2Rldi9u dWxsICYmCi0rCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3Ry aW5nIjsgfSAyPi9kZXYvbnVsbAotKyAgICAgIHRoZW4KLSsgICAgICAgIGJyZWFrCi0rICAgICAg ZmkKLSsgICAgZG9uZQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+ L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNI TyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotKyAgICAgdGVzdCAiWCRl Y2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgIDoK LSsgIGVsc2UKLSsgICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1 bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0rICAgICMgYmFja3NsYXNoZXMuICBUaGlzIG1ha2Vz IGl0IGltcG9zc2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNpbmcKLSsgICAgIyAgIGVjaG8g IiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsgICAgIwotKyAgICAjIFNvLCBmaXJz dCB3ZSBsb29rIGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUgdXNlcidzIFBBVEguCi0rCi0rICAg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgICBmb3IgZGlyIGlu ICRQQVRIIC91c3IvdWNiOyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIGlm ICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCi0r ICAgICAgICAgdGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAm JgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGlyL2VjaG8gIiRlY2hvX3Rlc3Rf c3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0rICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdf c3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgICAgICBFQ0hPPSIkZGly L2VjaG8iCi0rICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZTPSIk bHRfc2F2ZV9pZnMiCi0rCi0rICAgIGlmIHRlc3QgIlgkRUNITyIgPSBYZWNobzsgdGhlbgotKyAg ICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJuYXRp dmVzLgotKyAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQnOyB9IDI+L2Rldi9udWxsYCIg PSAnWFx0JyAmJgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgcHJpbnQgLXIgIiRl Y2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgICB0ZXN0ICJYJGVj aG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAgICAg ICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRoYXQgZG9lcyB0aGUgdHJpY2su Ci0rICAgICAgICBFQ0hPPSdwcmludCAtcicKLSsgICAgICBlbGlmIHsgdGVzdCAtZiAvYmluL2tz aCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgotKwkgICB0ZXN0ICJYJENPTkZJ R19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCi0rICAgICAgICAjIElmIHdlIGhhdmUga3NoLCB0 cnkgcnVubmluZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSsgICAgICAgIE9SSUdJTkFMX0NP TkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyAgICAgICAgZXhwb3J0IE9SSUdJ TkFMX0NPTkZJR19TSEVMTAotKyAgICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCi0rICAgICAg ICBleHBvcnQgQ09ORklHX1NIRUxMCi0rICAgICAgICBleGVjICRDT05GSUdfU0hFTEwgIlskXTAi IC0tbm8tcmVleGVjICR7MSsiWyRdQCJ9Ci0rICAgICAgZWxzZQotKyAgICAgICAgIyBUcnkgdXNp bmcgcHJpbnRmLgotKyAgICAgICAgRUNITz0ncHJpbnRmICVzXG4nCi0rICAgICAgICBpZiB0ZXN0 ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSsJICAgZWNob190 ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxs YCAmJgotKwkgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0 cmluZyI7IHRoZW4KLSsJICAjIENvb2wsIHByaW50ZiB3b3JrcwotKwkgIDoKLSsgICAgICAgIGVs aWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIlskXTAiIC0t ZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9f dGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLSsJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAo JE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0 X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0 cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotKwkgIENPTkZJR19TSEVMTD0kT1JJ R0lOQUxfQ09ORklHX1NIRUxMCi0rCSAgZXhwb3J0IENPTkZJR19TSEVMTAotKwkgIFNIRUxMPSIk Q09ORklHX1NIRUxMIgotKwkgIGV4cG9ydCBTSEVMTAotKwkgIEVDSE89IiRDT05GSUdfU0hFTEwg WyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9 YCgkQ09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxg ICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0rCSAg ICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2st ZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJY JGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsJICBF Q0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvIgotKyAgICAgICAgZWxzZQot KwkgICMgbWF5YmUgd2l0aCBhIHNtYWxsZXIgc3RyaW5nLi4uCi0rCSAgcHJldj06Ci0rCi0rCSAg Zm9yIGNtZCBpbiAnZWNobyB0ZXN0JyAnc2VkIDJxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAn c2VkIDIwcSAiWyRdMCInICdzZWQgNTBxICJbJF0wIic7IGRvCi0rCSAgICBpZiB7IHRlc3QgIlgk ZWNob190ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRgIjsgfSAyPi9kZXYvbnVsbAotKwkgICAg dGhlbgotKwkgICAgICBicmVhawotKwkgICAgZmkKLSsJICAgIHByZXY9IiRjbWQiCi0rCSAgZG9u ZQotKwotKwkgIGlmIHRlc3QgIiRwcmV2IiAhPSAnc2VkIDUwcSAiWyRdMCInOyB0aGVuCi0rCSAg ICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRwcmV2YAotKwkgICAgZXhwb3J0IGVjaG9fdGVzdF9z dHJpbmcKLSsJICAgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwt L2Jpbi9zaH19ICJbJF0wIiAkezErIlskXUAifQotKwkgIGVsc2UKLSsJICAgICMgT29wcy4gIFdl IGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVjaG8uCi0rCSAgICBFQ0hPPWVj aG8KLSsJICBmaQotKyAgICAgICAgZmkKLSsgICAgICBmaQotKyAgICBmaQotKyAgZmkKLStmaQot KwotKyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0YWJseSBmb3IgcGFzc2luZyB0 byBsaWJ0b29sIGZyb20KLSsjIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBv cmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KLStsdF9FQ0hPPSRFQ0hPCi0raWYgdGVzdCAi WCRsdF9FQ0hPIiA9ICJYJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyI7IHRoZW4K LSsgICBsdF9FQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0r ZmkKLSsKLStBQ19TVUJTVChsdF9FQ0hPKQotK10pCi0rX0xUX0RFQ0woW10sIFtTSEVMTF0sIFsx XSwgW1NoZWxsIHRvIHVzZSB3aGVuIGludm9raW5nIHNoZWxsIHNjcmlwdHNdKQotK19MVF9ERUNM KFtdLCBbRUNIT10sIFsxXSwKLSsgICAgW0FuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGlu dGVycHJldCBiYWNrc2xhc2hlc10pCi0rXSkjIF9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICi0rCi0r Ci0rIyBfTFRfRU5BQkxFX0xPQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRf RU5BQkxFX0xPQ0tdLAotK1tBQ19BUkdfRU5BQkxFKFtsaWJ0b29sLWxvY2tdLAotKyAgW0FTX0hF TFBfU1RSSU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKLSsgICAgW2F2b2lkIGxvY2tpbmcg KG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCi0rdGVzdCAieCRlbmFibGVfbGlidG9v bF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKLSsKLSsjIFNvbWUgZmxh Z3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdv b2QKLSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGluCi0raWE2NC0qLWhwdXgqKQot KyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+ IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0r ICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsgICAgICAq RUxGLTMyKikKLSsJSFBVWF9JQTY0X01PREU9IjMyIgotKwk7OwotKyAgICAgICpFTEYtNjQqKQot KwlIUFVYX0lBNjRfTU9ERT0iNjQiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYg Y29uZnRlc3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3 ZSBhcmUgdXNpbmcuCi0rICBlY2hvICdbI11saW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIicgPiBj b25mdGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAg ICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkqMzItYml0KikKLSsJICBM RD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkgIExEPSIke0xE LWxkfSAtbWVsZjMyYm1pcG4zMiIKLSsJICA7OwotKwkqNjQtYml0KikKLSsJICBMRD0iJHtMRC1s ZH0gLW1lbGY2NGJtaXAiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBlbHNlCi0rICAgICAgY2Fz ZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkqMzItYml0KikKLSsJ ICBMRD0iJHtMRC1sZH0gLTMyIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkgIExEPSIke0xELWxkfSAt bjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtNjQiCi0rCSAgOzsK LSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsK LSsKLSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBv d2VycGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYqfHNwYXJjKi0qbGlu dXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50 IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0 aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgICAqMzIt Yml0KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKLSsJICAg IExEPSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgotKwkgICAgOzsKLSsJICB4ODZfNjQtKmxp bnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsJICAgIDs7Ci0rCSAgcHBj NjQtKmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGYz MnBwY2xpbnV4IgotKwkgICAgOzsKLSsJICBzMzkweC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQt bGR9IC1tIGVsZl9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYzY0LSpsaW51eCopCi0rCSAgICBM RD0iJHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAg ICAgKjY0LWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUp Ci0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgotKwkgICAgOzsKLSsJICB4 ODZfNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgotKwkgICAg OzsKLSsJICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxk fSAtbSBlbGY2NHBwYyIKLSsJICAgIDs7Ci0rCSAgczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKikK LSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYyot KmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIKLSsJICAgIDs7Ci0r CWVzYWMKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7 Ci0rCi0rKi0qLXNjbzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAt YmVsZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsgIFNBVkVfQ0ZMQUdTPSIkQ0ZM QUdTIgotKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRo ZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19uZWVkc19iZWxmLAotKyAg ICBbQUNfTEFOR19QVVNIKEMpCi0rICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFN KFtbXV0sW1tdXSldLFtsdF9jdl9jY19uZWVkc19iZWxmPXllc10sW2x0X2N2X2NjX25lZWRzX2Jl bGY9bm9dKQotKyAgICAgQUNfTEFOR19QT1BdKQotKyAgaWYgdGVzdCB4IiRsdF9jdl9jY19uZWVk c19iZWxmIiAhPSB4InllcyI7IHRoZW4KLSsgICAgIyB0aGlzIGlzIHByb2JhYmx5IGdjYyAyLjgu MCwgZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5lZWQgZm9yIC1iZWxmCi0rICAgIENGTEFHUz0iJFNB VkVfQ0ZMQUdTIgotKyAgZmkKLSsgIDs7Ci0rc3BhcmMqLSpzb2xhcmlzKikKLSsgICMgRmluZCBv dXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4k YWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICBjYXNlIGAv dXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1iaXQqKQotKyAgICAgIGNhc2Ug JGx0X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0 X3NwYXJjIiA7OwotKyAgICAgICopCi0rCWlmICR7TEQtbGR9IC02NCAtciAtbyBjb25mdGVzdDIu byBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgIExEPSIke0xELWxkfSAtNjQi Ci0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0r ICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotK2VzYWMKLSsKLStuZWVkX2xvY2tzPSIkZW5hYmxl X2xpYnRvb2xfbG9jayIKLStdKSMgX0xUX0VOQUJMRV9MT0NLCi0rCi0rCi0rIyBfTFRfQ01EX09M RF9BUkNISVZFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9DTURfT0xE X0FSQ0hJVkVdLAotK1tBQ19DSEVDS19UT09MKEFSLCBhciwgZmFsc2UpCi0rdGVzdCAteiAiJEFS IiAmJiBBUj1hcgotK3Rlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1Ci0rX0xUX0RF Q0woW10sIFtBUl0sIFsxXSwgW1RoZSBhcmNoaXZlcl0pCi0rX0xUX0RFQ0woW10sIFtBUl9GTEFH U10sIFsxXSkKLSsKLStBQ19DSEVDS19UT09MKFNUUklQLCBzdHJpcCwgOikKLSt0ZXN0IC16ICIk U1RSSVAiICYmIFNUUklQPToKLStfTFRfREVDTChbXSwgW1NUUklQXSwgWzFdLCBbQSBzeW1ib2wg c3RyaXBwaW5nIHByb2dyYW1dKQotKwotK0FDX0NIRUNLX1RPT0woUkFOTElCLCByYW5saWIsIDop Ci0rdGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKLStfTFRfREVDTChbXSwgW1JBTkxJQl0s IFsxXSwKLSsgICAgW0NvbW1hbmRzIHVzZWQgdG8gaW5zdGFsbCBhbiBvbGQtc3R5bGUgYXJjaGl2 ZV0pCi0rCi0rIyBEZXRlcm1pbmUgY29tbWFuZHMgdG8gY3JlYXRlIG9sZC1zdHlsZSBzdGF0aWMg YXJjaGl2ZXMuCi0rb2xkX2FyY2hpdmVfY21kcz0nJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9i anMnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDY0NCAkb2xkbGliJwotK29sZF9wb3N0 dW5pbnN0YWxsX2NtZHM9Ci0rCi0raWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgIG9wZW5ic2QqKQotKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9s ZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgotKyAgICA7OwotKyAgKikK LSsgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJ QiBcJG9sZGxpYiIKLSsgICAgOzsKLSsgIGVzYWMKLSsgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRf YXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgotK2ZpCi0rX0xUX0RFQ0woW10sIFtvbGRf cG9zdGluc3RhbGxfY21kc10sIFsyXSkKLStfTFRfREVDTChbXSwgW29sZF9wb3N0dW5pbnN0YWxs X2NtZHNdLCBbMl0pCi0rX0xUX1RBR0RFQ0woW10sIFtvbGRfYXJjaGl2ZV9jbWRzXSwgWzJdLAot KyAgICBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2ZV0pCi0rXSkj IF9MVF9DTURfT0xEX0FSQ0hJVkUKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9PUFRJT04oTUVTU0FH RSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCi0rIwkJW09VVFBVVC1GSUxFXSwgW0FDVElPTi1TVUND RVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgdGhl IGdpdmVuIGNvbXBpbGVyIG9wdGlvbiB3b3JrcwotK0FDX0RFRlVOKFtfTFRfQ09NUElMRVJfT1BU SU9OXSwKLStbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRfcmVx dWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbJDFdLCBbJDJdLAotKyAg WyQyPW5vCi0rICAgbTRfaWYoWyQ0XSwgLCBbYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0 XSwgW2FjX291dGZpbGU9JDRdKQotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2Nv ZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiQzIgotKyAgICMg SW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFi bGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBv ciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9l cyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFy IHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4K LSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBj b25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQg XAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwK LSsgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwK LSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRh c19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCi0rICAg KGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsg ICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICBlY2hvICIkYXNfbWU6 X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgaWYg KGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAj IFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3Qg cmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVy IHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2ls ZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9e JC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYv bnVsbDsgdGhlbgotKyAgICAgICAkMj15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gY29u ZnRlc3QqCi0rXSkKLSsKLStpZiB0ZXN0IHgiWyRdJDIiID0geHllczsgdGhlbgotKyAgICBtNF9p ZihbJDVdLCAsIDosIFskNV0pCi0rZWxzZQotKyAgICBtNF9pZihbJDZdLCAsIDosIFskNl0pCi0r ZmkKLStdKSMgX0xUX0NPTVBJTEVSX09QVElPTgotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMo W0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW19MVF9DT01QSUxFUl9PUFRJT05dKQotK2Ru bCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FD X0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW10pCi0rCi0rCi0rIyBfTFRfTElOS0VSX09QVElP TihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKLSsjICAgICAgICAgICAgICAgICAgW0FD VElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgdGhlIGdp dmVuIGxpbmtlciBvcHRpb24gd29ya3MKLStBQ19ERUZVTihbX0xUX0xJTktFUl9PUFRJT05dLAot K1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtf TFRfREVDTF9TRURdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFskMl0sCi0rICBbJDI9bm8K LSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICQzIgot KyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAot KyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 JGFjX2V4ZWV4dDsgdGhlbgotKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGln bm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0 aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0r ICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCi0rICAgICAgIGNh dCBjb25mdGVzdC5lcnIgMT4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICAgJEVDSE8gIlgkX2x0 X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCi0r ICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgot KyAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhl bgotKyAgICAgICAgICQyPXllcwotKyAgICAgICBmaQotKyAgICAgZWxzZQotKyAgICAgICAkMj15 ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gLXIgY29uZnRlc3QqCi0rICAgTERGTEFHUz0i JHNhdmVfTERGTEFHUyIKLStdKQotKwotK2lmIHRlc3QgeCJbJF0kMiIgPSB4eWVzOyB0aGVuCi0r ICAgIG00X2lmKFskNF0sICwgOiwgWyQ0XSkKLStlbHNlCi0rICAgIG00X2lmKFskNV0sICwgOiwg WyQ1XSkKLStmaQotK10pIyBfTFRfTElOS0VSX09QVElPTgotKwotKyMgT2xkIG5hbWU6Ci0rQVVf QUxJQVMoW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtfTFRfTElOS0VSX09QVElPTl0pCi0r ZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZVTihb QUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSwgW10pCi0rCi0rCi0rIyBMVF9DTURfTUFYX0xFTgot KyMtLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbTFRfQ01EX01BWF9MRU5dLAotK1tBQ19SRVFV SVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCi0rIyBmaW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBv ZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCi0rQUNfTVNHX0NIRUNLSU5HKFt0aGUgbWF4aW11bSBs ZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50c10pCi0rQUNfQ0FDSEVfVkFMKFtsdF9jdl9z eXNfbWF4X2NtZF9sZW5dLCBbZG5sCi0rICBpPTAKLSsgIHRlc3RzdHJpbmc9IkFCQ0QiCi0rCi0r ICBjYXNlICRidWlsZF9vcyBpbgotKyAgbXNkb3NkamdwcCopCi0rICAgICMgT24gREpHUFAsIHRo aXMgdGVzdCBjYW4gYmxvdyB1cCBwcmV0dHkgYmFkbHkgZHVlIHRvIHByb2JsZW1zIGluIGxpYmMK LSsgICAgIyAoYW55IHNpbmdsZSBhcmd1bWVudCBleGNlZWRpbmcgMjAwMCBieXRlcyBjYXVzZXMg YSBidWZmZXIgb3ZlcnJ1bgotKyAgICAjIGR1cmluZyBnbG9iIGV4cGFuc2lvbikuICBFdmVuIGlm IGl0IHdlcmUgZml4ZWQsIHRoZSByZXN1bHQgb2YgdGhpcwotKyAgICAjIGNoZWNrIHdvdWxkIGJl IGxhcmdlciB0aGFuIGl0IHNob3VsZCBiZS4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEy Mjg4OyAgICAjIDEySyBpcyBhYm91dCByaWdodAotKyAgICA7OwotKwotKyAgZ251KikKLSsgICAg IyBVbmRlciBHTlUgSHVyZCwgdGhpcyB0ZXN0IGlzIG5vdCByZXF1aXJlZCBiZWNhdXNlIHRoZXJl IGlzCi0rICAgICMgbm8gbGltaXQgdG8gdGhlIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1l bnRzLgotKyAgICAjIExpYnRvb2wgd2lsbCBpbnRlcnByZXQgLTEgYXMgbm8gbGltaXQgd2hhdHNv ZXZlcgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTE7Ci0rICAgIDs7Ci0rCi0rICBjeWd3 aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICAjIE9uIFdpbjl4L01FLCB0aGlzIHRlc3QgYmxv d3MgdXAgLS0gaXQgc3VjY2VlZHMsIGJ1dCB0YWtlcwotKyAgICAjIGFib3V0IDUgbWludXRlcyBh cyB0aGUgdGVzdHN0cmluZyBncm93cyBleHBvbmVudGlhbGx5LgotKyAgICAjIFdvcnNlLCBzaW5j ZSA5eC9NRSBhcmUgbm90IHByZS1lbXB0aXZlbHkgbXVsdGl0YXNraW5nLAotKyAgICAjIHlvdSBl bmQgdXAgd2l0aCBhICJmcm96ZW4iIGNvbXB1dGVyLCBldmVuIHRob3VnaCB3aXRoIHBhdGllbmNl Ci0rICAgICMgdGhlIHRlc3QgZXZlbnR1YWxseSBzdWNjZWVkcyAod2l0aCBhIG1heCBsaW5lIGxl bmd0aCBvZiAyNTZrKS4KLSsgICAgIyBJbnN0ZWFkLCBsZXQncyBqdXN0IHB1bnQ6IHVzZSB0aGUg bWluaW11bSBsaW5lbGVuZ3RoIHJlcG9ydGVkIGJ5Ci0rICAgICMgYWxsIG9mIHRoZSBzdXBwb3J0 ZWQgcGxhdGZvcm1zOiA4MTkyIChvbiBOVC8ySy9YUCkuCi0rICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgYW1pZ2FvcyopCi0rICAgICMgT24gQW1pZ2FPUyB3 aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4KLSsgICAgIyBTbyB3 ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5ndGggb2YgODE5Mi4KLSsgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBuZXRic2QqIHwgZnJl ZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkqKQotKyAgICAjIFRoaXMgaGFz IGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBMaWtlbHkgZnVydGhlci4KLSsg ICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2Nt ZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsgICAgZWxpZiB0ZXN0IC14IC91 c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC91c3Iv c2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsc2UKLSsgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3IgYWxsIEJTRHMKLSsgICAgZmkK LSsgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKLSsgICAgOzsKLSsKLSsg IGludGVyaXgqKQotKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2MjE0NCBhbmQgaGFyZGNvZGUg aXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPTE5NjYwOAotKyAgICA7OwotKwotKyAgb3NmKikKLSsgICAgIyBEci4gSGFucyBFa2tlaGFy ZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJl Ci0rICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXQgaXMg MSBvbiBUcnU2NC4gSXQgaXMgbm90Ci0rICAgICMgbmljZSB0byBjYXVzZSBrZXJuZWwgcGFuaWNz IHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCi0rICAgICMgRmlyc3Qgc2V0IGEgcmVhc29u YWJsZSBkZWZhdWx0LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTYzODQKLSsgICAgIwot KyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgotKyAgICAgIGNhc2UgYC9zYmlu L3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGltaXRgIGluCi0rICAgICAgICAq MSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsg ICAgOzsKLSsgIHNjbzMuMnY1KikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTEwMjQwMAot KyAgICA7OwotKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1dzIqKQotKyAgICBrYXJnbWF4 PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4vZGV2L251bGxgCi0rICAgIGlm IHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1g ZWNobyAka2FyZ21heCB8IHNlZCAncy8uKltbCSBdXS8vJ2AKLSsgICAgZWxzZQotKyAgICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAotKyAgICBmaQotKyAgICA7OwotKyAgKikKLSsgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBBUkdfTUFYKSAyPiAvZGV2L251bGxgCi0r ICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iOyB0aGVuCi0rICAgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsg ICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBc KiAzYAotKyAgICBlbHNlCi0rICAgICAgIyBNYWtlIHRlc3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2Vy IGJlZm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0LgotKyAgICAgICMgYSAxSyBzdHJpbmcgc2hv dWxkIGJlIGEgcmVhc29uYWJsZSBzdGFydC4KLSsgICAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3 IDggOyBkbwotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmluZyR0ZXN0c3RyaW5nCi0rICAg ICAgZG9uZQotKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19Ci0r ICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBl bmQgdXAgY29tcHV0aW5nIGEKLSsgICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBo YWxmIG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAotKyAgICAgICMgd2UgY2FuJ3Qg dGVsbC4KLSsgICAgICB3aGlsZSB7IHRlc3QgIlgiYCRTSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNo byAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCi0rCSAgICAgICAgID0g IlhYJHRlc3RzdHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVsbCAyPiYxICYmCi0rCSAgICAg IHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAotKyAgICAgIGRvCi0rICAg ICAgICBpPWBleHByICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVz dHN0cmluZwotKyAgICAgIGRvbmUKLSsgICAgICAjIE9ubHkgY2hlY2sgdGhlIHN0cmluZyBsZW5n dGggb3V0c2lkZSB0aGUgbG9vcC4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIg IlgkdGVzdHN0cmluZyIgOiAiLioiIDI+JjFgCi0rICAgICAgdGVzdHN0cmluZz0KLSsgICAgICAj IEFkZCBhIHNpZ25pZmljYW50IHNhZmV0eSBmYWN0b3IgYmVjYXVzZSBDKysgY29tcGlsZXJzIGNh biB0YWNrIG9uCi0rICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2YgYWRkaXRpb25hbCBhcmd1bWVu dHMgYmVmb3JlIHBhc3NpbmcgdGhlbSB0byB0aGUKLSsgICAgICAjIGxpbmtlci4gIEl0IGFwcGVh cnMgYXMgdGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsgICAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAotKyAgICBmaQotKyAg ICA7OwotKyAgZXNhYwotK10pCi0raWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsg dGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkbHRfY3Zfc3lzX21heF9jbWRfbGVuKQotK2Vsc2UKLSsg IEFDX01TR19SRVNVTFQobm9uZSkKLStmaQotK21heF9jbWRfbGVuPSRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4KLStfTFRfREVDTChbXSwgW21heF9jbWRfbGVuXSwgWzBdLAotKyAgICBbV2hhdCBpcyB0 aGUgbWF4aW11bSBsZW5ndGggb2YgYSBjb21tYW5kP10pCi0rXSkjIExUX0NNRF9NQVhfTEVOCi0r Ci0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9PTF9TWVNfTUFYX0NNRF9MRU5dLCBb TFRfQ01EX01BWF9MRU5dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX01BWF9DTURfTEVOXSwgW10pCi0rCi0r Ci0rIyBfTFRfSEVBREVSX0RMRkNOCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19M VF9IRUFERVJfRExGQ05dLAotK1tBQ19DSEVDS19IRUFERVJTKFtkbGZjbi5oXSwgW10sIFtdLCBb QUNfSU5DTFVERVNfREVGQVVMVF0pZG5sCi0rXSkjIF9MVF9IRUFERVJfRExGQ04KLSsKLSsKLSsj IF9MVF9UUllfRExPUEVOX1NFTEYgKEFDVElPTi1JRi1UUlVFLCBBQ1RJT04tSUYtVFJVRS1XLVVT Q09SRSwKLSsjICAgICAgICAgICAgICAgICAgICAgIEFDVElPTi1JRi1GQUxTRSwgQUNUSU9OLUlG LUNST1NTLUNPTVBJTElORykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1RSWV9ETE9QRU5f U0VMRl0sCi0rW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExGQ05dKWRubAotK2lmIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSsgIFskNF0KLStlbHNlCi0rICBsdF9kbHVu a25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCi0rICBsdF9zdGF0 dXM9JGx0X2RsdW5rbm93bgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLStb I2xpbmUgX19vbGluZV9fICJjb25maWd1cmUiCi0rI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0rCi0r I2lmIEhBVkVfRExGQ05fSAotKyNpbmNsdWRlIDxkbGZjbi5oPgotKyNlbmRpZgotKwotKyNpbmNs dWRlIDxzdGRpby5oPgotKwotKyNpZmRlZiBSVExEX0dMT0JBTAotKyMgIGRlZmluZSBMVF9ETEdM T0JBTAkJUlRMRF9HTE9CQUwKLSsjZWxzZQotKyMgIGlmZGVmIERMX0dMT0JBTAotKyMgICAgZGVm aW5lIExUX0RMR0xPQkFMCQlETF9HTE9CQUwKLSsjICBlbHNlCi0rIyAgICBkZWZpbmUgTFRfRExH TE9CQUwJCTAKLSsjICBlbmRpZgotKyNlbmRpZgotKwotKy8qIFdlIG1heSBoYXZlIHRvIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XIGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKLSsgICBmaW5kIG91 dCBpdCBkb2VzIG5vdCB3b3JrIGluIHNvbWUgcGxhdGZvcm0uICovCi0rI2lmbmRlZiBMVF9ETExB WllfT1JfTk9XCi0rIyAgaWZkZWYgUlRMRF9MQVpZCi0rIyAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwkJUlRMRF9MQVpZCi0rIyAgZWxzZQotKyMgICAgaWZkZWYgRExfTEFaWQotKyMgICAgICBk ZWZpbmUgTFRfRExMQVpZX09SX05PVwkJRExfTEFaWQotKyMgICAgZWxzZQotKyMgICAgICBpZmRl ZiBSVExEX05PVwotKyMgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCi0r IyAgICAgIGVsc2UKLSsjICAgICAgICBpZmRlZiBETF9OT1cKLSsjICAgICAgICAgIGRlZmluZSBM VF9ETExBWllfT1JfTk9XCURMX05PVwotKyMgICAgICAgIGVsc2UKLSsjICAgICAgICAgIGRlZmlu ZSBMVF9ETExBWllfT1JfTk9XCTAKLSsjICAgICAgICBlbmRpZgotKyMgICAgICBlbmRpZgotKyMg ICAgZW5kaWYKLSsjICBlbmRpZgotKyNlbmRpZgotKwotK3ZvaWQgZm5vcmQoKSB7IGludCBpPTQy O30KLStpbnQgbWFpbiAoKQotK3sKLSsgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xP QkFMfExUX0RMTEFaWV9PUl9OT1cpOwotKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247Ci0r Ci0rICBpZiAoc2VsZikKLSsgICAgewotKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkg ICAgICAgc3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOwotKyAgICAgIGVsc2UgaWYgKGRsc3ltKCBz ZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7Ci0rICAgICAgLyogZGxj bG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVsc2UKLSsgICAgcHV0cyAoZGxlcnJvciAoKSk7 Ci0rCi0rICByZXR1cm4gc3RhdHVzOwotK31dCi0rX0xUX0VPRgotKyAgaWYgQUNfVFJZX0VWQUwo YWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsgdGhl bgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01FU1NBR0VfTE9HX0ZEIDI+L2Rldi9u dWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAg eCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpICQyIDs7 Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UgOgot KyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICAkMwotKyAgZmkKLStmaQotK3JtIC1mciBj b25mdGVzdCoKLStdKSMgX0xUX1RSWV9ETE9QRU5fU0VMRgotKwotKwotKyMgTFRfU1lTX0RMT1BF Tl9TRUxGCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbTFRfU1lTX0RMT1BFTl9T RUxGXSwKLStbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCi0raWYgdGVzdCAieCRl bmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCi0rICBlbmFibGVfZGxvcGVuPXVua25vd24KLSsg IGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCi0rICBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGlj PXVua25vd24KLStlbHNlCi0rICBsdF9jdl9kbG9wZW49bm8KLSsgIGx0X2N2X2Rsb3Blbl9saWJz PQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYmVvcyopCi0rICAgIGx0X2N2X2Rsb3Blbj0i bG9hZF9hZGRfb24iCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5f c2VsZj15ZXMKLSsgICAgOzsKLSsKLSsgIG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICBs dF9jdl9kbG9wZW49IkxvYWRMaWJyYXJ5IgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsgICAg OzsKLSsKLSsgIGN5Z3dpbiopCi0rICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgotKyAgICBsdF9j dl9kbG9wZW5fbGlicz0KLSsgICAgOzsKLSsKLSsgIGRhcndpbiopCi0rICAjIGlmIGxpYmRsIGlz IGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAotKyAgICBBQ19DSEVDS19MSUIo W2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9s aWJzPSItbGRsIl0sWwotKyAgICBsdF9jdl9kbG9wZW49ImR5bGQiCi0rICAgIGx0X2N2X2Rsb3Bl bl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKLSsgICAgXSkKLSsgICAgOzsKLSsK LSsgICopCi0rICAgIEFDX0NIRUNLX0ZVTkMoW3NobF9sb2FkXSwKLSsJICBbbHRfY3ZfZGxvcGVu PSJzaGxfbG9hZCJdLAotKyAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtzaGxfbG9hZF0sCi0r CSAgICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIl0s Ci0rCVtBQ19DSEVDS19GVU5DKFtkbG9wZW5dLAotKwkgICAgICBbbHRfY3ZfZGxvcGVuPSJkbG9w ZW4iXSwKLSsJICBbQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAotKwkJW2x0X2N2X2Rsb3Bl bj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLAotKwkgICAgW0FDX0NIRUNLX0xJ Qihbc3ZsZF0sIFtkbG9wZW5dLAotKwkJICBbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rs b3Blbl9saWJzPSItbHN2bGQiXSwKLSsJICAgICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW2RsZF9s aW5rXSwKLSsJCSAgICBbbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9 Ii1sZGxkIl0pCi0rCSAgICAgIF0pCi0rCSAgICBdKQotKwkgIF0pCi0rCV0pCi0rICAgICAgXSkK LSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87 IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVsc2UKLSsgICAgZW5hYmxlX2Rsb3Bl bj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3BlbiBpbgotKyAgZGxvcGVuKQotKyAg ICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2Rs ZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgotKwot KyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93 bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCi0r Ci0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAk TElCUyIKLSsKLSsgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9w ZW4gaXRzZWxmXSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZiwgW2RubAotKwkgIF9MVF9UUllfRExP UEVOX1NFTEYoCi0rCSAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsIGx0X2N2X2Rsb3Blbl9zZWxm PXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vLCBsdF9jdl9kbG9wZW5fc2VsZj1jcm9z cykKLSsgICAgXSkKLSsKLSsgICAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW5fc2VsZiIgPSB4eWVz OyB0aGVuCi0rICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRM REZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0rICAgICAgQUNfQ0FDSEVfQ0hFQ0so W3doZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmXSwK LSsJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwKLSsJICBfTFRfVFJZX0RMT1BFTl9T RUxGKAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywgbHRfY3ZfZGxvcGVuX3Nl bGZfc3RhdGljPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubywgIGx0X2N2 X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykKLSsgICAgICBdKQotKyAgICBmaQotKwotKyAgICBD UFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCi0rICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0r ICAgIExJQlM9IiRzYXZlX0xJQlMiCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICRsdF9j dl9kbG9wZW5fc2VsZiBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2X2Rs b3Blbl9zZWxmIDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93biA7OwotKyAgZXNh YwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGluCi0rICB5ZXN8bm8pIGVu YWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7OwotKyAg KikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7Ci0rICBlc2FjCi0rZmkKLStf TFRfREVDTChbZGxvcGVuX3N1cHBvcnRdLCBbZW5hYmxlX2Rsb3Blbl0sIFswXSwKLSsJIFtXaGV0 aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWRdKQotK19MVF9ERUNMKFtkbG9wZW5fc2VsZl0sIFtlbmFi bGVfZGxvcGVuX3NlbGZdLCBbMF0sCi0rCSBbV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMgaXMg c3VwcG9ydGVkXSkKLStfTFRfREVDTChbZGxvcGVuX3NlbGZfc3RhdGljXSwgW2VuYWJsZV9kbG9w ZW5fc2VsZl9zdGF0aWNdLCBbMF0sCi0rCSBbV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxseSBs aW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKLStdKSMgTFRfU1lTX0RMT1BFTl9TRUxGCi0r Ci0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9PTF9ETE9QRU5fU0VMRl0sIFtMVF9T WVNfRExPUEVOX1NFTEZdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbXSkKLSsKLSsKLSsj IF9MVF9DT01QSUxFUl9DX08oW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBDaGVjayB0byBzZWUgaWYgb3B0aW9ucyAtYyBhbmQgLW8gYXJlIHNpbXVsdGFuZW91 c2x5IHN1cHBvcnRlZCBieSBjb21waWxlci4KLSsjIFRoaXMgbWFjcm8gZG9lcyBub3QgaGFyZCBj b2RlIHRoZSBjb21waWxlciBsaWtlIEFDX1BST0dfQ0NfQ19PLgotK200X2RlZnVuKFtfTFRfQ09N UElMRVJfQ19PXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSttNF9yZXF1aXJl KFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJ TEVSXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZp bGUuJGFjX29iamV4dF0sCi0rICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbywg JDEpXSwKLSsgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9bm8KLSsg ICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKLSsgICBta2RpciBjb25mdGVzdAotKyAgIGNk IGNvbmZ0ZXN0Ci0rICAgbWtkaXIgb3V0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgbHRfY29tcGlsZXJfZmxhZz0iLW8g b3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVy ICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3Jl IGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAj IE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hl cyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNv IHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICBsdF9jb21waWxlPWBlY2hvICIk YWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29t cGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRfY29t cGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsg ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkbHRfY29tcGlsZVwiIiA+JkFTX01F U1NBR0VfTE9HX0ZEKQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJy KQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mQVNfTUVTU0FH RV9MT0dfRkQKLSsgICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+ JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBv dXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBj YW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAg ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0rICAgICAkRUNITyAiWCRfbHRf Y29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5l eHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29u ZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91 dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAg IF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKLSsgICAgIGZpCi0r ICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICRSTSBjb25m dGVzdCoKLSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9p aV9maWxlcy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBv dXQvaWlfZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwot KyAgICRSTSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVz dAotKyAgICRSTSBjb25mdGVzdCoKLStdKQotK19MVF9UQUdERUNMKFtjb21waWxlcl9jX29dLCBb bHRfY3ZfcHJvZ19jb21waWxlcl9jX29dLCBbMV0sCi0rCVtEb2VzIGNvbXBpbGVyIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/XSkKLStdKSMgX0xUX0NPTVBJTEVSX0Nf TwotKwotKwotKyMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoW1RBR05BTUVdKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBk byBoYXJkIGxpbmtzIHRvIGxvY2sgc29tZSBmaWxlcyBpZiBuZWVkZWQKLSttNF9kZWZ1bihbX0xU X0NPTVBJTEVSX0ZJTEVfTE9DS1NdLAotK1ttNF9yZXF1aXJlKFtfTFRfRU5BQkxFX0xPQ0tdKWRu bAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK19MVF9DT01QSUxF Ul9DX08oWyQxXSkKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJF9MVF9U QUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0ZXN0ICIkbmVlZF9s b2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVl ZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiB3ZSBj YW4gbG9jayB3aXRoIGhhcmQgbGlua3NdKQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRSTSBjb25m dGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xp bmtzPW5vCi0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIg Mj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2 L251bGwgJiYgaGFyZF9saW5rcz1ubwotKyAgQUNfTVNHX1JFU1VMVChbJGhhcmRfbGlua3NdKQot KyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgQUNfTVNHX1dBUk4oW2Ak Q0MnIGRvZXMgbm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2UgLWonIG1heSBiZSB1bnNhZmVd KQotKyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwot K2ZpCi0rX0xUX0RFQ0woW10sIFtuZWVkX2xvY2tzXSwgWzFdLCBbTXVzdCB3ZSBsb2NrIGZpbGVz IHdoZW4gZG9pbmcgY29tcGlsYXRpb24/XSkKLStdKSMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MK LSsKLSsKLSsjIF9MVF9DSEVDS19PQkpESVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1 bihbX0xUX0NIRUNLX09CSkRJUl0sCi0rW0FDX0NBQ0hFX0NIRUNLKFtmb3Igb2JqZGlyXSwgW2x0 X2N2X29iamRpcl0sCi0rW3JtIC1mIC5saWJzIDI+L2Rldi9udWxsCi0rbWtkaXIgLmxpYnMgMj4v ZGV2L251bGwKLStpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBsdF9jdl9vYmpkaXI9LmxpYnMK LStlbHNlCi0rICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3 aXRoIGEgZG90LgotKyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkKLStybWRpciAubGlicyAyPi9k ZXYvbnVsbF0pCi0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLStfTFRfREVDTChbXSwgW29iamRpcl0s IFswXSwKLSsgICAgICAgICBbVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5z IHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzXSlkbmwKLSttNF9wYXR0ZXJuX2FsbG93KFtMVF9PQkpE SVJdKWRubAotK0FDX0RFRklORV9VTlFVT1RFRChMVF9PQkpESVIsICIkbHRfY3Zfb2JqZGlyLyIs Ci0rICBbRGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVz IHVuaW5zdGFsbGVkIGxpYnJhcmllcy5dKQotK10pIyBfTFRfQ0hFQ0tfT0JKRElSCi0rCi0rCi0r IyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGhhcmRjb2RpbmcgYXR0cmlidXRl cy4KLSttNF9kZWZ1bihbX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIXSwKLStbQUNfTVNHX0NI RUNLSU5HKFtob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zXSkKLStf TFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPQotK2lmIHRlc3QgLW4gIiRfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSIgfHwKLSsgICB0ZXN0IC1uICIkX0xUX1RB R1ZBUihydW5wYXRoX3ZhciwgJDEpIiB8fAotKyAgIHRlc3QgIlgkX0xUX1RBR1ZBUihoYXJkY29k ZV9hdXRvbWF0aWMsICQxKSIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAjIFdlIGNhbiBoYXJkY29k ZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKSIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNt IHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0 byByZWxpbmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJh cnkKLSsgICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWlu c3RhbGxlZCBvbmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0 aF92YXIsICQxKSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKSIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMg dGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9hY3Rpb24sICQxKT1yZWxpbmsKLSsgIGVsc2UKLSsgICAgIyBXZSBjYW4gbGluayB3aXRob3V0 IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KLSsgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1pbW1lZGlhdGUKLSsgIGZpCi0rZWxzZQot KyAgIyBXZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFy ZGNvZGUgZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0rICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2FjdGlvbiwgJDEpPXVuc3VwcG9ydGVkCi0rZmkKLStBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZB UihoYXJkY29kZV9hY3Rpb24sICQxKV0pCi0rCi0raWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNv ZGVfYWN0aW9uLCAkMSkiID0gcmVsaW5rIHx8Ci0rICAgdGVzdCAiJF9MVF9UQUdWQVIoaW5oZXJp dF9ycGF0aCwgJDEpIiA9IHllczsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qg c3VwcG9ydGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFy ZWQiID0gbm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQot KyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0rX0xUX1RBR0RFQ0woW10sIFto YXJkY29kZV9hY3Rpb25dLCBbMF0sCi0rICAgIFtIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGli cmFyeSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZV0pCi0rXSkjIF9MVF9MSU5LRVJfSEFSRENPREVf TElCUEFUSAotKwotKwotKyMgX0xUX0NNRF9TVFJJUExJQgotKyMgLS0tLS0tLS0tLS0tLS0tLQot K200X2RlZnVuKFtfTFRfQ01EX1NUUklQTElCXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdS RVBdKQotK3N0cmlwbGliPQotK29sZF9zdHJpcGxpYj0KLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo ZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZV0pCi0raWYgdGVzdCAtbiAiJFNUUklQ IiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4K LSsgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3Ry aXAtZGVidWciCi0rICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1z dHJpcC11bm5lZWRlZCIKLSsgIEFDX01TR19SRVNVTFQoW3llc10pCi0rZWxzZQotKyMgRklYTUUg LSBpbnNlcnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29zIGlzbid0IHJlYWxseSBnb29kIGVub3Vn aAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAtbiAiJFNU UklQIiA7IHRoZW4KLSsgICAgICBzdHJpcGxpYj0iJFNUUklQIC14IgotKyAgICAgIG9sZF9zdHJp cGxpYj0iJFNUUklQIC1TIgotKyAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgIGVsc2UK LSsgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAg ICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIDs7Ci0rICBlc2FjCi0rZmkKLStfTFRfREVDTChb XSwgW29sZF9zdHJpcGxpYl0sIFsxXSwgW0NvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllc10pCi0r X0xUX0RFQ0woW10sIFtzdHJpcGxpYl0sIFsxXSkKLStdKSMgX0xUX0NNRF9TVFJJUExJQgotKwot KwotKyMgX0xUX1NZU19EWU5BTUlDX0xJTktFUihbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBQT1JUTUUgRmlsbCBpbiB5b3VyIGxkLnNvIGNoYXJhY3RlcmlzdGlj cwotK200X2RlZnVuKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSwKLStbQUNfUkVRVUlSRShbQUNf Q0FOT05JQ0FMX0hPU1RdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLStt NF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRf REVDTF9PQkpEVU1QXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK0FDX01T R19DSEVDS0lORyhbZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzXSkKLSttNF9pZihbJDFd LAotKwlbXSwgWwotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICBjYXNlICRob3N0X29z IGluCi0rICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsKLSsg ICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKLSsgIGVzYWMKLSsgIGx0X3NlYXJj aF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAk U0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCi0rICBpZiAkRUNITyAiJGx0 X3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJzsnID4vZGV2L251bGwgOyB0aGVuCi0rICAgICMg aWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBh cmF0b3IKLSsgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRhcmQgcGF0aCBzZXBh cmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCi0rICAgICMgYXNzdW1lZCB0aGF0IG5vIHBhcnQgb2Yg YSBub3JtYWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3VsZAotKyAgICAjIG9r YXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9i bGVtYXRpYy4KLSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0 aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgZWxzZQotKyAgICBsdF9zZWFyY2hfcGF0 aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhf U0VQQVJBVE9SLyAvZyJgCi0rICBmaQotKyAgIyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNl cGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKLSsgICMgYW5kIGFkZCBt dWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgotKyAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9 Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJp bnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAotKyAgZm9yIGx0X3N5c19wYXRoIGlu ICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwotKyAgICBpZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgv JGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsgICAgICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3Bl Yz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3Nf ZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVzdCAtZCAiJGx0X3N5c19wYXRoIiAmJiBcCi0rCWx0 X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0 X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9uZQotKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVD SE8gJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIHwgYXdrICcKLStCRUdJTiB7UlM9IiAiOyBG Uz0iL3xcbiI7fSB7Ci0rICBsdF9mb289IiI7Ci0rICBsdF9jb3VudD0wOwotKyAgZm9yIChsdF9p ID0gTkY7IGx0X2kgPiAwOyBsdF9pLS0pIHsKLSsgICAgaWYgKCRsdF9pICE9ICIiICYmICRsdF9p ICE9ICIuIikgewotKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7Ci0rICAgICAgICBsdF9jb3Vu dCsrOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBpZiAobHRfY291bnQgPT0gMCkgewotKyAg ICAgICAgICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAg ICAgICAgIGx0X2NvdW50LS07Ci0rICAgICAgICB9Ci0rICAgICAgfQotKyAgICB9Ci0rICB9Ci0r ICBpZiAobHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbW2x0X2Zvb11dKys7IH0KLSsgIGlmIChsdF9m cmVxW1tsdF9mb29dXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQotK30nYAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAkbHRfc2VhcmNoX3BhdGhfc3BlY2AKLStlbHNlCi0rICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0r ZmldKQotK2xpYnJhcnlfbmFtZXNfc3BlYz0KLStsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJwotK3Nv bmFtZV9zcGVjPQotK3NocmV4dF9jbWRzPSIuc28iCi0rcG9zdGluc3RhbGxfY21kcz0KLStwb3N0 dW5pbnN0YWxsX2NtZHM9Ci0rZmluaXNoX2NtZHM9Ci0rZmluaXNoX2V2YWw9Ci0rc2hsaWJwYXRo X3Zhcj0KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgotK3ZlcnNpb25fdHlw ZT1ub25lCi0rZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotK3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgotK25lZWRfbGliX3ByZWZpeD11bmtub3duCi0r aGFyZGNvZGVfaW50b19saWJzPW5vCi0rCi0rIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRv IG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCi0rIyBmbGFncyB0 byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCi0rbmVlZF92ZXJzaW9uPXVua25vd24KLSsKLStj YXNlICRob3N0X29zIGluCi0rYWl4MyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAkbGlibmFtZS5hJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rCi0rICAjIEFJWCAzIGhh cyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8g dGhlIG5hbWUuCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJwotKyAgOzsKLSsKLSthaXhbWzQtOV1dKikKLSsgIHZlcnNpb25fdHlwZT1saW51 eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAg ICMgQUlYIDUgc3VwcG9ydHMgSUE2NAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGVsc2UKLSsgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1 LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQotKyAgICAjIGZvciBkZXBl bmRlbmNlIGxpYnJhcmllcy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCi0rICAg ICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJh cnkgdG8KLSsgICAgIyBkZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAg VGhpcyB3YXMgZml4ZWQgaW4KLSsgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHBy aW9yIHRvIDMuMC4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDQgfCBhaXg0Lltb MDFdXSB8IGFpeDQuW1swMV1dLiopCi0rICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAy IHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKLSsJICAgZWNobyAn IHllcyAnCi0rCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgJEdSRVAgeWVzID4g L2Rldi9udWxsOyB0aGVuCi0rCToKLSsgICAgICBlbHNlCi0rCWNhbl9idWlsZF9zaGFyZWQ9bm8K LSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgIyBBSVggKG9uIFBvd2VyKikg aGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNv ZGUgY29ycmVjdAotKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNh biBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCi0rICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9u YWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCi0rICAgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUg bGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbwotKyAgICAgICMg aW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUg bm90Ci0rICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgotKyAgICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgICBlbHNlCi0rICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24g Zm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKLSsgICAgICAjIGFuZCBsYXRlciB3 aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKLSsgICAgICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBm aQotKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIGZpCi0rICA7OwotKwotK2FtaWdhb3Mq KQotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIHBvd2VycGMpCi0rICAgICMgU2luY2UgSnVseSAy MDA3IEFtaWdhT1M0IG9mZmljaWFsbHkgc3VwcG9ydHMgLnNvIGxpYnJhcmllcy4KLSsgICAgIyBX aGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11c2UtZHlubGQgLUxzb2JqczogdG8g dGhlIGNvbXBpbGVsaW5lLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgOzsKLSsgIG02OGspCi0r ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCi0r ICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMu Ci0rICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+ L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4u Ki9cKFtbXi9dXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7 bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAk e2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJu YW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7 OwotKwotK2Jlb3MqKQotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fScKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLSsgIHNobGlicGF0aF92 YXI9TElCUkFSWV9QQVRICi0rICA7OwotKwotK2JzZGlbWzQ1XV0qKQotKyAgdmVyc2lvbl90eXBl PWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9j bWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIg L3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xp YiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9s b2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNy L2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5r IHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1j b2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8IHB3 MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIu ZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNh c2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3 MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwu YScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGlu c3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwk e2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wk e2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0 ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIg LXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRk bG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0 IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgot KyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBc JD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAy PiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRk aXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikK LSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicK LSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5 Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9 JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGli IC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAgICAgOzsKLSsgICAgbWluZ3cq IHwgY2VnY2MqKQotKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJl Zml4Ci0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNF RCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgJEdSRVAgIl5s aWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSsg ICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCBbJEdSRVAgJztbYy16 Qy1aXTovJyA+L2Rldi9udWxsXTsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5 IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywg YnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAg ICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdl IGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRp bHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFs bHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAs Ci0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRo LiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsg ICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkK LSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVm aXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7 bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rICAgIDs7Ci0rCi0rICAqKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4 fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICA7OwotKyAgZXNhYwotKyAgZHluYW1p Y19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFy Y2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgotKyAgc2hsaWJwYXRo X3Zhcj1QQVRICi0rICA7OwotKwotK2RhcndpbiogfCByaGFwc29keSopCi0rICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZHlsZCIKLSsgIHZlcnNpb25fdHlwZT1kYXJ3aW4KLSsgIG5lZWRfbGli X3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCAke2xpYm5hbWV9JHNoYXJlZF9l eHQnCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRf ZXh0JwotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgc2hsaWJwYXRoX3Zh cj1EWUxEX0xJQlJBUllfUEFUSAotKyAgc2hyZXh0X2NtZHM9J2B0ZXN0IC4kbW9kdWxlID0gLnll cyAmJiBlY2hvIC5zbyB8fCBlY2hvIC5keWxpYmAnCi0rbTRfaWYoWyQxXSwgW10sWwotKyAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9j YWwvbGliIl0pCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIg L2xpYiAvdXNyL2xpYicKLSsgIDs7Ci0rCi0rZGd1eCopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgK LSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHNoYXJlZF9leHQn Ci0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rZnJlZWJzZDEq KQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkq KQotKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxl bWVudCBhIG5ldwotKyAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCi0rICBp ZiB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdDsgdGhlbgotKyAgICBvYmpmb3JtYXQ9YC91c3Iv YmluL29iamZvcm1hdGAKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBmcmVl YnNkW1sxMjNdXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsK LSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsg IGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAg ICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNh YwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAg ICA7OwotKyAgZnJlZWJzZDMuW1swMV1dKiB8IGZyZWVic2RlbGYzLltbMDFdXSopCi0rICAgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXll cwotKyAgICA7OwotKyAgZnJlZWJzZDMuW1syLTldXSogfCBmcmVlYnNkZWxmMy5bWzItOV1dKiB8 IFwKLSsgIGZyZWVic2Q0LltbMC01XV0gfCBmcmVlYnNkZWxmNC5bWzAtNV1dIHwgZnJlZWJzZDQu MS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQu NiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0r Ci0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFy PUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSto cHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25k aW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMg bGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUg aW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9s aWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAg ICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsg ICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg ZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQg d2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg ICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2Nz L2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwot KyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFy PVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMg cmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAg IDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFy ZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1 NSAkbGliJwotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0rICB2ZXJzaW9uX3R5cGU9bGlu dXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJl ZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlr ZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsK LStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRl c3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51 eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBp cml4NSogfCBub25zdG9wdXgqKQotKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0r ICAqKQotKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNl IHN3aXRjaGVzIHRvIExECi0rICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYz MmJzbWlwICIpCi0rICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7Owot KyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQot KyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0 fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0 IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1 ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9Igot KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHts aWJzdWZmfSIKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFy ZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9s ZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwot KyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdu dSkKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBB VEg6L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAjIFNvbWUgYmlu dXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKLSsgIHNhdmVfTERGTEFHUz0k TERGTEFHUwotKyAgc2F2ZV9saWJkaXI9JGxpYmRpcgotKyAgZXZhbCAibGliZGlyPS9mb287IHds PVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpXCI7IFwKLSsgICAgICAgTERG TEFHUz1cIlwkTERGTEFHUyAkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSlcIiIKLSsgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sW10pXSwKLSsgICAg W0FTX0lGKFsgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBn cmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsXSwKLSsgICAgICAgW3NobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXNdKV0pCi0rICBMREZMQUdTPSRzYXZlX0xERkxBR1MKLSsgIGxp YmRpcj0kc2F2ZV9saWJkaXIKLSsKLSsgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwg d2hpY2ggaXMgdW5hY2NlcHRhYmxlLgotKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0 byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0rICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVk LgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKwotKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRp cmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgotKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCi0rCi0rICAjIEFw cGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAt ZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRl IC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXFskXTIp KTsgc2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFxbJF0wOyBza2lwID0gMDsgfScgPCAv ZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6 LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AK LSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYyAkbHRfbGRfZXh0cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9s aWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2VycGMs IGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhl Ci0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNy b3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHlu YW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlz YWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1lIHRo ZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5rZXI9 J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlwZT1z dW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0r ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgIGZpbmlz aF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICAgIGR5 bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycKLSsgIGVsc2UKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFy ZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCi0rICBm aQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rbmV3 c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgdmVyc2lvbl90eXBlPXFueAotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGR5bmFtaWNfbGlua2VyPSds ZHFueC5zbycKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsg IHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkg KmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBvcGVu YnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopCQkJCW5l ZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGlm IHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0 ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsg ICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIG9wZW5ic2QyLltbODldXSB8IG9wZW5ic2QyLltb ODldXS4qKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAq KQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwot KyAgZWxzZQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAg OzsKLSsKLStvczIqKQotKyAgbGlibmFtZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIu ZGxsIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJu YW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQu ZXhlJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCog fCBvc2Y1KikKLSsgIHZlcnNpb25fdHlwZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3Iv Y2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9z aGxpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIgotKyAgOzsKLSsKLStyZG9zKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7Owot KwotK3NvbGFyaXMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0n JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFy aWVzIGFyZSBleGVjdXRhYmxlCi0rICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwot KyAgOzsKLSsKLStzdW5vczQqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9Ilwk UEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg ZmkKLSsgIG5lZWRfdmVyc2lvbj15ZXMKLSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsg IHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAg ICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgICAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1l bnMpCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEp Ci0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hf cGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNh YwotKyAgOzsKLSsKLStzeXN2NCpNUCopCi0rICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0r ICAgIHZlcnNpb25fdHlwZT1saW51eAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1l JHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9l eHR9LiRtYWpvcicKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0r ICA7OwotKwotK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVu VU5JWCogfCBzeXN2NCp1dzIqKQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15 ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSB5ZXM7IHRoZW4KLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xp YiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGliIC91c3IvbGliIC9saWInCi0rICBlbHNlCi0rICAg IHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9jY3MvbGliIC91c3IvbGliJwotKyAgICBj YXNlICRob3N0X29zIGluCi0rICAgICAgc2NvMy4ydjUqKQotKyAgICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC9saWIiCi0rCTs7Ci0rICAg IGVzYWMKLSsgIGZpCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCi0r ICA7OwotKwotK3RwZiopCi0rICAjIFRQRiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVy cmVkIGNyb3NzLWhvc3QgPSBHTlUvTGludXguCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rdXRzNCopCi0r ICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotKyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAg OzsKLStlc2FjCi0rQUNfTVNHX1JFU1VMVChbJGR5bmFtaWNfbGlua2VyXSkKLSt0ZXN0ICIkZHlu YW1pY19saW5rZXIiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK3ZhcmlhYmxlc19z YXZlZF9mb3JfcmVsaW5rPSJQQVRIICRzaGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKLStpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2 YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBM SUJSQVJZX1BBVEgiCi0rZmkKLSsKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3Bh dGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIk bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0raWYgdGVzdCAiJHtsdF9jdl9z eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhlbgotKyAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLStm aQotKwotK19MVF9ERUNMKFtdLCBbdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmtdLCBbMV0sCi0r ICAgIFtWYXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdy YXBwZXIgc2NyaXB0cyBhbmQKLSsgICAgcmVzdG9yZWQgYXQgbGluayB0aW1lXSkKLStfTFRfREVD TChbXSwgW25lZWRfbGliX3ByZWZpeF0sIFswXSwKLSsgICAgW0RvIHdlIG5lZWQgdGhlICJsaWIi IHByZWZpeCBmb3IgbW9kdWxlcz9dKQotK19MVF9ERUNMKFtdLCBbbmVlZF92ZXJzaW9uXSwgWzBd LCBbRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz9dKQotK19MVF9ERUNMKFtdLCBb dmVyc2lvbl90eXBlXSwgWzBdLCBbTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGVdKQotK19MVF9ERUNM KFtdLCBbcnVucGF0aF92YXJdLCBbMF0sICBbU2hhcmVkIGxpYnJhcnkgcnVudGltZSBwYXRoIHZh cmlhYmxlXSkKLStfTFRfREVDTChbXSwgW3NobGlicGF0aF92YXJdLCBbMF0sW1NoYXJlZCBsaWJy YXJ5IHBhdGggdmFyaWFibGVdKQotK19MVF9ERUNMKFtdLCBbc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoXSwgWzBdLAotKyAgICBbSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFy ZC1jb2RlZCBsaWJyYXJ5IHNlYXJjaCBwYXRoP10pCi0rX0xUX0RFQ0woW10sIFtsaWJuYW1lX3Nw ZWNdLCBbMV0sIFtGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeF0pCi0rX0xUX0RFQ0woW10s IFtsaWJyYXJ5X25hbWVzX3NwZWNdLCBbMV0sCi0rICAgIFtbTGlzdCBvZiBhcmNoaXZlIG5hbWVz LiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KLSsgICAg VGhlIGxhc3QgbmFtZSBpcyB0aGUgb25lIHRoYXQgdGhlIGxpbmtlciBmaW5kcyB3aXRoIC1sTkFN RV1dKQotK19MVF9ERUNMKFtdLCBbc29uYW1lX3NwZWNdLCBbMV0sCi0rICAgIFtbVGhlIGNvZGVk IG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWVdXSkK LStfTFRfREVDTChbXSwgW3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kIHRv IHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCi0rX0xUX0RFQ0wo W10sIFtwb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kIHRvIHVzZSBhZnRl ciB1bmluc3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfREVDTChbXSwgW2Zp bmlzaF9jbWRzXSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29s IGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5XSkKLStfTFRfREVDTChbXSwgW2Zp bmlzaF9ldmFsXSwgWzFdLAotKyAgICBbW0FzICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmds ZSBzY3JpcHQgZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAotKyAgICBub3Qgc2hvd25dXSkKLStf TFRfREVDTChbXSwgW2hhcmRjb2RlX2ludG9fbGlic10sIFswXSwKLSsgICAgW1doZXRoZXIgd2Ug c2hvdWxkIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXNdKQotK19MVF9ERUNM KFtdLCBbc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbQ29tcGlsZS10aW1l IHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKLStfTFRfREVDTChbXSwgW3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbUnVuLXRpbWUgc3lzdGVtIHNlYXJj aCBwYXRoIGZvciBsaWJyYXJpZXNdKQotK10pIyBfTFRfU1lTX0RZTkFNSUNfTElOS0VSCi0rCi0r Ci0rIyBfTFRfUEFUSF9UT09MX1BSRUZJWChUT09MKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIGZpbmQgYSBmaWxlIHByb2dyYW0gd2hpY2ggY2FuIHJlY29nbml6ZSBzaGFyZWQg bGlicmFyeQotK0FDX0RFRlVOKFtfTFRfUEFUSF9UT09MX1BSRUZJWF0sCi0rW200X3JlcXVpcmUo W19MVF9ERUNMX0VHUkVQXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0pCi0rQUNfQ0FD SEVfVkFMKGx0X2N2X3BhdGhfTUFHSUNfQ01ELAotK1tjYXNlICRNQUdJQ19DTUQgaW4KLStbW1xc LypdIHwgID86W1xcL10qXSkKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikK LSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZG5sICRhY19kdW1teSBmb3JjZXMgc3BsaXR0aW5nIG9u IGNvbnN0YW50IHVzZXItc3VwcGxpZWQgcGF0aHMuCi0rZG5sIFBPU0lYLjIgd29yZCBzcGxpdHRp bmcgaXMgZG9uZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBleHBhbnNpb25zLAotK2RubCBu b3QgZXZlcnkgd29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNlY3VyaXR5IGhv bGUuCi0rICBhY19kdW1teT0ibTRfaWYoWyQyXSwgLCAkUEFUSCwgWyQyXSkiCi0rICBmb3IgYWNf ZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3Qg LXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kMTsgdGhl bgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyLyQxIgotKyAgICAgIGlmIHRl c3QgLW4gIiRmaWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVwbGlic19jaGVj a19tZXRob2QgaW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhw ciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCi0rCSAgTUFH SUNfQ01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19j bWQgXCRmaWxlX21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAgJEVHUkVQICIk ZmlsZV9tYWdpY19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJICBlbHNlCi0r CSAgICBjYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGli dG9vbCB1c2VzIHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmlsZV9tYWdpY19j bWQsIHByb2R1Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KLSsqKiog VGhlIHJlc3VsdCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBs aWJyYXJpZXMKLSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9m IGxpYnRvb2wgbGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMs IGJ1dCBwcm9ncmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGlicmFyaWVzIHdp bGwgd29yayByZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91Ci0r KioqIG1heSB3YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2Vy IGFuZC9vciB0bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rX0xUX0VPRgotKwkgIGZp IDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0r ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01EIgot KyAgOzsKLStlc2FjXSkKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLStpZiB0 ZXN0IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkTUFHSUNfQ01EKQot K2Vsc2UKLSsgIEFDX01TR19SRVNVTFQobm8pCi0rZmkKLStfTFRfREVDTChbXSwgW01BR0lDX0NN RF0sIFswXSwKLSsJIFtVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19j bWQgYmVnaW5zIHdpdGggImZpbGUiXSlkbmwKLStdKSMgX0xUX1BBVEhfVE9PTF9QUkVGSVgKLSsK LSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW19MVF9QQVRI X1RPT0xfUFJFRklYXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6 Ci0rZG5sIEFDX0RFRlVOKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW10pCi0rCi0rCi0rIyBfTFRf UEFUSF9NQUdJQwotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgYSBmaWxlIHByb2dyYW0gd2hp Y2ggY2FuIHJlY29nbml6ZSBhIHNoYXJlZCBsaWJyYXJ5Ci0rbTRfZGVmdW4oW19MVF9QQVRIX01B R0lDXSwKLStbX0xUX1BBVEhfVE9PTF9QUkVGSVgoJHthY190b29sX3ByZWZpeH1maWxlLCAvdXNy L2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIKQotK2lmIHRlc3QgLXogIiRsdF9jdl9wYXRoX01BR0lD X0NNRCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICAg X0xUX1BBVEhfVE9PTF9QUkVGSVgoZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCkK LSsgIGVsc2UKLSsgICAgTUFHSUNfQ01EPToKLSsgIGZpCi0rZmkKLStdKSMgX0xUX1BBVEhfTUFH SUMKLSsKLSsKLSsjIExUX1BBVEhfTEQKLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhu YW1lIHRvIHRoZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKLStBQ19ERUZVTihbTFRfUEFUSF9MRF0s Ci0rW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNB TF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAotK200X3Jl cXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRu bAotKwotK0FDX0FSR19XSVRIKFtnbnUtbGRdLAotKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0 aC1nbnUtbGRdLAotKwlbYXNzdW1lIHRoZSBDIGNvbXBpbGVyIHVzZXMgR05VIGxkIEA8OkBkZWZh dWx0PW5vQDo+QF0pXSwKLSsgICAgW3Rlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xk PXllc10sCi0rICAgIFt3aXRoX2dudV9sZD1ub10pZG5sCi0rCi0rYWNfcHJvZz1sZAotK2lmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1l PWxkIGdpdmVzIGEgcGF0aC4KLSsgIEFDX01TR19DSEVDS0lORyhbZm9yIGxkIHVzZWQgYnkgJEND XSkKLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1taW5ndyopCi0rICAgICMgZ2NjIGxlYXZlcyBh IHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSsgICAgYWNfcHJv Zz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAg KikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotKyAg ZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAgICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4K LSsgICAgW1tcXC9dXSogfCA/OltbXFwvXV0qKQotKyAgICAgIHJlX2RpcmVsdD0nL1tbXi9dXVtb Xi9dXSovXC5cLi8nCi0rICAgICAgIyBDYW5vbmljYWxpemUgdGhlIHBhdGhuYW1lIG9mIGxkCi0r ICAgICAgYWNfcHJvZz1gJEVDSE8gIiRhY19wcm9nInwgJFNFRCAncyVcXFxcJS8lZydgCi0rICAg ICAgd2hpbGUgJEVDSE8gIiRhY19wcm9nIiB8ICRHUkVQICIkcmVfZGlyZWx0IiA+IC9kZXYvbnVs bCAyPiYxOyBkbwotKwlhY19wcm9nPWAkRUNITyAkYWNfcHJvZ3wgJFNFRCAicyUkcmVfZGlyZWx0 JS8lImAKLSsgICAgICBkb25lCi0rICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ci Ci0rICAgICAgOzsKLSsgICIiKQotKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2Ug YXJlbid0IHVzaW5nIEdDQy4KLSsgICAgYWNfcHJvZz1sZAotKyAgICA7OwotKyAgKikKLSsgICAg IyBJZiBpdCBpcyByZWxhdGl2ZSwgdGhlbiBzZWFyY2ggZm9yIHRoZSBmaXJzdCBsZCBpbiBQQVRI LgotKyAgICB3aXRoX2dudV9sZD11bmtub3duCi0rICAgIDs7Ci0rICBlc2FjCi0rZWxpZiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBHTlUg bGRdKQotK2Vsc2UKLSsgIEFDX01TR19DSEVDS0lORyhbZm9yIG5vbi1HTlUgbGRdKQotK2ZpCi0r QUNfQ0FDSEVfVkFMKGx0X2N2X3BhdGhfTEQsCi0rW2lmIHRlc3QgLXogIiRMRCI7IHRoZW4KLSsg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGFjX2RpciBp biAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRl c3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgotKyAgICAgIGx0X2N2X3Bh dGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHBy b2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotKyAgICAgICMgYnV0 IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCi0rICAg ICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVm ZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGlu Ci0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0g bm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHll cyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0i JGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmldKQotK0xEPSIkbHRfY3ZfcGF0 aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICBBQ19NU0dfUkVTVUxUKCRMRCkKLStl bHNlCi0rICBBQ19NU0dfUkVTVUxUKG5vKQotK2ZpCi0rdGVzdCAteiAiJExEIiAmJiBBQ19NU0df RVJST1IoW25vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIXSkKLStfTFRfUEFUSF9MRF9H TlUKLStBQ19TVUJTVChbTERdKQotKwotK19MVF9UQUdERUNMKFtdLCBbTERdLCBbMV0sIFtUaGUg bGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzXSkKLStdKSMgTFRfUEFUSF9MRAotKwotKyMg T2xkIG5hbWVzOgotK0FVX0FMSUFTKFtBTV9QUk9HX0xEXSwgW0xUX1BBVEhfTERdKQotK0FVX0FM SUFTKFtBQ19QUk9HX0xEXSwgW0xUX1BBVEhfTERdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX1BST0dfTERdLCBbXSkKLStkbmwg QUNfREVGVU4oW0FDX1BST0dfTERdLCBbXSkKLSsKLSsKLSsjIF9MVF9QQVRIX0xEX0dOVQotKyMt IC0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9QQVRIX0xEX0dOVV0sCi0rW0FDX0NBQ0hF X0NIRUNLKFtpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZF0sIGx0X2N2X3Byb2dfZ251X2xk LAotK1sjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21l IEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAg aW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXllcwotKyAg OzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhY10pCi0rd2l0aF9n bnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCi0rXSkjIF9MVF9QQVRIX0xEX0dOVQotKwotKwotKyMg X0xUX0NNRF9SRUxPQUQKLSsjIC0tLS0tLS0tLS0tLS0tCi0rIyBmaW5kIHJlbG9hZCBmbGFnIGZv ciBsaW5rZXIKLSsjICAgLS0gUE9SVE1FIFNvbWUgbGlua2VycyBtYXkgbmVlZCBhIGRpZmZlcmVu dCByZWxvYWQgZmxhZy4KLSttNF9kZWZ1bihbX0xUX0NNRF9SRUxPQURdLAotK1tBQ19DQUNIRV9D SEVDSyhbZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlc10sCi0rICBsdF9jdl9s ZF9yZWxvYWRfZmxhZywKLSsgIFtsdF9jdl9sZF9yZWxvYWRfZmxhZz0nLXInXSkKLStyZWxvYWRf ZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWcKLStjYXNlICRyZWxvYWRfZmxhZyBpbgotKyIiIHwg IiAiKikgOzsKLSsqKSByZWxvYWRfZmxhZz0iICRyZWxvYWRfZmxhZyIgOzsKLStlc2FjCi0rcmVs b2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotK2Nhc2Ug JGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVu Ci0rICAgICAgcmVsb2FkX2NtZHM9JyRMVENDICRMVENGTEFHUyAtbm9zdGRsaWIgJHt3bH0tciAt byAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKyAgICBlbHNlCi0rICAgICAgcmVsb2FkX2NtZHM9JyRM RCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKyAgICBmaQotKyAgICA7Owot K2VzYWMKLStfTFRfREVDTChbXSwgW3JlbG9hZF9mbGFnXSwgWzFdLCBbSG93IHRvIGNyZWF0ZSBy ZWxvYWRhYmxlIG9iamVjdCBmaWxlc10pZG5sCi0rX0xUX0RFQ0woW10sIFtyZWxvYWRfY21kc10s IFsyXSlkbmwKLStdKSMgX0xUX0NNRF9SRUxPQUQKLSsKLSsKLSsjIF9MVF9DSEVDS19NQUdJQ19N RVRIT0QKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGhvdyB0byBjaGVjayBmb3IgbGli cmFyeSBkZXBlbmRlbmNpZXMKLSsjICAtLSBQT1JUTUUgZmlsbCBpbiB3aXRoIHRoZSBkeW5hbWlj IGxpYnJhcnkgY2hhcmFjdGVyaXN0aWNzCi0rbTRfZGVmdW4oW19MVF9DSEVDS19NQUdJQ19NRVRI T0RdLAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pCi0rbTRfcmVxdWlyZShbX0xUX0RF Q0xfT0JKRFVNUF0pCi0rQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byByZWNvZ25pemUgZGVwZW5kZW50 IGxpYnJhcmllc10sCi0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QsCi0rW2x0X2N2X2ZpbGVf bWFnaWNfY21kPSckTUFHSUNfQ01EJwotK2x0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPQotK2x0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSd1bmtub3duJwotKyMgTmVlZCB0byBzZXQgdGhlIHBy ZWNlZGluZyB2YXJpYWJsZSBvbiBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydAotKyMgaW50ZXJs aWJyYXJ5IGRlcGVuZGVuY2llcy4KLSsjICdub25lJyAtLSBkZXBlbmRlbmNpZXMgbm90IHN1cHBv cnRlZC4KLSsjIGB1bmtub3duJyAtLSBzYW1lIGFzIG5vbmUsIGJ1dCBkb2N1bWVudHMgdGhhdCB3 ZSByZWFsbHkgZG9uJ3Qga25vdy4KLSsjICdwYXNzX2FsbCcgLS0gYWxsIGRlcGVuZGVuY2llcyBw YXNzZWQgd2l0aCBubyBjaGVja3MuCi0rIyAndGVzdF9jb21waWxlJyAtLSBjaGVjayBieSBtYWtp bmcgdGVzdCBwcm9ncmFtLgotKyMgJ2ZpbGVfbWFnaWMgW1tyZWdleF1dJyAtLSBjaGVjayBieSBs b29raW5nIGZvciBmaWxlcyBpbiBsaWJyYXJ5IHBhdGgKLSsjIHdoaWNoIHJlc3BvbmRzIHRvIHRo ZSAkZmlsZV9tYWdpY19jbWQgd2l0aCBhIGdpdmVuIGV4dGVuZGVkIHJlZ2V4LgotKyMgSWYgeW91 IGhhdmUgYGZpbGUnIG9yIGVxdWl2YWxlbnQgb24geW91ciBzeXN0ZW0gYW5kIHlvdSdyZSBub3Qg c3VyZQotKyMgd2hldGhlciBgcGFzc19hbGwnIHdpbGwgKmFsd2F5cyogd29yaywgeW91IHByb2Jh Ymx5IHdhbnQgdGhpcyBvbmUuCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeFtbNC05XV0qKQot KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rYmVvcyop Ci0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStic2Rp W1s0NV1dKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBb WzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKScK LSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1MJwotKyAgbHRfY3ZfZmls ZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KLSsgIDs7Ci0rCi0rY3lnd2luKikKLSsg ICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRlZmluZWQgaW4gbHRtYWlu LnNoCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBeeDg2IGFyY2hp dmUgaW1wb3J0fF54ODYgRExMJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJf bGliaWQnCi0rICA7OwotKwotK21pbmd3KiB8IHB3MzIqKQotKyAgIyBCYXNlIE1TWVMvTWluR1cg ZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQotKyAgIyBmdW5jX3dp bjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAn b2JqZHVtcCcsCi0rICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9yIGV4YW1wbGUgYmVjYXVz ZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgotKyAgaWYgKCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4 NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1 bmNfd2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9k PSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/ JwotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsK LSsKLStjZWdjYykKLSsgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcu IFNlZSBtaW5ndyouCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBm aWxlIGZvcm1hdCBwZS1hcm0tLipsaXR0bGUoLiphcmNoaXRlY3R1cmU6IGFybSk/JwotKyAgbHRf Y3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJwotKyAgOzsKLSsKLStkYXJ3aW4qIHwgcmhh cHNvZHkqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0r Ci0rZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICAgIGkqODYgKQotKyAgICAgICMgTm90IHN1cmUgd2hldGhlciB0aGUgcHJlc2VuY2Ugb2Yg T3BlbkJTRCBoZXJlIHdhcyBhIG1pc3Rha2UuCi0rICAgICAgIyBMZXQncyBhY2NlcHQgYm90aCBv ZiB0aGVtIHVudGlsIHRoaXMgaXMgY2xlYXJlZCB1cC4KLSsgICAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoRnJlZUJTRHxPcGVuQlNEfERyYWdvbkZseSkvaVtbMy05 XV04NiAoY29tcGFjdCApP2RlbWFuZCBwYWdlZCBzaGFyZWQgbGlicmFyeScKLSsgICAgICBsdF9j dl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY190 ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zby4qYAotKyAgICAgIDs7Ci0rICAgIGVzYWMK LSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIGZp Ci0rICA7OwotKwotK2dudSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAotKyAgOzsKLSsKLStocHV4MTAuMjAqIHwgaHB1eDExKikKLSsgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPS91c3IvYmluL2ZpbGUKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBpYTY0KikKLSsgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAtOV1dW1swLTldXVtb MC05XV18RUxGLVtbMC05XV1bWzAtOV1dKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBJQTY0JwotKyAg ICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9ocHV4MzIvbGliYy5zbwotKyAg ICA7OwotKyAgaHBwYSo2NCopCi0rICAgIFtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmls ZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBm aWxlIC0gUEEtUklTQyBbMC05XS5bMC05XSddCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m aWxlPS91c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbWzAtOV1dW1swLTldXVtbMC05XV18 UEEtUklTQ1tbMC05XV0uW1swLTldXSkgc2hhcmVkIGxpYnJhcnknCi0rICAgIGx0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7 Ci0rCi0raW50ZXJpeFtbMy05XV0qKQotKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJp eCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQotKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xcLmEpJCcKLSsg IDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJExEIGluCi0r ICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7Ci0rICAqLW4zMnwqIi1uMzIgIikgbGli bWFnaWM9TjMyOzsKLSsgICotNjR8KiItNjQgIikgbGlibWFnaWM9NjQtYml0OzsKLSsgICopIGxp Ym1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgIGVzYWMKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICA7OwotKwotKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLStsaW51 eCogfCBrKmJzZCotZ251KQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK LSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdS RVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8 X3BpY1wuYSkkJwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0 Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwot K25ld29zNiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYg W1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoZXhlY3V0YWJsZXxkeW5hbWljIGxpYiknCi0r ICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICBsdF9jdl9maWxlX21hZ2lj X3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMuc28KLSsgIDs7Ci0rCi0rKm50byogfCAqcW54KikK LSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK29wZW5i c2QqKQotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19F TEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBj IjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAv bGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8XC5zb3xfcGljXC5hKSQnCi0rICBl bHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJb W14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQnCi0rICBmaQotKyAgOzsK LSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD1wYXNzX2FsbAotKyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2 KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAg Y2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgIG1vdG9yb2xhKQotKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAo c2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikgTVtbMC05XV1bWzAtOV1dKiBWZXJzaW9uIFtbMC05 XV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMu c28qYAotKyAgICA7OwotKyAgbmNyKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgICA7OwotKyAgc2VxdWVudCkKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9 Jy9iaW4vZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg RUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBs aWIgKScKLSsgICAgOzsKLSsgIHNuaSkKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4v ZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgRUxGIFtb MC05XV1bWzAtOV1dKi1iaXQgW1tMTV1dU0IgZHluYW1pYyBsaWIiCi0rICAgIGx0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPS9saWIvbGliYy5zbwotKyAgICA7OwotKyAgc2llbWVucykKLSsgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAgOzsKLSsgIHBjKQotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgZXNhYwot KyAgOzsKLSsKLSt0cGYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK LSsgIDs7Ci0rZXNhYwotK10pCi0rZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21k Ci0rZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCi0rdGVz dCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtu b3duCi0rCi0rX0xUX0RFQ0woW10sIFtkZXBsaWJzX2NoZWNrX21ldGhvZF0sIFsxXSwKLSsgICAg W01ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBv YmplY3RzXSkKLStfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfY21kXSwgWzFdLAotKyAgICBbQ29t bWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdpYyJdKQot K10pIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECi0rCi0rCi0rIyBMVF9QQVRIX05NCi0rIyAtLS0t LS0tLS0tCi0rIyBmaW5kIHRoZSBwYXRobmFtZSB0byBhIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBu YW1lIGxpc3RlcgotK0FDX0RFRlVOKFtMVF9QQVRIX05NXSwKLStbQUNfUkVRVUlSRShbQUNfUFJP R19DQ10pZG5sCi0rQUNfQ0FDSEVfQ0hFQ0soW2ZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFt ZSBsaXN0ZXIgKG5tKV0sIGx0X2N2X3BhdGhfTk0sCi0rW2lmIHRlc3QgLW4gIiROTSI7IHRoZW4K LSsgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotKyAgbHRfY3ZfcGF0aF9OTT0i JE5NIgotK2Vsc2UKLSsgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rvb2xfcHJlZml4fW5tIgotKyAg aWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIkYnVpbGQiID0gIiRob3N0Ijsg dGhlbgotKyAgICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3RvX2NoZWNrIG5tIgotKyAgZmkKLSsg IGZvciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbwotKyAgICBsdF9zYXZlX2lmcz0i JElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgICAgZm9yIGFjX2RpciBpbiAkUEFUSCAvdXNy L2Njcy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmluOyBkbwotKyAgICAgIElGUz0i JGx0X3NhdmVfaWZzIgotKyAgICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAg ICAgdG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCi0rICAgICAgaWYgdGVzdCAtZiAiJHRtcF9u bSIgfHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhlbgotKwkjIENoZWNrIHRvIHNl ZSBpZiB0aGUgbm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxhZy4KLSsJIyBBZGRpbmcgdGhlIGBz ZWQgMXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1VWCwgd2hpY2ggc2F5czoKLSsJ IyAgIG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAotKwkjIFRydTY0J3Mgbm0gY29tcGxh aW5zIHRoYXQgL2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2JqZWN0IGZpbGUKLSsJY2FzZSBgIiR0 bXBfbm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCi0rCSovZGV2L251bGwqIHwg KidJbnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKLSsJICBsdF9jdl9wYXRoX05NPSIkdG1w X25tIC1CIgotKwkgIGJyZWFrCi0rCSAgOzsKLSsJKikKLSsJICBjYXNlIGAiJHRtcF9ubSIgLXAg L2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsJICAqL2Rldi9udWxsKikKLSsJICAgIGx0 X2N2X3BhdGhfTk09IiR0bXBfbm0gLXAiCi0rCSAgICBicmVhawotKwkgICAgOzsKLSsJICAqKQot KwkgICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0bXBfbm0ifSAjIGtlZXAgdGhl IGZpcnN0IG1hdGNoLCBidXQKLSsJICAgIGNvbnRpbnVlICMgc28gdGhhdCB3ZSBjYW4gdHJ5IHRv IGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJ ICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAgICBJRlM9IiRsdF9zYXZlX2lm cyIKLSsgIGRvbmUKLSsgIDogJHtsdF9jdl9wYXRoX05NPW5vfQotK2ZpXSkKLStpZiB0ZXN0ICIk bHRfY3ZfcGF0aF9OTSIgIT0gIm5vIjsgdGhlbgotKyAgTk09IiRsdF9jdl9wYXRoX05NIgotK2Vs c2UKLSsgICMgRGlkbid0IGZpbmQgYW55IEJTRCBjb21wYXRpYmxlIG5hbWUgbGlzdGVyLCBsb29r IGZvciBkdW1wYmluLgotKyAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJTiwgWyJkdW1wYmluIC1zeW1i b2xzIiAibGluayAtZHVtcCAtc3ltYm9scyJdLCA6KQotKyAgQUNfU1VCU1QoW0RVTVBCSU5dKQot KyAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6IjsgdGhlbgotKyAgICBOTT0iJERVTVBCSU4iCi0r ICBmaQotK2ZpCi0rdGVzdCAteiAiJE5NIiAmJiBOTT1ubQotK0FDX1NVQlNUKFtOTV0pCi0rX0xU X0RFQ0woW10sIFtOTV0sIFsxXSwgW0EgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVy XSlkbmwKLSsKLStBQ19DQUNIRV9DSEVDSyhbdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFj ZV0sIFtsdF9jdl9ubV9pbnRlcmZhY2VdLAotKyAgW2x0X2N2X25tX2ludGVyZmFjZT0iQlNEIG5t IgotKyAgZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBjb25mdGVzdC4kYWNfZXh0Ci0r ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkYWNfY29tcGlsZVwiIiA+JkFTX01F U1NBR0VfTE9HX0ZEKQotKyAgKGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgKGV2YWwgZWNobyAiXCJc JGFzX21lOl9fb2xpbmVfXzogJE5NIFxcXCJjb25mdGVzdC4kYWNfb2JqZXh0XFxcIlwiIiA+JkFT X01FU1NBR0VfTE9HX0ZEKQotKyAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIg Mj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQpCi0rICBjYXQgY29uZnRlc3QuZXJyID4mQVNf TUVTU0FHRV9MT0dfRkQKLSsgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186IG91dHB1 dFwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgY2F0IGNvbmZ0ZXN0Lm91dCA+JkFTX01FU1NB R0VfTE9HX0ZECi0rICBpZiAkR1JFUCAnRXh0ZXJuYWwuKnNvbWVfdmFyaWFibGUnIGNvbmZ0ZXN0 Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9jdl9ubV9pbnRlcmZhY2U9Ik1TIGR1bXBi aW4iCi0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QqXSkKLStdKSMgTFRfUEFUSF9OTQotKwotKyMg T2xkIG5hbWVzOgotK0FVX0FMSUFTKFtBTV9QUk9HX05NXSwgW0xUX1BBVEhfTk1dKQotK0FVX0FM SUFTKFtBQ19QUk9HX05NXSwgW0xUX1BBVEhfTk1dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX1BST0dfTk1dLCBbXSkKLStkbmwg QUNfREVGVU4oW0FDX1BST0dfTk1dLCBbXSkKLSsKLSsKLSsjIExUX0xJQl9NCi0rIyAtLS0tLS0t LQotKyMgY2hlY2sgZm9yIG1hdGggbGlicmFyeQotK0FDX0RFRlVOKFtMVF9MSUJfTV0sCi0rW0FD X1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStMSUJNPQotK2Nhc2UgJGhvc3QgaW4K LSsqLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQotKyAg IyBUaGVzZSBzeXN0ZW0gZG9uJ3QgaGF2ZSBsaWJtLCBvciBkb24ndCBuZWVkIGl0Ci0rICA7Owot KyotbmNyLXN5c3Y0LjMqKQotKyAgQUNfQ0hFQ0tfTElCKG13LCBfbXd2YWxpZGNoZWNrbCwgTElC TT0iLWxtdyIpCi0rICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSIkTElCTSAtbG0iKQotKyAg OzsKLSsqKQotKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywgTElCTT0iLWxtIikKLSsgIDs7Ci0rZXNh YwotK0FDX1NVQlNUKFtMSUJNXSkKLStdKSMgTFRfTElCX00KLSsKLSsjIE9sZCBuYW1lOgotK0FV X0FMSUFTKFtBQ19DSEVDS19MSUJNXSwgW0xUX0xJQl9NXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFj a3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19DSEVDS19MSUJNXSwgW10p Ci0rCi0rCi0rIyBfTFRfQ09NUElMRVJfTk9fUlRUSShbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9DT01QSUxFUl9OT19SVFRJXSwK LStbbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCi0rCi0rX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPQotKwotK2lmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCi0rICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn LCAkMSk9JyAtZm5vLWJ1aWx0aW4nCi0rCi0rICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29t cGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sCi0rICAgIGx0X2N2X3By b2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zLAotKyAgICBbLWZuby1ydHRpIC1mbm8tZXhjZXB0 aW9uc10sIFtdLAotKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywg JDEpIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiXSkKLStmaQotK19MVF9UQUdERUNMKFtub19i dWlsdGluX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWddLCBbMV0sCi0r CVtDb21waWxlciBmbGFnIHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zXSkKLStdKSMgX0xU X0NPTVBJTEVSX05PX1JUVEkKLSsKLSsKLSsjIF9MVF9DTURfR0xPQkFMX1NZTUJPTFMKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10s Ci0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19Q Uk9HX0NDXSlkbmwKLStBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlkbmwKLStBQ19SRVFVSVJFKFtM VF9QQVRIX0xEXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK200X3JlcXVp cmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlk bmwKLSsKLSsjIENoZWNrIGZvciBjb21tYW5kIHRvIGdyYWIgdGhlIHJhdyBzeW1ib2wgbmFtZSBm b2xsb3dlZCBieSBDIHN5bWJvbCBmcm9tIG5tLgotK0FDX01TR19DSEVDS0lORyhbY29tbWFuZCB0 byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9iamVjdF0pCi0rQUNfQ0FDSEVfVkFM KFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlXSwKLStbCi0rIyBUaGVzZSBhcmUgc2FuZSBk ZWZhdWx0cyB0aGF0IHdvcmsgb24gYXQgbGVhc3QgYSBmZXcgb2xkIHN5c3RlbXMuCi0rIyBbVGhl eSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3VsZCBiZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7 KV0KLSsKLSsjIENoYXJhY3RlciBjbGFzcyBkZXNjcmliaW5nIE5NIGdsb2JhbCBzeW1ib2wgY29k ZXMuCi0rc3ltY29kZT0nW1tCQ0RFR1JTVF1dJwotKwotKyMgUmVnZXhwIHRvIG1hdGNoIHN5bWJv bHMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgZGlyZWN0bHkgZnJvbSBDLgotK3N5bXBhdD0nXChbW19B LVphLXpdXVtbX0EtWmEtejAtOV1dKlwpJwotKwotKyMgRGVmaW5lIHN5c3RlbS1zcGVjaWZpYyB2 YXJpYWJsZXMuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeCopCi0rICBzeW1jb2RlPSdbW0JDRFRd XScKLSsgIDs7Ci0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgc3ltY29k ZT0nW1tBQkNER0lTVFddXScKLSsgIDs7Ci0raHB1eCopCi0rICBpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2RlPSdbW0FCQ0RFR1JTVF1dJwotKyAgZmkKLSsgIDs7 Ci0raXJpeCogfCBub25zdG9wdXgqKQotKyAgc3ltY29kZT0nW1tCQ0RFR1JTVF1dJwotKyAgOzsK LStvc2YqKQotKyAgc3ltY29kZT0nW1tCQ0RFR1FSU1RdXScKLSsgIDs7Ci0rc29sYXJpcyopCi0r ICBzeW1jb2RlPSdbW0JEUlRdXScKLSsgIDs7Ci0rc2NvMy4ydjUqKQotKyAgc3ltY29kZT0nW1tE VF1dJwotKyAgOzsKLStzeXN2NC4ydXcyKikKLSsgIHN5bWNvZGU9J1tbRFRdXScKLSsgIDs7Ci0r c3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgIHN5bWNvZGU9J1tb QUJEVF1dJwotKyAgOzsKLStzeXN2NCkKLSsgIHN5bWNvZGU9J1tbREZOU1RVXV0nCi0rICA7Owot K2VzYWMKLSsKLSsjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB1c2UgaXRzIHN0YW5kYXJk IHN5bWJvbCBjb2Rlcy4KLStjYXNlIGAkTk0gLVYgMj4mMWAgaW4KLSsqR05VKiB8ICond2l0aCBC RkQnKikKLSsgIHN5bWNvZGU9J1tbQUJDREdJUlNUV11dJyA7OwotK2VzYWMKLSsKLSsjIFRyYW5z Zm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9u LgotKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1i b2xzIGRpZmZlcmVudGx5LAotKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KLStsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQv ZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNo YXIgXDE7L3AnIgotKwotKyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRv IHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9s X3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXCkgJC8gIHtcXFwi XDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKFtb XiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCi0rbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwo W1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29k ZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0s L3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wibGliXDJc IiwgKHZvaWQgKikgXCZcMn0sL3AnIgotKwotKyMgSGFuZGxlIENSTEYgaW4gbWluZ3cgdG9vbCBj aGFpbgotK29wdF9jcj0KLStjYXNlICRidWlsZF9vcyBpbgotK21pbmd3KikKLSsgIG9wdF9jcj1g JEVDSE8gJ3hcezAsMVx9JyB8IHRyIHggJ1wwMTUnYCAjIG9wdGlvbiBjciBpbiByZWdleHAKLSsg IDs7Ci0rZXNhYwotKwotKyMgVHJ5IHdpdGhvdXQgYSBwcmVmaXggdW5kZXJzY29yZSwgdGhlbiB3 aXRoIGl0LgotK2ZvciBhY19zeW1wcmZ4IGluICIiICJfIjsgZG8KLSsKLSsgICMgVHJhbnNmb3Jt IHN5bWNvZGUsIHN5bXBhdCwgYW5kIHN5bXByZnggaW50byBhIHJhdyBzeW1ib2wgYW5kIGEgQyBz eW1ib2wuCi0rICBzeW14ZnJtPSJcXDEgJGFjX3N5bXByZnhcXDIgXFwyIgotKwotKyAgIyBXcml0 ZSB0aGUgcmF3IGFuZCBDIGlkZW50aWZpZXJzLgotKyAgaWYgdGVzdCAiJGx0X2N2X25tX2ludGVy ZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KLSsgICAgIyBGYWtlIGl0IGZvciBkdW1wYmluIGFu ZCBzYXkgVCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24KLSsgICAgIyBhbmQgRCBmb3IgYW55 IGdsb2JhbCB2YXJpYWJsZS4KLSsgICAgIyBBbHNvIGZpbmQgQysrIGFuZCBfX2Zhc3RjYWxsIHN5 bWJvbHMgZnJvbSBNU1ZDKyssCi0rICAgICMgd2hpY2ggc3RhcnQgd2l0aCBAIG9yID8uCi0rICAg IGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9IiRBV0sgWyciXAotKyIgICAgIHtsYXN0X3Nl Y3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAotKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAu KiNyZWxvY3MuKihwaWNrIGFueSkve2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAotKyIgICAgIFwk IDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCi0rIiAgICAgLyAwKyBVTkRFRiAve25leHR9OyAv IFVOREVGIFwoW158XVwpKigpL3tuZXh0fTsiXAotKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBu ZXh0fTsiXAotKyIgICAgIHtmPTB9OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8g XCJUIFwiIDogXCJEIFwifTsiXAotKyIgICAgIHtzcGxpdChcJCAwLCBhLCAvXHx8XHIvKTsgc3Bs aXQoYVsyXSwgcyl9OyJcCi0rIiAgICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5l eHR9OyJcCi0rIiAgICAgc1sxXX5wcmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFd LCBzdWJzdHIodFsxXSxsZW5ndGgocHJmeCkpfSJcCi0rIiAgICAgJyBwcmZ4PV4kYWNfc3ltcHJm eF0iCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAt ZSAncy9eLipbWwkgXV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbWwkgXV1bWwkgXV0qJGFjX3N5bXBy Zngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCi0rICBmaQotKwotKyAgIyBDaGVjayB0byBz ZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCi0rICBwaXBlX3dvcmtzPW5vCi0rCi0r ICBybSAtZiBjb25mdGVzdCoKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0r I2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB7Ci0rI2VuZGlmCi0rY2hhciBubV90ZXN0 X3ZhcjsKLSt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKLSt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lk KXt9Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK2ludCBtYWluKCl7bm1fdGVz dF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9Ci0rX0xUX0VPRgotKwotKyAgaWYg QUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KLSsgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhl IHN5bWJvbHMuCi0rICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCi0rICAgIGlmIEFDX1RSWV9FVkFMKE5N IGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgXD4g JG5saXN0KSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCi0rICAgICAgIyBUcnkgc29ydGluZyBh bmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KLSsgICAgICBpZiBzb3J0ICIkbmxpc3QiIHwgdW5p cSA+ICIkbmxpc3QiVDsgdGhlbgotKwltdiAtZiAiJG5saXN0IlQgIiRubGlzdCIKLSsgICAgICBl bHNlCi0rCXJtIC1mICIkbmxpc3QiVAotKyAgICAgIGZpCi0rCi0rICAgICAgIyBNYWtlIHN1cmUg dGhhdCB3ZSBzbmFnZ2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBuZWVkLgotKyAgICAgIGlmICRHUkVQ ICcgbm1fdGVzdF92YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCWlmICRHUkVQICcg bm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwkgIGNhdCA8PF9MVF9F T0YgPiBjb25mdGVzdC4kYWNfZXh0Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB7 Ci0rI2VuZGlmCi0rCi0rX0xUX0VPRgotKwkgICMgTm93IGdlbmVyYXRlIHRoZSBzeW1ib2wgZmls ZS4KLSsJICBldmFsICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxp c3QiIHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JwotKwotKwkgIGNhdCA8PF9M VF9FT0YgPj4gY29uZnRlc3QuJGFjX2V4dAotKwotKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3lt Ym9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KLStjb25zdCBzdHJ1Y3QgewotKyAgY29uc3QgY2hh ciAqbmFtZTsKLSsgIHZvaWQgICAgICAgKmFkZHJlc3M7Ci0rfQotK2x0X19QUk9HUkFNX19MVFhf cHJlbG9hZGVkX3N5bWJvbHNbW11dID0KLSt7Ci0rICB7ICJAUFJPR1JBTUAiLCAodm9pZCAqKSAw IH0sCi0rX0xUX0VPRgotKwkgICRTRUQgInMvXiRzeW1jb2RlJHN5bWNvZGUqIFwoLipcKSBcKC4q XCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sLyIgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1h aW4gPj4gY29uZnRlc3QuJGFjX2V4dAotKwkgIGNhdCA8PFxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRh Y19leHQKLSsgIHswLCAodm9pZCAqKSAwfQotK307Ci0rCi0rLyogVGhpcyB3b3JrcyBhcm91bmQg YSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCi0rI2lmZGVmIEZSRUVCU0RfV09SS0FST1VO RAotK3N0YXRpYyBjb25zdCB2b2lkICpsdF9wcmVsb2FkZWRfc2V0dXAoKSB7Ci0rICByZXR1cm4g bHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lm ZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK19MVF9FT0YKLSsJICAjIE5vdyB0cnkgbGlu a2luZyB0aGUgdHdvIGZpbGVzLgotKwkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0u JGFjX29iamV4dAotKwkgIGx0X3NhdmVfTElCUz0iJExJQlMiCi0rCSAgbHRfc2F2ZV9DRkxBR1M9 IiRDRkxBR1MiCi0rCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4dCIKLSsJICBDRkxBR1M9IiRD RkxBR1MkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpIgot KwkgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4 dH07IHRoZW4KLSsJICAgIHBpcGVfd29ya3M9eWVzCi0rCSAgZmkKLSsJICBMSUJTPSIkbHRfc2F2 ZV9MSUJTIgotKwkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdTIgotKwllbHNlCi0rCSAgZWNobyAi Y2Fubm90IGZpbmQgbm1fdGVzdF9mdW5jIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xPR19GRAot KwlmaQotKyAgICAgIGVsc2UKLSsJZWNobyAiY2Fubm90IGZpbmQgbm1fdGVzdF92YXIgaW4gJG5s aXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgZmkKLSsgICAgZWxzZQotKyAgICAgIGVj aG8gImNhbm5vdCBydW4gJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiID4mQVNfTUVTU0FH RV9MT0dfRkQKLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgZWNobyAiJHByb2duYW1lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgIGNhdCBjb25mdGVzdC4kYWNf ZXh0ID4mNQotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCogY29uZnRzdCoKLSsKLSsgICMgRG8g bm90IHVzZSB0aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVubGVzcyBpdCB3b3Jrcy4KLSsgIGlmIHRl c3QgIiRwaXBlX3dvcmtzIiA9IHllczsgdGhlbgotKyAgICBicmVhawotKyAgZWxzZQotKyAgICBs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPQotKyAgZmkKLStkb25lCi0rXSkKLStpZiB0ZXN0 IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsgIGx0X2N2X3N5c19n bG9iYWxfc3ltYm9sX3RvX2NkZWNsPQotK2ZpCi0raWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVuCi0r ICBBQ19NU0dfUkVTVUxUKGZhaWxlZCkKLStlbHNlCi0rICBBQ19NU0dfUkVTVUxUKG9rKQotK2Zp Ci0rCi0rX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfcGlwZV0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlXSwgWzFdLAotKyAgICBbVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNl IGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lc10pCi0rX0xUX0RFQ0woW2dsb2Jh bF9zeW1ib2xfdG9fY2RlY2xdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2xdLCBb MV0sCi0rICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xh cmF0aW9uXSkKLStfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc10sCi0r ICAgIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc10sIFsxXSwKLSsg ICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpcl0p Ci0rX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0s Ci0rICAgIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJl Zml4XSwgWzFdLAotKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUg YWRkcmVzcyBwYWlyIHdoZW4gbGliIHByZWZpeCBpcyBuZWVkZWRdKQotK10pICMgX0xUX0NNRF9H TE9CQUxfU1lNQk9MUwotKwotKwotKyMgX0xUX0NPTVBJTEVSX1BJQyhbVEFHTkFNRV0pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX1BJQ10s Ci0rW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAotK19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPQotK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0KLStfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Ci0rCi0rQUNfTVNH X0NIRUNLSU5HKFtmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQ10pCi0rbTRfaWYo WyQxXSwgW0NYWF0sIFsKLSsgICMgQysrIHNwZWNpZmljIGNhc2VzIGZvciBwaWMsIHN0YXRpYywg d2wsIGV0Yy4KLSsgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBw cm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4 aykKLSsgICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8g YnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0Ci0rICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAt bTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCi0r ICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVz dG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJl b3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7 OwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAg ICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIg aXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBz aG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhl IGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUK LSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAgICAgIG00X2lm KFskMV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikK LSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBD b21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1jb21tb24nCi0rICAgICAgOzsK LSsgICAgKmRqZ3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxp YnJhcmllcyBhdCBhbGwKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Ci0rICAgICAgOzsKLSsgICAgaW50ZXJpeFtbMy05XV0qKQotKyAgICAgICMgSW50ZXJpeCAz LnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCi0rICAgICAg IyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCi0rICAg ICAgOzsKLSsgICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4K LSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPS1LY29uZm9ybV9waWMKLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGhwdXgqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZh dWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAotKyAgICAgICMgUEEg SFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxh ZwotKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5p bmcuCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KikKLSsJOzsKLSsg ICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwot Kwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICAqcW54KiB8ICpudG8qKQotKyAgICAg ICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRv bywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7Owot KyAgICAqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQ SUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgICAgYWl4W1s0LTldXSopCi0rCSMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsJaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0 IHByb2Nlc3NvcgotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LUJzdGF0aWMnCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj LCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxzLmV4cCcKLSsJZmkKLSsJOzsKLSsgICAgICBj aG9ydXMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwljeGNoNjgqKQotKwkgICMgR3JlZW4g SGlsbHMgQysrIENvbXBpbGVyCi0rCSAgIyBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFpbiAtdSBfX3ByZW1haW4g LXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVfRElSL2xpYi9DQy9saWJD LmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJICA7OwotKwllc2FjCi0rCTs7 Ci0rICAgICAgZGd1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgZWMrKyopCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgOzsK LSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCi0rCSAgICA7OwotKwkgICop Ci0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQot KwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAgaHB1eDkqIHwgaHB1eDEwKiB8 IGhwdXgxMSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAg aWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCSAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nK1onCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBhQ0Mq KQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1h cmNoaXZlJwotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqfGlhNjQqKQot KwkgICAgICAjICtaIHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwotKwkgICAgICA7OwotKwkg ICAgZXNhYwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAg IGludGVyaXgqKQotKwkjIFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBz aGFyZWQgbGlicykKLSsJIyBBbnlvbmUgd2FudHMgdG8gZG8gYSBwb3J0PwotKwk7OwotKyAgICAg IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r CSAgQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwn Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hh cmVkJwotKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUgZGVmYXVsdC4KLSsJICAgIDs7 Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBsaW51eCogfCBrKmJzZCot Z251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICAjIEtBSSBDKysg Q29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctLWJh Y2tlbmQgLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZQSUMnCi0rCSAgICA7OwotKwkgIGVjcGMqICkKLSsJICAgICMgb2xkIEludGVsIEMrKyBmb3Ig eDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsJICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgaWNwYyogKQotKwkgICAgIyBJ bnRlbCBDKyssIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKwkgICAgIyBJQ0Mg MTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCi0rCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIHBnQ0MqIHwgcGdjcHAqKQotKwkg ICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZnBpYycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBh cSBDKysKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVh cnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9i amVjdHMgYXJlIFBJQy4KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9z aGFyZWQnCi0rCSAgICA7OwotKwkgIHhsYyogfCB4bEMqKQotKwkgICAgIyBJQk0gWEwgOC4wIG9u IFBQQwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0r CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJwotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCi0r CSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJ ICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0rCSAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rCSAgICAgIDs7Ci0rCSAg ICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbHlueG9zKikKLSsJOzsKLSsg ICAgICBtODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgot KwkgIGN4eCopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1X IGMsZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7Owot KyAgICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgKnFueCogfCAqbnRvKikKLSsgICAgICAgICMg UU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywg b3RoZXJ3aXNlCi0rICAgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgICA7 OwotKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4K LSsJICBLQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy0t YmFja2VuZCAtV2wsJwotKwkgICAgOzsKLSsJICBSQ0MqKQotKwkgICAgIyBSYXRpb25hbCBDKysg Mi40LjEKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBpYycK LSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgRGlnaXRhbC9Db21wYXEgQysrCi0rCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgICMgTWFrZSBz dXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJ ICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KLSsJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkg ICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgcHNvcyopCi0rCTs7Ci0rICAgICAg c29sYXJpcyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4g QysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJwotKwkgICAgOzsKLSsJICBnY3gqKQotKwkgICAg IyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLVBJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMK LSsJOzsKLSsgICAgICBzdW5vczQqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikK LSsJICAgICMgU3VuIEMrKyA0LngKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLXBpYycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGxjYyopCi0rCSAgICAjIEx1Y2lkCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCi0rCSAgICA7Owot KwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgc3lzdjUqIHwgdW5peHdhcmUq IHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUg aW4KLSsJICBDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMn Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHRhbmRlbSopCi0rCWNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rCSAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIDs7Ci0r CSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICB2eHdvcmtzKikKLSsJOzsKLSsg ICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZCwg JDEpPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSwKLStbCi0rICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3Rh dGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAjIEFs bCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsgICAgICBmaQotKyAgICAg IDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAg cG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBz dXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctZlBJQycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICAjIEZJWE1F OiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcywg YnV0Ci0rICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2 ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCi0rICAgICAgICAgICAgIyBsaWtlIGAtbTY4 MDQwJy4KLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAgICAgIDs7Ci0r ICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwg bm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUg ZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3 aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRo YXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAj IGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMg Zm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAt ZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUt YXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAgICAgIG00X2lmKFskMV0sIFtHQ0pdLCBbXSwKLSsJ W19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCi0r ICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0 aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9scyBub3Qg YWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKT0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eCopCi0r ICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBm b3IgMzItYml0Ci0rICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUg ZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCi0rICAgICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBt b2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAg ICAgIGhwcGEqNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsJOzsKLSsgICAgICBl c2FjCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFtbMy05XV0qKQotKyAgICAgICMgSW50ZXJp eCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCi0rICAg ICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCi0r ICAgICAgOzsKLSsKLSsgICAgbXNkb3NkamdwcCopCi0rICAgICAgIyBKdXN0IGJlY2F1c2Ugd2Ug dXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJyYXJpZXMKLSsg ICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCi0rICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubwotKyAgICAgIGVu YWJsZV9zaGFyZWQ9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAg ICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRv bywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7Owot KwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtjb25mb3JtX3BpYwotKyAgICAg IGZpCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsg ICAgIyBQT1JUTUUgQ2hlY2sgZm9yIGZsYWcgdG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3VnaCB0 aGUgc3lzdGVtIGNvbXBpbGVyLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeCopCi0r ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAg aWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMg SUE2NCBwcm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctQnN0YXRpYycKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikK LSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3 aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxs IChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAgICBtNF9pZihb JDFdLCBbR0NKXSwgW10sCi0rCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1ERExMX0VYUE9SVCddKQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXg5KiB8IGhwdXgxMCogfCBo cHV4MTEqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JwotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQg SFAtVVgsIGJ1dAotKyAgICAgICMgbm90IGZvciBQQSBIUC1VWC4KLSsgICAgICBjYXNlICRob3N0 X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlhNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7 Ci0rICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/Ci0rICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2 ZScKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICAgICMg UElDICh3aXRoIC1LUElDKSBpcyB0aGUgZGVmYXVsdC4KLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAg IGxpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICAjIG9sZCBJbnRlbCBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsg ICAgICBlY2MqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcK LSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJwotKyAgICAgICAgOzsK LSsgICAgICAjIGljYyB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KLSsgICAgICAj IElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4KLSsgICAgICBpY2MqIHwgaWZv cnQqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAg ICAjIExhaGV5IEZvcnRyYW4gOC4xLgotKyAgICAgIGxmOTUqKQotKwlfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctLXNoYXJlZCcKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPSctLXN0YXRpYycKLSsJOzsKLSsgICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8 IHBnZjk1KikKLSsgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUg UGVudGl1bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2pl Y3QpCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mcGljJwotKwlfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgICAgOzsKLSsgICAg ICBjY2MqKQotKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1X bCwnCi0rICAgICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4KLSsgICAgICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgICA7 OwotKyAgICAgIHhsKikKLSsJIyBJQk0gWEwgQyA4LjAvRm9ydHJhbiAxMC4xIG9uIFBQQwotKwlf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcXBpYycKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCi0rCTs7Ci0rICAgICAgKikKLSsJY2Fz ZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5cIEMqKQotKwkgICMgU3VuIEMgNS45 Ci0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKwkgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgIDs7Ci0rCSpTdW5c IEYqKQotKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdz IHRvIHRoZSBsaW5rZXIKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9 Jy1LUElDJwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJz dGF0aWMnCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9JycKLSsJICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYp Ci0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwot KyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0rICAgICAgIyBRTlggdXNlcyBHTlUg QysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKLSsg ICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMqIHwg b3NmNCogfCBvc2Y1KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKLSsgICAgICAjIEFsbCBPU0YvMSBjb2RlIGlzIFBJQy4KLSsgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7 Ci0rCi0rICAgIHJkb3MqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQotKwlfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJzs7Ci0rICAgICAg KikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnOzsKLSsgICAg ICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24gbGQgJwotKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLVBJQycKLSsgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHN5 c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfcGljLCAkMSk9Jy1LUElDJwotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAg ICAgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctS2NvbmZvcm1fcGljJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAg c3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsK LSsKLSsgICAgdW5pY29zKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxk X3NoYXJlZCwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgdXRzNCopCi0rICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKyAgICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsg ICAgKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJl ZCwgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLStdKQotK2Nhc2UgJGhvc3Rf b3MgaW4KLSsgICMgRm9yIHBsYXRmb3JtcyB3aGljaCBkbyBub3Qgc3VwcG9ydCBQSUMsIC1EUElD IGlzIG1lYW5pbmdsZXNzOgotKyAgKmRqZ3BwKikKLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPQotKyAgICA7OwotKyAgKikKLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp QCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10p XSkiCi0rICAgIDs7Ci0rZXNhYwotK0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSldKQotK19MVF9UQUdERUNMKFt3bF0sIFtsdF9wcm9nX2NvbXBpbGVy X3dsXSwgWzFdLAotKwlbSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0aHJvdWdoIHRoZSBjb21w aWxlcl0pCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxs eSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKSI7IHRoZW4KLSsgIF9MVF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBQSUMg ZmxhZyAkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwKLSsgICAg W19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3MsICQxKV0sCi0rICAgIFsk X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAt RFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSldLCBbXSwKLSsgICAgW2Nhc2Ug JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSBpbgotKyAgICAgIiIgfCAiICIq KSA7OwotKyAgICAgKikgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIgJF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSIgOzsKLSsgICAgIGVzYWNdLAotKyAg ICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKyAgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ub10pCi0rZmkKLStfTFRf VEFHREVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9waWNdLCBbMV0sCi0rCVtBZGRp dGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHNdKQotKwot KyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3Mu Ci0rIwotK3dsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKSBldmFsIGx0X3Rt cF9zdGF0aWNfZmxhZz1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSlc IgotK19MVF9MSU5LRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9z dGF0aWNfZmxhZyB3b3Jrc10sCi0rICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfc3Rh dGljX3dvcmtzLCAkMSksCi0rICAkbHRfdG1wX3N0YXRpY19mbGFnLAotKyAgW10sCi0rICBbX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPV0pCi0rX0xUX1RBR0RFQ0woW2xp bmtfc3RhdGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9zdGF0aWNdLCBbMV0sCi0rCVtDb21w aWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nXSkKLStdKSMgX0xUX0NPTVBJTEVS X1BJQwotKwotKwotKyMgX0xUX0xJTktFUl9TSExJQlMoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGlmIHRoZSBsaW5rZXIgc3VwcG9ydHMgYnVpbGRp bmcgc2hhcmVkIGxpYnJhcmllcy4KLSttNF9kZWZ1bihbX0xUX0xJTktFUl9TSExJQlNdLAotK1tB Q19SRVFVSVJFKFtMVF9QQVRIX0xEXSlkbmwKLStBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlkbmwK LSttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtf TFRfREVDTF9FR1JFUF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSttNF9y ZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfVEFH X0NPTVBJTEVSXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdGhlICRjb21waWxlciBs aW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCi0rbTRfaWYoWyQxXSwgW0NY WF0sIFsKLSsgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8n XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICBjYXNlICRob3N0X29zIGlu Ci0rICBhaXhbWzQtOV1dKikKLSsgICAgIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2Ug ZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8g QUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsgICAgaWYgJE5N IC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9MVF9UQUdW QVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVu Y2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwk IDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMg fSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICAgIGVsc2UKLSsgICAgICBf TFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRj b252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQi KSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJp bnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgZmkKLSsg ICAgOzsKLSsgIHB3MzIqKQotKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQx KT0iJGx0ZGxsX2NtZHMiCi0rICA7OwotKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsg ICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11d W1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87L14uKltbIF1dX19ubV9fL3MvXi4q W1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBdXS9kOy9e W1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xz JwotKyAgOzsKLSsgICopCi0rICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEp PSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQg J1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICA7Owot KyAgZXNhYwotKyAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ19HTE9CQUxfT0ZG U0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKiddCi0rXSwgWwotKyAgcnVucGF0aF92YXI9Ci0r ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rICBfTFRfVEFHVkFSKGFs d2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPQotKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFH VkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGVuYWJsZV9z aGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwotKyAgX0xUX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLSsgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21k cywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8 ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0r ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZSwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotKyAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ci0rICBfTFRfVEFHVkFS KGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubwotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBh dGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLSsgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEp PW5vCi0rICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCi0rICBfTFRf VEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21k cywgJDEpPQotKyAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9Ci0r ICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzLCAkMSk9Ci0rICBfTFRf VEFHVkFSKHRocmVhZF9zYWZlX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgIyBpbmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEg bGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9scyB0byBiZSAqYWx3YXlzKgotKyAgIyBpbmNs dWRlZCBpbiB0aGUgc3ltYm9sIGxpc3QKLSsgIF9MVF9UQUdWQVIoaW5jbHVkZV9leHBzeW1zLCAk MSk9Ci0rICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5 bWJvbHMgdG8gZXhjbHVkZQotKyAgIyBpdCB3aWxsIGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQgYCkk Jywgc28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBvcgotKyAgIyBlbmQgb2YgbGluZS4g IEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBg YmMnLAotKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCi0rICBf TFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPVsnX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9H TE9CQUxfX0ZbSURdXy4qJ10KLSsgICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlz IGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBhLm91dAotKyAgIyBwbGF0Zm9ybXMgKGFiKXVz ZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0rICAj IHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAgU2luY2UgcG9ydGFibGUgY29k ZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZp bmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAgIyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4K LSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBpbml0aWFsaXphdGlvbi9maW5hbGl6YXRpb24g c3ltYm9scy4KLStkbmwgTm90ZSBhbHNvIGFkanVzdCBleGNsdWRlX2V4cHN5bXMgZm9yIEMrKyBh Ym92ZS4KLSsgIGV4dHJhY3RfZXhwc3ltc19jbWRzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgot KyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAjIEZJWE1FOiB0aGUg TVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0aW1lCi0rICAgICMg V2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5n Ci0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHll czsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBpbnRl cml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3QgYzg5 ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVuYnNkKikK LSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu Ci0rICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJl IGVtcHR5Ci0rICAgIHdsYXJjPScke3dsfScKLSsKLSsgICAgIyBTZXQgc29tZSBkZWZhdWx0cyBm b3IgR05VIGxkIHdpdGggc2hhcmVkIGxpYnJhcnkgc3VwcG9ydC4gVGhlc2UKLSsgICAgIyBhcmUg cmVzZXQgbGF0ZXIgaWYgc2hhcmVkIGxpYnJhcmllcyBhcmUgbm90IHN1cHBvcnRlZC4gUHV0dGlu ZyB0aGVtCi0rICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vz c2FyeS4KLSsgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsg ICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9y dC1keW5hbWljJwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUt YXJjaGl2ZSBldC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICduby13aG9s ZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2Ug JyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgZWxzZQotKyAgICAgIF9MVF9UQUdW QVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLSsgICAgZmkKLSsgICAgc3VwcG9ydHNf YW5vbl92ZXJzaW9uaW5nPW5vCi0rICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgotKyAgICAgICpc IFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lv bnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lv bmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBv cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0rICAgICAgKlwg Mi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAgICAqKSBzdXBwb3J0c19hbm9u X3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYgR05VIGxkIHN1 cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4 W1szLTldXSopCi0rICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJy b2tlbgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwlfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJu aW5nOiB0aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVsZWFzZSAyLjkuMSwgaXMgcmVw b3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFy aWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQg bGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBs aWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQQVRICi0rKioqIHNvIHRoYXQg YSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9G Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRo b3N0X2NwdSBpbgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBh Ym91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPScnCi0rICAgICAgICA7OwotKyAgICAgIG02OGsp Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRf b2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAk b3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQg MSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJT SU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2Rl ZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh dGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9v YmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgICAgOzsKLSsgICAgICBlc2Fj Ci0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwg JEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsJIyBKb3Nl cGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwot KwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVzIHNvbWUgaW52ZXN0aWdhdGlv bi4gIEZJWE1FCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbm9zdGFydCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKLSsgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp IGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAotKyAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNo IHBhdGggZm9yIERMTHMuCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3lt Ym9scywgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGlj X3J1bnRpbWVzLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRz LCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwg JFNFRCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFU QS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bW0FJVFddXVtbIF1dL3MvLipbWyBdXS8vJ1wnJyB8IHNv cnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKwotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4m MSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0 by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElm IHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5l Ci0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0r CV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEg JGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgIGNwICRleHBvcnRfc3ltYm9s cyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZWxzZQotKwkgIGVjaG8gRVhQT1JUUyA+ ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4g JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgotKwkkQ0MgLXNoYXJlZCAkb3V0cHV0 X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxp bmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGludGVy aXhbWzMtOV1dKikKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxp YmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1FJwotKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxl IFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsgICAgICAjIEluc3RlYWQsIHNoYXJlZCBs aWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5Ci0rICAg ICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEg c2xvdyB2ZXJ5IG1lbW9yeQotKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFnbWVudGluZyBwcm9j ZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKLSsgICAgICAjIDI1NiBLaUIt YWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBhdCBs aW5rCi0rICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93 cyBtb3JlIHNicmsoMikgc3BhY2UuCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUg NDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9s cyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJl dGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWlt YWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3 NzI4MGAgLW8gJGxpYicKLSsgICAgICA7OwotKwotKyAgICBnbnUqIHwgbGludXgqIHwgdHBmKiB8 IGsqYnNkKi1nbnUpCi0rICAgICAgdG1wX2RpZXQ9bm8KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9v cyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGRp ZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMgd2l0aCBzdGF0aWMgbGlua2lu ZyAoIWRpZXQtZHluKQotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+ JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbCBcCi0r CSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KLSsgICAgICB0aGVuCi0rCXRtcF9hZGRmbGFnPQot Kwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKLSsJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3RfY3B1 IGluCi0rICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0rCSAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJj aGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIg JiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNI TyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgdG1w X2FkZGZsYWc9JyAkcGljX2ZsYWcnCi0rCSAgOzsKLSsJcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUq KQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwotKwkgIF9MVF9UQUdWQVIo d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNv bnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252 ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2Nv bnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScg JHBpY19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRl bCBDIGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Ci0r CWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBp YTY0Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OwotKwlpZmMq IHwgaWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgotKwkgIHRtcF9hZGRmbGFnPScg LW5vZm9yX21haW4nIDs7Ci0rCWxmOTUqKQkJCQkjIExhaGV5IEZvcnRyYW4gOC4xCi0rCSAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKwkgIHRtcF9zaGFyZWRmbGFn PSctLXNoYXJlZCcgOzsKLSsJeGxbW2NDXV0qKQkJCSMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVh bCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0 bXBfYWRkZmxhZz0gOzsKLSsJZXNhYwotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4K LSsJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZv ciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19j b252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3 X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIF9MVF9UQUdWQVIo Y29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7 OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkgIHRtcF9zaGFyZWRmbGFnPSct RycgOzsKLSsJZXNhYwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgJyIkdG1w X3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKyAgICAgICAgaWYgdGVz dCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKyAgICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBz ZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJ ICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot KwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lv bi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsgICAg ICAgIGZpCi0rCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCXhsZiopCi0rCSAgIyBJQk0gWEwg Rm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJlZCBsaWJzIGl0c2VsZgotKwkg IF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLS13aG9sZS1hcmNoaXZl JGNvbnZlbmllbmNlIC0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQsICQxKT0nLXJwYXRoICRsaWJkaXInCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz IC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJwotKwkgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92 ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy fgotKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAgIGVjaG8gImxvY2FsOiAqOyB9 OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICAkTEQgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12ZXJzaW9u LXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJICBmaQotKwkg IDs7Ci0rCWVzYWMKLSsgICAgICBlbHNlCi0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBuZXRic2QqKQotKyAgICAgIGlm IGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVu Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCi0rCXdsYXJjPQotKyAgICAgIGVsc2UK LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r CV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0t cmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIGlmICRMRCAtdiAyPiYxIHwg JEdSRVAgJ0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBUaGUgcmVs ZWFzZXMgMi44Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Ci0rKioqIGNyZWF0 ZSBzaGFyZWQgbGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9v bAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5 b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdl ci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEggb3IgY29tcGls ZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0rKioqIHVzZWQs IGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rX0xUX0VPRgotKyAgICAgIGVsaWYgJExEIC0taGVscCAy PiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhl bgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3ds fS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAg IGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9w ZW5VTklYKikKLSsgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KLSsgICAgICAgICpcIFtbMDFd XS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjFbWzAtNV1dLiopCi0rCV9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFJl bGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKLSsq KiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVy ZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9y dC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2Ug Mi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiog eW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxp bmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJOzsK LSsJKikKLSsJICAjIEZvciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21tZW5k ZWQgdGhhdCB5b3UgYWx3YXlzCi0rCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBz aGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0aGUKLSsJICAjIERUX1JVTlBBVEggdGFnIGZy b20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbwotKwkgICMgcmVxdWly ZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0r CSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxm JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICBmaQotKwk7OwotKyAgICAgIGVzYWMKLSsg ICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgd2xhcmM9Ci0rICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgaWYgJExE IC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYv bnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg LW8gJGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGli JwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0ICIkX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKSIgPSBubzsgdGhlbgotKyAgICAgIHJ1bnBhdGhfdmFyPQotKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKyAgICAgIF9MVF9UQUdWQVIo ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAgICBmaQotKyAgZWxzZQotKyAgICAjIFBPUlRNRSBm aWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQp Ci0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4MyopCi0rICAgICAgX0xUX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgX0xUX1RBR1ZBUihh bHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1i TTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCi0rICAgICAg IyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEgg aWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIjsgdGhl bgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1 cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVjdDIuCi0rCV9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IGFpeFtbNC05XV0qKQotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0r CSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwg c28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rCWFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsJbm9fZW50cnlf ZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gd2Ug ZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlY IG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsJaWYgJE5NIC1WIDI+ JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIF9MVF9UQUdWQVIoZXhwb3J0 X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sg J1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIi KSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8 IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKGV4cG9y dF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3 ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAi QiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcn IHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkKLSsJYWl4X3VzZV9ydW50aW1lbGlu a2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlu a2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdo ZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCi0rCWNh c2UgJGhvc3Rfb3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUtOV1dKikKLSsJ ICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBpZiAodGVzdCAkbGRfZmxhZyA9ICIt YnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKwkgICAgYWl4X3Vz ZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgZmkKLSsJICBkb25lCi0rCSAg OzsKLSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlub19lbnRyeV9mbGFn PSctYm5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJs ZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgIyBoYXZl IHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBs aWJyYXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxv dyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysr L2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICMgZW5vdWdoIHRv IGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yLCAkMSk9JzonCi0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVz Ci0rICAgICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3dsfS1mLCcKLSsKLSsg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29zIGluIGFpeDQu W1swMTJdXXxhaXg0LltbMDEyXV0uKikKLSsJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBB SVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCi0rCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0 MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50 LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgot KwkgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9k ZXYvbnVsbAotKwkgIHRoZW4KLSsJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsJICA6 Ci0rCSAgZWxzZQotKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICBfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rCSAgIyBJdCBmYWlscyB0byBmaW5kIHVu aW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKwkgICMgcGF0aCBpcyBu b3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAg IyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29k ZV9taW51c19MLCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT0KLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJc2hhcmVkX2ZsYWc9Jy1zaGFy ZWQnCi0rCWlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkg IHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwlmaQotKyAgICAgIGVsc2UK LSsJIyBub3QgdXNpbmcgZ2NjCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0r CSMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEg MyBSZWxlYXNlCi0rCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNv cnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKwllbHNlCi0rCSAgaWYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0t RycKLSsJICBlbHNlCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJwotKwkgIGZpCi0r CWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPScke3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFs bCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICMgdW5kZXJz Y29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0 byBleHBvcnQuCi0rICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15 ZXMKLSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K LSsJIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZs YWdzICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5 IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPSctYmVyb2snCi0rICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJw YXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsgICAgICAgICMgZW1wdHkgZXhlY3V0 YWJsZS4KLSsgICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0rICAgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRp cjonIiRhaXhfbGlicGF0aCIKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAn Ilwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxv d191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRl ZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpc JGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKLSsgICAgICBlbHNlCi0rCWlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgIF9MVF9UQUdW QVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgotKwkgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyIn ICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4 cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgotKwllbHNlCi0rCSAjIERldGVybWluZSB0aGUg ZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsJICMgZW1wdHkg ZXhlY3V0YWJsZS4KLSsJIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0rCSBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRh aXhfbGlicGF0aCIKLSsJICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4g dGltZSBsb2FkaW5nIGZsYWdzLAotKwkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9y LCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICBfTFRfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycKLSsJICBfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5bWJv bHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICBf TFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKLSsJ ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCi0rCSAgIyBUaGlzIGlz IHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJh cmllcy4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hh cmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7 d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2Fs bG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l JHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAg ICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAg ICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNv IHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJp eGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2Jq ZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRv dXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJl dmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1Mg JGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJy YXJ5IC0zMiknCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21p bnVzX0wsICQxKT15ZXMKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0r ICAgIGJzZGlbWzQ1XV0qKQotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjLCAkMSk9LXJkeW5hbWljCi0rICAgICAgOzsKLSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8 IHB3MzIqIHwgY2VnY2MqKQotKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50 bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMr Ky4KLSsgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmlu Z2xlc3MsIGFzIHRoZXJlIGlzCi0rICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKLSsgICAg ICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAg ICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgotKyAgICAg IGxpYmV4dD1saWIKLSsgICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90 IC5zbyBmaWxlcy4KLSsgICAgICBzaHJleHRfY21kcz0iLmRsbCIKLSsgICAgICAjIEZJWE1FOiBT ZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGAk RUNITyAiWCRkZXBsaWJzIiB8ICRYc2VkIC1lICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxs fmxpbmtuYW1lcz0nCi0rICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWls ZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KLSsgICAgICBfTFRfVEFHVkFSKG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBTaG91bGQg bGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIF9MVF9UQUdWQVIo b2xkX2FyY2hpdmVfY21kcywgJDEpPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxp YnMnCi0rICAgICAgX0xUX1RBR1ZBUihmaXhfc3JjZmlsZV9wYXRoLCAkMSk9J2BjeWdwYXRoIC13 ICIkc3JjZmlsZSJgJwotKyAgICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcywgJDEpPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29k eSopCi0rICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCi0rICAgICAgOzsKLSsK LSsgICAgZGd1eCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1H IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXIn Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAg ICA7OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRv IGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgotKyAgICAjIHN1cHBvcnQu ICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQg YysrcnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25p ZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAgICMgZXh0cmEgc3BhY2UpLgot KyAgICBmcmVlYnNkMi4yKikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91 c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3Qs ICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2Yg RnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSsgICAgZnJlZWJzZDIqKQotKyAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2NjIC1z aGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgZnJlZWJzZCogfCBkcmFnb25mbHkq KQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXg5KikKLSsgICAg ICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRs aWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExE IC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxp YiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZmkKLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRs aWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 OgotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCi0rICAgICAg IyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsgICAg ICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAgICAgIDs7Ci0rCi0rICAg IGhwdXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIg PSBubzsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAt ZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJ X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3Rh bGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAg ICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXIn Ci0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPScrYiAkbGli ZGlyJwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rCV9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCSMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBp biB0aGUgc2VhcmNoIFBBVEgsCi0rCSMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRo ZSBsaWJyYXJ5LgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAg ICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0X2NwdSBpbgot KwlocHBhKjY0KikKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1 bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7 OwotKwkqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1m UElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQot KwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNv bmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGli ZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0r CWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhl bgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAk e3dsfSRsaWJkaXInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEp PToKLSsKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCp8aWE2NCopCi0rCSAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCi0rCSAgOzsKLSsJKikKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2RpcmVjdCwgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRl LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0n JHt3bH0tRScKLSsKLSsJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNl YXJjaCBQQVRILAotKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJy YXJ5LgotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKwkgIDs7Ci0r CWVzYWMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5v bnN0b3B1eCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwkjIFRyeSB0byB1c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBp ZiBpdCBkb2VzIG5vdAotKwkjIHdvcmssIGFzc3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBu b3Qgd29yayBlaXRoZXIgYW5kCi0rCSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCi0r ICAgICAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgTERGTEFHUz0iJExERkxB R1MgLXNoYXJlZCAke3dsfS1leHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9L2Rldi9udWxsIgotKyAgICAgICAgQUNfTElOS19JRkVMU0UoaW50IGZvbyh2 b2lkKSB7fSwKLSsgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNl dF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5 ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7 d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgICApCi0rICAgICAgICBMREZMQUdT PSIkc2F2ZV9MREZMQUdTIgotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25h bWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24g JHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUg JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZl cnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xv Y2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZp Ci0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgg JHt3bH0kbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciwgJDEpPToKLSsgICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMKLSsgICAg ICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICA7OwotKwotKyAg ICBuZXRic2QqKQotKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19F TEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRM RCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAj IGEub3V0Ci0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQg LXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAgICAgIyBF TEYKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwot KyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYpCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0r ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJw YXRoICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgIDs7Ci0rCi0r ICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVu Ci0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlLCAkMSk9eWVzCi0rCWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5i c2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKLSsJICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJ ICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKwll bHNlCi0rCSAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICBvcGVuYnNkW1swMV1dLiogfCBvcGVuYnNk Mi5bWzAtN11dIHwgb3BlbmJzZDIuW1swLTddXS4qKQotKwkgICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs aW5rZXJfZmxhZ3MnCi0rCSAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9Jy1SJGxpYmRpcicKLSsJICAgICA7OwotKwkgICAqKQotKwkgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgICA7OwotKwkg IGVzYWMKLSsJZmkKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K LSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9zMiopCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckRUNITyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyBEQVRBID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmRlZn4kRUNITyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmRlZn4kRUNITyBFWFBPUlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRl Zn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRs bCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9m cm9tX25ld19jbWRzLCAkMSk9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICA7OwotKwotKyAgICBvc2YzKikKLSsg ICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVm aW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0k c29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9u ICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtv dXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCV9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicK LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29u YW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjQq IHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZwotKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCV9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxh Z30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29u YW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1z ZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCV9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdp c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNg OyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhw OyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJJENDIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21w aWxlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11 cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kUk0g JGxpYi5leHAnCi0rCi0rCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGgg ZGlyZWN0bHkKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1y cGF0aCAkbGliZGlyJwotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNf bmVlZF9sYywgJDEpPSdubycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3IsICQxKT06Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgX0xUX1RB R1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXogZGVmcycKLSsgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotKwl3bGFyYz0nJHt3bH0nCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LWggJHt3bH0kc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhw fmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4 cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9 LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0r ICAgICAgZWxzZQotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJKiJDb21waWxlcnMgNS4wIiop Ci0rCSAgd2xhcmM9JycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUck e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VE IC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRs aWIuZXhwfgotKwkgICRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRSTSAkbGli LmV4cCcKLSsJICA7OwotKwkqKQotKwkgIHdsYXJjPScke3dsfScKLSsJICBfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIF9MVF9UQUdW QVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+ Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhw fmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgJENDIC1HJHthbGxvd191bmRl ZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGZpCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1S JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xhcmlzMi5bWzAtNV1dIHwgc29s YXJpczIuW1swLTVdXS4qKSA7OwotKyAgICAgICopCi0rCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3 aWxsIGNvbWJpbmUgYW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCi0rCSMgYnV0IHVuZGVyc3Rh bmRzIGAteiBsaW5rZXJfZmxhZycuICBHQ0MgZGlzY2FyZHMgaXQgd2l0aG91dCBgJHdsJywKLSsJ IyBidXQgaXMgY2FyZWZ1bCBlbm91Z2ggbm90IHRvIHJlb3JkZXIuCi0rCSMgU3VwcG9ydGVkIHNp bmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCi0rCWlmIHRlc3QgIiRHQ0MiID0geWVzOyB0 aGVuCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS16 ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3Qn Ci0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy16 IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCWZpCi0rCTs7Ci0r ICAgICAgZXNhYwotKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwot KyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgaWYgdGVzdCAieCRob3N0X3ZlbmRv ciIgPSB4c2VxdWVudDsgdGhlbgotKwkjIFVzZSAkQ0MgdG8gbGluayB1bmRlciBzZXF1ZW50LCBi ZWNhdXNlIGl0IHRocm93cyBpbiBzb21lIGV4dHJhIC5vCi0rCSMgZmlsZXMgdGhhdCBtYWtlIC5p bml0IGFuZCAuZmluaSBzZWN0aW9ucyB3b3JrLgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1u bwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0KQotKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGlu Ci0rCXNuaSkKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVlPz8/Ci0r CTs7Ci0rCXNpZW1lbnMpCi0rCSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElCCi0rCSAg IyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRMRCAtRyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn Ci0rCSAgX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSckQ0MgLXIgLW8gJG91dHB1dCRyZWxv YWRfb2JqcycKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICAgICAg ICA7OwotKwltb3Rvcm9sYSkKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQg LUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0r CSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubyAjTW90b3JvbGEgbWFudWFsIHNh eXMgeWVzLCBidXQgbXkgdGVzdHMgc2F5IHRoZXkgbGllCi0rCTs7Ci0rICAgICAgZXNhYwotKyAg ICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0LjMqKQotKyAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9Jy1CZXhwb3J0JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0 Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJaGFyZGNvZGVfcnVucGF0aF92YXI9 eWVzCi0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5b WzAxXV0uW1sxMF1dKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLltbMDI0XV0qKQotKyAgICAg IF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JwotKyAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgcnVucGF0aF92YXI9J0xE X1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9z eW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3 bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKLSsgICAgICAjIE5vdGU6IFdlIGNhbiBO T1QgdXNlIC16IGRlZnMgYXMgd2UgbWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAotKyAg ICAgICMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNl ZCBmcm9tIGxpYmMgdG8KLSsgICAgICAjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBtZWFu cyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKLSsgICAgICAjIGV2ZXIgbGluayBjb3JyZWN0 bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVzZSAteiB0ZXh0Ci0rICAgICAgIyB0 aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVh dnktaGFuZGVkCi0rICAgICAgIyBhcyAteiBkZWZzLgotKyAgICAgIF9MVF9UQUdWQVIobm9fdW5k ZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JwotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teixub2RlZnMnCi0rICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9z aGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nJHt3bH0tUiwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxf ZGVwbGlicywgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LUJleHBvcnQnCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRI JwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9y dDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgdXRzNCop Ci0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAg ICAqKQotKyAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICA7OwotKyAg ICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgeCRob3N0X3ZlbmRvciA9IHhzbmk7IHRoZW4KLSsgICAg ICBjYXNlICRob3N0IGluCi0rICAgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqIHwg c3lzdjUqKQotKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS1CbGFyZ2VkeW5zeW0nCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZmkKLStdKQot K0FDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpXSkKLSt0ZXN0ICIkX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0r X0xUX1RBR1ZBUih3aXRoX2dudV9sZCwgJDEpPSR3aXRoX2dudV9sZAotKwotK19MVF9ERUNMKFtd LCBbbGliZXh0XSwgWzBdLCBbT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpXSlkbmwK LStfTFRfREVDTChbXSwgW3NocmV4dF9jbWRzXSwgWzFdLCBbU2hhcmVkIGxpYnJhcnkgc3VmZml4 IChub3JtYWxseSAiLnNvIildKWRubAotK19MVF9ERUNMKFtdLCBbZXh0cmFjdF9leHBzeW1zX2Nt ZHNdLCBbMl0sCi0rICAgIFtUaGUgY29tbWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3lt Ym9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKLSsKLSsjCi0rIyBEbyB3ZSBuZWVkIHRv IGV4cGxpY2l0bHkgbGluayBsaWJjPwotKyMKLStjYXNlICJ4JF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzX25lZWRfbGMsICQxKSIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJl IGFkZGVkCi0rICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCi0rCi0r ICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRo ZW4KLSsgICAgY2FzZSAkX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSBpbgotKyAgICAqJ34n KikKLSsgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdpdGggbXVsdGktY29tbWFu ZCBzZXF1ZW5jZXMuCi0rICAgICAgOzsKLSsgICAgJyRDQyAnKikKLSsgICAgICAjIFRlc3Qgd2hl dGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21l Ci0rICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxjLiBJZiBnY2Mg YWxyZWFkeSBwYXNzZXMgLWxjCi0rICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUg LWxnY2MuCi0rICAgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhw bGljaXRseSBsaW5rZWQgaW5dKQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICBlY2hvICIk bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICAg ICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAg ICAgc29uYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWI9Y29uZnRlc3QKLSsgICAgICAgIGxpYm9i anM9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgICAgICAgZGVwbGlicz0KLSsgICAgICAgIHdsPSRf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKQotKwlwaWNfZmxhZz0kX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCi0rICAgICAgICBjb21waWxlcl9mbGFncz0tdgot KyAgICAgICAgbGlua2VyX2ZsYWdzPS12Ci0rICAgICAgICB2ZXJzdHJpbmc9Ci0rICAgICAgICBv dXRwdXRfb2JqZGlyPS4KLSsgICAgICAgIGxpYm5hbWU9Y29uZnRlc3QKLSsgICAgICAgIGx0X3Nh dmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcs ICQxKQotKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQotKyAg ICAgICAgaWYgQUNfVFJZX0VWQUwoX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKSAyXD5cJjEg XHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMSkKLSsgICAgICAgIHRoZW4KLSsJ ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICAgIGVsc2UK LSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCi0rICAgICAgICBm aQotKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSRsdF9zYXZl X2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rICAgICAgZWxzZQotKyAgICAgICAgY2F0IGNvbmZ0ZXN0 LmVyciAxPiY1Ci0rICAgICAgZmkKLSsgICAgICAkUk0gY29uZnRlc3QqCi0rICAgICAgQUNfTVNH X1JFU1VMVChbJF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKV0pCi0rICAgICAg OzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotK19MVF9UQUdERUNMKFtidWls ZF9saWJ0b29sX25lZWRfbGNdLCBbYXJjaGl2ZV9jbWRzX25lZWRfbGNdLCBbMF0sCi0rICAgIFtX aGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzXSkK LStfTFRfVEFHREVDTChbYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwK LSsgICAgW2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNdLCBbMF0sCi0rICAgIFtX aGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBh cmUgc3RhdGljXSkKLStfTFRfVEFHREVDTChbXSwgW2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY10s IFsxXSwKLSsgICAgW0NvbXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnNdKQot K19MVF9UQUdERUNMKFtdLCBbd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNdLCBbMV0sCi0rICAgIFtD b21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJj aGl2ZXNdKQotK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbmVlZHNfb2JqZWN0XSwgWzFdLAot KyAgICBbV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVjdHMg ZGlyZWN0bHldKQotK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc10s IFsyXSwKLSsgICAgW0NyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFy Y2hpdmVdKQotK19MVF9UQUdERUNMKFtdLCBbb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNd LCBbMl0sCi0rICAgIFtDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hpdmUgdG8gbGlu ayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmVdKQotK19MVF9UQUdERUNMKFtdLCBbYXJjaGl2 ZV9jbWRzXSwgWzJdLCBbQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlXSkK LStfTFRfVEFHREVDTChbXSwgW2FyY2hpdmVfZXhwc3ltX2NtZHNdLCBbMl0pCi0rX0xUX1RBR0RF Q0woW10sIFttb2R1bGVfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQg YSBsb2FkYWJsZSBtb2R1bGUgaWYgZGlmZmVyZW50IGZyb20gYnVpbGRpbmcKLSsgICAgYSBzaGFy ZWQgYXJjaGl2ZS5dKQotK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2V4cHN5bV9jbWRzXSwgWzJd KQotK19MVF9UQUdERUNMKFtdLCBbd2l0aF9nbnVfbGRdLCBbMV0sCi0rICAgIFtXaGV0aGVyIHdl IGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBvciBub3RdKQotK19MVF9UQUdERUNMKFtdLCBbYWxs b3dfdW5kZWZpbmVkX2ZsYWddLCBbMV0sCi0rICAgIFtGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBs aWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9scyB0byBiZSBidWlsdF0pCi0rX0xUX1RBR0RF Q0woW10sIFtub191bmRlZmluZWRfZmxhZ10sIFsxXSwKLSsgICAgW0ZsYWcgdGhhdCBlbmZvcmNl cyBubyB1bmRlZmluZWQgc3ltYm9sc10pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjXSwgWzFdLAotKyAgICBbRmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8g YSBiaW5hcnkgZHVyaW5nIGxpbmtpbmcuCi0rICAgIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxp YmRpciBkb2VzIG5vdCBleGlzdF0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkXSwgWzFdLAotKyAgICBbW0lmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBm bGFnIHRvIGhhcmRjb2RlICRsaWJkaXIgaW50byBhIGJpbmFyeQotKyAgICBkdXJpbmcgbGlua2lu Zy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdF1dKQotK19M VF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl0sIFsxXSwKLSsgICAgW1do ZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJn dW1lbnRdKQotK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGlyZWN0XSwgWzBdLAotKyAgICBb U2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlu a2luZyBoYXJkY29kZXMKLSsgICAgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnldKQotK19M VF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlXSwgWzBdLAotKyAgICBbU2V0 IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2lu ZyBoYXJkY29kZXMKLSsgICAgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkgYW5kIHRoZSBy ZXN1bHRpbmcgbGlicmFyeSBkZXBlbmRlbmN5IGlzCi0rICAgICJhYnNvbHV0ZSIsIGkuZSBpbXBv c3NpYmxlIHRvIGNoYW5nZSBieSBzZXR0aW5nICR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCi0rICAg IGxpYnJhcnkgaXMgcmVsb2NhdGVkXSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX21pbnVz X0xdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIgaWYgdXNpbmcgdGhlIC1MRElSIGZsYWcgZHVy aW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgotKyAgICBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5 XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX3NobGlicGF0aF92YXJdLCBbMF0sCi0rICAg IFtTZXQgdG8gInllcyIgaWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzIERJUgotKyAgICBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5XSkKLStfTFRfVEFH REVDTChbXSwgW2hhcmRjb2RlX2F1dG9tYXRpY10sIFswXSwKLSsgICAgW1NldCB0byAieWVzIiBp ZiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgaGFyZGNvZGVzIERJUgot KyAgICBpbnRvIHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4 ZWN1dGFibGVzIGxpbmtlZAotKyAgICBhZ2FpbnN0IGl0XSkKLStfTFRfVEFHREVDTChbXSwgW2lu aGVyaXRfcnBhdGhdLCBbMF0sCi0rICAgIFtTZXQgdG8geWVzIGlmIGxpbmtlciBhZGRzIHJ1bnRp bWUgcGF0aHMgb2YgZGVwZW5kZW50IGxpYnJhcmllcwotKyAgICB0byBydW50aW1lIHBhdGggbGlz dF0pCi0rX0xUX1RBR0RFQ0woW10sIFtsaW5rX2FsbF9kZXBsaWJzXSwgWzBdLAotKyAgICBbV2hl dGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVu Y3kgbGlicmFyaWVzXSkKLStfTFRfVEFHREVDTChbXSwgW2ZpeF9zcmNmaWxlX3BhdGhdLCBbMV0s Ci0rICAgIFtGaXggdGhlIHNoZWxsIHZhcmlhYmxlICRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXJd KQotK19MVF9UQUdERUNMKFtdLCBbYWx3YXlzX2V4cG9ydF9zeW1ib2xzXSwgWzBdLAotKyAgICBb U2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkXSkKLStfTFRfVEFH REVDTChbXSwgW2V4cG9ydF9zeW1ib2xzX2NtZHNdLCBbMl0sCi0rICAgIFtUaGUgY29tbWFuZHMg dG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzXSkKLStfTFRfVEFHREVDTChbXSwgW2V4Y2x1ZGVfZXhw c3ltc10sIFsxXSwKLSsgICAgW1N5bWJvbHMgdGhhdCBzaG91bGQgbm90IGJlIGxpc3RlZCBpbiB0 aGUgcHJlbG9hZGVkIHN5bWJvbHNdKQotK19MVF9UQUdERUNMKFtdLCBbaW5jbHVkZV9leHBzeW1z XSwgWzFdLAotKyAgICBbU3ltYm9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkXSkKLStf TFRfVEFHREVDTChbXSwgW3ByZWxpbmtfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmRzIG5lY2Vz c2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGggdGVtcGxh dGVzXSkKLStfTFRfVEFHREVDTChbXSwgW2ZpbGVfbGlzdF9zcGVjXSwgWzFdLAotKyAgICBbU3Bl Y2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzXSkKLStkbmwgRklYTUU6IE5vdCB5 ZXQgaW1wbGVtZW50ZWQKLStkbmwgX0xUX1RBR0RFQ0woW10sIFt0aHJlYWRfc2FmZV9mbGFnX3Nw ZWNdLCBbMV0sCi0rZG5sICAgIFtDb21waWxlciBmbGFnIHRvIGdlbmVyYXRlIHRocmVhZCBzYWZl IG9iamVjdHNdKQotK10pIyBfTFRfTElOS0VSX1NITElCUwotKwotKwotKyMgX0xUX0xBTkdfQ19D T05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEVuc3VyZSB0aGF0 IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDIGNvbXBpbGVyIGFyZSBzdWl0YWJs eQotKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkg X0xUX0NPTkZJRyB0byB3cml0ZQotKyMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxp YnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19DX0NPTkZJR10sCi0rW200X3JlcXVpcmUoW19M VF9ERUNMX0VHUkVQXSlkbmwKLStsdF9zYXZlX0NDPSIkQ0MiCi0rQUNfTEFOR19QVVNIKEMpCi0r Ci0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1j Ci0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMgdGVzdCBzb3VyY2Vz LgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBDb2Rl IHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQg aW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBtYWlu KCl7cmV0dXJuKDApO30nCi0rCi0rX0xUX1RBR19DT01QSUxFUgotKyMgU2F2ZSB0aGUgZGVmYXVs dCBjb21waWxlciwgc2luY2UgaXQgZ2V0cyBvdmVyd3JpdHRlbiB3aGVuIHRoZSBvdGhlcgotKyMg dGFncyBhcmUgYmVpbmcgdGVzdGVkLCBhbmQgX0xUX1RBR1ZBUihjb21waWxlciwgW10pIGlzIGEg Tk9QLgotK2NvbXBpbGVyX0RFRkFVTFQ9JENDCi0rCi0rIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBs YXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLStfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLStfTFRf TElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rIyMgQ0FWRUFUIEVNUFRPUjoKLSsjIyBUaGVyZSBpcyBu byBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5n ZQotKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVu bGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0raWYgdGVz dCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgX0xUX0NPTVBJTEVSX05PX1JUVEkoJDEpCi0rICBf TFRfQ09NUElMRVJfUElDKCQxKQotKyAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgIF9MVF9DT01Q SUxFUl9GSUxFX0xPQ0tTKCQxKQotKyAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICBfTFRfU1lT X0RZTkFNSUNfTElOS0VSKCQxKQotKyAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQot KyAgTFRfU1lTX0RMT1BFTl9TRUxGCi0rICBfTFRfQ01EX1NUUklQTElCCi0rCi0rICAjIFJlcG9y dCB3aGljaCBsaWJyYXJ5IHR5cGVzIHdpbGwgYWN0dWFsbHkgYmUgYnVpbHQKLSsgIEFDX01TR19D SEVDS0lORyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSsgIEFDX01T R19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgIEFDX01TR19DSEVDS0lORyhbd2hl dGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKLSsgIHRlc3QgIiRjYW5fYnVpbGRfc2hh cmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyAgIyBPbiBBSVgsIHNoYXJlZCBs aWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5k Ci0rICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBh aXgzKikKLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9 bm8KLSsgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsgICAgICBhcmNoaXZlX2NtZHM9 IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAgICAgcG9zdGluc3RhbGxfY21kcz0n JFJBTkxJQiAkbGliJwotKyAgICBmaQotKyAgICA7OwotKwotKyAgYWl4W1s0LTldXSopCi0rICAg IGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSBubyA7IHRoZW4KLSsgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYg ZW5hYmxlX3N0YXRpYz1ubwotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKyAgQUNfTVNHX1JF U1VMVChbJGVuYWJsZV9zaGFyZWRdKQotKwotKyAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRv IGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQotKyAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9z aGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5ZXMuCi0rICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIg PSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKLSsgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3Rh dGljXSkKLSsKLSsgIF9MVF9DT05GSUcoJDEpCi0rZmkKLStBQ19MQU5HX1BPUAotK0NDPSIkbHRf c2F2ZV9DQyIKLStdKSMgX0xUX0xBTkdfQ19DT05GSUcKLSsKLSsKLSsjIF9MVF9QUk9HX0NYWAot KyMgLS0tLS0tLS0tLS0tCi0rIyBTaW5jZSBBQ19QUk9HX0NYWCBpcyBicm9rZW4sIGluIHRoYXQg aXQgcmV0dXJucyBnKysgaWYgdGhlcmUgaXMgbm8gYysrCi0rIyBjb21waWxlciwgd2UgaGF2ZSBv dXIgb3duIHZlcnNpb24gaGVyZS4KLSttNF9kZWZ1bihbX0xUX1BST0dfQ1hYXSwKLStbCi0rcHVz aGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9jYXVnaHRfQ1hYX2Vycm9yPXllc10pCi0rQUNfUFJP R19DWFgKLStpZiB0ZXN0IC1uICIkQ1hYIiAmJiAoIHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgot KyAgICAoICh0ZXN0ICJYJENYWCIgPSAiWGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+JjFg ICkgfHwKLSsgICAgKHRlc3QgIlgkQ1hYIiAhPSAiWGcrKyIpKSkgOyB0aGVuCi0rICBBQ19QUk9H X0NYWENQUAotK2Vsc2UKLSsgIF9sdF9jYXVnaHRfQ1hYX2Vycm9yPXllcwotK2ZpCi0rcG9wZGVm KFtBQ19NU0dfRVJST1JdKQotK10pIyBfTFRfUFJPR19DWFgKLSsKLStkbmwgYWNsb2NhbC0xLjQg YmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19DWFhdLCBb XSkKLSsKLSsKLSsjIF9MVF9MQU5HX0NYWF9DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVz IGZvciBhIEMrKyBjb21waWxlciBhcmUgc3VpdGFibHkKLSsjIGRlZmluZWQuICBUaGVzZSB2YXJp YWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3JpdGUKLSsjIHRo ZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xUX0xB TkdfQ1hYX0NPTkZJR10sCi0rW0FDX1JFUVVJUkUoW19MVF9QUk9HX0NYWF0pZG5sCi0rbTRfcmVx dWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xf RUdSRVBdKWRubAotKwotK0FDX0xBTkdfUFVTSChDKyspCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PQotK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLStfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29i amVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0K LStfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwg JDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9U QUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9dW5zdXBwb3J0ZWQKLStfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRp YywgJDEpPW5vCi0rX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KLStfTFRfVEFHVkFS KG1vZHVsZV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0K LStfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCi0rX0xUX1RBR1ZBUihv bGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKLStfTFRfVEFHVkFSKG5vX3Vu ZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPQotK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEp PW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCi0r YWNfZXh0PWNwcAotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysg dGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0 Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5 IGRldGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29t ZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1l ZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2ls bCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29t cGlsZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7IHRoZW4KLSsg ICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBsdF9zaW1wbGVf Y29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0rICAjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRfc2ltcGxlX2xpbmtfdGVzdF9j b2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0pIHsgcmV0dXJuKDApOyB9JwotKwotKyAgIyBs dG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3Vy ZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01QSUxFUgotKwotKyAgIyBzYXZlIHdhcm5pbmdz L2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIF9MVF9DT01QSUxFUl9CT0lMRVJQ TEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyAgIyBBbGxvdyBDQyB0byBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLSsgIGx0X3NhdmVfQ0M9JENDCi0rICBsdF9z YXZlX0xEPSRMRAotKyAgbHRfc2F2ZV9HQ0M9JEdDQwotKyAgR0NDPSRHWFgKLSsgIGx0X3NhdmVf d2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rICBsdF9zYXZlX3BhdGhfTEQ9JGx0X2N2X3BhdGhf TEQKLSsgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KLSsg ICAgbHRfY3ZfcHJvZ19nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkY3h4Ci0rICBlbHNlCi0rICAg ICRhc191bnNldCBsdF9jdl9wcm9nX2dudV9sZAotKyAgZmkKLSsgIGlmIHRlc3QgLW4gIiR7bHRf Y3ZfcGF0aF9MRENYWCtzZXR9IjsgdGhlbgotKyAgICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRo X0xEQ1hYCi0rICBlbHNlCi0rICAgICRhc191bnNldCBsdF9jdl9wYXRoX0xECi0rICBmaQotKyAg dGVzdCAteiAiJHtMRENYWCtzZXR9IiB8fCBMRD0kTERDWFgKLSsgIENDPSR7Q1hYLSJjKysifQot KyAgY29tcGlsZXI9JENDCi0rICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rICBfTFRf Q0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rCi0rICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0 aGVuCi0rICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3aGVuIGNvbXBpbGluZyBD KysgY29kZSwgc28gc2V0IHRoZQotKyAgICAjIG5vX2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5Ci0r ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJwotKyAgICBlbHNl Ci0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEp PQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAgICMg U2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCi0rCi0rICAgICAgTFRfUEFUSF9M RAotKwotKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJs eWluZyBsaW5rZXIsIHNpbmNlIHRoZQotKyAgICAgICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93 IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgotKyAgICAgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h bWUgLW8gJGxpYicKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0r Ci0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3 bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwotKyAgICAgICAgIyBJ ZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsg ICAgICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQgaW4gbHRjZi1jeHgs IGJ1dCBJIG5lZWQgdG8KLSsgICAgICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEgbGl0dGxlIGJp dCBtb3JlLiAoTU0pCi0rICAgICAgICB3bGFyYz0nJHt3bH0nCi0rCi0rICAgICAgICAjIGFuY2ll bnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCi0rICAgICAg ICBpZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVscCAyPiYxIiB8Ci0rCSAg JEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAgIF9M VF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0iJHdsYXJjIictLXdob2xlLWFy Y2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICAg IGVsc2UKLSsgICAgICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PQotKyAgICAgICAgZmkKLSsgICAgICBlbHNlCi0rICAgICAgICB3aXRoX2dudV9sZD1ubwotKyAg ICAgICAgd2xhcmM9Ci0rCi0rICAgICAgICAjIEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVm YXVsdCBzaGFyZWQgbGlicmFyeSBjcmVhdGlvbgotKyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUg QysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1c2VzIHRoZSBuYXRpdmUKLSsgICAgICAgICMgbGlu a2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElmIHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxk Ci0rICAgICAgICAjIG92ZXJyaWRkZW4gdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBs aW5rZXIgZmVhdHVyZXMgb24KLSsgICAgICAgICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVz ZWQgb24uCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCi0rICAgICAgZmkKLSsKLSsgICAgICAjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz Ci0rICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFn cyBhcmUgdXNlZCB3aGVuCi0rICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rICAg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0rCi0rICAgIGVsc2UKLSsgICAgICBHWFg9 bm8KLSsgICAgICB3aXRoX2dudV9sZD1ubwotKyAgICAgIHdsYXJjPQotKyAgICBmaQotKwotKyAg ICAjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgQysrIGxp bmsgY2hhcmFjdGVyaXN0aWNzCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSsgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAg IGFpeDMqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgICA7Owot KyAgICAgIGFpeFtbNC05XV0qKQotKyAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7 IHRoZW4KLSsgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlu a2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKyAgICAgICAgICAjIGhhdmUgdG8gZG8gYW55 dGhpbmcgc3BlY2lhbC4KLSsgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKyAg ICAgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKyAgICAgICAgICBub19lbnRyeV9mbGFn PSIiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8K LSsKLSsgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxp bmtpbmcgb3Igbm9ybWFsCi0rICAgICAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRs IGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAgICAgICAgICAjIG5lZWQgdG8gZG8gcnVu dGltZSBsaW5raW5nLgotKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFp eDQuW1syM11dLip8YWl4W1s1LTldXSopCi0rCSAgICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsg ZG8KLSsJICAgICAgY2FzZSAkbGRfZmxhZyBpbgotKwkgICAgICAqLWJydGwqKQotKwkgICAgICAg IGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rCSAgICAgICAgYnJlYWsKLSsJICAgICAgICA7 OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICA7OwotKyAgICAgICAgICBlc2FjCi0r Ci0rICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0rICAgICAgICAgIG5vX2VudHJ5 X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICAjIFdoZW4gbGFyZ2Ug ZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAg ICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYg bGlua2luZyBhIGxpYnJhcnkKLSsgICAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJv ciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICAgICAjIENYWEZMQUdT L0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAg ICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExE RkxBR1MuCi0rCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCi0rICAg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsgICAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKyAgICAgICAgX0xUX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgICBfTFRfVEFHVkFSKGZpbGVfbGlz dF9zcGVjLCAkMSk9JyR7d2x9LWYsJwotKwotKyAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAx Ml1dLiopCi0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBh bmQgbG93ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVj dDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmlu dC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYK LSsJICAgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUg Pi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0Mgot KwkgICAgOgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsJICAgICMgSXQgZmFp bHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJ ICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29k ZV9taW51c19MCi0rCSAgICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotKwkgIGZpCi0rICAgICAgICAgIGVz YWMKLSsgICAgICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCSAgaWYgdGVzdCAiJGFpeF91 c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0iJHNoYXJl ZF9mbGFnICInJHt3bH0tRycKLSsJICBmaQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAjIG5v dCB1c2luZyBnY2MKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K LSsJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBC ZXRhIDMgUmVsZWFzZQotKwkgICMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5l IGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgICAgICBlbHNlCi0rCSAg ICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgICAg c2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgICBlbHNlCi0rCSAgICAgIHNoYXJlZF9mbGFnPSck e3dsfS1iTTpTUkUnCi0rCSAgICBmaQotKyAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLSsg ICAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJl eHBhbGwnCi0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0 IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0 IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0bwotKwkjIGV4cG9ydC4K LSsgICAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCi0rICAg ICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAg ICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5n IGZsYWdzICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVy cm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAgICAgICAgX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCi0rICAgICAgICAgICMgRGV0 ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBl bXB0eQotKyAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAgICAgIF9MVF9TWVNfTU9EVUxF X1BBVEhfQUlYCi0rICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwotKyAgICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyIn ICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAi eCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBl bHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVk X2ZsYWciCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBp YTY0OyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCi0rCSAgICBfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5vZGVmcyIKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21w aWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1f ZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgotKyAgICAgICAgICBlbHNlCi0rCSAgICAjIERldGVybWlu ZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsJICAg ICMgZW1wdHkgZXhlY3V0YWJsZS4KLSsJICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0rCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBh dGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsJICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNp bmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgICAjIC1iZXJvayB3aWxs IGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCi0r CSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJub3RvaycK LSsJICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9r JwotKwkgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2Jq ZWN0cyBmcm9tIGFyY2hpdmVzCi0rCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjLCAkMSk9JyRjb252ZW5pZW5jZScKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25l ZWRfbGMsICQxKT15ZXMKLSsJICAgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0 aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZAotKwkgICAgIyBsaWJyYXJpZXMuCi0rCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRj b21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9m bGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0 cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsgICAgICAg IDs7Ci0rCi0rICAgICAgYmVvcyopCi0rCWlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJICBfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsJICAjIEpvc2VwaCBCZWNr ZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rCSAgIyBz dXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNlcnZlcyBzb21lIGludmVzdGlnYXRpb24uICBG SVhNRQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbm9zdGFydCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKLSsJZWxzZQotKwkgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJZmkKLSsJ OzsKLSsKLSsgICAgICBjaG9ydXMqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg ICAgICAgICAgKikKLSsJICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKLSsJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgOzsKLSsgICAgICAgIGVz YWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2Vn Y2MqKQotKyAgICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2Vh cmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwotKyAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRl ZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19l eHBvcnRfc3ltYm9scywgJDEpPW5vCi0rICAgICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsKLSsgICAgICAgIGlmICRMRCAtLWhlbHAg Mj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1i YXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgICAgICAjIElm IHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5l Ci0rICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVw ZW5kLi4uCi0rICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdp ZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkg ICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKyAgICAg ICAgICBlbHNlCi0rCSAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRl ZjsKLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWY7Ci0rICAgICAgICAgIGZpfgotKyAgICAgICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1Y bGlua2VyICRsaWInCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgIGRhcndpbiogfCBy aGFwc29keSopCi0rICAgICAgICBfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJFUygkMSkKLSsJOzsK LSsKLSsgICAgICBkZ3V4KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAg ICAgIGVjKysqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAg ICAgICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIo bGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJWE1F OiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwot KyAgICAgIGZyZWVic2RbWzEyXV0qKQotKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBy ZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9yZQotKwkjIHN3aXRjaCB0byBFTEYKLSsg ICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAg ICAgZnJlZWJzZC1lbGYqKQotKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikK LSsgICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdp dGggc3RhbmRhcmQgRUxGCi0rICAgICAgICAjIGNvbnZlbnRpb25zCi0rICAgICAgICBfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBnbnUqKQotKyAg ICAgICAgOzsKLSsKLSsgICAgICBocHV4OSopCi0rICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rICAgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKyAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbWludXNfTCwgJDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJ CSAgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdAotKwkJCQkgICAgICAgICAgICAgIyBs b2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rICAgICAgICAgIENDKikKLSsgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgYUNDKikKLSsgICAgICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0Mg LWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2Ug Y29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rICAgICAgICAgICAg IyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNl ZCB3aGVuCi0rICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rICAgICAg ICAgICAgIwotKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkg dG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsgICAgICAgICAgICAjIGV4cGxpY2l0bHkg bGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKyAg ICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVk ZWQgaW4gdGhlIGxpYnJhcnkKLSsgICAgICAgICAgICAjIGRlcGVuZGVuY2llcy4KLSsgICAgICAg ICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHog aW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0 ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hP ICJYJGxpc3QiIHwgJFhzZWQnCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgKikKLSsgICAg ICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAgICAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1z aGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1l ID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgICAgICAg ZWxzZQotKyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rICAgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAg ICAgICAgICAgZmkKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsK LSsKLSsgICAgICBocHV4MTAqfGhwdXgxMSopCi0rICAgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9s ZCA9IG5vOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAk MSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciwgJDEpPToKLSsKLSsgICAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAg ICAgICAgICBocHBhKjY0KnxpYTY0KikKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICAg KikKLSsJICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3 bH0tRScKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGVzYWMKLSsgICAgICAgIGZpCi0r ICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgICAgICBocHBhKjY0KnxpYTY0KikKLSsg ICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICAgICAgICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICAgICAg ICA7OwotKyAgICAgICAgICAqKQotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGly ZWN0LCAkMSk9eWVzCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJz b2x1dGUsICQxKT15ZXMKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKT15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJCQkJICAgICAgICAgIyBidXQg YXMgdGhlIGRlZmF1bHQKLSsJCQkJCSAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnku Ci0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KwkgICAgOzsKLSsgICAgICAgICAgYUNDKikKLSsJICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAg ICAgIGhwcGEqNjQqKQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICA7 OwotKwkgICAgICBpYTY0KikKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgICAgKikKLSsJICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICA7Owot KwkgICAgZXNhYwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVy Ym9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywg b2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxpbmtpbmcgYSBz aGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8g YmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJICAgICMgZXhwbGljaXRs eSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0r CSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGlu IHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJICAgIG91dHB1dF92ZXJib3Nl X2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSkgfCAkR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2Fz ZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsg KikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwot KwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVu Ci0rCSAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRoZW4KLSsJICAgICAgICBjYXNl ICRob3N0X2NwdSBpbgotKwkgICAgICAgICAgaHBwYSo2NCopCi0rCSAgICAgICAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3ds fStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICAgICAgOzsKLSsJ ICAgICAgICAgIGlhNjQqKQotKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3 bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0r CSAgICAgICAgICAqKQotKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r YiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICAgICAg OzsKLSsJICAgICAgICBlc2FjCi0rCSAgICAgIGZpCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCi0rCSAgICBmaQotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsg ICAgICAgIDs7Ci0rCi0rICAgICAgaW50ZXJpeFtbMy05XV0qKQotKwlfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zhciwg JDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCwkbGliZGlyJwotKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPScke3dsfS1FJwotKwkjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGls ZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rCSMgSW5zdGVhZCwgc2hhcmVkIGxpYnJh cmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKLSsJIyBkZWZh dWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5 IG1lbW9yeQotKwkjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lk IHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rCSMgMjU2IEtpQi1hbGlnbmVkIGltYWdlIGJhc2Ug YmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKLSsJIyB0aW1lLiAgTW92 aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCi0r CV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFn ZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcy ODBgIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdzZWQg InMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4cHN5bX4k Q0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29iamRpci8k c29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2 IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKwk7OwotKyAgICAgIGlyaXg1 KiB8IGlyaXg2KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIEND KikKLSsJICAgICMgU0dJIEMrKwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAk WHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGliJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVz dCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAtYXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBJ UklYIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3Vy ZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgIyBpbiB0aGUgYXJj aGl2ZS4KLSsJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLWFyIC1X UiwtdSAtbyAkb2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAg IGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9s ZCIgPSBubzsgdGhlbgotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hP ICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAtbyAkbGliJwot KwkgICAgICBmaQotKwkgICAgZmkKLSsJICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywg JDEpPXllcwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0r ICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06Ci0rICAg ICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMKLSsgICAgICAgIDs7Ci0rCi0r ICAgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtB SSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVk IGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3Ig Ii5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIHRvIGl0cyBw cm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUg J1wnJ3MvXChbW14oKTAtOUEtWmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hv ICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg LS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwkgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJl ZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcn YDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJg OyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRlbXBsaWIgJGxpYicKLSsJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0r CSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkg ICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVk X2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxp c3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0 KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2Fj OyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwotKwkgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICBf TFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5 bmFtaWMnCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBt dXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBp cyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21k cywgJDEpPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rCSAg aWNwYyogfCBlY3BjKiApCi0rCSAgICAjIEludGVsIEMrKwotKwkgICAgd2l0aF9nbnVfbGQ9eWVz Ci0rCSAgICAjIHZlcnNpb24gOC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRpcGx5 IGRlZmluZWQgc3ltYm9scwotKwkgICAgIyBpZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAk cG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBhbmQKLSsJICAgICMgZWFybGllciBkbyBub3Qg YWRkIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMWAgaW4K LSsJICAgICAgKiJWZXJzaW9uIDcuIiopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCi0rCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCQk7OwotKwkgICAgICAqKSAgIyBW ZXJzaW9uIDguMCBvciBuZXdlcgotKwkgICAgICAgIHRtcF9pZHluPQotKwkgICAgICAgIGNhc2Ug JGhvc3RfY3B1IGluCi0rCQkgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5bmFtaWMnOzsKLSsJCWVz YWMKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCci JHRtcF9pZHluIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgIGVzYWMKLSsJICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAg ICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0 LWR5bmFtaWMnCi0rCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZl JwotKwkgICAgOzsKLSsgICAgICAgICAgcGdDQyogfCBwZ2NwcCopCi0rICAgICAgICAgICAgIyBQ b3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAgIGNhc2UgYCRDQyAtVmAgaW4KLSsJICAg ICpwZ0NDXCBbWzEtNV1dKiB8ICpwZ2NwcFwgW1sxLTVdXSopCi0rCSAgICAgIF9MVF9UQUdWQVIo cHJlbGlua19jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRp cn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIg JG9ianMgJGxpYm9ianMgJGNvbXBpbGVfZGVwbGlic34KLSsJCWNvbXBpbGVfY29tbWFuZD0iJGNv bXBpbGVfY29tbWFuZCBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgIicKLSsJICAg ICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+ Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRp YXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkkQVIgJEFSX0ZMQUdT ICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAk TkwyU1BgfgotKwkJJFJBTkxJQiAkb2xkbGliJwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkk Q0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34K LSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCi0rCSAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUuZGly fgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50 aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29u dmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwg JE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lvbiA2IHdpbGwgdXNlIHdlYWsg c3ltYm9scwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicK LSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVk ICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRh aW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgICAgIDs7 Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIoZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAg IF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFy Y2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwi ICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVD SE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAg ICAgICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMgQ29tcGFxIEMrKwotKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICAtbyAk bGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzJwotKwotKwkg ICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFr ZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hh dCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hl bgotKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRo ZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBm cm9tCi0rCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdl IG5lZWQgdG8gc3RyaXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5 IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMu Ci0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0PWAk RUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkv XDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVz dC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3Qg JHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICB4 bCopCi0rCSAgICAjIElCTSBYTCA4LjAgb24gUFBDLCB3aXRoIEdOVSBsZAotKwkgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxp YmRpcicKLSsJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9u X3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LnZlcn4KLSsJCWNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWVjaG8gImxvY2FsOiAqOyB9OyIgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJJENDIC1xbWtzaHJvYmogJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZl cnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0r CSAgICBmaQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQg NXFgIGluCi0rCSAgICAqU3VuXCBDKikKLSsJICAgICAgIyBTdW4gQysrIDUuOQotKwkgICAgICBf TFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtemRlZnMnCi0rCSAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1o JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4 cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAt byAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9z eW1ib2xzJwotKwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nLVIkbGliZGlyJwotKwkgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGlu ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5j ZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmll bmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgICAgICBfTFRfVEFHVkFSKGNvbXBp bGVyX25lZWRzX29iamVjdCwgJDEpPXllcwotKwotKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIg c29tZXRoaW5nIGJhc2VkIG9uCi0rCSAgICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9i amV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKLSsJICAgICAgIyB3b3VsZCBiZSBi ZXR0ZXIuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkgICAg ICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQg dXNpbmcKLSsJICAgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29t cGlsZXIuICBUaGlzIGlzCi0rCSAgICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50 aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgICAjIGluIHRoZSBhcmNoaXZlLgot KwkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8gJG9s ZGxpYiAkb2xkb2JqcycKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMK LSsJOzsKLSsKLSsgICAgICBseW54b3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJ OzsKLSsKLSsgICAgICBtODhrKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr IGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot Kwk7OwotKwotKyAgICAgIG12cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgICAgICBjeHgqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKwkg ICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsK LSsKLSsgICAgICBuZXRic2QqKQotKyAgICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtlcl9mbGFncycKLSsJICB3bGFyYz0K LSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGly JwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZB UihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJZmkKLSsJIyBXb3JrYXJvdW5kIHNv bWUgYnJva2VuIHByZS0xLjUgdG9vbGNoYWlucwotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0n JENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBjb25m dGVzdC4kb2JqZXh0IHwgJFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCi0rCTs7Ci0rCi0r ICAgICAgKm50byogfCAqcW54KikKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 eWVzCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZDIqKQotKyAgICAgICAgIyBDKysgc2hhcmVkIGxp YnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v Ci0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZCopCi0rCWlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xk LnNvOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwkgIF9MVF9UQUdWQVIo aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwotKwkg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwk bGliZGlyJwotKwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAg X19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dl cnBjIjsgdGhlbgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwk ZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHds YXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgZmkKLSsJICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD1lY2hvCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWZp Ci0rCTs7Ci0rCi0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgICAgICAgY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQgQXNzb2Np YXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwgb25seSBj cmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3 aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJhcnkKLSsJ ICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtpbmcuCi0r CSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRf ZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7 IHRlbXBsaWI9YGVjaG8gIiRsaWIiIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJg OyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBs aWIgJGxpYicKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBv YmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjIHRoZSBLQUkgQysrIGNv bXBpbGVyLgotKwkgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICBvc2YzKikgX0xUX1RBR1ZBUihv bGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJyA7 OwotKwkgICAgICAqKSBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRv bGRsaWIgJG9sZG9ianMnIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKyAgICAgICAgICBSQ0Mq KQotKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bwotKwkgICAgOzsKLSsgICAgICAgICAgY3h4KikKLSsJICAgIGNhc2UgJGhvc3QgaW4KLSsJICAg ICAgb3NmMyopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVD SE8gIlgke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lz dHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCSAgICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9 JGxpYmRpcicKLSsJCTs7Ci0rCSAgICAgICopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191 bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotKwkgICAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9y ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBgY2F0ICRleHBv cnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIg Pj4gJGxpYi5leHA7IGRvbmV+Ci0rCSAgICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhw fgotKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNl ZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli fgotKwkgICAgICAgICAgJFJNICRsaWIuZXhwJwotKwkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKLSsJCTs7Ci0rCSAgICBl c2FjCi0rCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06 Ci0rCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91 dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdh eSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtp bmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4m MSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1w bGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0i IjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxp c3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRv bmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBpZiB0 ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJICAg ICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3Vu cmVzb2x2ZWQgJHt3bH1cKicKLSsJICAgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICAgIG9zZjMq KQotKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQg LW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92 ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7 d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJCSAgOzsKLSsJICAg ICAgICAqKQotKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1t c3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVw ZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn Ci0rCQkgIDs7Ci0rCSAgICAgIGVzYWMKLSsKLSsJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKwotKwkgICAgICAj IENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxp c3RzCi0rCSAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4K LSsJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYg Y29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCi0rCi0rCSAgICBlbHNlCi0rCSAg ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgICBf TFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICBmaQotKwkgICAgOzsKLSsgICAgICAg IGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgcHNvcyopCi0rICAgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAgc3Vub3M0KikKLSsgICAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgU3VuIEMrKyA0 LngKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkg ICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAgICAgICAgbGNj KikKLSsJICAgICMgTHVjaWQKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsK LSsgICAgICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsg ICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgc29sYXJpcyopCi0rICAgICAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICAjIFN1biBDKysgNC4y LCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHNfbmVlZF9sYywkMSk9eWVzCi0rCSAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyAtemRlZnMnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAgICAg JENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0tTSAke3dsfSRsaWIuZXhwIC1oJHNv bmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCi0rCSAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwotKwkgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJICAgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsJICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKLSsJ ICAgICAgKikKLSsJCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgYW5kIHJlb3Jk ZXIgbGlua2VyIG9wdGlvbnMsCi0rCQkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcn LgotKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8p Ci0rCQlfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy16IGFsbGV4dHJh Y3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCSAgICAgICAgOzsKLSsJICAgIGVz YWMKLSsJICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKwotKwkgICAg b3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRh aW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkND IC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkg ICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGlu Y2x1ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7Owot KyAgICAgICAgICBnY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsJICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0 IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZlLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAkTERGTEFHUyAtYXJjaGl2ZSAtbyAkb2xkbGliICRvbGRvYmpz JwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgR05VIEMrKyBjb21waWxlciB3aXRo IFNvbGFyaXMgbGlua2VyCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0 aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxh ZywgJDEpPScgJHt3bH0teiAke3dsfWRlZnMnCi0rCSAgICAgIGlmICRDQyAtLXZlcnNpb24gfCAk R1JFUCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhw b3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJs b2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHt3 bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCi0rCSAg ICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQg dGhhdCBsaXN0cwotKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBm aWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJl ZCBsaWJyYXJ5LgotKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJl ZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJwotKwkgICAg ICBlbHNlCi0rCSAgICAgICAgIyBnKysgMi43IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBg LXNoYXJlZCcgb24gdGhpcwotKwkgICAgICAgICMgcGxhdGZvcm0uCi0rCSAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4 cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1HIC1ub3N0ZGxpYiAke3dsfS1N ICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgICAg ICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0 IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVz IGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxp YnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAkQ0ZMQUdT IC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJwotKwkgICAgICBmaQotKwot KwkgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t UiAkd2wkbGliZGlyJwotKwkgICAgICBjYXNlICRob3N0X29zIGluCi0rCQlzb2xhcmlzMi5bWzAt NV1dIHwgc29sYXJpczIuW1swLTVdXS4qKSA7OwotKwkJKikKLSsJCSAgX0xUX1RBR1ZBUih3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5p ZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkgIDs7Ci0rCSAgICAgIGVzYWMK LSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAg c3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBd XSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKLSsgICAgICBfTFRfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2Rl X3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcK LSsKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCSAgOzsKLSsJKikKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVzYWMK LSsgICAgICA7OwotKwotKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rCSMg Tm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ug d2UgZG8gbm90Ci0rCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5 bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2gg bWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJlY3Rs eS4gIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91Z2gs IHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFu ZGVkCi0rCSMgYXMgLXogZGVmcy4KLSsJX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEp PScke3dsfS16LHRleHQnCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0n JHt3bH0teixub2RlZnMnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1u bwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwlfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiwkbGliZGlyJwotKwlf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKLSsJX0xUX1RBR1ZB UihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFU SCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJv bHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIDs7 Ci0rCWVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHRhbmRlbSopCi0rICAgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgICAgICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVYIE5DQyAz LjIwCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICop Ci0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAg IF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0r ICAgICAgICA7OwotKwotKyAgICAgIHZ4d29ya3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0 IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGli cywgJDEpPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgICopCi0rICAgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgQUNfTVNHX1JF U1VMVChbJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSldKQotKyAgICB0ZXN0ICIkX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKSIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rICAgIF9M VF9UQUdWQVIoR0NDLCAkMSk9IiRHWFgiCi0rICAgIF9MVF9UQUdWQVIoTEQsICQxKT0iJExEIgot KwotKyAgICAjIyBDQVZFQVQgRU1QVE9SOgotKyAgICAjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0 aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyAgICAjIyB0 aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91 IGtub3cgZXhhY3RseQotKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9pbmcuLi4KLSsgICAgX0xUX1NZ U19ISURERU5fTElCREVQUygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX1BJQygkMSkKLSsgICAgX0xU X0NPTVBJTEVSX0NfTygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICAg IF9MVF9MSU5LRVJfU0hMSUJTKCQxKQotKyAgICBfTFRfU1lTX0RZTkFNSUNfTElOS0VSKCQxKQot KyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0rICAgIF9MVF9DT05GSUco JDEpCi0rICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKLSsKLSsgIENDPSRsdF9zYXZlX0NDCi0r ICBMRENYWD0kTEQKLSsgIExEPSRsdF9zYXZlX0xECi0rICBHQ0M9JGx0X3NhdmVfR0NDCi0rICB3 aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotKyAgbHRfY3ZfcGF0aF9MRENYWD0kbHRf Y3ZfcGF0aF9MRAotKyAgbHRfY3ZfcGF0aF9MRD0kbHRfc2F2ZV9wYXRoX0xECi0rICBsdF9jdl9w cm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQKLSsgIGx0X2N2X3Byb2dfZ251X2xkPSRs dF9zYXZlX3dpdGhfZ251X2xkCi0rZmkgIyB0ZXN0ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9 IHllcwotKwotK0FDX0xBTkdfUE9QCi0rXSkjIF9MVF9MQU5HX0NYWF9DT05GSUcKLSsKLSsKLSsj IF9MVF9TWVNfSElEREVOX0xJQkRFUFMoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBGaWd1cmUgb3V0ICJoaWRkZW4iIGxpYnJhcnkgZGVwZW5kZW5j aWVzIGZyb20gdmVyYm9zZQotKyMgY29tcGlsZXIgb3V0cHV0IHdoZW4gbGlua2luZyBhIHNoYXJl ZCBsaWJyYXJ5LgotKyMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUg bmVjZXNzYXJ5Ci0rIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCi0rbTRf ZGVmdW4oW19MVF9TWVNfSElEREVOX0xJQkRFUFNdLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVU SUxTX0RFRkFVTFRTXSlkbmwKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFm dGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2VkOgotK19MVF9UQUdWQVIocHJlZGVwX29iamVjdHMs ICQxKT0KLStfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPQotK19MVF9UQUdWQVIocHJl ZGVwcywgJDEpPQotK19MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0KLStfTFRfVEFHVkFSKGNvbXBp bGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpPQotKwotK2RubCB3ZSBjYW4ndCB1c2UgdGhlIGx0X3Np bXBsZV9jb21waWxlX3Rlc3RfY29kZSBoZXJlLAotK2RubCBiZWNhdXNlIGl0IGNvbnRhaW5zIGNv ZGUgaW50ZW5kZWQgZm9yIGFuIGV4ZWN1dGFibGUsCi0rZG5sIG5vdCBhIGxpYnJhcnkuICBJdCdz IHBvc3NpYmxlIHdlIHNob3VsZCBsZXQgZWFjaAotK2RubCB0YWcgZGVmaW5lIGEgbmV3IGx0Xz8/ Pz9fbGlua190ZXN0X2NvZGUgdmFyaWFibGUsCi0rZG5sIGJ1dCBpdCdzIG9ubHkgdXNlZCBoZXJl Li4uCi0rbTRfaWYoWyQxXSwgW10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgot K2ludCBhOwotK3ZvaWQgZm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0rX0xUX0VPRgotK10sIFskMV0s IFtDWFhdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLStjbGFzcyBGb28KLSt7 Ci0rcHVibGljOgotKyAgRm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0rcHJpdmF0ZToKLSsgIGludCBh OwotK307Ci0rX0xUX0VPRgotK10sIFskMV0sIFtGNzddLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4 dCA8PF9MVF9FT0YKLSsgICAgICBzdWJyb3V0aW5lIGZvbwotKyAgICAgIGltcGxpY2l0IG5vbmUK LSsgICAgICBpbnRlZ2VyKjQgYQotKyAgICAgIGE9MAotKyAgICAgIHJldHVybgotKyAgICAgIGVu ZAotK19MVF9FT0YKLStdLCBbJDFdLCBbRkNdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9M VF9FT0YKLSsgICAgICBzdWJyb3V0aW5lIGZvbwotKyAgICAgIGltcGxpY2l0IG5vbmUKLSsgICAg ICBpbnRlZ2VyIGEKLSsgICAgICBhPTAKLSsgICAgICByZXR1cm4KLSsgICAgICBlbmQKLStfTFRf RU9GCi0rXSwgWyQxXSwgW0dDSl0sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgot K3B1YmxpYyBjbGFzcyBmb28gewotKyAgcHJpdmF0ZSBpbnQgYTsKLSsgIHB1YmxpYyB2b2lkIGJh ciAodm9pZCkgewotKyAgICBhID0gMDsKLSsgIH0KLSt9OwotK19MVF9FT0YKLStdKQotK2RubCBQ YXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLStkbmwg b2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotK2lmIEFDX1RSWV9FVkFMKGFj X2NvbXBpbGUpOyB0aGVuCi0rICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJh Y3QgdGhlIG5lY2Vzc2FyeQotKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxh Z3MuCi0rCi0rICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5v dCB3ZSBhcmUgYmVmb3JlCi0rICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KLSsgIHByZV90 ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KLSsKLSsgIGZvciBwIGluIGBldmFsICIkb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQiYDsgZG8KLSsgICAgY2FzZSAkcCBpbgotKwotKyAgICAtTCogfCAtUiog fCAtbCopCi0rICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtM LFJ9IiBhbmQgdGhlIHBhdGguCi0rICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KLSsgICAgICAg aWYgdGVzdCAkcCA9ICItTCIgfHwKLSsgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KLSsJ IHByZXY9JHAKLSsJIGNvbnRpbnVlCi0rICAgICAgIGVsc2UKLSsJIHByZXY9Ci0rICAgICAgIGZp Ci0rCi0rICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0 aGVuCi0rCSBjYXNlICRwIGluCi0rCSAtTCogfCAtUiopCi0rCSAgICMgSW50ZXJuYWwgY29tcGls ZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQotKwkgICAjIHByb3ZpZGVk IHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKLSsJICAgIyB1 c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCi0r CSAgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEp IjsgdGhlbgotKwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9 IiR7cHJldn0ke3B9IgotKwkgICBlbHNlCi0rCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJf c2VhcmNoX3BhdGgsICQxKT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwg JDEpfSAke3ByZXZ9JHtwfSIKLSsJICAgZmkKLSsJICAgOzsKLSsJICMgVGhlICItbCIgY2FzZSB3 b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCi0rCSAjIGxpbmtlZCwgc28g ZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KLSsJIGVzYWMKLSsgICAgICAgZWxzZQot KwkgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSI7IHRoZW4KLSsJICAgX0xU X1RBR1ZBUihwb3N0ZGVwcywgJDEpPSIke3ByZXZ9JHtwfSIKLSsJIGVsc2UKLSsJICAgX0xUX1RB R1ZBUihwb3N0ZGVwcywgJDEpPSIke19MVF9UQUdWQVIocG9zdGRlcHMsICQxKX0gJHtwcmV2fSR7 cH0iCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwotKyAgICAqLiRvYmpleHQpCi0r ICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2JqZWN0IGZpbGUgb25seSBzaG93 cyB1cAotKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KLSsgICAgICAgaWYg dGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCi0rCSBwcmVfdGVzdF9vYmplY3Rf ZGVwc19kb25lPXllcwotKwkgY29udGludWUKLSsgICAgICAgZmkKLSsKLSsgICAgICAgaWYgdGVz dCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KLSsJIGlmIHRlc3QgLXog IiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkiOyB0aGVuCi0rCSAgIF9MVF9UQUdWQVIo cHJlZGVwX29iamVjdHMsICQxKT0iJHAiCi0rCSBlbHNlCi0rCSAgIF9MVF9UQUdWQVIocHJlZGVw X29iamVjdHMsICQxKT0iJF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKSAkcCIKLSsJIGZp Ci0rICAgICAgIGVsc2UKLSsJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0 cywgJDEpIjsgdGhlbgotKwkgICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpPSIkcCIK LSsJIGVsc2UKLSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJF9MVF9UQUdW QVIocG9zdGRlcF9vYmplY3RzLCAkMSkgJHAiCi0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7 OwotKwotKyAgICAqKSA7OyAjIElnbm9yZSB0aGUgcmVzdC4KLSsKLSsgICAgZXNhYwotKyAgZG9u ZQotKwotKyAgIyBDbGVhbiB1cC4KLSsgIHJtIC1mIGEub3V0IGEuZXhlCi0rZWxzZQotKyAgZWNo byAibGlidG9vbC5tNDogZXJyb3I6IHByb2JsZW0gY29tcGlsaW5nICQxIHRlc3QgcHJvZ3JhbSIK LStmaQotKwotKyRSTSAtZiBjb25mZXN0LiRvYmpleHQKLSsKLSsjIFBPUlRNRTogb3ZlcnJpZGUg YWJvdmUgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIGl0IGlzIGJyb2tlbgotK200X2lmKFskMV0sIFtD WFhdLAotK1tjYXNlICRob3N0X29zIGluCi0raW50ZXJpeFtbMy05XV0qKQotKyAgIyBJbnRlcml4 IDMuNSBpbnN0YWxscyBjb21wbGV0ZWx5IGhvc2VkIC5sYSBmaWxlcyBmb3IgQysrLCBzbyByYXRo ZXIgdGhhbgotKyAgIyBoYWNrIGFsbCBhcm91bmQgaXQsIGxldCdzIGp1c3QgdHJ1c3QgImcrKyIg dG8gRFRSVC4KLSsgIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsJDEpPQotKyAgX0xUX1RBR1ZB Uihwb3N0ZGVwX29iamVjdHMsJDEpPQotKyAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Ci0rICA7 OwotKwotK2xpbnV4KikKLSsgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKyAgKlN1 blwgQyopCi0rICAgICMgU3VuIEMrKyA1LjkKLSsKLSsgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMt Y29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCi0rICAgICMgaW5jb21wYXRpYmxlIHdpdGgg dGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZwotKyAgICAjIGl0IGlmIGl0J3MgaW4g Q1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCi0rICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVw ZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIgaW4KLSsgICAgKiIgLWxp YnJhcnk9c3RscG9ydDQgIiopCi0rICAgICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0ICIkc29sYXJpc191c2Vfc3RscG9ydDQi ICE9IHllczsgdGhlbgotKyAgICAgIF9MVF9UQUdWQVIocG9zdGRlcHMsJDEpPSctbGlicmFyeT1D c3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwot K3NvbGFyaXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgIENDKikKLSsgICAgIyBUaGUg bW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCi0rICAgICMgaW5j b21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZwotKyAgICAj IGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCi0rICAgICMgLWxpYnJh cnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAiICRDWFggJENYWEZMQUdTICIg aW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAgICAgc29sYXJpc191c2Vfc3Rs cG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIEFkZGluZyB0aGlzIHJl cXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVzIGZvcgotKyAgICAj IFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBvYmplY3RzIGZyb20g YW4gb2xkCi0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRoZSBvdXRwdXQsIGxl YWRpbmcgdG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0 NCIgIT0geWVzOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5 PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAgZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0r ZXNhYwotK10pCi0rCi0rY2FzZSAiICRfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSkgIiBpbgotKyoi IC1sYyAiKikgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vIDs7Ci0rZXNh YwotKyBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycywgJDEpPQotK2lmIHRlc3Qg LW4gIiR7X0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0iOyB0aGVuCi0r IF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9YGVjaG8gIiAke19MVF9U QUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSl9IiB8ICR7U0VEfSAtZSAncyEgLUwh ICFnJyAtZSAncyFeICEhJ2AKLStmaQotK19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3Nl YXJjaF9kaXJzXSwgWzFdLAotKyAgICBbVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMg Y29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5XSkKLStfTFRfVEFHREVDTChb XSwgW3ByZWRlcF9vYmplY3RzXSwgWzFdLAotKyAgICBbRGVwZW5kZW5jaWVzIHRvIHBsYWNlIGJl Zm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdHMgYmVpbmcgbGlua2VkIHRvCi0rICAgIGNyZWF0ZSBh IHNoYXJlZCBsaWJyYXJ5XSkKLStfTFRfVEFHREVDTChbXSwgW3Bvc3RkZXBfb2JqZWN0c10sIFsx XSkKLStfTFRfVEFHREVDTChbXSwgW3ByZWRlcHNdLCBbMV0pCi0rX0xUX1RBR0RFQ0woW10sIFtw b3N0ZGVwc10sIFsxXSkKLStfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aF0sIFsxXSwKLSsgICAgW1RoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQgaW50ZXJuYWxseSBi eSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0rICAgIGEgc2hhcmVkIGxpYnJhcnldKQotK10p IyBfTFRfU1lTX0hJRERFTl9MSUJERVBTCi0rCi0rCi0rIyBfTFRfUFJPR19GNzcKLSsjIC0tLS0t LS0tLS0tLQotKyMgU2luY2UgQUNfUFJPR19GNzcgaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVy bnMgdGhlIGVtcHR5IHN0cmluZwotKyMgaWYgdGhlcmUgaXMgbm8gZm9ydHJhbiBjb21waWxlciwg d2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVyZS4KLSttNF9kZWZ1bihbX0xUX1BST0dfRjc3XSwK LStbCi0rcHVzaGRlZihbQUNfTVNHX0VSUk9SXSwgW19sdF9kaXNhYmxlX0Y3Nz15ZXNdKQotK0FD X1BST0dfRjc3Ci0raWYgdGVzdCAteiAiJEY3NyIgfHwgdGVzdCAiWCRGNzciID0gIlhubyI7IHRo ZW4KLSsgIF9sdF9kaXNhYmxlX0Y3Nz15ZXMKLStmaQotK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkK LStdKSMgX0xUX1BST0dfRjc3Ci0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRp YmlsaXR5OgotK2RubCBBQ19ERUZVTihbX0xUX1BST0dfRjc3XSwgW10pCi0rCi0rCi0rIyBfTFRf TEFOR19GNzdfQ09ORklHKFtUQUddKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBGb3J0cmFuIDc3 IGNvbXBpbGVyIGFyZQotKyMgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUg c3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRwotKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVy IGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19GNzdfQ09O RklHXSwKLStbQUNfUkVRVUlSRShbX0xUX1BST0dfRjc3XSlkbmwKLStBQ19MQU5HX1BVU0goRm9y dHJhbiA3NykKLSsKLStfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLStf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUihhbHdheXNf ZXhwb3J0X3N5bWJvbHMsICQxKT1ubwotK19MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPQotK19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RB R1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 X2Fic29sdXRlLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KLStf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLStfTFRfVEFHVkFSKGhh cmRjb2RlX21pbnVzX0wsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAk MSk9bm8KLStfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubwotK19MVF9UQUdWQVIobW9k dWxlX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQotK19M VF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KLStfTFRfVEFHVkFSKG9sZF9h cmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdWQVIobm9fdW5kZWZp bmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9 Ci0rX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8K LSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZjc3IHRlc3Qgc291cmNlcy4KLSthY19l eHQ9ZgotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBmNzcgdGVzdCBz b3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0r IyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVy bWluZWQgdGhhdAotKyMgdGhlIEY3NyBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJp YWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBh cHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBj b3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIu Ci0raWYgdGVzdCAiJF9sdF9kaXNhYmxlX0Y3NyIgIT0geWVzOyB0aGVuCi0rICAjIENvZGUgdG8g YmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlPSJcCi0rICAgICAgc3Vicm91dGluZSB0Ci0rICAgICAgcmV0dXJuCi0rICAgICAgZW5k Ci0rIgotKwotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLSsgIGx0 X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAgIHByb2dyYW0gdAotKyAgICAgIGVuZAot KyIKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9u cyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsgIF9MVF9UQUdfQ09NUElMRVIKLSsKLSsgICMg c2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rICBfTFRfQ09N UElMRVJfQk9JTEVSUExBVEUKLSsgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsgICMgQWxs b3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rICBsdF9zYXZlX0ND PSIkQ0MiCi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBDQz0ke0Y3Ny0iZjc3In0KLSsgIGNvbXBp bGVyPSRDQwotKyAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotKyAgX0xUX0NDX0JBU0VO QU1FKFskY29tcGlsZXJdKQotKyAgR0NDPSRHNzcKLSsgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7 IHRoZW4KLSsgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBs aWJyYXJpZXNdKQotKyAgICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCi0rCi0r ICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkK LSsgICAgdGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5v Ci0rCi0rICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVz IHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyAgICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQ SUMuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBhaXgzKikKLSsgICAgICAgIHRlc3Qg IiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgICAgICBpZiB0 ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICAgICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZl X2NtZHN+XCRSQU5MSUIgXCRsaWIiCi0rICAgICAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5M SUIgJGxpYicKLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgIGFpeFtbNC05XV0qKQot KwlpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0gbm8gOyB0aGVuCi0rCSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVu YWJsZV9zdGF0aWM9bm8KLSsJZmkKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgQUNfTVNH X1JFU1VMVChbJGVuYWJsZV9zaGFyZWRdKQotKwotKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo ZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rICAgICMgTWFrZSBzdXJlIGVpdGhlciBl bmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgotKyAgICB0ZXN0ICIkZW5hYmxl X3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKLSsgICAgQUNfTVNHX1JFU1VMVChb JGVuYWJsZV9zdGF0aWNdKQotKwotKyAgICBfTFRfVEFHVkFSKEdDQywgJDEpPSIkRzc3IgotKyAg ICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKLSsKLSsgICAgIyMgQ0FWRUFUIEVNUFRPUjoKLSsg ICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNy b3MsIGRvIG5vdCBjaGFuZ2UKLSsgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNl IG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsgICAgIyMgd2hhdCB5 b3UgYXJlIGRvaW5nLi4uCi0rICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0rICAgIF9MVF9DT01Q SUxFUl9DX08oJDEpCi0rICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQotKyAgICBfTFRf TElOS0VSX1NITElCUygkMSkKLSsgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKLSsgICAg X0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQotKwotKyAgICBfTFRfQ09ORklHKCQxKQot KyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBHQ0M9JGx0X3NhdmVfR0NDCi0rICBD Qz0iJGx0X3NhdmVfQ0MiCi0rZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRjc3IiAhPSB5ZXMKLSsK LStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFOR19GNzdfQ09ORklHCi0rCi0rCi0rIyBfTFRfUFJP R19GQwotKyMgLS0tLS0tLS0tLS0KLSsjIFNpbmNlIEFDX1BST0dfRkMgaXMgYnJva2VuLCBpbiB0 aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZwotKyMgaWYgdGhlcmUgaXMgbm8gZm9ydHJh biBjb21waWxlciwgd2UgaGF2ZSBvdXIgb3duIHZlcnNpb24gaGVyZS4KLSttNF9kZWZ1bihbX0xU X1BST0dfRkNdLAotK1sKLStwdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2Rpc2FibGVfRkM9 eWVzXSkKLStBQ19QUk9HX0ZDCi0raWYgdGVzdCAteiAiJEZDIiB8fCB0ZXN0ICJYJEZDIiA9ICJY bm8iOyB0aGVuCi0rICBfbHRfZGlzYWJsZV9GQz15ZXMKLStmaQotK3BvcGRlZihbQUNfTVNHX0VS Uk9SXSkKLStdKSMgX0xUX1BST0dfRkMKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNv bXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19GQ10sIFtdKQotKwotKwotKyMg X0xUX0xBTkdfRkNfQ09ORklHKFtUQUddKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4g Y29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBz dWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCi0rIyB0byB3cml0ZSB0aGUgY29tcGlsZXIg Y29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5HX0ZDX0NPTkZJ R10sCi0rW0FDX1JFUVVJUkUoW19MVF9QUk9HX0ZDXSlkbmwKLStBQ19MQU5HX1BVU0goRm9ydHJh bikKLSsKLStfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLStfTFRfVEFH VkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0 X3N5bWJvbHMsICQxKT1ubwotK19MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPQot K19MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29s dXRlLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0K LStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KLStfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2Rl X21pbnVzX0wsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8K LStfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubwotK19MVF9UQUdWQVIobW9kdWxlX2Nt ZHMsICQxKT0KLStfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPQotK19MVF9UQUdW QVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KLStfTFRfVEFHVkFSKG9sZF9hcmNoaXZl X2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2Zs YWcsICQxKT0KLStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rX0xU X1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KLSsKLSsj IFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgZmMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD0ke2Fj X2ZjX3NyY2V4dC1mfQotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBm YyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpl eHQKLSsKLSsjIE5vIHNlbnNlIGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVh ZHkgZGV0ZXJtaW5lZCB0aGF0Ci0rIyB0aGUgRkMgY29tcGlsZXIgaXNuJ3Qgd29ya2luZy4gIFNv bWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCi0rIyBhcmUgY3VycmVudGx5IGFzc3Vt ZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRmb3JtLAotKyMgYW5kIHdp bGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBhIG5vbi13b3JraW5nIGNv bXBpbGVyLgotK2lmIHRlc3QgIiRfbHRfZGlzYWJsZV9GQyIgIT0geWVzOyB0aGVuCi0rICAjIENv ZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotKyAgbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlPSJcCi0rICAgICAgc3Vicm91dGluZSB0Ci0rICAgICAgcmV0dXJuCi0rICAg ICAgZW5kCi0rIgotKwotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMK LSsgIGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iXAotKyAgICAgIHByb2dyYW0gdAotKyAgICAg IGVuZAotKyIKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1 cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsgIF9MVF9UQUdfQ09NUElMRVIKLSsK LSsgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rICBf TFRfQ09NUElMRVJfQk9JTEVSUExBVEUKLSsgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsg ICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rICBsdF9z YXZlX0NDPSIkQ0MiCi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBDQz0ke0ZDLSJmOTUifQotKyAg Y29tcGlsZXI9JENDCi0rICBHQ0M9JGFjX2N2X2ZjX2NvbXBpbGVyX2dudQotKwotKyAgX0xUX1RB R1ZBUihjb21waWxlciwgJDEpPSRDQwotKyAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQot KwotKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgICBBQ19NU0dfQ0hFQ0tJTkco W2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCi0rICAgIEFDX01TR19SRVNV TFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVy IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJl ZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICAgIyBPbiBBSVgsIHNoYXJlZCBs aWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwgYW5k Ci0rICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgot KyAgICAgIGFpeDMqKQotKyAgICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVu YWJsZV9zdGF0aWM9bm8KLSsgICAgICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICAg ICAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKLSsgICAg ICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJwotKyAgICAgICAgZmkKLSsgICAg ICAgIDs7Ci0rICAgICAgYWl4W1s0LTldXSopCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2 NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsJICB0ZXN0 ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKwlmaQotKyAgICAg ICAgOzsKLSsgICAgZXNhYwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCi0r Ci0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz XSkKLSsgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRp YyBpcyB5ZXMuCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3Rh dGljPXllcwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCi0rCi0rICAgIF9M VF9UQUdWQVIoR0NDLCAkMSk9IiRhY19jdl9mY19jb21waWxlcl9nbnUiCi0rICAgIF9MVF9UQUdW QVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZFQVQgRU1QVE9SOgotKyAgICAjIyBUaGVy ZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90 IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVt IGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyAgICAjIyB3aGF0IHlvdSBhcmUgZG9p bmcuLi4KLSsgICAgX0xUX1NZU19ISURERU5fTElCREVQUygkMSkKLSsgICAgX0xUX0NPTVBJTEVS X1BJQygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0ZJ TEVfTE9DS1MoJDEpCi0rICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQotKyAgICBfTFRfU1lTX0RZ TkFNSUNfTElOS0VSKCQxKQotKyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0r Ci0rICAgIF9MVF9DT05GSUcoJDEpCi0rICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKLSsKLSsg IEdDQz0kbHRfc2F2ZV9HQ0MKLSsgIENDPSIkbHRfc2F2ZV9DQyIKLStmaSAjIHRlc3QgIiRfbHRf ZGlzYWJsZV9GQyIgIT0geWVzCi0rCi0rQUNfTEFOR19QT1AKLStdKSMgX0xUX0xBTkdfRkNfQ09O RklHCi0rCi0rCi0rIyBfTFRfTEFOR19HQ0pfQ09ORklHKFtUQUddKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxl cyBmb3IgdGhlIEdOVSBKYXZhIENvbXBpbGVyIGNvbXBpbGVyCi0rIyBhcmUgc3VpdGFibHkgZGVm aW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJ RwotKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgot K200X2RlZnVuKFtfTFRfTEFOR19HQ0pfQ09ORklHXSwKLStbQUNfUkVRVUlSRShbTFRfUFJPR19H Q0pdKWRubAotK0FDX0xBTkdfU0FWRQotKwotKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBK YXZhIHRlc3Qgc291cmNlcy4KLSthY19leHQ9amF2YQotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5z aW9uIGZvciBjb21waWxlZCBKYXZhIHRlc3Qgc291cmNlcy4KLStvYmpleHQ9bwotK19MVF9UQUdW QVIob2JqZXh0LCAkMSk9JG9iamV4dAotKwotKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBj b21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJjbGFzcyBmb28ge30i Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVf bGlua190ZXN0X2NvZGU9J3B1YmxpYyBjbGFzcyBjb25mdGVzdCB7IHB1YmxpYyBzdGF0aWMgdm9p ZCBtYWluKFN0cmluZ1tbXV0gYXJndikge307IH0nCi0rCi0rIyBsdG1haW4gb25seSB1c2VzICRD QyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotK19M VF9UQUdfQ09NUElMRVIKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxl IHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotK19MVF9MSU5LRVJfQk9JTEVS UExBVEUKLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRz LgotK2x0X3NhdmVfQ0M9IiRDQyIKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPXllcwotK0NDPSR7 R0NKLSJnY2oifQotK2NvbXBpbGVyPSRDQwotK19MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MK LStfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKLStfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0p Ci0rCi0rIyBHQ0ogZGlkIG5vdCBleGlzdCBhdCB0aGUgdGltZSBHQ0MgZGlkbid0IGltcGxpY2l0 bHkgbGluayBsaWJjIGluLgotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1u bwotKwotK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRz Ci0rCi0rIyMgQ0FWRUFUIEVNUFRPUjoKLSsjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdp dGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyMjIHRoZSBydW5uaW5n IG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFj dGx5Ci0rIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0raWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsg dGhlbgotKyAgX0xUX0NPTVBJTEVSX05PX1JUVEkoJDEpCi0rICBfTFRfQ09NUElMRVJfUElDKCQx KQotKyAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQx KQotKyAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBB VEgoJDEpCi0rCi0rICBfTFRfQ09ORklHKCQxKQotK2ZpCi0rCi0rQUNfTEFOR19SRVNUT1JFCi0r Ci0rR0NDPSRsdF9zYXZlX0dDQwotK0NDPSIkbHRfc2F2ZV9DQyIKLStdKSMgX0xUX0xBTkdfR0NK X0NPTkZJRwotKwotKwotKyMgX0xUX0xBTkdfUkNfQ09ORklHKFtUQUddKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFi bGVzIGZvciB0aGUgV2luZG93cyByZXNvdXJjZSBjb21waWxlcgotKyMgYXJlIHN1aXRhYmx5IGRl ZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05G SUcKLSsjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4K LSttNF9kZWZ1bihbX0xUX0xBTkdfUkNfQ09ORklHXSwKLStbQUNfUkVRVUlSRShbTFRfUFJPR19S Q10pZG5sCi0rQUNfTEFOR19TQVZFCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIFJD IHRlc3Qgc291cmNlcy4KLSthY19leHQ9cmMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBm b3IgY29tcGlsZWQgUkMgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpl eHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUg dGVzdHMKLStsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9J3NhbXBsZSBNRU5VIHsgTUVOVUlU RU0gIiZTb3VwIiwgMTAwLCBDSEVDS0VEIH0nCi0rCi0rIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2lt cGxlIGxpbmsgdGVzdHMKLStsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IiRsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGUiCi0rCi0rIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNv bmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotK19MVF9UQUdfQ09NUElMRVIK LSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK19M VF9DT01QSUxFUl9CT0lMRVJQTEFURQotK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIEFs bG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2x0X3NhdmVfQ0M9 IiRDQyIKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPQotK0NDPSR7UkMtIndpbmRyZXMifQotK2Nv bXBpbGVyPSRDQwotK19MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKLStfTFRfQ0NfQkFTRU5B TUUoWyRjb21waWxlcl0pCi0rX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbywgJDEp PXllcwotKwotK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsgIDoKLSsgIF9MVF9DT05G SUcoJDEpCi0rZmkKLSsKLStHQ0M9JGx0X3NhdmVfR0NDCi0rQUNfTEFOR19SRVNUT1JFCi0rQ0M9 IiRsdF9zYXZlX0NDIgotK10pIyBfTFRfTEFOR19SQ19DT05GSUcKLSsKLSsKLSsjIExUX1BST0df R0NKCi0rIyAtLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9QUk9HX0dDSl0sCi0rW200X2lmZGVm KFtBQ19QUk9HX0dDSl0sIFtBQ19QUk9HX0dDSl0sCi0rICBbbTRfaWZkZWYoW0FdW01fUFJPR19H Q0pdLCBbQV1bTV9QUk9HX0dDSl0sCi0rICAgIFtBQ19DSEVDS19UT09MKEdDSiwgZ2NqLCkKLSsg ICAgICB0ZXN0ICJ4JHtHQ0pGTEFHUytzZXR9IiA9IHhzZXQgfHwgR0NKRkxBR1M9Ii1nIC1PMiIK LSsgICAgICBBQ19TVUJTVChHQ0pGTEFHUyldKV0pW11kbmwKLStdKQotKwotKyMgT2xkIG5hbWU6 Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfR0NKXSwgW0xUX1BST0dfR0NKXSkKLStkbmwgYWNsb2Nh bC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9H X0dDSl0sIFtdKQotKwotKwotKyMgTFRfUFJPR19SQwotKyMgLS0tLS0tLS0tLQotK0FDX0RFRlVO KFtMVF9QUk9HX1JDXSwKLStbQUNfQ0hFQ0tfVE9PTChSQywgd2luZHJlcywpCi0rXSkKLSsKLSsj IE9sZCBuYW1lOgotK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1JDXSwgW0xUX1BST0dfUkNdKQotK2Ru bCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0xU X0FDX1BST0dfUkNdLCBbXSkKLSsKLSsKLSsjIF9MVF9ERUNMX0VHUkVQCi0rIyAtLS0tLS0tLS0t LS0tLQotKyMgSWYgd2UgZG9uJ3QgaGF2ZSBhIG5ldyBlbm91Z2ggQXV0b2NvbmYgdG8gY2hvb3Nl IHRoZSBiZXN0IGdyZXAKLSsjIGF2YWlsYWJsZSwgY2hvb3NlIHRoZSBvbmUgZmlyc3QgaW4gdGhl IHVzZXIncyBQQVRILgotK200X2RlZnVuKFtfTFRfREVDTF9FR1JFUF0sCi0rW0FDX1JFUVVJUkUo W0FDX1BST0dfRUdSRVBdKWRubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfRkdSRVBdKWRubAotK3Rl c3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAKLStfTFRfREVDTChbXSwgW0dSRVBdLCBbMV0sIFtB IGdyZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lc10pCi0rX0xUX0RFQ0woW10sIFtF R1JFUF0sIFsxXSwgW0FuIEVSRSBtYXRjaGVyXSkKLStfTFRfREVDTChbXSwgW0ZHUkVQXSwgWzFd LCBbQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyXSkKLStkbmwgTm9uLWJsZWVkaW5nLWVkZ2UgYXV0 b2NvbmYgZG9lc24ndCBzdWJzdCBHUkVQLCBzbyBkbyBpdCBoZXJlIHRvbwotK0FDX1NVQlNUKFtH UkVQXSkKLStdKQotKwotKwotKyMgX0xUX0RFQ0xfT0JKRFVNUAotKyMgLS0tLS0tLS0tLS0tLS0K LSsjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUg YmVzdCBvYmpkdW1wCi0rIyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1 c2VyJ3MgUEFUSC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xfT0JKRFVNUF0sCi0rW0FDX0NIRUNLX1RP T0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCi0rdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRV TVA9b2JqZHVtcAotK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFsxXSwgW0FuIG9iamVjdCBzeW1i b2wgZHVtcGVyXSkKLStBQ19TVUJTVChbT0JKRFVNUF0pCi0rXSkKLSsKLSsKLSsjIF9MVF9ERUNM X1NFRAotKyMgLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYSBmdWxseS1mdW5jdGlvbmFsIHNl ZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcwotKyMgYXMgZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2li bGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xfU0VEXSwK LStbQUNfUFJPR19TRUQKLSt0ZXN0IC16ICIkU0VEIiAmJiBTRUQ9c2VkCi0rWHNlZD0iJFNFRCAt ZSAxcy9eWC8vIgotK19MVF9ERUNMKFtdLCBbU0VEXSwgWzFdLCBbQSBzZWQgcHJvZ3JhbSB0aGF0 IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rX0xUX0RFQ0woW10sIFtYc2VkXSwgWyJcJFNF RCAtZSAxcy9eWC8vIl0sCi0rICAgIFtTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFs bHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbl0pCi0rXSkjIF9MVF9ERUNMX1NF RAotKwotK200X2lmbmRlZihbQUNfUFJPR19TRURdLCBbCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rIyBOT1RFOiBUaGlzIG1h Y3JvIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGludG8gICAjCi0rIyAgR05VIEF1 dG9jb25mIGFzIEFDX1BST0dfU0VELiAgV2hlbiBpdCBpcyBhdmFpbGFibGUgaW4gICAjCi0rIyAg YSByZWxlYXNlZCB2ZXJzaW9uIG9mIEF1dG9jb25mIHdlIHNob3VsZCByZW1vdmUgdGhpcyAgICAj Ci0rIyAgbWFjcm8gYW5kIHVzZSBpdCBpbnN0ZWFkLiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0rCi0rbTRfZGVmdW4oW0FDX1BST0dfU0VEXSwKLStbQUNfTVNHX0NIRUNL SU5HKFtmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXRdKQotK0FDX0NBQ0hF X1ZBTChsdF9jdl9wYXRoX1NFRCwKLStbIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFu ZCB0ZXN0IGZvciBzZWQgYW5kIGdzZWQuCi0rIyBUaGVuIHVzZSB0aGF0IGxpc3Qgb2Ygc2VkJ3Mg YXMgb25lcyB0byB0ZXN0IGZvciB0cnVuY2F0aW9uLgotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgbHRfYWNfcHJv ZyBpbiBzZWQgZ3NlZDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8k bHRfYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLSsgICAgICAgIGx0X2FjX3NlZF9saXN0PSIk bHRfYWNfc2VkX2xpc3QgJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAgICBm aQotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLStsdF9hY19t YXg9MAotK2x0X2FjX2NvdW50PTAKLSsjIEFkZCAvdXNyL3hwZzQvYmluL3NlZCBhcyBpdCBpcyB0 eXBpY2FsbHkgZm91bmQgb24gU29sYXJpcwotKyMgYWxvbmcgd2l0aCAvYmluL3NlZCB0aGF0IHRy dW5jYXRlcyBvdXRwdXQuCi0rZm9yIGx0X2FjX3NlZCBpbiAkbHRfYWNfc2VkX2xpc3QgL3Vzci94 cGc0L2Jpbi9zZWQ7IGRvCi0rICB0ZXN0ICEgLWYgJGx0X2FjX3NlZCAmJiBjb250aW51ZQotKyAg Y2F0IC9kZXYvbnVsbCA+IGNvbmZ0ZXN0LmluCi0rICBsdF9hY19jb3VudD0wCi0rICBlY2hvICRF Q0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+Y29uZnRlc3QuaW4KLSsgICMgQ2hlY2sgZm9yIEdO VSBzZWQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgIGlmICIkbHRfYWNfc2VkIiAt LXZlcnNpb24gMj4mMSA8IC9kZXYvbnVsbCB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4K LSsgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAotKyAgICBicmVhawotKyAgZmkKLSsgIHdo aWxlIHRydWU7IGRvCi0rICAgIGNhdCBjb25mdGVzdC5pbiBjb25mdGVzdC5pbiA+Y29uZnRlc3Qu dG1wCi0rICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5pbgotKyAgICBjcCBjb25mdGVzdC5p biBjb25mdGVzdC5ubAotKyAgICBlY2hvID4+Y29uZnRlc3QubmwKLSsgICAgJGx0X2FjX3NlZCAt ZSAncy9hJC8vJyA8IGNvbmZ0ZXN0Lm5sID5jb25mdGVzdC5vdXQgfHwgYnJlYWsKLSsgICAgY21w IC1zIGNvbmZ0ZXN0Lm91dCBjb25mdGVzdC5ubCB8fCBicmVhawotKyAgICAjIDEwMDAwIGNoYXJz IGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkbHRfYWNfY291bnQg LWd0IDEwICYmIGJyZWFrCi0rICAgIGx0X2FjX2NvdW50PWBleHByICRsdF9hY19jb3VudCArIDFg Ci0rICAgIGlmIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAkbHRfYWNfbWF4OyB0aGVuCi0rICAgICAg bHRfYWNfbWF4PSRsdF9hY19jb3VudAotKyAgICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQK LSsgICAgZmkKLSsgIGRvbmUKLStkb25lCi0rXSkKLStTRUQ9JGx0X2N2X3BhdGhfU0VECi0rQUNf U1VCU1QoW1NFRF0pCi0rQUNfTVNHX1JFU1VMVChbJFNFRF0pCi0rXSkjQUNfUFJPR19TRUQKLStd KSNtNF9pZm5kZWYKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1NFRF0s IFtBQ19QUk9HX1NFRF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgotK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLCBbXSkKLSsKLSsKLSsjIF9MVF9DSEVD S19TSEVMTF9GRUFUVVJFUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBGaW5kIG91 dCB3aGV0aGVyIHRoZSBzaGVsbCBpcyBCb3VybmUgb3IgWFNJIGNvbXBhdGlibGUsCi0rIyBvciBo YXMgc29tZSBvdGhlciB1c2VmdWwgZmVhdHVyZXMuCi0rbTRfZGVmdW4oW19MVF9DSEVDS19TSEVM TF9GRUFUVVJFU10sCi0rW0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJz dGFuZHMgc29tZSBYU0kgY29uc3RydWN0c10pCi0rIyBUcnkgc29tZSBYU0kgZmVhdHVyZXMKLSt4 c2lfc2hlbGw9bm8KLSsoIF9sdF9kdW1teT0iYS9iL2MiCi0rICB0ZXN0ICIke19sdF9kdW1teSMj Ki99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAotKyAgICAg ID0gYyxhL2IsLCBcCi0rICAgICYmIGV2YWwgJ3Rlc3QgJCgoIDEgKyAxICkpIC1lcSAyIFwKLSsg ICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9kZXYvbnVsbCAyPiYxIFwKLSsg ICYmIHhzaV9zaGVsbD15ZXMKLStBQ19NU0dfUkVTVUxUKFskeHNpX3NoZWxsXSkKLStfTFRfQ09O RklHX0xJQlRPT0xfSU5JVChbeHNpX3NoZWxsPSckeHNpX3NoZWxsJ10pCi0rCi0rQUNfTVNHX0NI RUNLSU5HKFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAiKz0iXSkKLStsdF9zaGVsbF9h cHBlbmQ9bm8KLSsoIGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFsICIkWzFdKz1cJFsyXSIgJiYg dGVzdCAiJGZvbyIgPSBiYXJiYXogKSBcCi0rICAgID4vZGV2L251bGwgMj4mMSBcCi0rICAmJiBs dF9zaGVsbF9hcHBlbmQ9eWVzCi0rQUNfTVNHX1JFU1VMVChbJGx0X3NoZWxsX2FwcGVuZF0pCi0r X0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW2x0X3NoZWxsX2FwcGVuZD0nJGx0X3NoZWxsX2FwcGVu ZCddKQotKwotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwg Mj4mMTsgdGhlbgotKyAgbHRfdW5zZXQ9dW5zZXQKLStlbHNlCi0rICBsdF91bnNldD1mYWxzZQot K2ZpCi0rX0xUX0RFQ0woW10sIFtsdF91bnNldF0sIFswXSwgW3doZXRoZXIgdGhlIHNoZWxsIHVu ZGVyc3RhbmRzICJ1bnNldCJdKWRubAotKwotKyMgdGVzdCBFQkNESUMgb3IgQVNDSUkKLStjYXNl IGBlY2hvIFh8dHIgWCAnXDEwMSdgIGluCi0rIEEpICMgQVNDSUkgYmFzZWQgc3lzdGVtCi0rICAg ICMgXG4gaXMgbm90IGludGVycHJldGVkIGNvcnJlY3RseSBieSBTb2xhcmlzIDggL3Vzci91Y2Iv dHIKLSsgIGx0X1NQMk5MPSd0ciBcMDQwIFwwMTInCi0rICBsdF9OTDJTUD0ndHIgXDAxNVwwMTIg XDA0MFwwNDAnCi0rICA7OwotKyAqKSAjIEVCQ0RJQyBiYXNlZCBzeXN0ZW0KLSsgIGx0X1NQMk5M PSd0ciBcMTAwIFxuJwotKyAgbHRfTkwyU1A9J3RyIFxyXG4gXDEwMFwxMDAnCi0rICA7OwotK2Vz YWMKLStfTFRfREVDTChbU1AyTkxdLCBbbHRfU1AyTkxdLCBbMV0sIFt0dXJuIHNwYWNlcyBpbnRv IG5ld2xpbmVzXSlkbmwKLStfTFRfREVDTChbTkwyU1BdLCBbbHRfTkwyU1BdLCBbMV0sIFt0dXJu IG5ld2xpbmVzIGludG8gc3BhY2VzXSlkbmwKLStdKSMgX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVT Ci0rCi0rCi0rIyBfTFRfUFJPR19YU0lfU0hFTExGTlMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgQm91cm5lIGFuZCBYU0kgY29tcGF0aWJsZSB2YXJpYW50cyBvZiBzb21lIHVzZWZ1bCBz aGVsbCBmdW5jdGlvbnMuCi0rbTRfZGVmdW4oW19MVF9QUk9HX1hTSV9TSEVMTEZOU10sCi0rW2Nh c2UgJHhzaV9zaGVsbCBpbgotKyAgeWVzKQotKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdm aWxlIgotKwotKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAot KyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQg dG8gdGhlIHJlc3VsdCwKLSsjIG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBMQUNF TUVOVC4KLStmdW5jX2Rpcm5hbWUgKCkKLSt7Ci0rICBjYXNlICR7MX0gaW4KLSsgICAgKi8qKSBm dW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKLSsgICAgKiAgKSBmdW5jX2Rpcm5h bWVfcmVzdWx0PSIkezN9IiA7OwotKyAgZXNhYwotK30KLSsKLSsjIGZ1bmNfYmFzZW5hbWUgZmls ZQotK2Z1bmNfYmFzZW5hbWUgKCkKLSt7Ci0rICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMq L30iCi0rfQotKwotKyMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBmaWxlIGFwcGVuZCBub25k aXJfcmVwbGFjZW1lbnQKLSsjIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1l IGluIGEgc2luZ2xlIGZ1bmN0aW9uCi0rIyBjYWxsOgotKyMgICBkaXJuYW1lOiAgQ29tcHV0ZSB0 aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCi0rIyAgICAgICAgICAgICBhZGQgQVBQ RU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0Ci0rIyAgICAgICAgICAgICB0 byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAi JGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9m IEZJTEUuCi0rIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGluICIkZnVuY19iYXNlbmFtZV9y ZXN1bHQiCi0rIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3luY2hyb25pemVkIHdpdGgg ZnVuY19kaXJuYW1lCi0rIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVmZmljaWVuY3ksIHdlIGRv IG5vdCBkZWxlZ2F0ZSB0bwotKyMgdGhvc2UgZnVuY3Rpb25zIGJ1dCBpbnN0ZWFkIGR1cGxpY2F0 ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgotK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkK LSt7Ci0rICBjYXNlICR7MX0gaW4KLSsgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezEl Lyp9JHsyfSIgOzsKLSsgICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OwotKyAg ZXNhYwotKyAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgotK30KLSsKLSsjIGZ1bmNf c3RyaXBuYW1lIHByZWZpeCBzdWZmaXggbmFtZQotKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVgg b2ZmIG9mIE5BTUUuCi0rIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2Ji aW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSsjIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWdu cywgYnV0IFNVRkZJWCBtYXkgY29udGFpbiBhIGxlYWRpbmcKLSsjIGRvdCAoaW4gd2hpY2ggY2Fz ZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCi0rZnVuY19zdHJpcG5hbWUgKCkKLSt7Ci0rICAj IHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJlY3RseSBpZiBib3RoIFggYW5k IFkgYXJlCi0rICAjIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgc28gYXNzaWduIG9uZSB0byBvcmRp bmFyeSBwYXJhbWV0ZXIgZmlyc3QuCi0rICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHszfQotKyAg ZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0IyIkezF9In0KLSsg IGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCUiJHsyfSJ9Ci0r fQotKwotKyMgZnVuY19vcHRfc3BsaXQKLStmdW5jX29wdF9zcGxpdCAoKQotK3sKLSsgIGZ1bmNf b3B0X3NwbGl0X29wdD0kezElJT0qfQotKyAgZnVuY19vcHRfc3BsaXRfYXJnPSR7MSMqPX0KLSt9 Ci0rCi0rIyBmdW5jX2xvMm8gb2JqZWN0Ci0rZnVuY19sbzJvICgpCi0rewotKyAgY2FzZSAkezF9 IGluCi0rICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7Ci0r ICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7OwotKyAgZXNhYwotK30KLSsKLSsjIGZ1 bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQotK2Z1bmNfeGZvcm0gKCkKLSt7Ci0rICBmdW5jX3hm b3JtX3Jlc3VsdD0kezElLip9LmxvCi0rfQotKwotKyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRl cm0uLi4KLStmdW5jX2FyaXRoICgpCi0rewotKyAgZnVuY19hcml0aF9yZXN1bHQ9JCgoICRbKl0g KSkKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdp dGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX0K LSt9Ci0rCi0rX0xUX0VPRgotKyAgICA7OwotKyAgKikgIyBCb3VybmUgY29tcGF0aWJsZSBmdW5j dGlvbnMuCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0rCi0rIyBmdW5jX2Rp cm5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBDb21wdXRlIHRoZSBkaXJu YW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAotKyMg b3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotK2Z1bmNfZGlybmFt ZSAoKQotK3sKLSsgICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0r ICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1l ImAKLSsgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0r ICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0rICBlbHNlCi0rICAgIGZ1bmNfZGlybmFt ZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKLSsgIGZpCi0rfQotKwotKyMgZnVu Y19iYXNlbmFtZSBmaWxlCi0rZnVuY19iYXNlbmFtZSAoKQotK3sKLSsgIGZ1bmNfYmFzZW5hbWVf cmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0rfQotKwotK2Ru bCBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lCi0rZG5sIEEgcG9ydGFibGUgdmVyc2lvbiBvZiB0 aGlzIGZ1bmN0aW9uIGlzIGFscmVhZHkgZGVmaW5lZCBpbiBnZW5lcmFsLm00c2gKLStkbmwgc28g dGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQgaGVyZS4KLSsKLSsjIGZ1bmNfc3RyaXBuYW1lIHByZWZp eCBzdWZmaXggbmFtZQotKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCi0r IyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNw ZWNpYWwKLSsjIGNoYXJhY3RlcnMsIGhhc2hlcywgcGVyY2VudCBzaWducywgYnV0IFNVRkZJWCBt YXkgY29udGFpbiBhIGxlYWRpbmcKLSsjIGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMg b25seSBhIGRvdCkuCi0rIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQotK2Z1bmNfc3Ry aXBuYW1lICgpCi0rewotKyAgY2FzZSAkezJ9IGluCi0rICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAotKyAgICAgICAgICAgfCAkWHNlZCAtZSAicyVeJHsxfSUl IiAtZSAicyVcXFxcJHsyfVwkJSUiYDs7Ci0rICAgICopICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9 YCRFQ0hPICJYJHszfSIgXAotKyAgICAgICAgICAgfCAkWHNlZCAtZSAicyVeJHsxfSUlIiAtZSAi cyUkezJ9XCQlJSJgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBzZWQgc2NyaXB0czoKLStteV9zZWRf bG9uZ19vcHQ9JzFzL15cKC1bW149XV0qXCk9LiovXDEvO3EnCi0rbXlfc2VkX2xvbmdfYXJnPScx cy9eLVtbXj1dXSo9Ly8nCi0rCi0rIyBmdW5jX29wdF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgp Ci0rewotKyAgZnVuY19vcHRfc3BsaXRfb3B0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRt eV9zZWRfbG9uZ19vcHQiYAotKyAgZnVuY19vcHRfc3BsaXRfYXJnPWAkRUNITyAiWCR7MX0iIHwg JFhzZWQgLWUgIiRteV9zZWRfbG9uZ19hcmciYAotK30KLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QK LStmdW5jX2xvMm8gKCkKLSt7Ci0rICBmdW5jX2xvMm9fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwg JFhzZWQgLWUgIiRsbzJvImAKLSt9Ci0rCi0rIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UK LStmdW5jX3hmb3JtICgpCi0rewotKyAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIg fCAkWHNlZCAtZSAncy9cLltbXi5dXSokLy5sby8nYAotK30KLSsKLSsjIGZ1bmNfYXJpdGggYXJp dGhtZXRpYy10ZXJtLi4uCi0rZnVuY19hcml0aCAoKQotK3sKLSsgIGZ1bmNfYXJpdGhfcmVzdWx0 PWBleHByICIkW0BdImAKLSt9Ci0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNUUklORyBtYXkg bm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICBmdW5jX2xlbl9y ZXN1bHQ9YGV4cHIgIiRbMV0iIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xl bmAKLSt9Ci0rCi0rX0xUX0VPRgotK2VzYWMKLSsKLStjYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4K LSsgIHllcykKLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNf YXBwZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFy aWFibGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0rewotKyAgZXZhbCAiJFsxXSs9XCRbMl0iCi0r fQotK19MVF9FT0YKLSsgICAgOzsKLSsgICopCi0rICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNm Z2ZpbGUiCi0rCi0rIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKLSsjIEFwcGVuZCBWQUxVRSB0byB0 aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KLStmdW5jX2FwcGVuZCAoKQotK3sKLSsgIGV2 YWwgIiRbMV09XCQkWzFdXCRbMl0iCi0rfQotKwotK19MVF9FT0YKLSsgICAgOzsKLSsgIGVzYWMK LStdKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG1haW4uc2ggc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvbHRtYWluLnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG1haW4uc2gJMjAwOS0wNS0yMyAxMDowMTo1NS4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODQwNiBAQAotKyMgR2VuZXJhdGVkIGZyb20gbHRtYWlu Lm00c2guCi0rCi0rIyBsdG1haW4uc2ggKEdOVSBsaWJ0b29sKSAyLjIuNgotKyMgV3JpdHRlbiBi eSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNyAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KyMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25k aXRpb25zLiAgVGhlcmUgaXMgTk8KLSsjIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotKyMgR05VIExp YnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxl IGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNpbmcg R05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBzYW1l IGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJv Z3JhbS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25n IHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkK LSsjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dw bC5odG1sLAotKyMgb3Igb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rCi0rIyBVc2FnZTogJHByb2duYW1lIFtPUFRJT05d Li4uIFtNT0RFLUFSR10uLi4KLSsjCi0rIyBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVp bGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KLSsjCi0rIyAgICAgLS1jb25maWcgICAgICAgICAgICAg c2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSsjICAgICAtLWRlYnVnICAgICAgICAg ICAgICBlbmFibGUgdmVyYm9zZSBzaGVsbCB0cmFjaW5nCi0rIyAtbiwgLS1kcnktcnVuICAgICAg ICAgICAgZGlzcGxheSBjb21tYW5kcyB3aXRob3V0IG1vZGlmeWluZyBhbnkgZmlsZXMKLSsjICAg ICAtLWZlYXR1cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3Jt YXRpb24gYW5kIGV4aXQKLSsjICAgICAtLW1vZGU9TU9ERSAgICAgICAgICB1c2Ugb3BlcmF0aW9u IG1vZGUgTU9ERQotKyMgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMgIGRvbid0IHJlbW92ZSBkdXBs aWNhdGUgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSsjICAgICAtLXF1aWV0LCAtLXNpbGVudCAgICBk b24ndCBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAgICAgLS10YWc9VEFHICAgICAg ICAgICAgdXNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZyb20gdGFnIFRBRwotKyMgLXYsIC0t dmVyYm9zZSAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQp Ci0rIyAgICAgLS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgot KyMgLWgsIC0taGVscCAgICAgICAgICAgICAgIHByaW50IHNob3J0IG9yIGxvbmcgaGVscCBtZXNz YWdlCi0rIwotKyMgTU9ERSBtdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgotKyMKLSsjICAg ICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0 b3J5Ci0rIyAgICAgICBjb21waWxlICAgICAgICAgICAgY29tcGlsZSBhIHNvdXJjZSBmaWxlIGlu dG8gYSBsaWJ0b29sIG9iamVjdAotKyMgICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRp Y2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCi0rIyAgICAgICBmaW5p c2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJh cmllcwotKyMgICAgICAgaW5zdGFsbCAgICAgICAgICAgIGluc3RhbGwgbGlicmFyaWVzIG9yIGV4 ZWN1dGFibGVzCi0rIyAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBv ciBhbiBleGVjdXRhYmxlCi0rIyAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJh cmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKLSsjCi0rIyBNT0RFLUFSR1MgdmFyeSBk ZXBlbmRpbmcgb24gdGhlIE1PREUuCi0rIyBUcnkgYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPU1P REUnIGZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgTU9ERS4KLSsjCi0rIyBXaGVu IHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGRlc2NyaWJlIGEgdGVzdCBjYXNlIHRvIHJlcHJvZHVj ZSBpdCBhbmQKLSsjIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKLSsjCi0rIyAg ICAgICBob3N0LXRyaXBsZXQ6CSRob3N0Ci0rIyAgICAgICBzaGVsbDoJCSRTSEVMTAotKyMgICAg ICAgY29tcGlsZXI6CQkkTFRDQwotKyMgICAgICAgY29tcGlsZXIgZmxhZ3M6CQkkTFRDRkxBR1MK LSsjICAgICAgIGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCi0rIyAgICAgICAkcHJv Z25hbWU6CQkoR05VIGxpYnRvb2wpIDIuMi42Ci0rIyAgICAgICBhdXRvbWFrZToJCSRhdXRvbWFr ZV92ZXJzaW9uCi0rIyAgICAgICBhdXRvY29uZjoJCSRhdXRvY29uZl92ZXJzaW9uCi0rIwotKyMg UmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5vcmc+LgotKwotK1BST0dSQU09bHRtYWlu LnNoCi0rUEFDS0FHRT1saWJ0b29sCi0rVkVSU0lPTj0yLjIuNgotK1RJTUVTVEFNUD0iIgotK3Bh Y2thZ2VfcmV2aXNpb249MS4zMDEyCi0rCi0rIyBCZSBCb3VybmUgY29tcGF0aWJsZQotK2lmIHRl c3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4m MTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFpzaCAzLnggYW5kIDQu eCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCi0rICAjIGlzIGNv bnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgotKyAgYWxpYXMgLWcg JyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2Vsc2UKLSsgIGNh c2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAqcG9zaXgqKSBzZXQgLW8gcG9zaXg7OyBlc2Fj Ci0rZmkKLStCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBUcnU2NAotK0RVQUxDQVNF PTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLSsKLSsjIE5MUyBudWlzYW5jZXM6IFdl IHNhdmUgdGhlIG9sZCB2YWx1ZXMgdG8gcmVzdG9yZSBkdXJpbmcgZXhlY3V0ZSBtb2RlLgotKyMg T25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCi0rIyBUaGVzZSBt dXN0IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5IGJlY2F1c2Ugbm90IGFsbCBzeXN0ZW1zIHVu ZGVyc3RhbmQKLSsjIGUuZy4gTEFORz1DIChub3RhYmx5IFNDTykuCi0rbHRfdXNlcl9sb2NhbGU9 Ci0rbHRfc2FmZV9sb2NhbGU9Ci0rZm9yIGx0X3ZhciBpbiBMQU5HIExBTkdVQUdFIExDX0FMTCBM Q19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCi0rZG8KLSsgIGV2YWwgImlmIHRlc3QgXCJc JHskbHRfdmFyK3NldH1cIiA9IHNldDsgdGhlbgotKyAgICAgICAgICBzYXZlXyRsdF92YXI9XCQk bHRfdmFyCi0rICAgICAgICAgICRsdF92YXI9QwotKwkgIGV4cG9ydCAkbHRfdmFyCi0rCSAgbHRf dXNlcl9sb2NhbGU9XCIkbHRfdmFyPVxcXCRzYXZlX1wkbHRfdmFyOyBcJGx0X3VzZXJfbG9jYWxl XCIKLSsJICBsdF9zYWZlX2xvY2FsZT1cIiRsdF92YXI9QzsgXCRsdF9zYWZlX2xvY2FsZVwiCi0r CWZpIgotK2RvbmUKLSsKLSskbHRfdW5zZXQgQ0RQQVRICi0rCi0rCi0rCi0rCi0rCi0rOiAke0NQ PSJjcCAtZiJ9Ci0rOiAke0VDSE89ImVjaG8ifQotKzogJHtFR1JFUD0iL2Jpbi9ncmVwIC1FIn0K LSs6ICR7RkdSRVA9Ii9iaW4vZ3JlcCAtRiJ9Ci0rOiAke0dSRVA9Ii9iaW4vZ3JlcCJ9Ci0rOiAk e0xOX1M9ImxuIC1zIn0KLSs6ICR7TUFLRT0ibWFrZSJ9Ci0rOiAke01LRElSPSJta2RpciJ9Ci0r OiAke01WPSJtdiAtZiJ9Ci0rOiAke1JNPSJybSAtZiJ9Ci0rOiAke1NFRD0iL2Jpbi9zZWQifQot KzogJHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQotKzogJHtYc2VkPSIkU0VEIC1l IDFzL15YLy8ifQotKwotKyMgR2xvYmFsIHZhcmlhYmxlczoKLStFWElUX1NVQ0NFU1M9MAotK0VY SVRfRkFJTFVSRT0xCi0rRVhJVF9NSVNNQVRDSD02MyAgIyAkPyA9IDYzIGlzIHVzZWQgdG8gaW5k aWNhdGUgdmVyc2lvbiBtaXNtYXRjaCB0byBtaXNzaW5nLgotK0VYSVRfU0tJUD03NwkgICMgJD8g PSA3NyBpcyB1c2VkIHRvIGluZGljYXRlIGEgc2tpcHBlZCB0ZXN0IHRvIGF1dG9tYWtlLgotKwot K2V4aXRfc3RhdHVzPSRFWElUX1NVQ0NFU1MKLSsKLSsjIE1ha2Ugc3VyZSBJRlMgaGFzIGEgc2Vu c2libGUgZGVmYXVsdAotK2x0X25sPScKLSsnCi0rSUZTPSIgCSRsdF9ubCIKLSsKLStkaXJuYW1l PSJzLC9bXi9dKiQsLCIKLStiYXNlbmFtZT0icyxeLiovLCwiCi0rCi0rIyBmdW5jX2Rpcm5hbWVf YW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAotKyMgcGVyZm9ybSBm dW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KLSsjIGNh bGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25l bXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNl IHNldCByZXN1bHQKLSsjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLSsjICAg ICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsjICAg YmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSsjICAgICAgICAgICAgIHZhbHVl IHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsjIEltcGxlbWVudGF0aW9uIG11 c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKLSsjIGFuZCBmdW5jX2Jh c2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCi0rIyB0aG9zZSBm dW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCi0r ZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotK3sKLSsgICMgRXh0cmFjdCBzdWJkaXJlY3Rv cnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiWCR7 MX0iIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKLSsgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jl c3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0rICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0r ICBlbHNlCi0rICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsy fSIKLSsgIGZpCi0rICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2Vk IC1lICIkYmFzZW5hbWUiYAotK30KLSsKLSsjIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5z ZXJ0ZWQgaGVyZS4KLSsKLSsjIFdvcmsgYXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNz dWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKLSsjIGlzIGtzaCBidXQgd2hlbiB0aGUg c2hlbGwgaXMgaW52b2tlZCBhcyAic2giIGFuZCB0aGUgY3VycmVudCB2YWx1ZSBvZgotKyMgdGhl IF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVxdWFsIHRvIDEgKG9uZSksIHRoZSBz cGVjaWFsCi0rIyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24gY2Fs bCwgaXMgdGhlIG5hbWUgb2YgdGhlCi0rIyBmdW5jdGlvbi4KLStwcm9ncGF0aD0iJDAiCi0rCi0r IyBUaGUgbmFtZSBvZiB0aGlzIHByb2dyYW06Ci0rIyBJbiB0aGUgdW5saWtlbHkgZXZlbnQgJHBy b2duYW1lIGJlZ2FuIHdpdGggYSAnLScsIGl0IHdvdWxkIHBsYXkgaGF2b2Mgd2l0aAotKyMgZnVu Y19lY2hvIChpbWFnaW5lIHByb2duYW1lPS1uKSwgc28gd2UgcHJlcGVuZCAuLyBpbiB0aGF0IGNh c2U6Ci0rZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJHByb2dwYXRoIgotK3Byb2duYW1lPSRm dW5jX2Jhc2VuYW1lX3Jlc3VsdAotK2Nhc2UgJHByb2duYW1lIGluCi0rICAtKikgcHJvZ25hbWU9 Li8kcHJvZ25hbWUgOzsKLStlc2FjCi0rCi0rIyBNYWtlIHN1cmUgd2UgaGF2ZSBhbiBhYnNvbHV0 ZSBwYXRoIGZvciByZWV4ZWN1dGlvbjoKLStjYXNlICRwcm9ncGF0aCBpbgotKyAgW1xcL10qfFtB LVphLXpdOlxcKikgOzsKLSsgICpbXFwvXSopCi0rICAgICBwcm9nZGlyPSRmdW5jX2Rpcm5hbWVf cmVzdWx0Ci0rICAgICBwcm9nZGlyPWBjZCAiJHByb2dkaXIiICYmIHB3ZGAKLSsgICAgIHByb2dw YXRoPSIkcHJvZ2Rpci8kcHJvZ25hbWUiCi0rICAgICA7OwotKyAgKikKLSsgICAgIHNhdmVfSUZT PSIkSUZTIgotKyAgICAgSUZTPToKLSsgICAgIGZvciBwcm9nZGlyIGluICRQQVRIOyBkbwotKyAg ICAgICBJRlM9IiRzYXZlX0lGUyIKLSsgICAgICAgdGVzdCAteCAiJHByb2dkaXIvJHByb2duYW1l IiAmJiBicmVhawotKyAgICAgZG9uZQotKyAgICAgSUZTPSIkc2F2ZV9JRlMiCi0rICAgICB0ZXN0 IC1uICIkcHJvZ2RpciIgfHwgcHJvZ2Rpcj1gcHdkYAotKyAgICAgcHJvZ3BhdGg9IiRwcm9nZGly LyRwcm9nbmFtZSIKLSsgICAgIDs7Ci0rZXNhYwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0 IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKLSsjIG1ldGFj aGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJp bmdzLgotK1hzZWQ9IiR7U0VEfSInIC1lIDFzL15YLy8nCi0rc2VkX3F1b3RlX3N1YnN0PSdzL1wo W2AiJFxcXVwpL1xcXDEvZycKLSsKLSsjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUg dmFyaWFibGUgcmVmZXJlbmNlcy4KLStkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9c XFwxL2cnCi0rCi0rIyBSZS1gXCcgcGFyYW1ldGVyIGV4cGFuc2lvbnMgaW4gb3V0cHV0IG9mIGRv dWJsZV9xdW90ZV9zdWJzdCB0aGF0IHdlcmUKLSsjIGBcJy1lZCBpbiBpbnB1dCB0byB0aGUgc2Ft ZS4gIElmIGFuIG9kZCBudW1iZXIgb2YgYFwnIHByZWNlZGVkIGEgJyQnCi0rIyBpbiBpbnB1dCB0 byBkb3VibGVfcXVvdGVfc3Vic3QsIHRoYXQgJyQnIHdhcyBwcm90ZWN0ZWQgZnJvbSBleHBhbnNp b24uCi0rIyBTaW5jZSBlYWNoIGlucHV0IGBcJyBpcyBub3cgdHdvIGBcJ3MsIGxvb2sgZm9yIGFu eSBudW1iZXIgb2YgcnVucyBvZgotKyMgZm91ciBgXCdzIGZvbGxvd2VkIGJ5IHR3byBgXCdzIGFu ZCB0aGVuIGEgJyQnLiAgYFwnIHRoYXQgJyQnLgotK2JzPSdcXCcKLSticzI9J1xcXFwnCi0rYnM0 PSdcXFxcXFxcXCcKLStkb2xsYXI9J1wkJwotK3NlZF9kb3VibGVfYmFja3NsYXNoPSJcCi0rICBz LyRiczQvJlxcCi0rL2cKLSsgIHMvXiRiczIkZG9sbGFyLyRicyYvCi0rICBzL1xcKFteJGJzXVxc KSRiczIkZG9sbGFyL1xcMSRiczIkYnMkZG9sbGFyL2cKLSsgIHMvXG4vL2ciCi0rCi0rIyBTdGFu ZGFyZCBvcHRpb25zOgotK29wdF9kcnlfcnVuPWZhbHNlCi0rb3B0X2hlbHA9ZmFsc2UKLStvcHRf cXVpZXQ9ZmFsc2UKLStvcHRfdmVyYm9zZT1mYWxzZQotK29wdF93YXJuaW5nPToKLSsKLSsjIGZ1 bmNfZWNobyBhcmcuLi4KLSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UsIGFs b25nIHdpdGggdGhlIGN1cnJlbnQgbW9kZQotKyMgbmFtZSBpZiBpdCBoYXMgYmVlbiBzZXQgeWV0 LgotK2Z1bmNfZWNobyAoKQotK3sKLSsgICAgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9k ZTogJCoiCi0rfQotKwotKyMgZnVuY192ZXJib3NlIGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSBpbiB2ZXJib3NlIG1vZGUgb25seS4KLStmdW5jX3ZlcmJvc2Ug KCkKLSt7Ci0rICAgICRvcHRfdmVyYm9zZSAmJiBmdW5jX2VjaG8gJHsxKyIkQCJ9Ci0rCi0rICAg ICMgQSBidWcgaW4gYmFzaCBoYWx0cyB0aGUgc2NyaXB0IGlmIHRoZSBsYXN0IGxpbmUgb2YgYSBm dW5jdGlvbgotKyAgICAjIGZhaWxzIHdoZW4gc2V0IC1lIGlzIGluIGZvcmNlLCBzbyB3ZSBuZWVk IGFub3RoZXIgY29tbWFuZCB0bwotKyAgICAjIHdvcmsgYXJvdW5kIHRoYXQ6Ci0rICAgIDoKLSt9 Ci0rCi0rIyBmdW5jX2Vycm9yIGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQg bWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KLStmdW5jX2Vycm9yICgpCi0rewotKyAgICAkRUNI TyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAiJHsxKyIkQCJ9IDE+JjIKLSt9Ci0rCi0rIyBm dW5jX3dhcm5pbmcgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCB3YXJuaW5n IG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCi0rZnVuY193YXJuaW5nICgpCi0rewotKyAgICAk b3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogd2FybmluZzog IiR7MSsiJEAifSAxPiYyCi0rCi0rICAgICMgYmFzaCBidWcgYWdhaW46Ci0rICAgIDoKLSt9Ci0r Ci0rIyBmdW5jX2ZhdGFsX2Vycm9yIGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4 ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgYW5kIGV4aXQuCi0rZnVuY19mYXRhbF9lcnJv ciAoKQotK3sKLSsgICAgZnVuY19lcnJvciAkezErIiRAIn0KLSsgICAgZXhpdCAkRVhJVF9GQUlM VVJFCi0rfQotKwotKyMgZnVuY19mYXRhbF9oZWxwIGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5h bWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvciwgZm9sbG93ZWQgYnkKLSsjIGEg aGVscCBoaW50LCBhbmQgZXhpdC4KLStmdW5jX2ZhdGFsX2hlbHAgKCkKLSt7Ci0rICAgIGZ1bmNf ZXJyb3IgJHsxKyIkQCJ9Ci0rICAgIGZ1bmNfZmF0YWxfZXJyb3IgIiRoZWxwIgotK30KLStoZWxw PSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iICAjIyBkZWZh dWx0Ci0rCi0rCi0rIyBmdW5jX2dyZXAgZXhwcmVzc2lvbiBmaWxlbmFtZQotKyMgQ2hlY2sgd2hl dGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxpbmUgb2YgRklMRU5BTUUsIHdpdGhvdXQgb3V0 cHV0LgotK2Z1bmNfZ3JlcCAoKQotK3sKLSsgICAgJEdSRVAgIiQxIiAiJDIiID4vZGV2L251bGwg Mj4mMQotK30KLSsKLSsKLSsjIGZ1bmNfbWtkaXJfcCBkaXJlY3RvcnktcGF0aAotKyMgTWFrZSBz dXJlIHRoZSBlbnRpcmUgcGF0aCB0byBESVJFQ1RPUlktUEFUSCBpcyBhdmFpbGFibGUuCi0rZnVu Y19ta2Rpcl9wICgpCi0rewotKyAgICBteV9kaXJlY3RvcnlfcGF0aD0iJDEiCi0rICAgIG15X2Rp cl9saXN0PQotKwotKyAgICBpZiB0ZXN0IC1uICIkbXlfZGlyZWN0b3J5X3BhdGgiICYmIHRlc3Qg IiRvcHRfZHJ5X3J1biIgIT0gIjoiOyB0aGVuCi0rCi0rICAgICAgIyBQcm90ZWN0IGRpcmVjdG9y eSBuYW1lcyBzdGFydGluZyB3aXRoIGAtJwotKyAgICAgIGNhc2UgJG15X2RpcmVjdG9yeV9wYXRo IGluCi0rICAgICAgICAtKikgbXlfZGlyZWN0b3J5X3BhdGg9Ii4vJG15X2RpcmVjdG9yeV9wYXRo IiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIFdoaWxlIHNvbWUgcG9ydGlvbiBvZiBESVIg ZG9lcyBub3QgeWV0IGV4aXN0Li4uCi0rICAgICAgd2hpbGUgdGVzdCAhIC1kICIkbXlfZGlyZWN0 b3J5X3BhdGgiOyBkbwotKyAgICAgICAgIyAuLi5tYWtlIGEgbGlzdCBpbiB0b3Btb3N0IGZpcnN0 IG9yZGVyLiAgVXNlIGEgY29sb24gZGVsaW1pdGVkCi0rCSMgbGlzdCBpbmNhc2Ugc29tZSBwb3J0 aW9uIG9mIHBhdGggY29udGFpbnMgd2hpdGVzcGFjZS4KLSsgICAgICAgIG15X2Rpcl9saXN0PSIk bXlfZGlyZWN0b3J5X3BhdGg6JG15X2Rpcl9saXN0IgotKwotKyAgICAgICAgIyBJZiB0aGUgbGFz dCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwgdGhlIGxpc3QgaXMgZG9uZQotKyAg ICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4gKi8qKSA7OyAqKSBicmVhayA7OyBlc2Fj Ci0rCi0rICAgICAgICAjIC4uLm90aGVyd2lzZSB0aHJvdyBhd2F5IHRoZSBjaGlsZCBkaXJlY3Rv cnkgYW5kIGxvb3AKLSsgICAgICAgIG15X2RpcmVjdG9yeV9wYXRoPWAkRUNITyAiWCRteV9kaXJl Y3RvcnlfcGF0aCIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotKyAgICAgIGRvbmUKLSsgICAgICBt eV9kaXJfbGlzdD1gJEVDSE8gIlgkbXlfZGlyX2xpc3QiIHwgJFhzZWQgLWUgJ3MsOiokLCwnYAot KwotKyAgICAgIHNhdmVfbWtkaXJfcF9JRlM9IiRJRlMiOyBJRlM9JzonCi0rICAgICAgZm9yIG15 X2RpciBpbiAkbXlfZGlyX2xpc3Q7IGRvCi0rCUlGUz0iJHNhdmVfbWtkaXJfcF9JRlMiCi0rICAg ICAgICAjIG1rZGlyIGNhbiBmYWlsIHdpdGggYSBgRmlsZSBleGlzdCcgZXJyb3IgaWYgdHdvIHBy b2Nlc3NlcwotKyAgICAgICAgIyB0cnkgdG8gY3JlYXRlIG9uZSBvZiB0aGUgZGlyZWN0b3JpZXMg Y29uY3VycmVudGx5LiAgRG9uJ3QKLSsgICAgICAgICMgc3RvcCBpbiB0aGF0IGNhc2UhCi0rICAg ICAgICAkTUtESVIgIiRteV9kaXIiIDI+L2Rldi9udWxsIHx8IDoKLSsgICAgICBkb25lCi0rICAg ICAgSUZTPSIkc2F2ZV9ta2Rpcl9wX0lGUyIKLSsKLSsgICAgICAjIEJhaWwgb3V0IGlmIHdlIChv ciBzb21lIG90aGVyIHByb2Nlc3MpIGZhaWxlZCB0byBjcmVhdGUgYSBkaXJlY3RvcnkuCi0rICAg ICAgdGVzdCAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIiB8fCBcCi0rICAgICAgICBmdW5jX2ZhdGFs X2Vycm9yICJGYWlsZWQgdG8gY3JlYXRlIFxgJDEnIgotKyAgICBmaQotK30KLSsKLSsKLSsjIGZ1 bmNfbWt0ZW1wZGlyIFtzdHJpbmddCi0rIyBNYWtlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0aGF0 IHdvbid0IGNsYXNoIHdpdGggb3RoZXIgcnVubmluZwotKyMgbGlidG9vbCBwcm9jZXNzZXMsIGFu ZCBhdm9pZHMgcmFjZSBjb25kaXRpb25zIGlmIHBvc3NpYmxlLiAgSWYKLSsjIGdpdmVuLCBTVFJJ TkcgaXMgdGhlIGJhc2VuYW1lIGZvciB0aGF0IGRpcmVjdG9yeS4KLStmdW5jX21rdGVtcGRpciAo KQotK3sKLSsgICAgbXlfdGVtcGxhdGU9IiR7VE1QRElSLS90bXB9LyR7MS0kcHJvZ25hbWV9Igot KwotKyAgICBpZiB0ZXN0ICIkb3B0X2RyeV9ydW4iID0gIjoiOyB0aGVuCi0rICAgICAgIyBSZXR1 cm4gYSBkaXJlY3RvcnkgbmFtZSwgYnV0IGRvbid0IGNyZWF0ZSBpdCBpbiBkcnktcnVuIG1vZGUK LSsgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSQkIgotKyAgICBlbHNlCi0rCi0rICAg ICAgIyBJZiBta3RlbXAgd29ya3MsIHVzZSB0aGF0IGZpcnN0IGFuZCBmb3JlbW9zdAotKyAgICAg IG15X3RtcGRpcj1gbWt0ZW1wIC1kICIke215X3RlbXBsYXRlfS1YWFhYWFhYWCIgMj4vZGV2L251 bGxgCi0rCi0rICAgICAgaWYgdGVzdCAhIC1kICIkbXlfdG1wZGlyIjsgdGhlbgotKyAgICAgICAg IyBGYWlsaW5nIHRoYXQsIGF0IGxlYXN0IHRyeSBhbmQgdXNlICRSQU5ET00gdG8gYXZvaWQgYSBy YWNlCi0rICAgICAgICBteV90bXBkaXI9IiR7bXlfdGVtcGxhdGV9LSR7UkFORE9NLTB9JCQiCi0r Ci0rICAgICAgICBzYXZlX21rdGVtcGRpcl91bWFzaz1gdW1hc2tgCi0rICAgICAgICB1bWFzayAw MDc3Ci0rICAgICAgICAkTUtESVIgIiRteV90bXBkaXIiCi0rICAgICAgICB1bWFzayAkc2F2ZV9t a3RlbXBkaXJfdW1hc2sKLSsgICAgICBmaQotKwotKyAgICAgICMgSWYgd2UncmUgbm90IGluIGRy eS1ydW4gbW9kZSwgYm9tYiBvdXQgb24gZmFpbHVyZQotKyAgICAgIHRlc3QgLWQgIiRteV90bXBk aXIiIHx8IFwKLSsgICAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBjcmVhdGUgdGVtcG9y YXJ5IGRpcmVjdG9yeSBcYCRteV90bXBkaXInIgotKyAgICBmaQotKwotKyAgICAkRUNITyAiWCRt eV90bXBkaXIiIHwgJFhzZWQKLSt9Ci0rCi0rCi0rIyBmdW5jX3F1b3RlX2Zvcl9ldmFsIGFyZwot KyMgQWVzdGhldGljYWxseSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyLgotKyMgVGhpcyBm dW5jdGlvbiByZXR1cm5zIHR3byB2YWx1ZXM6IEZVTkNfUVVPVEVfRk9SX0VWQUxfUkVTVUxUCi0r IyBpcyBkb3VibGUtcXVvdGVkLCBzdWl0YWJsZSBmb3IgYSBzdWJzZXF1ZW50IGV2YWwsIHdoZXJl YXMKLSsjIEZVTkNfUVVPVEVfRk9SX0VWQUxfVU5RVU9URURfUkVTVUxUIGhhcyBtZXJlbHkgYWxs IGNoYXJhY3RlcnMKLSsjIHdoaWNoIGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZSBxdW90 ZXMgYmFja3NsYXNoaWZpZWQuCi0rZnVuY19xdW90ZV9mb3JfZXZhbCAoKQotK3sKLSsgICAgY2Fz ZSAkMSBpbgotKyAgICAgICpbXFxcYFwiXCRdKikKLSsJZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1 b3RlZF9yZXN1bHQ9YCRFQ0hPICJYJDEiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYCA7 OwotKyAgICAgICopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3Vs dD0iJDEiIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkZnVuY19xdW90ZV9mb3JfZXZhbF91 bnF1b3RlZF9yZXN1bHQgaW4KLSsgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcg c2hlbGwgbWV0YWNoYXJhY3RlcnMgdG8gZGVsYXkKLSsgICAgICAjIHdvcmQgc3BsaXR0aW5nLCBj b21tYW5kIHN1YnN0aXR1dGlvbiBhbmQgYW5kIHZhcmlhYmxlCi0rICAgICAgIyBleHBhbnNpb24g Zm9yIGEgc3Vic2VxdWVudCBldmFsLgotKyAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5v dCBoYW5kbGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5Ci0rICAgICAgIyBpbiBzY2FuIHNldHMs IHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJhdGVseS4KLSsgICAgICAqW1xbXH5cI1xeXCZcKlwoXClc e1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0PSJcIiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdFwiIgotKyAg ICAgICAgOzsKLSsgICAgICAqKQotKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ9 IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdCIKLSsgICAgZXNhYwotK30KLSsK LSsKLSsjIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCBhcmcKLSsjIEFlc3RoZXRpY2FsbHkgcXVvdGUg QVJHIHRvIGJlIGV2YWxlZCBsYXRlcjsgc2FtZSBhcyBhYm92ZSwKLSsjIGJ1dCBkbyBub3QgcXVv dGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KLStmdW5jX3F1b3RlX2Zvcl9leHBhbmQgKCkKLSt7Ci0r ICAgIGNhc2UgJDEgaW4KLSsgICAgICAqW1xcXGBcIl0qKQotKwlteV9hcmc9YCRFQ0hPICJYJDEi IHwgJFhzZWQgXAotKwkgICAgLWUgIiRkb3VibGVfcXVvdGVfc3Vic3QiIC1lICIkc2VkX2RvdWJs ZV9iYWNrc2xhc2giYCA7OwotKyAgICAgICopCi0rICAgICAgICBteV9hcmc9IiQxIiA7OwotKyAg ICBlc2FjCi0rCi0rICAgIGNhc2UgJG15X2FyZyBpbgotKyAgICAgICMgRG91YmxlLXF1b3RlIGFy Z3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQotKyAgICAgICMgd29y ZCBzcGxpdHRpbmcgYW5kIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZvciBhIHN1YnNlcXVlbnQgZXZh bC4KLSsgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3NlIGJyYWNr ZXRzIGNvcnJlY3RseQotKyAgICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNl cGFyYXRlbHkuCi0rICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAld KnwqXSp8IiIpCi0rICAgICAgICBteV9hcmc9IlwiJG15X2FyZ1wiIgotKyAgICAgICAgOzsKLSsg ICAgZXNhYwotKwotKyAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0PSIkbXlfYXJnIgot K30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsIGNtZCBbZmFpbF9leHBdCi0rIyBVbmxlc3Mgb3B0 X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBUaGVuLCBpZiBvcHRfZHJ5cnVuIGlz Ci0rIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2YWx1YXRpb24gb2YgQ01EIGZh aWxzLCBhbmQgRkFJTF9FWFAKLSsjIGlzIGdpdmVuLCB0aGVuIGV2YWx1YXRlIGl0LgotK2Z1bmNf c2hvd19ldmFsICgpCi0rewotKyAgICBteV9jbWQ9IiQxIgotKyAgICBteV9mYWlsX2V4cD0iJHsy LTp9IgotKwotKyAgICAke29wdF9zaWxlbnQtZmFsc2V9IHx8IHsKLSsgICAgICBmdW5jX3F1b3Rl X2Zvcl9leHBhbmQgIiRteV9jbWQiCi0rICAgICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3Rl X2Zvcl9leHBhbmRfcmVzdWx0IgotKyAgICB9Ci0rCi0rICAgIGlmICR7b3B0X2RyeV9ydW4tZmFs c2V9OyB0aGVuIDo7IGVsc2UKLSsgICAgICBldmFsICIkbXlfY21kIgotKyAgICAgIG15X3N0YXR1 cz0kPwotKyAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7IGVsc2UKLSsJ ZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKLSsgICAgICBmaQotKyAgICBm aQotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSBjbWQgW2ZhaWxfZXhwXQotKyMg VW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0 X2RyeXJ1biBpcwotKyMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9u IG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCi0rIyBpcyBnaXZlbiwgdGhlbiBldmFsdWF0ZSBp dC4gIFVzZSB0aGUgc2F2ZWQgbG9jYWxlIGZvciBldmFsdWF0aW9uLgotK2Z1bmNfc2hvd19ldmFs X2xvY2FsZSAoKQotK3sKLSsgICAgbXlfY21kPSIkMSIKLSsgICAgbXlfZmFpbF9leHA9IiR7Mi06 fSIKLSsKLSsgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7Ci0rICAgICAgZnVuY19xdW90ZV9m b3JfZXhwYW5kICIkbXlfY21kIgotKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9m b3JfZXhwYW5kX3Jlc3VsdCIKLSsgICAgfQotKwotKyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNl fTsgdGhlbiA6OyBlbHNlCi0rICAgICAgZXZhbCAiJGx0X3VzZXJfbG9jYWxlCi0rCSAgICAkbXlf Y21kIgotKyAgICAgIG15X3N0YXR1cz0kPwotKyAgICAgIGV2YWwgIiRsdF9zYWZlX2xvY2FsZSIK LSsgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCi0rCWV2YWwg IihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCi0rICAgICAgZmkKLSsgICAgZmkKLSt9 Ci0rCi0rCi0rCi0rCi0rCi0rIyBmdW5jX3ZlcnNpb24KLSsjIEVjaG8gdmVyc2lvbiBtZXNzYWdl IHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5jX3ZlcnNpb24gKCkKLSt7Ci0rICAg ICRTRUQgLW4gJy9eIyAnJFBST0dSQU0nIChHTlUgLywvIyB3YXJyYW50eTsgLyB7Ci0rICAgICAg ICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKyAgICAgICAgcy9cKChDKVwpWyAwLTksLV0qXCggWzEt OV1bMC05XSpcKS9cMVwyLwotKyAgICAgICAgcAotKyAgICAgfScgPCAiJHByb2dwYXRoIgotKyAg ICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfdXNhZ2UKLSsjIEVjaG8gc2hvcnQgaGVscCBtZXNz YWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5jX3VzYWdlICgpCi0rewotKyAg ICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyAtaC8gewotKyAgICAgICAgcy9eIyAvLwotKwlzL14j ICokLy8KLSsJcy9cJHByb2duYW1lLyckcHJvZ25hbWUnLwotKwlwCi0rICAgIH0nIDwgIiRwcm9n cGF0aCIKLSsgICAgJEVDSE8KLSsgICAgJEVDSE8gInJ1biBcYCRwcm9nbmFtZSAtLWhlbHAgfCBt b3JlJyBmb3IgZnVsbCB1c2FnZSIKLSsgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfaGVscAot KyMgRWNobyBsb25nIGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCi0r ZnVuY19oZWxwICgpCi0rewotKyAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyBSZXBvcnQgYnVn cyB0by8gewotKyAgICAgICAgcy9eIyAvLwotKwlzL14jICokLy8KLSsJcypcJHByb2duYW1lKick cHJvZ25hbWUnKgotKwlzKlwkaG9zdConIiRob3N0IicqCi0rCXMqXCRTSEVMTConIiRTSEVMTCIn KgotKwlzKlwkTFRDQyonIiRMVENDIicqCi0rCXMqXCRMVENGTEFHUyonIiRMVENGTEFHUyInKgot KwlzKlwkTEQqJyIkTEQiJyoKLSsJcy9cJHdpdGhfZ251X2xkLyciJHdpdGhfZ251X2xkIicvCi0r CXMvXCRhdXRvbWFrZV92ZXJzaW9uLyciYChhdXRvbWFrZSAtLXZlcnNpb24pIDI+L2Rldi9udWxs IHwkU0VEIDFxYCInLwotKwlzL1wkYXV0b2NvbmZfdmVyc2lvbi8nImAoYXV0b2NvbmYgLS12ZXJz aW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KLSsJcAotKyAgICAgfScgPCAiJHByb2dwYXRo IgotKyAgICBleGl0ICQ/Ci0rfQotKwotKyMgZnVuY19taXNzaW5nX2FyZyBhcmduYW1lCi0rIyBF Y2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yIGFuZCBz ZXQgZ2xvYmFsCi0rIyBleGl0X2NtZC4KLStmdW5jX21pc3NpbmdfYXJnICgpCi0rewotKyAgICBm dW5jX2Vycm9yICJtaXNzaW5nIGFyZ3VtZW50IGZvciAkMSIKLSsgICAgZXhpdF9jbWQ9ZXhpdAot K30KLSsKLStleGl0X2NtZD06Ci0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB0aGF0IHdlIGhhdmUg YSB3b3JraW5nICRFQ0hPLgotK2lmIHRlc3QgIlgkMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsg ICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotKyAgc2hpZnQK LStlbGlmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0rICAjIEF2b2lkIGlu bGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVyCi0rICA6Ci0rZWxpZiB0ZXN0 ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCc7IHRoZW4KLSsgICMgWWlw cGVlLCAkRUNITyB3b3JrcyEKLSsgIDoKLStlbHNlCi0rICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNv cnJlY3Qgc2hlbGwsIGFuZCB0aGVuIG1heWJlICRFQ0hPIHdpbGwgd29yay4KLSsgIGV4ZWMgJFNI RUxMICIkcHJvZ3BhdGgiIC0tbm8tcmVleGVjICR7MSsiJEAifQotK2ZpCi0rCi0raWYgdGVzdCAi WCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSsgICMgdXNlZCBhcyBmYWxsYmFjayBlY2hv Ci0rICBzaGlmdAotKyAgY2F0IDw8RU9GCi0rJCoKLStFT0YKLSsgIGV4aXQgJEVYSVRfU1VDQ0VT UwotK2ZpCi0rCi0rbWFnaWM9IiUlJU1BR0lDIHZhcmlhYmxlJSUlIgotK21hZ2ljX2V4ZT0iJSUl TUFHSUMgRVhFIHZhcmlhYmxlJSUlIgotKwotKyMgR2xvYmFsIHZhcmlhYmxlcy4KLSsjICRtb2Rl IGlzIHVuc2V0Ci0rbm9ub3B0PQotK2V4ZWN1dGVfZGxmaWxlcz0KLStwcmVzZXJ2ZV9hcmdzPQot K2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKLStvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5s by8iCi0rZXh0cmFjdGVkX2FyY2hpdmVzPQotK2V4dHJhY3RlZF9zZXJpYWw9MAotKwotK29wdF9k cnlfcnVuPWZhbHNlCi0rb3B0X2R1cGxpY2F0ZV9kZXBzPWZhbHNlCi0rb3B0X3NpbGVudD1mYWxz ZQotK29wdF9kZWJ1Zz06Ci0rCi0rIyBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbiBhbnkgb2Yg dGhlIGFjdGlvbnMsIHRoZSBjb21tYW5kIGluIGl0Ci0rIyB3aWxsIGJlIGV4ZWNlZCBhdCB0aGUg ZW5kLiAgVGhpcyBwcmV2ZW50cyBoZXJlLWRvY3VtZW50cyBmcm9tIGJlaW5nCi0rIyBsZWZ0IG92 ZXIgYnkgc2hlbGxzLgotK2V4ZWNfY21kPQotKwotKyMgZnVuY19mYXRhbF9jb25maWd1cmF0aW9u IGFyZy4uLgotKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFuZGFy ZCBlcnJvciwgZm9sbG93ZWQgYnkKLSsjIGEgY29uZmlndXJhdGlvbiBmYWlsdXJlIGhpbnQsIGFu ZCBleGl0LgotK2Z1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAoKQotK3sKLSsgICAgZnVuY19lcnJv ciAkezErIiRAIn0KLSsgICAgZnVuY19lcnJvciAiU2VlIHRoZSAkUEFDS0FHRSBkb2N1bWVudGF0 aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKLSsgICAgZnVuY19mYXRhbF9lcnJvciAiRmF0YWwg Y29uZmlndXJhdGlvbiBlcnJvci4iCi0rfQotKwotKwotKyMgZnVuY19jb25maWcKLSsjIERpc3Bs YXkgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGFsbCB0aGUgdGFncyBpbiB0aGlzIHNjcmlwdC4KLStm dW5jX2NvbmZpZyAoKQotK3sKLSsgICAgcmVfYmVnaW5jZj0nXiMgIyMjIEJFR0lOIExJQlRPT0wn Ci0rICAgIHJlX2VuZGNmPSdeIyAjIyMgRU5EIExJQlRPT0wnCi0rCi0rICAgICMgRGVmYXVsdCBj b25maWd1cmF0aW9uLgotKyAgICAkU0VEICIxLC8kcmVfYmVnaW5jZiBDT05GSUcvZDsvJHJlX2Vu ZGNmIENPTkZJRy8sXCRkIiA8ICIkcHJvZ3BhdGgiCi0rCi0rICAgICMgTm93IHByaW50IHRoZSBj b25maWd1cmF0aW9ucyBmb3IgdGhlIHRhZ3MuCi0rICAgIGZvciB0YWduYW1lIGluICR0YWdsaXN0 OyBkbwotKyAgICAgICRTRUQgLW4gIi8kcmVfYmVnaW5jZiBUQUcgQ09ORklHOiAkdGFnbmFtZVwk LywvJHJlX2VuZGNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvcCIgPCAiJHByb2dwYXRoIgotKyAg ICBkb25lCi0rCi0rICAgIGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5jX2ZlYXR1cmVzCi0rIyBEaXNw bGF5IHRoZSBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQuCi0rZnVuY19mZWF0dXJl cyAoKQotK3sKLSsgICAgJEVDSE8gImhvc3Q6ICRob3N0IgotKyAgICBpZiB0ZXN0ICIkYnVpbGRf bGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgICRFQ0hPICJlbmFibGUgc2hhcmVkIGxp YnJhcmllcyIKLSsgICAgZWxzZQotKyAgICAgICRFQ0hPICJkaXNhYmxlIHNoYXJlZCBsaWJyYXJp ZXMiCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4K LSsgICAgICAkRUNITyAiZW5hYmxlIHN0YXRpYyBsaWJyYXJpZXMiCi0rICAgIGVsc2UKLSsgICAg ICAkRUNITyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgotKyAgICBmaQotKwotKyAgICBleGl0 ICQ/Ci0rfQotKwotKyMgZnVuY19lbmFibGVfdGFnIHRhZ25hbWUKLSsjIFZlcmlmeSB0aGF0IFRB R05BTUUgaXMgdmFsaWQsIGFuZCBlaXRoZXIgZmxhZyBhbiBlcnJvciBhbmQgZXhpdCwgb3IKLSsj IGVuYWJsZSB0aGUgVEFHTkFNRSB0YWcuICBXZSBhbHNvIGFkZCBUQUdOQU1FIHRvIHRoZSBnbG9i YWwgJHRhZ2xpc3QKLSsjIHZhcmlhYmxlIGhlcmUuCi0rZnVuY19lbmFibGVfdGFnICgpCi0rewot KyAgIyBHbG9iYWwgdmFyaWFibGU6Ci0rICB0YWduYW1lPSIkMSIKLSsKLSsgIHJlX2JlZ2luY2Y9 Il4jICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCi0rICByZV9lbmRj Zj0iXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCi0rICBzZWRfZXh0 cmFjdGNmPSIvJHJlX2JlZ2luY2YvLC8kcmVfZW5kY2YvcCIKLSsKLSsgICMgVmFsaWRhdGUgdGFn bmFtZS4KLSsgIGNhc2UgJHRhZ25hbWUgaW4KLSsgICAgKlshLV9BLVphLXowLTksL10qKQotKyAg ICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgdGFnIG5hbWU6ICR0YWduYW1lIgotKyAgICAg IDs7Ci0rICBlc2FjCi0rCi0rICAjIERvbid0IHRlc3QgZm9yIHRoZSAiZGVmYXVsdCIgQyB0YWcs IGFzIHdlIGtub3cgaXQncwotKyAgIyB0aGVyZSBidXQgbm90IHNwZWNpYWxseSBtYXJrZWQuCi0r ICBjYXNlICR0YWduYW1lIGluCi0rICAgIENDKSA7OwotKyAgICAqKQotKyAgICAgIGlmICRHUkVQ ICIkcmVfYmVnaW5jZiIgIiRwcm9ncGF0aCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCXRhZ2xp c3Q9IiR0YWdsaXN0ICR0YWduYW1lIgotKwotKwkjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9u LiAgQmUgY2FyZWZ1bCB0byBxdW90ZSB0aGUgcGF0aAotKwkjIGFuZCB0aGUgc2VkIHNjcmlwdCwg dG8gYXZvaWQgc3BsaXR0aW5nIG9uIHdoaXRlc3BhY2UsIGJ1dAotKwkjIGFsc28gZG9uJ3QgdXNl IG5vbi1wb3J0YWJsZSBxdW90ZXMgd2l0aGluIGJhY2txdW90ZXMgd2l0aGluCi0rCSMgcXVvdGVz IHdlIGhhdmUgdG8gZG8gaXQgaW4gMiBzdGVwczoKLSsJZXh0cmFjdGVkY2Y9YCRTRUQgLW4gLWUg IiRzZWRfZXh0cmFjdGNmIiA8ICIkcHJvZ3BhdGgiYAotKwlldmFsICIkZXh0cmFjdGVkY2YiCi0r ICAgICAgZWxzZQotKwlmdW5jX2Vycm9yICJpZ25vcmluZyB1bmtub3duIHRhZyAkdGFnbmFtZSIK LSsgICAgICBmaQotKyAgICAgIDs7Ci0rICBlc2FjCi0rfQotKwotKyMgUGFyc2Ugb3B0aW9ucyBv bmNlLCB0aG9yb3VnaGx5LiAgVGhpcyBjb21lcyBhcyBzb29uIGFzIHBvc3NpYmxlIGluCi0rIyB0 aGUgc2NyaXB0IHRvIG1ha2UgdGhpbmdzIGxpa2UgYGxpYnRvb2wgLS12ZXJzaW9uJyBoYXBwZW4g cXVpY2tseS4KLSt7Ci0rCi0rICAjIFNob3J0aGFuZCBmb3IgLS1tb2RlPWZvbywgb25seSB2YWxp ZCBhcyB0aGUgZmlyc3QgYXJndW1lbnQKLSsgIGNhc2UgJDEgaW4KLSsgIGNsZWFufGNsZWF8Y2xl fGNsKQotKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBjbGVhbiAkezErIiRAIn07IHNoaWZ0 Ci0rICAgIDs7Ci0rICBjb21waWxlfGNvbXBpbHxjb21waXxjb21wfGNvbXxjb3xjKQotKyAgICBz aGlmdDsgc2V0IGR1bW15IC0tbW9kZSBjb21waWxlICR7MSsiJEAifTsgc2hpZnQKLSsgICAgOzsK LSsgIGV4ZWN1dGV8ZXhlY3V0fGV4ZWN1fGV4ZWN8ZXhlfGV4fGUpCi0rICAgIHNoaWZ0OyBzZXQg ZHVtbXkgLS1tb2RlIGV4ZWN1dGUgJHsxKyIkQCJ9OyBzaGlmdAotKyAgICA7OwotKyAgZmluaXNo fGZpbmlzfGZpbml8ZmlufGZpfGYpCi0rICAgIHNoaWZ0OyBzZXQgZHVtbXkgLS1tb2RlIGZpbmlz aCAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICBpbnN0YWxsfGluc3RhbHxpbnN0YXxpbnN0 fGluc3xpbnxpKQotKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBpbnN0YWxsICR7MSsiJEAi fTsgc2hpZnQKLSsgICAgOzsKLSsgIGxpbmt8bGlufGxpfGwpCi0rICAgIHNoaWZ0OyBzZXQgZHVt bXkgLS1tb2RlIGxpbmsgJHsxKyIkQCJ9OyBzaGlmdAotKyAgICA7OwotKyAgdW5pbnN0YWxsfHVu aW5zdGFsfHVuaW5zdGF8dW5pbnN0fHVuaW5zfHVuaW58dW5pfHVufHUpCi0rICAgIHNoaWZ0OyBz ZXQgZHVtbXkgLS1tb2RlIHVuaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0Ci0rICAgIDs7Ci0rICBl c2FjCi0rCi0rICAjIFBhcnNlIG5vbi1tb2RlIHNwZWNpZmljIGFyZ3VtZW50czoKLSsgIHdoaWxl IHRlc3QgIiQjIiAtZ3QgMDsgZG8KLSsgICAgb3B0PSIkMSIKLSsgICAgc2hpZnQKLSsKLSsgICAg Y2FzZSAkb3B0IGluCi0rICAgICAgLS1jb25maWcpCQlmdW5jX2NvbmZpZwkJCQkJOzsKLSsKLSsg ICAgICAtLWRlYnVnKQkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKLSsJCQlm dW5jX2VjaG8gImVuYWJsaW5nIHNoZWxsIHRyYWNlIG1vZGUiCi0rCQkJb3B0X2RlYnVnPSdzZXQg LXgnCi0rCQkJJG9wdF9kZWJ1ZwotKwkJCTs7Ci0rCi0rICAgICAgLWRsb3BlbikJCXRlc3QgIiQj IiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhawotKwkJCWV4ZWN1dGVf ZGxmaWxlcz0iJGV4ZWN1dGVfZGxmaWxlcyAkMSIKLSsJCQlzaGlmdAotKwkJCTs7Ci0rCi0rICAg ICAgLS1kcnktcnVuIHwgLW4pCW9wdF9kcnlfcnVuPToJCQkJCTs7Ci0rICAgICAgLS1mZWF0dXJl cykgICAgICAgZnVuY19mZWF0dXJlcwkJCQkJOzsKLSsgICAgICAtLWZpbmlzaCkJCW1vZGU9ImZp bmlzaCIJCQkJCTs7Ci0rCi0rICAgICAgLS1tb2RlKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNf bWlzc2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCi0rCQkJY2FzZSAkMSBpbgotKwkJCSAgIyBWYWxp ZCBtb2RlIGFyZ3VtZW50czoKLSsJCQkgIGNsZWFuKQk7OwotKwkJCSAgY29tcGlsZSkJOzsKLSsJ CQkgIGV4ZWN1dGUpCTs7Ci0rCQkJICBmaW5pc2gpCTs7Ci0rCQkJICBpbnN0YWxsKQk7OwotKwkJ CSAgbGluaykJCTs7Ci0rCQkJICByZWxpbmspCTs7Ci0rCQkJICB1bmluc3RhbGwpCTs7Ci0rCi0r CQkJICAjIENhdGNoIGFueXRoaW5nIGVsc2UgYXMgYW4gZXJyb3IKLSsJCQkgICopIGZ1bmNfZXJy b3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCi0rCQkJICAgICBleGl0X2NtZD1leGl0Ci0r CQkJICAgICBicmVhawotKwkJCSAgICAgOzsKLSsJCSAgICAgICAgZXNhYwotKwotKwkJCW1vZGU9 IiQxIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtLXByZXNlcnZlLWR1cC1kZXBzKQot KwkJCW9wdF9kdXBsaWNhdGVfZGVwcz06CQkJCTs7Ci0rCi0rICAgICAgLS1xdWlldHwtLXNpbGVu dCkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2FyZ3MgJG9wdCIKLSsJCQlvcHRfc2lsZW50PToK LSsJCQk7OwotKwotKyAgICAgIC0tdmVyYm9zZXwgLXYpCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2 ZV9hcmdzICRvcHQiCi0rCQkJb3B0X3NpbGVudD1mYWxzZQotKwkJCTs7Ci0rCi0rICAgICAgLS10 YWcpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsK LSsJCQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0ICQxIgotKwkJCWZ1bmNfZW5h YmxlX3RhZyAiJDEiCSMgdGFnbmFtZSBpcyBzZXQgaGVyZQotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsK LSsgICAgICAjIFNlcGFyYXRlIG9wdGFyZ3MgdG8gbG9uZyBvcHRpb25zOgotKyAgICAgIC1kbG9w ZW49KnwtLW1vZGU9KnwtLXRhZz0qKQotKwkJCWZ1bmNfb3B0X3NwbGl0ICIkb3B0IgotKwkJCXNl dCBkdW1teSAiJGZ1bmNfb3B0X3NwbGl0X29wdCIgIiRmdW5jX29wdF9zcGxpdF9hcmciICR7MSsi JEAifQotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtXD98LWgpCQlmdW5jX3VzYWdlCQkJ CQk7OwotKyAgICAgIC0taGVscCkJCW9wdF9oZWxwPToJCQkJCTs7Ci0rICAgICAgLS12ZXJzaW9u KQlmdW5jX3ZlcnNpb24JCQkJCTs7Ci0rCi0rICAgICAgLSopCQlmdW5jX2ZhdGFsX2hlbHAgInVu cmVjb2duaXplZCBvcHRpb24gXGAkb3B0JyIJOzsKLSsKLSsgICAgICAqKQkJbm9ub3B0PSIkb3B0 IgotKwkJCWJyZWFrCi0rCQkJOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKwotKyAgY2FzZSAk aG9zdCBpbgotKyAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqcHczMiogfCAqY2VnY2MqKQotKyAg ICAgICMgZG9uJ3QgZWxpbWluYXRlIGR1cGxpY2F0aW9ucyBpbiAkcG9zdGRlcHMgYW5kICRwcmVk ZXBzCi0rICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz06Ci0rICAg ICAgOzsKLSsgICAgKikKLSsgICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9k ZXBzPSRvcHRfZHVwbGljYXRlX2RlcHMKLSsgICAgICA7OwotKyAgZXNhYwotKwotKyAgIyBIYXZp bmcgd2FybmVkIGFib3V0IGFsbCBtaXMtc3BlY2lmaWVkIG9wdGlvbnMsIGJhaWwgb3V0IGlmCi0r ICAjIGFueXRoaW5nIHdhcyB3cm9uZy4KLSsgICRleGl0X2NtZCAkRVhJVF9GQUlMVVJFCi0rfQot KwotKyMgZnVuY19jaGVja192ZXJzaW9uX21hdGNoCi0rIyBFbnN1cmUgdGhhdCB3ZSBhcmUgdXNp bmcgbTQgbWFjcm9zLCBhbmQgbGlidG9vbCBzY3JpcHQgZnJvbSB0aGUgc2FtZQotKyMgcmVsZWFz ZSBvZiBsaWJ0b29sLgotK2Z1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaCAoKQotK3sKLSsgIGlmIHRl c3QgIiRwYWNrYWdlX3JldmlzaW9uIiAhPSAiJG1hY3JvX3JldmlzaW9uIjsgdGhlbgotKyAgICBp ZiB0ZXN0ICIkVkVSU0lPTiIgIT0gIiRtYWNyb192ZXJzaW9uIjsgdGhlbgotKyAgICAgIGlmIHRl c3QgLXogIiRtYWNyb192ZXJzaW9uIjsgdGhlbgotKyAgICAgICAgY2F0ID4mMiA8PF9MVF9FT0YK LSskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRW RVJTSU9OLCBidXQgdGhlCi0rJHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBj b21lcyBmcm9tIGFuIG9sZGVyIHJlbGVhc2UuCi0rJHByb2duYW1lOiBZb3Ugc2hvdWxkIHJlY3Jl YXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAkUEFDS0FHRSAkVkVSU0lPTgotKyRwcm9n bmFtZTogYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KLStfTFRfRU9GCi0rICAgICAgZWxzZQotKyAg ICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKLSskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJy b3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhlCi0rJHByb2duYW1lOiBkZWZp bml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tICRQQUNLQUdFICRtYWNyb192ZXJzaW9u LgotKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9z IGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KLSskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdh aW4uCi0rX0xUX0VPRgotKyAgICAgIGZpCi0rICAgIGVsc2UKLSsgICAgICBjYXQgPiYyIDw8X0xU X0VPRgotKyRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBlcnJvci4gIFRoaXMgaXMgJFBBQ0tB R0UgJFZFUlNJT04sIHJldmlzaW9uICRwYWNrYWdlX3JldmlzaW9uLAotKyRwcm9nbmFtZTogYnV0 IHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIHJldmlzaW9uICRtYWNy b19yZXZpc2lvbi4KLSskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVhdGUgYWNsb2NhbC5tNCB3 aXRoIG1hY3JvcyBmcm9tIHJldmlzaW9uICRwYWNrYWdlX3JldmlzaW9uCi0rJHByb2duYW1lOiBv ZiAkUEFDS0FHRSAkVkVSU0lPTiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgotK19MVF9FT0YKLSsg ICAgZmkKLSsKLSsgICAgZXhpdCAkRVhJVF9NSVNNQVRDSAotKyAgZmkKLSt9Ci0rCi0rCi0rIyMg LS0tLS0tLS0tLS0gIyMKLSsjIyAgICBNYWluLiAgICAjIwotKyMjIC0tLS0tLS0tLS0tICMjCi0r Ci0rJG9wdF9oZWxwIHx8IHsKLSsgICMgU2FuaXR5IGNoZWNrcyBmaXJzdDoKLSsgIGZ1bmNfY2hl Y2tfdmVyc2lvbl9tYXRjaAotKwotKyAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0g eWVzICYmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgIGZ1bmNfZmF0 YWxfY29uZmlndXJhdGlvbiAibm90IGNvbmZpZ3VyZWQgdG8gYnVpbGQgYW55IGtpbmQgb2YgbGli cmFyeSIKLSsgIGZpCi0rCi0rICB0ZXN0IC16ICIkbW9kZSIgJiYgZnVuY19mYXRhbF9lcnJvciAi ZXJyb3I6IHlvdSBtdXN0IHNwZWNpZnkgYSBNT0RFLiIKLSsKLSsKLSsgICMgRGFyd2luIHN1Y2tz Ci0rICBldmFsIHN0ZF9zaHJleHQ9XCIkc2hyZXh0X2NtZHNcIgotKwotKwotKyAgIyBPbmx5IGV4 ZWN1dGUgbW9kZSBpcyBhbGxvd2VkIHRvIGhhdmUgLWRsb3BlbiBmbGFncy4KLSsgIGlmIHRlc3Qg LW4gIiRleGVjdXRlX2RsZmlsZXMiICYmIHRlc3QgIiRtb2RlIiAhPSBleGVjdXRlOyB0aGVuCi0r ICAgIGZ1bmNfZXJyb3IgInVucmVjb2duaXplZCBvcHRpb24gXGAtZGxvcGVuJyIKLSsgICAgJEVD SE8gIiRoZWxwIiAxPiYyCi0rICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotKyAgZmkKLSsKLSsgICMg Q2hhbmdlIHRoZSBoZWxwIG1lc3NhZ2UgdG8gYSBtb2RlLXNwZWNpZmljIG9uZS4KLSsgIGdlbmVy aWNfaGVscD0iJGhlbHAiCi0rICBoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT0k bW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotK30KLSsKLSsKLSsjIGZ1bmNfbGFsaWJfcCBm aWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxhJyBsaWJyYXJ5IG9yIGAubG8n IG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNo ZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKLSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgot K2Z1bmNfbGFsaWJfcCAoKQotK3sKLSsgICAgdGVzdCAtZiAiJDEiICYmCi0rICAgICAgJFNFRCAt ZSA0cSAiJDEiIDI+L2Rldi9udWxsIFwKLSsgICAgICAgIHwgJEdSRVAgIl4jIEdlbmVyYXRlZCBi eSAuKiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAyPiYxCi0rfQotKwotKyMgZnVuY19sYWxpYl91bnNh ZmVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxhJyBsaWJyYXJ5IG9y IGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBzYW1l IGNoZWNrIGFzIGZ1bmNfbGFsaWJfcCB3aXRob3V0Ci0rIyByZXNvcnRpbmcgdG8gZXh0ZXJuYWwg cHJvZ3JhbXMuICBUbyB0aGlzIGVuZCwgaXQgcmVkaXJlY3RzIHN0ZGluIGFuZAotKyMgY2xvc2Vz IGl0IGFmdGVyd2FyZHMsIHdpdGhvdXQgc2F2aW5nIHRoZSBvcmlnaW5hbCBmaWxlIGRlc2NyaXB0 b3IuCi0rIyBBcyBhIHNhZmV0eSBtZWFzdXJlLCB1c2UgaXQgb25seSB3aGVyZSBhIG5lZ2F0aXZl IHJlc3VsdCB3b3VsZCBiZQotKyMgZmF0YWwgYW55d2F5LiAgV29ya3MgaWYgYGZpbGUnIGRvZXMg bm90IGV4aXN0LgotK2Z1bmNfbGFsaWJfdW5zYWZlX3AgKCkKLSt7Ci0rICAgIGxhbGliX3A9bm8K LSsgICAgaWYgdGVzdCAtZiAiJDEiICYmIHRlc3QgLXIgIiQxIiAmJiBleGVjIDU8JjAgPCIkMSI7 IHRoZW4KLSsJZm9yIGxhbGliX3BfbCBpbiAxIDIgMyA0Ci0rCWRvCi0rCSAgICByZWFkIGxhbGli X3BfbGluZQotKwkgICAgY2FzZSAiJGxhbGliX3BfbGluZSIgaW4KLSsJCVwjXCBHZW5lcmF0ZWRc IGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJfcD15ZXM7IGJyZWFrOzsKLSsJICAgIGVzYWMKLSsJZG9u ZQotKwlleGVjIDA8JjUgNTwmLQotKyAgICBmaQotKyAgICB0ZXN0ICIkbGFsaWJfcCIgPSB5ZXMK LSt9Ci0rCi0rIyBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxF IGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdAotKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEg YmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKLSsjIGRldGVybWlu ZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICgpCi0rewotKyAgICBmdW5j X2xhbGliX3AgIiQxIgotK30KLSsKLSsjIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCBmaWxl Ci0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIGV4ZWN1dGFibGUKLSsjIFRo aXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkg Zmx1c2ggb3V0Ci0rIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KLStmdW5jX2x0d3JhcHBlcl9leGVj dXRhYmxlX3AgKCkKLSt7Ci0rICAgIGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3VmZml4PQotKyAgICBj YXNlICQxIGluCi0rICAgICouZXhlKSA7OwotKyAgICAqKSBmdW5jX2x0d3JhcHBlcl9leGVjX3N1 ZmZpeD0uZXhlIDs7Ci0rICAgIGVzYWMKLSsgICAgJEdSRVAgIiRtYWdpY19leGUiICIkMSRmdW5j X2x0d3JhcHBlcl9leGVjX3N1ZmZpeCIgPi9kZXYvbnVsbCAyPiYxCi0rfQotKwotKyMgZnVuY19s dHdyYXBwZXJfc2NyaXB0bmFtZSBmaWxlCi0rIyBBc3N1bWVzIGZpbGUgaXMgYW4gbHR3cmFwcGVy X2V4ZWN1dGFibGUKLSsjIHVzZXMgJGZpbGUgdG8gZGV0ZXJtaW5lIHRoZSBhcHByb3ByaWF0ZSBm aWxlbmFtZSBmb3IgYQotKyMgdGVtcG9yYXJ5IGx0d3JhcHBlcl9zY3JpcHQuCi0rZnVuY19sdHdy YXBwZXJfc2NyaXB0bmFtZSAoKQotK3sKLSsgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9y ZXN1bHQ9IiIKLSsgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkMSI7IHRoZW4K LSsJZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJDEiICIiICIuIgotKwlmdW5jX3N0cmlwbmFt ZSAnJyAnLmV4ZScgIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJZnVuY19sdHdyYXBwZXJfc2Ny aXB0bmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5jX3N0cmlw bmFtZV9yZXN1bHR9X2x0c2h3cmFwcGVyIgotKyAgICBmaQotK30KLSsKLSsjIGZ1bmNfbHR3cmFw cGVyX3AgZmlsZQotKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQg b3Igd3JhcHBlciBleGVjdXRhYmxlCi0rIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBz YW5pdHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAotKyMgZGV0ZXJtaW5lZCBpbXBv c3RlcnMuCi0rZnVuY19sdHdyYXBwZXJfcCAoKQotK3sKLSsgICAgZnVuY19sdHdyYXBwZXJfc2Ny aXB0X3AgIiQxIiB8fCBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIgotK30KLSsKLSsK LSsjIGZ1bmNfZXhlY3V0ZV9jbWRzIGNvbW1hbmRzIGZhaWxfY21kCi0rIyBFeGVjdXRlIHRpbGRl LWRlbGltaXRlZCBDT01NQU5EUy4KLSsjIElmIEZBSUxfQ01EIGlzIGdpdmVuLCBldmFsIHRoYXQg dXBvbiBmYWlsdXJlLgotKyMgRkFJTF9DTUQgbWF5IHJlYWQtYWNjZXNzIHRoZSBjdXJyZW50IGNv bW1hbmQgaW4gdmFyaWFibGUgQ01EIQotK2Z1bmNfZXhlY3V0ZV9jbWRzICgpCi0rewotKyAgICAk b3B0X2RlYnVnCi0rICAgIHNhdmVfaWZzPSRJRlM7IElGUz0nficKLSsgICAgZm9yIGNtZCBpbiAk MTsgZG8KLSsgICAgICBJRlM9JHNhdmVfaWZzCi0rICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKLSsg ICAgICBmdW5jX3Nob3dfZXZhbCAiJGNtZCIgIiR7Mi06fSIKLSsgICAgZG9uZQotKyAgICBJRlM9 JHNhdmVfaWZzCi0rfQotKwotKwotKyMgZnVuY19zb3VyY2UgZmlsZQotKyMgU291cmNlIEZJTEUs IGFkZGluZyBkaXJlY3RvcnkgY29tcG9uZW50IGlmIG5lY2Vzc2FyeS4KLSsjIE5vdGUgdGhhdCBp dCBpcyBub3QgbmVjZXNzYXJ5IG9uIGN5Z3dpbi9taW5ndyB0byBhcHBlbmQgYSBkb3QgdG8KLSsj IEZJTEUgZXZlbiBpZiBib3RoIEZJTEUgYW5kIEZJTEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBw ZW5kLS5leGUKLSsjIGJlaGF2aW9yIGhhcHBlbnMgb25seSBmb3IgZXhlYygzKSwgbm90IGZvciBv cGVuKDIpISAgQWxzbywgc291cmNpbmcKLSsjIGBGSUxFLicgZG9lcyBub3Qgd29yayBvbiBjeWd3 aW4gbWFuYWdlZCBtb3VudHMuCi0rZnVuY19zb3VyY2UgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcK LSsgICAgY2FzZSAkMSBpbgotKyAgICAqLyogfCAqXFwqKQkuICIkMSIgOzsKLSsgICAgKikJCS4g Ii4vJDEiIDs7Ci0rICAgIGVzYWMKLSt9Ci0rCi0rCi0rIyBmdW5jX2luZmVyX3RhZyBhcmcKLSsj IEluZmVyIHRhZ2dlZCBjb25maWd1cmF0aW9uIHRvIHVzZSBpZiBhbnkgYXJlIGF2YWlsYWJsZSBh bmQKLSsjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxpbmUg b3B0aW9uLgotKyMgT25seSBhdHRlbXB0IHRoaXMgaWYgdGhlIGNvbXBpbGVyIGluIHRoZSBiYXNl IGNvbXBpbGUKLSsjIGNvbW1hbmQgZG9lc24ndCBtYXRjaCB0aGUgZGVmYXVsdCBjb21waWxlci4K LSsjIGFyZyBpcyB1c3VhbGx5IG9mIHRoZSBmb3JtICdnY2MgLi4uJwotK2Z1bmNfaW5mZXJfdGFn ICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIGlmIHRlc3QgLW4gIiRhdmFpbGFibGVfdGFn cyIgJiYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCi0rICAgICAgQ0NfcXVvdGVkPQotKyAgICAg IGZvciBhcmcgaW4gJENDOyBkbwotKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIK LSsJQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsg ICAgICBkb25lCi0rICAgICAgY2FzZSAkQCBpbgotKyAgICAgICMgQmxhbmtzIGluIHRoZSBjb21t YW5kIG1heSBoYXZlIGJlZW4gc3RyaXBwZWQgYnkgdGhlIGNhbGxpbmcgc2hlbGwsCi0rICAgICAg IyBidXQgbm90IGZyb20gdGhlIENDIGVudmlyb25tZW50IHZhcmlhYmxlIHdoZW4gY29uZmlndXJl IHdhcyBydW4uCi0rICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiBgJEVDSE8gJENDYCAiKiB8 ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiIGAk RUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1b3RlZGAgIiopIDs7Ci0rICAgICAg IyBCbGFua3MgYXQgdGhlIHN0YXJ0IG9mICRiYXNlX2NvbXBpbGUgd2lsbCBjYXVzZSB0aGlzIHRv IGZhaWwKLSsgICAgICAjIGlmIHdlIGRvbid0IGNoZWNrIGZvciB0aGVtIGFzIHdlbGwuCi0rICAg ICAgKikKLSsJZm9yIHogaW4gJGF2YWlsYWJsZV90YWdzOyBkbwotKwkgIGlmICRHUkVQICJeIyAj IyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiAkeiQiIDwgIiRwcm9ncGF0aCIgPiAvZGV2L251 bGw7IHRoZW4KLSsJICAgICMgRXZhbHVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uCi0rCSAgICBldmFs ICJgJHtTRUR9IC1uIC1lICcvXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJyR6JyQv LC9eIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogJyR6JyQvcCcgPCAkcHJvZ3BhdGhgIgot KwkgICAgQ0NfcXVvdGVkPQotKwkgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCi0rCSAgICAgICMgRG91 YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBvdGhlciBzaGVsbCBtZXRhY2hhcmFjdGVycy4KLSsJ ICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsJICAgICAgQ0NfcXVvdGVkPSIkQ0Nf cXVvdGVkICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJICAgIGRvbmUKLSsJICAgIGNh c2UgIiRAICIgaW4KLSsJICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiBgJEVDSE8gJENDYCAi KiB8ICJgJEVDSE8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAi IGAkRUNITyAkQ0NfcXVvdGVkYCAiKiB8ICJgJEVDSE8gJENDX3F1b3RlZGAgIiopCi0rCSAgICAg ICMgVGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUgY29tbWFuZCBtYXRjaGVzCi0rCSAg ICAgICMgdGhlIG9uZSBpbiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24uCi0rCSAgICAgICMgQXNz dW1lIHRoaXMgaXMgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uIHdlIHdhbnQuCi0rCSAgICAgIHRh Z25hbWU9JHoKLSsJICAgICAgYnJlYWsKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBmaQot Kwlkb25lCi0rCSMgSWYgJHRhZ25hbWUgc3RpbGwgaXNuJ3Qgc2V0LCB0aGVuIG5vIHRhZ2dlZCBj b25maWd1cmF0aW9uCi0rCSMgd2FzIGZvdW5kIGFuZCBsZXQgdGhlIHVzZXIga25vdyB0aGF0IHRo ZSAiLS10YWciIGNvbW1hbmQKLSsJIyBsaW5lIG9wdGlvbiBtdXN0IGJlIHVzZWQuCi0rCWlmIHRl c3QgLXogIiR0YWduYW1lIjsgdGhlbgotKwkgIGZ1bmNfZWNobyAidW5hYmxlIHRvIGluZmVyIHRh Z2dlZCBjb25maWd1cmF0aW9uIgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgInNwZWNpZnkgYSB0YWcg d2l0aCBcYC0tdGFnJyIKLSsjCWVsc2UKLSsjCSAgZnVuY192ZXJib3NlICJ1c2luZyAkdGFnbmFt ZSB0YWdnZWQgY29uZmlndXJhdGlvbiIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGZp Ci0rfQotKwotKwotKwotKyMgZnVuY193cml0ZV9saWJ0b29sX29iamVjdCBvdXRwdXRfbmFtZSBw aWNfbmFtZSBub25waWNfbmFtZQotKyMgQ3JlYXRlIGEgbGlidG9vbCBvYmplY3QgZmlsZSAoYW5h bG9nb3VzIHRvIGEgIi5sYSIgZmlsZSksCi0rIyBidXQgZG9uJ3QgY3JlYXRlIGl0IGlmIHdlJ3Jl IGRvaW5nIGEgZHJ5IHJ1bi4KLStmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0ICgpCi0rewotKyAg ICB3cml0ZV9saWJvYmo9JHsxfQotKyAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9 IHllczsgdGhlbgotKyAgICAgIHdyaXRlX2xvYmo9XCckezJ9XCcKLSsgICAgZWxzZQotKyAgICAg IHdyaXRlX2xvYmo9bm9uZQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xp YnMiID0geWVzOyB0aGVuCi0rICAgICAgd3JpdGVfb2xkb2JqPVwnJHszfVwnCi0rICAgIGVsc2UK LSsgICAgICB3cml0ZV9vbGRvYmo9bm9uZQotKyAgICBmaQotKwotKyAgICAkb3B0X2RyeV9ydW4g fHwgewotKyAgICAgIGNhdCA+JHt3cml0ZV9saWJvYmp9VCA8PEVPRgotKyMgJHdyaXRlX2xpYm9i aiAtIGEgbGlidG9vbCBvYmplY3QgZmlsZQotKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUg JFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgotKyMKLSsjIFBsZWFzZSBETyBOT1QgZGVsZXRl IHRoaXMgZmlsZSEKLSsjIEl0IGlzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyB0aGUgbGlicmFyeS4K LSsKLSsjIE5hbWUgb2YgdGhlIFBJQyBvYmplY3QuCi0rcGljX29iamVjdD0kd3JpdGVfbG9iagot KwotKyMgTmFtZSBvZiB0aGUgbm9uLVBJQyBvYmplY3QKLStub25fcGljX29iamVjdD0kd3JpdGVf b2xkb2JqCi0rCi0rRU9GCi0rICAgICAgJE1WICIke3dyaXRlX2xpYm9ian1UIiAiJHt3cml0ZV9s aWJvYmp9IgotKyAgICB9Ci0rfQotKwotKyMgZnVuY19tb2RlX2NvbXBpbGUgYXJnLi4uCi0rZnVu Y19tb2RlX2NvbXBpbGUgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgIyBHZXQgdGhlIGNv bXBpbGF0aW9uIGNvbW1hbmQgYW5kIHRoZSBzb3VyY2UgZmlsZS4KLSsgICAgYmFzZV9jb21waWxl PQotKyAgICBzcmNmaWxlPSIkbm9ub3B0IiAgIyAgYWx3YXlzIGtlZXAgYSBub24tZW1wdHkgdmFs dWUgaW4gInNyY2ZpbGUiCi0rICAgIHN1cHByZXNzX29wdD15ZXMKLSsgICAgc3VwcHJlc3Nfb3V0 cHV0PQotKyAgICBhcmdfbW9kZT1ub3JtYWwKLSsgICAgbGlib2JqPQotKyAgICBsYXRlcj0KLSsg ICAgcGllX2ZsYWc9Ci0rCi0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRhcmdf bW9kZSBpbgotKyAgICAgIGFyZyAgKQotKwkjIGRvIG5vdCAiY29udGludWUiLiAgSW5zdGVhZCwg YWRkIHRoaXMgdG8gYmFzZV9jb21waWxlCi0rCWxhc3Rhcmc9IiRhcmciCi0rCWFyZ19tb2RlPW5v cm1hbAotKwk7OwotKwotKyAgICAgIHRhcmdldCApCi0rCWxpYm9iaj0iJGFyZyIKLSsJYXJnX21v ZGU9bm9ybWFsCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgbm9ybWFsICkKLSsJIyBBY2Nl cHQgYW55IGNvbW1hbmQtbGluZSBvcHRpb25zLgotKwljYXNlICRhcmcgaW4KLSsJLW8pCi0rCSAg dGVzdCAtbiAiJGxpYm9iaiIgJiYgXAotKwkgICAgZnVuY19mYXRhbF9lcnJvciAieW91IGNhbm5v dCBzcGVjaWZ5IFxgLW8nIG1vcmUgdGhhbiBvbmNlIgotKwkgIGFyZ19tb2RlPXRhcmdldAotKwkg IGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLXBpZSB8IC1mcGllIHwgLWZQSUUpCi0rICAgICAgICAg IHBpZV9mbGFnPSIkcGllX2ZsYWcgJGFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCS1z aGFyZWQgfCAtc3RhdGljIHwgLXByZWZlci1waWMgfCAtcHJlZmVyLW5vbi1waWMpCi0rCSAgbGF0 ZXI9IiRsYXRlciAkYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLW5vLXN1cHByZXNz KQotKwkgIHN1cHByZXNzX29wdD1ubwotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsKLSsJLVhjb21w aWxlcikKLSsJICBhcmdfbW9kZT1hcmcgICMgIHRoZSBuZXh0IG9uZSBnb2VzIGludG8gdGhlICJi YXNlX2NvbXBpbGUiIGFyZyBsaXN0Ci0rCSAgY29udGludWUgICAgICAjICBUaGUgY3VycmVudCAi c3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQgb3IKLSsJICA7OyAgICAgICAgICAgICMg IHJlcGxhY2VkIGxhdGVyLiAgSSB3b3VsZCBndWVzcyB0aGF0IHdvdWxkIGJlIGEgYnVnLgotKwot KwktV2MsKikKLSsJICBmdW5jX3N0cmlwbmFtZSAnLVdjLCcgJycgIiRhcmciCi0rCSAgYXJncz0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgbGFzdGFyZz0KLSsJICBzYXZlX2lmcz0iJElGUyI7 IElGUz0nLCcKLSsJICBmb3IgYXJnIGluICRhcmdzOyBkbwotKwkgICAgSUZTPSIkc2F2ZV9pZnMi Ci0rCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwkgICAgbGFzdGFyZz0iJGxhc3Rh cmcgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwkgIGRvbmUKLSsJICBJRlM9IiRzYXZl X2lmcyIKLSsJICBmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRsYXN0YXJnIgotKwkgIGxhc3Rhcmc9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwotKwkgICMgQWRkIHRoZSBhcmd1bWVudHMgdG8gYmFz ZV9jb21waWxlLgotKwkgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkbGFzdGFyZyIKLSsJ ICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCSopCi0rCSAgIyBBY2NlcHQgdGhlIGN1cnJlbnQgYXJn dW1lbnQgYXMgdGhlIHNvdXJjZSBmaWxlLgotKwkgICMgVGhlIHByZXZpb3VzICJzcmNmaWxlIiBi ZWNvbWVzIHRoZSBjdXJyZW50IGFyZ3VtZW50LgotKwkgICMKLSsJICBsYXN0YXJnPSIkc3JjZmls ZSIKLSsJICBzcmNmaWxlPSIkYXJnIgotKwkgIDs7Ci0rCWVzYWMgICMgIGNhc2UgJGFyZwotKwk7 OwotKyAgICAgIGVzYWMgICAgIyAgY2FzZSAkYXJnX21vZGUKLSsKLSsgICAgICAjIEFlc3RoZXRp Y2FsbHkgcXVvdGUgdGhlIHByZXZpb3VzIGFyZ3VtZW50LgotKyAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRsYXN0YXJnIgotKyAgICAgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rICAgIGRvbmUgIyBmb3IgYXJnCi0rCi0rICAgIGNh c2UgJGFyZ19tb2RlIGluCi0rICAgIGFyZykKLSsgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJ5b3Ug bXVzdCBzcGVjaWZ5IGFuIGFyZ3VtZW50IGZvciAtWGNvbXBpbGUiCi0rICAgICAgOzsKLSsgICAg dGFyZ2V0KQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYSB0YXJn ZXQgd2l0aCBcYC1vJyIKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgICMgR2V0IHRoZSBuYW1l IG9mIHRoZSBsaWJyYXJ5IG9iamVjdC4KLSsgICAgICB0ZXN0IC16ICIkbGlib2JqIiAmJiB7Ci0r CWZ1bmNfYmFzZW5hbWUgIiRzcmNmaWxlIgotKwlsaWJvYmo9IiRmdW5jX2Jhc2VuYW1lX3Jlc3Vs dCIKLSsgICAgICB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIFJlY29nbml6ZSBz ZXZlcmFsIGRpZmZlcmVudCBmaWxlIHN1ZmZpeGVzLgotKyAgICAjIElmIHRoZSB1c2VyIHNwZWNp ZmllcyAtbyBmaWxlLm8sIGl0IGlzIHJlcGxhY2VkIHdpdGggZmlsZS5sbwotKyAgICBjYXNlICRs aWJvYmogaW4KLSsgICAgKi5bY0NGU2lmbXNvXSB8IFwKLSsgICAgKi5hZGEgfCAqLmFkYiB8ICou YWRzIHwgKi5hc20gfCBcCi0rICAgICouYysrIHwgKi5jYyB8ICouaWkgfCAqLmNsYXNzIHwgKi5j cHAgfCAqLmN4eCB8IFwKLSsgICAgKi5bZkZdWzA5XT8gfCAqLmZvciB8ICouamF2YSB8ICoub2Jq IHwgKi5zeCkKLSsgICAgICBmdW5jX3hmb3JtICIkbGlib2JqIgotKyAgICAgIGxpYm9iaj0kZnVu Y194Zm9ybV9yZXN1bHQKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJGxpYm9i aiBpbgotKyAgICAqLmxvKSBmdW5jX2xvMm8gIiRsaWJvYmoiOyBvYmo9JGZ1bmNfbG8yb19yZXN1 bHQgOzsKLSsgICAgKikKLSsgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZGV0ZXJtaW5l IG5hbWUgb2YgbGlicmFyeSBvYmplY3QgZnJvbSBcYCRsaWJvYmonIgotKyAgICAgIDs7Ci0rICAg IGVzYWMKLSsKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQotKwotKyAgICBmb3Ig YXJnIGluICRsYXRlcjsgZG8KLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtc2hhcmVkKQot Kwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgXAotKwkgIGZ1bmNfZmF0YWxf Y29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5IgotKwlidWlsZF9v bGRfbGlicz1ubwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1zdGF0aWMpCi0rCWJ1aWxk X2xpYnRvb2xfbGlicz1ubwotKwlidWlsZF9vbGRfbGlicz15ZXMKLSsJY29udGludWUKLSsJOzsK LSsKLSsgICAgICAtcHJlZmVyLXBpYykKLSsJcGljX21vZGU9eWVzCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLXByZWZlci1ub24tcGljKQotKwlwaWNfbW9kZT1ubwotKwljb250aW51ZQot Kwk7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwotKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFs ICIkbGlib2JqIgotKyAgICB0ZXN0ICJYJGxpYm9iaiIgIT0gIlgkZnVuY19xdW90ZV9mb3JfZXZh bF9yZXN1bHQiIFwKLSsgICAgICAmJiAkRUNITyAiWCRsaWJvYmoiIHwgJEdSRVAgJ1tdfiNeKnt9 Ozw+PyInIiciJwkgJigpfGAkW10nIFwKLSsgICAgICAmJiBmdW5jX3dhcm5pbmcgImxpYm9iaiBu YW1lIFxgJGxpYm9iaicgbWF5IG5vdCBjb250YWluIHNoZWxsIHNwZWNpYWwgY2hhcmFjdGVycy4i Ci0rICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRvYmoiICIvIiAiIgotKyAgICBvYmpu YW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVz dWx0IgotKyAgICBsb2JqPSR7eGRpcn0kb2JqZGlyLyRvYmpuYW1lCi0rCi0rICAgIHRlc3QgLXog IiRiYXNlX2NvbXBpbGUiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNw ZWNpZnkgYSBjb21waWxhdGlvbiBjb21tYW5kIgotKwotKyAgICAjIERlbGV0ZSBhbnkgbGVmdG92 ZXIgbGlicmFyeSBvYmplY3RzLgotKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVz OyB0aGVuCi0rICAgICAgcmVtb3ZlbGlzdD0iJG9iaiAkbG9iaiAkbGlib2JqICR7bGlib2JqfVQi Ci0rICAgIGVsc2UKLSsgICAgICByZW1vdmVsaXN0PSIkbG9iaiAkbGlib2JqICR7bGlib2JqfVQi Ci0rICAgIGZpCi0rCi0rICAgICMgT24gQ3lnd2luIHRoZXJlJ3Mgbm8gInJlYWwiIFBJQyBmbGFn IHNvIHdlIG11c3QgYnVpbGQgYm90aCBvYmplY3QgdHlwZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBp bgotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAg IHBpY19tb2RlPWRlZmF1bHQKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGlmIHRlc3QgIiRw aWNfbW9kZSIgPSBubyAmJiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxs OyB0aGVuCi0rICAgICAgIyBub24tUElDIGNvZGUgaW4gc2hhcmVkIGxpYnJhcmllcyBpcyBub3Qg c3VwcG9ydGVkCi0rICAgICAgcGljX21vZGU9ZGVmYXVsdAotKyAgICBmaQotKwotKyAgICAjIENh bGN1bGF0ZSB0aGUgZmlsZW5hbWUgb2YgdGhlIG91dHB1dCBvYmplY3QgaWYgY29tcGlsZXIgZG9l cwotKyAgICAjIG5vdCBzdXBwb3J0IC1vIHdpdGggLWMKLSsgICAgaWYgdGVzdCAiJGNvbXBpbGVy X2NfbyIgPSBubzsgdGhlbgotKyAgICAgIG91dHB1dF9vYmo9YCRFQ0hPICJYJHNyY2ZpbGUiIHwg JFhzZWQgLWUgJ3MlXi4qLyUlJyAtZSAncyVcLlteLl0qJCUlJ2AuJHtvYmpleHR9Ci0rICAgICAg bG9ja2ZpbGU9IiRvdXRwdXRfb2JqLmxvY2siCi0rICAgIGVsc2UKLSsgICAgICBvdXRwdXRfb2Jq PQotKyAgICAgIG5lZWRfbG9ja3M9bm8KLSsgICAgICBsb2NrZmlsZT0KLSsgICAgZmkKLSsKLSsg ICAgIyBMb2NrIHRoaXMgY3JpdGljYWwgc2VjdGlvbiBpZiBpdCBpcyBuZWVkZWQKLSsgICAgIyBX ZSB1c2UgdGhpcyBzY3JpcHQgZmlsZSB0byBtYWtlIHRoZSBsaW5rLCBpdCBhdm9pZHMgY3JlYXRp bmcgYSBuZXcgZmlsZQotKyAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB5ZXM7IHRoZW4KLSsg ICAgICB1bnRpbCAkb3B0X2RyeV9ydW4gfHwgbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4v ZGV2L251bGw7IGRvCi0rCWZ1bmNfZWNobyAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRvIGJlIHJl bW92ZWQiCi0rCXNsZWVwIDIKLSsgICAgICBkb25lCi0rICAgIGVsaWYgdGVzdCAiJG5lZWRfbG9j a3MiID0gd2FybjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLWYgIiRsb2NrZmlsZSI7IHRoZW4KLSsJ JEVDSE8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBleGlzdHMgYW5kIGNvbnRhaW5zOgotK2Bj YXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAotKwotK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhl ciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKLSt0ZW1wb3Jhcnkgb2JqZWN0IGZp bGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCi0reW91ciBj b21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlv dQotK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBi dXQgeW91IGhhZCBiZXR0ZXIKLSthdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRo aXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgotK2NvbXBpbGVyLiIKLSsKLSsJJG9wdF9kcnlf cnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQot KyAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRvdXRwdXRfb2JqIgotKyAgICAgICRFQ0hP ICIkc3JjZmlsZSIgPiAiJGxvY2tmaWxlIgotKyAgICBmaQotKwotKyAgICAkb3B0X2RyeV9ydW4g fHwgJFJNICRyZW1vdmVsaXN0Ci0rICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRsb2NrZmls ZSIKLSsgICAgdHJhcCAnJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhpdCAkRVhJ VF9GQUlMVVJFJyAxIDIgMTUKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGZpeF9zcmNmaWxlX3BhdGgi OyB0aGVuCi0rICAgICAgZXZhbCBzcmNmaWxlPVwiJGZpeF9zcmNmaWxlX3BhdGhcIgotKyAgICBm aQotKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkc3JjZmlsZSIKLSsgICAgcXNyY2ZpbGU9JGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0Ci0rCi0rICAgICMgT25seSBidWlsZCBhIFBJQyBvYmpl Y3QgaWYgd2UgYXJlIGJ1aWxkaW5nIGxpYnRvb2wgbGlicmFyaWVzLgotKyAgICBpZiB0ZXN0ICIk YnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgICMgV2l0aG91dCB0aGlzIGFz c2lnbm1lbnQsIGJhc2VfY29tcGlsZSBnZXRzIGVtcHRpZWQuCi0rICAgICAgZmJzZF9oaWRlb3Vz X3NoX2J1Zz0kYmFzZV9jb21waWxlCi0rCi0rICAgICAgaWYgdGVzdCAiJHBpY19tb2RlIiAhPSBu bzsgdGhlbgotKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSAkcGljX2ZsYWciCi0r ICAgICAgZWxzZQotKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCi0rCWNvbW1hbmQ9IiRiYXNlX2Nv bXBpbGUgJHFzcmNmaWxlIgotKyAgICAgIGZpCi0rCi0rICAgICAgZnVuY19ta2Rpcl9wICIkeGRp ciRvYmpkaXIiCi0rCi0rICAgICAgaWYgdGVzdCAteiAiJG91dHB1dF9vYmoiOyB0aGVuCi0rCSMg UGxhY2UgUElDIG9iamVjdHMgaW4gJG9iamRpcgotKwljb21tYW5kPSIkY29tbWFuZCAtbyAkbG9i aiIKLSsgICAgICBmaQotKwotKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQi CVwKLSsgICAgICAgICAgJ3Rlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiAkUk0gJHJlbW92ZWxpc3Q7 IGV4aXQgJEVYSVRfRkFJTFVSRScKLSsKLSsgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3 YXJuICYmCi0rCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNm aWxlIjsgdGhlbgotKwkkRUNITyAiXAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgot K2BjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAotKwotK2J1dCBpdCBzaG91bGQgY29udGFpbjoK LSskc3JjZmlsZQotKwotK1RoaXMgaW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRy eWluZyB0byB1c2UgdGhlIHNhbWUKLSt0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29s IGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCi0reW91ciBjb21waWxlciBkb2VzIG5v dCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4gIElmIHlvdQotK3JlcGVhdCB0aGlz IGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0 ZXIKLSthdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9y IGdldCBhIGJldHRlcgotK2NvbXBpbGVyLiIKLSsKLSsJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVt b3ZlbGlzdAotKwlleGl0ICRFWElUX0ZBSUxVUkUKLSsgICAgICBmaQotKwotKyAgICAgICMgSnVz dCBtb3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5l eHQgb25lCi0rICAgICAgaWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0 X29iaiIgIT0gIlgkbG9iaiI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgJyRNViAiJG91dHB1dF9v YmoiICIkbG9iaiInIFwKLSsJICAnZXJyb3I9JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92 ZWxpc3Q7IGV4aXQgJGVycm9yJwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBBbGxvdyBlcnJvciBt ZXNzYWdlcyBvbmx5IGZyb20gdGhlIGZpcnN0IGNvbXBpbGF0aW9uLgotKyAgICAgIGlmIHRlc3Qg IiRzdXBwcmVzc19vcHQiID0geWVzOyB0aGVuCi0rCXN1cHByZXNzX291dHB1dD0nID4vZGV2L251 bGwgMj4mMScKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAjIE9ubHkgYnVpbGQgYSBwb3Np dGlvbi1kZXBlbmRlbnQgb2JqZWN0IGlmIHdlIGJ1aWxkIG9sZCBsaWJyYXJpZXMuCi0rICAgIGlm IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICBpZiB0ZXN0ICIkcGlj X21vZGUiICE9IHllczsgdGhlbgotKwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCi0rCWNvbW1hbmQ9 IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlJHBpZV9mbGFnIgotKyAgICAgIGVsc2UKLSsJY29tbWFu ZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgotKyAgICAgIGZpCi0rICAgICAg aWYgdGVzdCAiJGNvbXBpbGVyX2NfbyIgPSB5ZXM7IHRoZW4KLSsJY29tbWFuZD0iJGNvbW1hbmQg LW8gJG9iaiIKLSsgICAgICBmaQotKwotKyAgICAgICMgU3VwcHJlc3MgY29tcGlsZXIgb3V0cHV0 IGlmIHdlIGFscmVhZHkgZGlkIGEgUElDIGNvbXBpbGF0aW9uLgotKyAgICAgIGNvbW1hbmQ9IiRj b21tYW5kJHN1cHByZXNzX291dHB1dCIKLSsgICAgICBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgIiRj b21tYW5kIiBcCi0rICAgICAgICAnJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdDsgZXhp dCAkRVhJVF9GQUlMVVJFJwotKwotKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm4g JiYKLSsJIHRlc3QgIlhgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAiICE9ICJYJHNyY2ZpbGUi OyB0aGVuCi0rCSRFQ0hPICJcCi0rKioqIEVSUk9SLCAkbG9ja2ZpbGUgY29udGFpbnM6Ci0rYGNh dCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rYnV0IGl0IHNob3VsZCBjb250YWluOgotKyRz cmNmaWxlCi0rCi0rVGhpcyBpbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5n IHRvIHVzZSB0aGUgc2FtZQotK3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291 bGQgbm90IHdvcmsgYXJvdW5kIGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1 cHBvcnQgXGAtYycgYW5kIFxgLW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29t cGlsYXRpb24sIGl0IG1heSBzdWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgot K2F2b2lkIHBhcmFsbGVsIGJ1aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0 IGEgYmV0dGVyCi0rY29tcGlsZXIuIgotKwotKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVs aXN0Ci0rCWV4aXQgJEVYSVRfRkFJTFVSRQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBKdXN0IG1v dmUgdGhlIG9iamVjdCBpZiBuZWVkZWQKLSsgICAgICBpZiB0ZXN0IC1uICIkb3V0cHV0X29iaiIg JiYgdGVzdCAiWCRvdXRwdXRfb2JqIiAhPSAiWCRvYmoiOyB0aGVuCi0rCWZ1bmNfc2hvd19ldmFs ICckTVYgIiRvdXRwdXRfb2JqIiAiJG9iaiInIFwKLSsJICAnZXJyb3I9JD87ICRvcHRfZHJ5X3J1 biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJwotKyAgICAgIGZpCi0rICAgIGZpCi0r Ci0rICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rICAgICAgZnVuY193cml0ZV9saWJ0b29sX29iamVj dCAiJGxpYm9iaiIgIiRvYmpkaXIvJG9iam5hbWUiICIkb2JqbmFtZSIKLSsKLSsgICAgICAjIFVu bG9jayB0aGUgY3JpdGljYWwgc2VjdGlvbiBpZiBpdCB3YXMgbG9ja2VkCi0rICAgICAgaWYgdGVz dCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCi0rCXJlbW92ZWxpc3Q9JGxvY2tmaWxlCi0rICAg ICAgICAkUk0gIiRsb2NrZmlsZSIKLSsgICAgICBmaQotKyAgICB9Ci0rCi0rICAgIGV4aXQgJEVY SVRfU1VDQ0VTUwotK30KLSsKLSskb3B0X2hlbHAgfHwgewotK3Rlc3QgIiRtb2RlIiA9IGNvbXBp bGUgJiYgZnVuY19tb2RlX2NvbXBpbGUgJHsxKyIkQCJ9Ci0rfQotKwotK2Z1bmNfbW9kZV9oZWxw ICgpCi0rewotKyAgICAjIFdlIG5lZWQgdG8gZGlzcGxheSBoZWxwIGZvciBlYWNoIG9mIHRoZSBt b2Rlcy4KLSsgICAgY2FzZSAkbW9kZSBpbgotKyAgICAgICIiKQotKyAgICAgICAgIyBHZW5lcmlj IGhlbHAgaXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzYWdlIGNvbW1lbnRzCi0rICAgICAgICAjIGF0 IHRoZSBzdGFydCBvZiB0aGlzIGZpbGUuCi0rICAgICAgICBmdW5jX2hlbHAKLSsgICAgICAgIDs7 Ci0rCi0rICAgICAgY2xlYW4pCi0rICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUg W09QVElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05dLi4uIEZJTEUuLi4KLSsKLStS ZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKwotK1JNIGlzIHRoZSBuYW1l IG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVh Y2ggRklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25z IChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKLSt0byBSTS4KLSsKLStJZiBGSUxFIGlzIGEg bGlidG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lh dGVkCi0rd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlz IGRlbGV0ZWQgdXNpbmcgUk0uIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBjb21waWxlKQotKyAg ICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9Y29tcGls ZSBDT01QSUxFLUNPTU1BTkQuLi4gU09VUkNFRklMRQotKwotK0NvbXBpbGUgYSBzb3VyY2UgZmls ZSBpbnRvIGEgbGlidG9vbCBsaWJyYXJ5IG9iamVjdC4KLSsKLStUaGlzIG1vZGUgYWNjZXB0cyB0 aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKLSsKLSsgIC1vIE9VVFBVVC1GSUxFICAg IHNldCB0aGUgb3V0cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklMRQotKyAgLW5vLXN1cHByZXNz ICAgICAgZG8gbm90IHN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBmb3IgbXVsdGlwbGUgcGFzc2Vz Ci0rICAtcHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGRpbmcgUElDIG9iamVjdHMgb25seQot KyAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkaW5nIG5vbi1QSUMgb2JqZWN0cyBvbmx5 Ci0rICAtc2hhcmVkICAgICAgICAgICBkbyBub3QgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxl IGZvciBzdGF0aWMgbGlua2luZwotKyAgLXN0YXRpYyAgICAgICAgICAgb25seSBidWlsZCBhIFxg Lm8nIGZpbGUgc3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCi0rCi0rQ09NUElMRS1DT01NQU5E IGlzIGEgY29tbWFuZCB0byBiZSB1c2VkIGluIGNyZWF0aW5nIGEgXGBzdGFuZGFyZCcgb2JqZWN0 IGZpbGUKLStmcm9tIHRoZSBnaXZlbiBTT1VSQ0VGSUxFLgotKwotK1RoZSBvdXRwdXQgZmlsZSBu YW1lIGlzIGRldGVybWluZWQgYnkgcmVtb3ZpbmcgdGhlIGRpcmVjdG9yeSBjb21wb25lbnQgZnJv bQotK1NPVVJDRUZJTEUsIHRoZW4gc3Vic3RpdHV0aW5nIHRoZSBDIHNvdXJjZSBjb2RlIHN1ZmZp eCBcYC5jJyB3aXRoIHRoZQotK2xpYnJhcnkgb2JqZWN0IHN1ZmZpeCwgXGAubG8nLiIKLSsgICAg ICAgIDs7Ci0rCi0rICAgICAgZXhlY3V0ZSkKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRw cm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9ZXhlY3V0ZSBDT01NQU5EIFtBUkdTXS4uLgotKwot K0F1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtLgotKwot K1RoaXMgbW9kZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgotKwot KyAgLWRsb3BlbiBGSUxFICAgICAgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBGSUxFIHRv IHRoZSBsaWJyYXJ5IHBhdGgKLSsKLStUaGlzIG1vZGUgc2V0cyB0aGUgbGlicmFyeSBwYXRoIGVu dmlyb25tZW50IHZhcmlhYmxlIGFjY29yZGluZyB0byBcYC1kbG9wZW4nCi0rZmxhZ3MuCi0rCi0r SWYgYW55IG9mIHRoZSBBUkdTIGFyZSBsaWJ0b29sIGV4ZWN1dGFibGUgd3JhcHBlcnMsIHRoZW4g dGhleSBhcmUgdHJhbnNsYXRlZAotK2ludG8gdGhlaXIgY29ycmVzcG9uZGluZyB1bmluc3RhbGxl ZCBiaW5hcnksIGFuZCBhbnkgb2YgdGhlaXIgcmVxdWlyZWQgbGlicmFyeQotK2RpcmVjdG9yaWVz IGFyZSBhZGRlZCB0byB0aGUgbGlicmFyeSBwYXRoLgotKwotK1RoZW4sIENPTU1BTkQgaXMgZXhl Y3V0ZWQsIHdpdGggQVJHUyBhcyBhcmd1bWVudHMuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBm aW5pc2gpCi0rICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4g LS1tb2RlPWZpbmlzaCBbTElCRElSXS4uLgotKwotK0NvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24g b2YgbGlidG9vbCBsaWJyYXJpZXMuCi0rCi0rRWFjaCBMSUJESVIgaXMgYSBkaXJlY3RvcnkgdGhh dCBjb250YWlucyBsaWJ0b29sIGxpYnJhcmllcy4KLSsKLStUaGUgY29tbWFuZHMgdGhhdCB0aGlz IG1vZGUgZXhlY3V0ZXMgbWF5IHJlcXVpcmUgc3VwZXJ1c2VyIHByaXZpbGVnZXMuICBVc2UKLSt0 aGUgXGAtLWRyeS1ydW4nIG9wdGlvbiBpZiB5b3UganVzdCB3YW50IHRvIHNlZSB3aGF0IHdvdWxk IGJlIGV4ZWN1dGVkLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaW5zdGFsbCkKLSsgICAgICAg ICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9aW5zdGFsbCBJ TlNUQUxMLUNPTU1BTkQuLi4KLSsKLStJbnN0YWxsIGV4ZWN1dGFibGVzIG9yIGxpYnJhcmllcy4K LSsKLStJTlNUQUxMLUNPTU1BTkQgaXMgdGhlIGluc3RhbGxhdGlvbiBjb21tYW5kLiAgVGhlIGZp cnN0IGNvbXBvbmVudCBzaG91bGQgYmUKLStlaXRoZXIgdGhlIFxgaW5zdGFsbCcgb3IgXGBjcCcg cHJvZ3JhbS4KLSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2YgSU5TVEFMTC1DT01NQU5E IGFyZSB0cmVhdGVkIHNwZWNpYWxseToKLSsKLSsgIC1pbnN0LXByZWZpeCBQUkVGSVgtRElSICBV c2UgUFJFRklYLURJUiBhcyBhIHN0YWdpbmcgYXJlYSBmb3IgaW5zdGFsbGF0aW9uCi0rCi0rVGhl IHJlc3Qgb2YgdGhlIGNvbXBvbmVudHMgYXJlIGludGVycHJldGVkIGFzIGFyZ3VtZW50cyB0byB0 aGF0IGNvbW1hbmQgKG9ubHkKLStCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJl Y29nbml6ZWQpLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgbGluaykKLSsgICAgICAgICRFQ0hP IFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9bGluayBMSU5LLUNPTU1B TkQuLi4KLSsKLStMaW5rIG9iamVjdCBmaWxlcyBvciBsaWJyYXJpZXMgdG9nZXRoZXIgdG8gZm9y bSBhbm90aGVyIGxpYnJhcnksIG9yIHRvCi0rY3JlYXRlIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbS4K LSsKLStMSU5LLUNPTU1BTkQgaXMgYSBjb21tYW5kIHVzaW5nIHRoZSBDIGNvbXBpbGVyIHRoYXQg eW91IHdvdWxkIHVzZSB0byBjcmVhdGUKLSthIHByb2dyYW0gZnJvbSBzZXZlcmFsIG9iamVjdCBm aWxlcy4KLSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2YgTElOSy1DT01NQU5EIGFyZSB0 cmVhdGVkIHNwZWNpYWxseToKLSsKLSsgIC1hbGwtc3RhdGljICAgICAgIGRvIG5vdCBkbyBhbnkg ZHluYW1pYyBsaW5raW5nIGF0IGFsbAotKyAgLWF2b2lkLXZlcnNpb24gICAgZG8gbm90IGFkZCBh IHZlcnNpb24gc3VmZml4IGlmIHBvc3NpYmxlCi0rICAtZGxvcGVuIEZJTEUgICAgICBcYC1kbHBy ZW9wZW4nIEZJTEUgaWYgaXQgY2Fubm90IGJlIGRsb3BlbmVkIGF0IHJ1bnRpbWUKLSsgIC1kbHBy ZW9wZW4gRklMRSAgIGxpbmsgaW4gRklMRSBhbmQgYWRkIGl0cyBzeW1ib2xzIHRvIGx0X3ByZWxv YWRlZF9zeW1ib2xzCi0rICAtZXhwb3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZyb20gT1VU UFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQotKyAgLWV4cG9ydC1zeW1ib2xz IFNZTUZJTEUKLSsgICAgICAgICAgICAgICAgICAgIHRyeSB0byBleHBvcnQgb25seSB0aGUgc3lt Ym9scyBsaXN0ZWQgaW4gU1lNRklMRQotKyAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IFJFR0VYCi0r ICAgICAgICAgICAgICAgICAgICB0cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbWF0Y2hp bmcgUkVHRVgKLSsgIC1MTElCRElSICAgICAgICAgIHNlYXJjaCBMSUJESVIgZm9yIHJlcXVpcmVk IGluc3RhbGxlZCBsaWJyYXJpZXMKLSsgIC1sTkFNRSAgICAgICAgICAgIE9VVFBVVC1GSUxFIHJl cXVpcmVzIHRoZSBpbnN0YWxsZWQgbGlicmFyeSBsaWJOQU1FCi0rICAtbW9kdWxlICAgICAgICAg ICBidWlsZCBhIGxpYnJhcnkgdGhhdCBjYW4gZGxvcGVuZWQKLSsgIC1uby1mYXN0LWluc3RhbGwg IGRpc2FibGUgdGhlIGZhc3QtaW5zdGFsbCBtb2RlCi0rICAtbm8taW5zdGFsbCAgICAgICBsaW5r IGEgbm90LWluc3RhbGxhYmxlIGV4ZWN1dGFibGUKLSsgIC1uby11bmRlZmluZWQgICAgIGRlY2xh cmUgdGhhdCBhIGxpYnJhcnkgZG9lcyBub3QgcmVmZXIgdG8gZXh0ZXJuYWwgc3ltYm9scwotKyAg LW8gT1VUUFVULUZJTEUgICAgY3JlYXRlIE9VVFBVVC1GSUxFIGZyb20gdGhlIHNwZWNpZmllZCBv YmplY3RzCi0rICAtb2JqZWN0bGlzdCBGSUxFICBVc2UgYSBsaXN0IG9mIG9iamVjdCBmaWxlcyBm b3VuZCBpbiBGSUxFIHRvIHNwZWNpZnkgb2JqZWN0cwotKyAgLXByZWNpb3VzLWZpbGVzLXJlZ2V4 IFJFR0VYCi0rICAgICAgICAgICAgICAgICAgICBkb24ndCByZW1vdmUgb3V0cHV0IGZpbGVzIG1h dGNoaW5nIFJFR0VYCi0rICAtcmVsZWFzZSBSRUxFQVNFICBzcGVjaWZ5IHBhY2thZ2UgcmVsZWFz ZSBpbmZvcm1hdGlvbgotKyAgLXJwYXRoIExJQkRJUiAgICAgdGhlIGNyZWF0ZWQgbGlicmFyeSB3 aWxsIGV2ZW50dWFsbHkgYmUgaW5zdGFsbGVkIGluIExJQkRJUgotKyAgLVJbIF1MSUJESVIgICAg ICAgYWRkIExJQkRJUiB0byB0aGUgcnVudGltZSBwYXRoIG9mIHByb2dyYW1zIGFuZCBsaWJyYXJp ZXMKLSsgIC1zaGFyZWQgICAgICAgICAgIG9ubHkgZG8gZHluYW1pYyBsaW5raW5nIG9mIGxpYnRv b2wgbGlicmFyaWVzCi0rICAtc2hyZXh0IFNVRkZJWCAgICBvdmVycmlkZSB0aGUgc3RhbmRhcmQg c2hhcmVkIGxpYnJhcnkgZmlsZSBleHRlbnNpb24KLSsgIC1zdGF0aWMgICAgICAgICAgIGRvIG5v dCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVz Ci0rICAtc3RhdGljLWxpYnRvb2wtbGlicwotKyAgICAgICAgICAgICAgICAgICAgZG8gbm90IGRv IGFueSBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC12ZXJzaW9uLWlu Zm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCi0rICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5 IGxpYnJhcnkgdmVyc2lvbiBpbmZvIFtlYWNoIHZhcmlhYmxlIGRlZmF1bHRzIHRvIDBdCi0rICAt d2VhayBMSUJOQU1FICAgICBkZWNsYXJlIHRoYXQgdGhlIHRhcmdldCBwcm92aWRlcyB0aGUgTElC TkFNRSBpbnRlcmZhY2UKLSsKLStBbGwgb3RoZXIgb3B0aW9ucyAoYXJndW1lbnRzIGJlZ2lubmlu ZyB3aXRoIFxgLScpIGFyZSBpZ25vcmVkLgotKwotK0V2ZXJ5IG90aGVyIGFyZ3VtZW50IGlzIHRy ZWF0ZWQgYXMgYSBmaWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBcYC5sYScgYXJlCi0rdHJlYXRl ZCBhcyB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcywgb3RoZXIgZmlsZXMgYXJlIHN0YW5k YXJkIG9yIGxpYnJhcnkKLStvYmplY3QgZmlsZXMuCi0rCi0rSWYgdGhlIE9VVFBVVC1GSUxFIGVu ZHMgaW4gXGAubGEnLCB0aGVuIGEgbGlidG9vbCBsaWJyYXJ5IGlzIGNyZWF0ZWQsCi0rb25seSBs aWJyYXJ5IG9iamVjdHMgKFxgLmxvJyBmaWxlcykgbWF5IGJlIHNwZWNpZmllZCwgYW5kIFxgLXJw YXRoJyBpcwotK3JlcXVpcmVkLCBleGNlcHQgd2hlbiBjcmVhdGluZyBhIGNvbnZlbmllbmNlIGxp YnJhcnkuCi0rCi0rSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5hJyBvciBcYC5saWInLCB0aGVu IGEgc3RhbmRhcmQgbGlicmFyeSBpcyBjcmVhdGVkCi0rdXNpbmcgXGBhcicgYW5kIFxgcmFubGli Jywgb3Igb24gV2luZG93cyB1c2luZyBcYGxpYicuCi0rCi0rSWYgT1VUUFVULUZJTEUgZW5kcyBp biBcYC5sbycgb3IgXGAuJHtvYmpleHR9JywgdGhlbiBhIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUK LStpcyBjcmVhdGVkLCBvdGhlcndpc2UgYW4gZXhlY3V0YWJsZSBwcm9ncmFtIGlzIGNyZWF0ZWQu IgotKyAgICAgICAgOzsKLSsKLSsgICAgICB1bmluc3RhbGwpCi0rICAgICAgICAkRUNITyBcCi0r IlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPXVuaW5zdGFsbCBSTSBbUk0tT1BU SU9OXS4uLiBGSUxFLi4uCi0rCi0rUmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxhdGlv biBkaXJlY3RvcnkuCi0rCi0rUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRv IGRlbGV0ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCi0rKHR5cGljYWxseSBcYC9i aW4vcm0nKS4gIFJNLU9QVElPTlMgYXJlIG9wdGlvbnMgKHN1Y2ggYXMgXGAtZicpIHRvIGJlIHBh c3NlZAotK3RvIFJNLgotKwotK0lmIEZJTEUgaXMgYSBsaWJ0b29sIGxpYnJhcnksIGFsbCB0aGUg ZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGl0IGFyZSBkZWxldGVkLgotK090aGVyd2lzZSwgb25seSBG SUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAg KikKLSsgICAgICAgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRt b2RlJyIKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgJEVDSE8KLSsgICAgJEVDSE8g IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90aGVy IG1vZGVzLiIKLSsKLSsgICAgZXhpdCAkPwotK30KLSsKLSsgICMgTm93IHRoYXQgd2UndmUgY29s bGVjdGVkIGEgcG9zc2libGUgLS1tb2RlIGFyZywgc2hvdyBoZWxwIGlmIG5lY2Vzc2FyeQotKyAg JG9wdF9oZWxwICYmIGZ1bmNfbW9kZV9oZWxwCi0rCi0rCi0rIyBmdW5jX21vZGVfZXhlY3V0ZSBh cmcuLi4KLStmdW5jX21vZGVfZXhlY3V0ZSAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICAj IFRoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgY29tbWFuZCBuYW1lLgotKyAgICBjbWQ9IiRub25v cHQiCi0rICAgIHRlc3QgLXogIiRjbWQiICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlv dSBtdXN0IHNwZWNpZnkgYSBDT01NQU5EIgotKwotKyAgICAjIEhhbmRsZSAtZGxvcGVuIGZsYWdz IGltbWVkaWF0ZWx5LgotKyAgICBmb3IgZmlsZSBpbiAkZXhlY3V0ZV9kbGZpbGVzOyBkbwotKyAg ICAgIHRlc3QgLWYgIiRmaWxlIiBcCi0rCXx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMg bm90IGEgZmlsZSIKLSsKLSsgICAgICBkaXI9Ci0rICAgICAgY2FzZSAkZmlsZSBpbgotKyAgICAg ICoubGEpCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFy Y2hpdmUuCi0rCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCi0rCSAgfHwgZnVuY19mYXRh bF9oZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLSsKLSsJIyBS ZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCi0rCWRsbmFtZT0KLSsJbGlicmFyeV9uYW1lcz0KLSsJ ZnVuY19zb3VyY2UgIiRmaWxlIgotKwotKwkjIFNraXAgdGhpcyBsaWJyYXJ5IGlmIGl0IGNhbm5v dCBiZSBkbG9wZW5lZC4KLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJICAjIFdhcm4g aWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMi ICYmIFwKLSsJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2FzIG5vdCBsaW5rZWQgd2l0aCBc YC1leHBvcnQtZHluYW1pYyciCi0rCSAgY29udGludWUKLSsJZmkKLSsKLSsJZnVuY19kaXJuYW1l ICIkZmlsZSIgIiIgIi4iCi0rCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCWlmIHRl c3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgotKwkgIGRpcj0iJGRpci8kb2JqZGly IgotKwllbHNlCi0rCSAgaWYgdGVzdCAhIC1mICIkZGlyLyRkbG5hbWUiOyB0aGVuCi0rCSAgICBm dW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBcYCRkbG5hbWUnIGluIFxgJGRpcicgb3IgXGAk ZGlyLyRvYmpkaXInIgotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBK dXN0IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIC5sbyBmaWxlLgotKwlmdW5jX2Rp cm5hbWUgIiRmaWxlIiAiIiAiLiIKLSsJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsJOzsK LSsKLSsgICAgICAqKQotKwlmdW5jX3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Ig bm9uLWxpYnRvb2wgbGlicmFyaWVzIGFuZCBvYmplY3RzIgotKwljb250aW51ZQotKwk7OwotKyAg ICAgIGVzYWMKLSsKLSsgICAgICAjIEdldCB0aGUgYWJzb2x1dGUgcGF0aG5hbWUuCi0rICAgICAg YWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAotKyAgICAgIHRlc3QgLW4gIiRhYnNkaXIiICYmIGRp cj0iJGFic2RpciIKLSsKLSsgICAgICAjIE5vdyBhZGQgdGhlIGRpcmVjdG9yeSB0byBzaGxpYnBh dGhfdmFyLgotKyAgICAgIGlmIGV2YWwgInRlc3QgLXogXCJcJCRzaGxpYnBhdGhfdmFyXCIiOyB0 aGVuCi0rCWV2YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXJcIiIKLSsgICAgICBlbHNlCi0rCWV2 YWwgIiRzaGxpYnBhdGhfdmFyPVwiXCRkaXI6XCQkc2hsaWJwYXRoX3ZhclwiIgotKyAgICAgIGZp Ci0rICAgIGRvbmUKLSsKLSsgICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0 cyBqdXN0IHRvIHNldCBzaGxpYnBhdGhfdmFyCi0rICAgICMgcmF0aGVyIHRoYW4gcnVubmluZyB0 aGVpciBwcm9ncmFtcy4KLSsgICAgbGlidG9vbF9leGVjdXRlX21hZ2ljPSIkbWFnaWMiCi0rCi0r ICAgICMgQ2hlY2sgaWYgYW55IG9mIHRoZSBhcmd1bWVudHMgaXMgYSB3cmFwcGVyIHNjcmlwdC4K LSsgICAgYXJncz0KLSsgICAgZm9yIGZpbGUKLSsgICAgZG8KLSsgICAgICBjYXNlICRmaWxlIGlu Ci0rICAgICAgLSopIDs7Ci0rICAgICAgKikKLSsJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMg aXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgotKwlpZiBmdW5jX2x0d3JhcHBlcl9zY3JpcHRf cCAiJGZpbGUiOyB0aGVuCi0rCSAgZnVuY19zb3VyY2UgIiRmaWxlIgotKwkgICMgVHJhbnNmb3Jt IGFyZyB0byB3cmFwcGVkIG5hbWUuCi0rCSAgZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCi0rCWVs aWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmlsZSI7IHRoZW4KLSsJICBmdW5jX2x0 d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKLSsJICBmdW5jX3NvdXJjZSAiJGZ1bmNfbHR3cmFw cGVyX3NjcmlwdG5hbWVfcmVzdWx0IgotKwkgICMgVHJhbnNmb3JtIGFyZyB0byB3cmFwcGVkIG5h bWUuCi0rCSAgZmlsZT0iJHByb2dkaXIvJHByb2dyYW0iCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNh YwotKyAgICAgICMgUXVvdGUgYXJndW1lbnRzICh0byBwcmVzZXJ2ZSBzaGVsbCBtZXRhY2hhcmFj dGVycykuCi0rICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZpbGUiCi0rICAgICAgYXJncz0i JGFyZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICBkb25lCi0rCi0rICAgIGlm IHRlc3QgIlgkb3B0X2RyeV9ydW4iID0gWGZhbHNlOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAi JHNobGlicGF0aF92YXIiOyB0aGVuCi0rCSMgRXhwb3J0IHRoZSBzaGxpYnBhdGhfdmFyLgotKwll dmFsICJleHBvcnQgJHNobGlicGF0aF92YXIiCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFJlc3Rv cmUgc2F2ZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzCi0rICAgICAgZm9yIGx0X3ZhciBpbiBMQU5H IExBTkdVQUdFIExDX0FMTCBMQ19DVFlQRSBMQ19DT0xMQVRFIExDX01FU1NBR0VTCi0rICAgICAg ZG8KLSsJZXZhbCAiaWYgdGVzdCBcIlwke3NhdmVfJGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4K LSsgICAgICAgICAgICAgICAgJGx0X3Zhcj1cJHNhdmVfJGx0X3ZhcjsgZXhwb3J0ICRsdF92YXIK LSsJICAgICAgZWxzZQotKwkJJGx0X3Vuc2V0ICRsdF92YXIKLSsJICAgICAgZmkiCi0rICAgICAg ZG9uZQotKwotKyAgICAgICMgTm93IHByZXBhcmUgdG8gYWN0dWFsbHkgZXhlYyB0aGUgY29tbWFu ZC4KLSsgICAgICBleGVjX2NtZD0iXCRjbWQkYXJncyIKLSsgICAgZWxzZQotKyAgICAgICMgRGlz cGxheSB3aGF0IHdvdWxkIGJlIGRvbmUuCi0rICAgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92 YXIiOyB0aGVuCi0rCWV2YWwgIlwkRUNITyBcIlwkc2hsaWJwYXRoX3Zhcj1cJCRzaGxpYnBhdGhf dmFyXCIiCi0rCSRFQ0hPICJleHBvcnQgJHNobGlicGF0aF92YXIiCi0rICAgICAgZmkKLSsgICAg ICAkRUNITyAiJGNtZCRhcmdzIgotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICBmaQot K30KLSsKLSt0ZXN0ICIkbW9kZSIgPSBleGVjdXRlICYmIGZ1bmNfbW9kZV9leGVjdXRlICR7MSsi JEAifQotKwotKwotKyMgZnVuY19tb2RlX2ZpbmlzaCBhcmcuLi4KLStmdW5jX21vZGVfZmluaXNo ICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIGxpYmRpcnM9IiRub25vcHQiCi0rICAgIGFk bWluY21kcz0KLSsKLSsgICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzJGZpbmlzaF9ldmFsIiAm JiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KLSsgICAgICBmb3IgZGlyCi0rICAgICAgZG8KLSsJ bGliZGlycz0iJGxpYmRpcnMgJGRpciIKLSsgICAgICBkb25lCi0rCi0rICAgICAgZm9yIGxpYmRp ciBpbiAkbGliZGlyczsgZG8KLSsJaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzIjsgdGhlbgotKwkg ICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBmaW5pc2ggY29tbWFuZHMuCi0rCSAgZnVuY19leGVj dXRlX2NtZHMgIiRmaW5pc2hfY21kcyIgJ2FkbWluY21kcz0iJGFkbWluY21kcwotKyciJGNtZCIn IicKLSsJZmkKLSsJaWYgdGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsgdGhlbgotKwkgICMgRG8gdGhl IHNpbmdsZSBmaW5pc2hfZXZhbC4KLSsJICBldmFsIGNtZHM9XCIkZmluaXNoX2V2YWxcIgotKwkg ICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kcyIgfHwgYWRtaW5jbWRzPSIkYWRtaW5jbWRzCi0r ICAgICAgICRjbWRzIgotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgZmkKLSsKLSsgICAgIyBFeGl0 IGhlcmUgaWYgdGhleSB3YW50ZWQgc2lsZW50IG1vZGUuCi0rICAgICRvcHRfc2lsZW50ICYmIGV4 aXQgJEVYSVRfU1VDQ0VTUwotKwotKyAgICAkRUNITyAiWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgJFhzZWQK LSsgICAgJEVDSE8gIkxpYnJhcmllcyBoYXZlIGJlZW4gaW5zdGFsbGVkIGluOiIKLSsgICAgZm9y IGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSsgICAgICAkRUNITyAiICAgJGxpYmRpciIKLSsgICAg ZG9uZQotKyAgICAkRUNITwotKyAgICAkRUNITyAiSWYgeW91IGV2ZXIgaGFwcGVuIHRvIHdhbnQg dG8gbGluayBhZ2FpbnN0IGluc3RhbGxlZCBsaWJyYXJpZXMiCi0rICAgICRFQ0hPICJpbiBhIGdp dmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNlIGxpYnRvb2wsIGFuZCIK LSsgICAgJEVDSE8gInNwZWNpZnkgdGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIGxpYnJhcnksIG9y IHVzZSB0aGUgXGAtTExJQkRJUiciCi0rICAgICRFQ0hPICJmbGFnIGR1cmluZyBsaW5raW5nIGFu ZCBkbyBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZzoiCi0rICAgIGlmIHRlc3QgLW4gIiRz aGxpYnBhdGhfdmFyIjsgdGhlbgotKyAgICAgICRFQ0hPICIgICAtIGFkZCBMSUJESVIgdG8gdGhl IFxgJHNobGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgotKyAgICAgICRFQ0hPICIg ICAgIGR1cmluZyBleGVjdXRpb24iCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgLW4gIiRydW5wYXRo X3ZhciI7IHRoZW4KLSsgICAgICAkRUNITyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRydW5w YXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCi0rICAgICAgJEVDSE8gIiAgICAgZHVyaW5n IGxpbmtpbmciCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjIjsgdGhlbgotKyAgICAgIGxpYmRpcj1MSUJESVIKLSsgICAgICBldmFsIGZsYWc9XCIk aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0rCi0rICAgICAgJEVDSE8gIiAgIC0gdXNlIHRo ZSBcYCRmbGFnJyBsaW5rZXIgZmxhZyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAtbiAiJGFkbWlu Y21kcyI7IHRoZW4KLSsgICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0 cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCi0rICAgIGZpCi0rICAgIGlmIHRl c3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0rICAgICAgJEVDSE8gIiAgIC0gaGF2ZSB5b3Vy IHN5c3RlbSBhZG1pbmlzdHJhdG9yIGFkZCBMSUJESVIgdG8gXGAvZXRjL2xkLnNvLmNvbmYnIgot KyAgICBmaQotKyAgICAkRUNITwotKwotKyAgICAkRUNITyAiU2VlIGFueSBvcGVyYXRpbmcgc3lz dGVtIGRvY3VtZW50YXRpb24gYWJvdXQgc2hhcmVkIGxpYnJhcmllcyBmb3IiCi0rICAgIGNhc2Ug JGhvc3QgaW4KLSsgICAgICBzb2xhcmlzMi5bNjc4OV18c29sYXJpczIuMVswLTldKQotKyAgICAg ICAgJEVDSE8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpLCBjcmxlKDEpIGFu ZCBsZC5zbyg4KSBtYW51YWwiCi0rCSRFQ0hPICJwYWdlcy4iCi0rCTs7Ci0rICAgICAgKikKLSsg ICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSBhbmQgbGQu c28oOCkgbWFudWFsIHBhZ2VzLiIKLSsgICAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAgJEVDSE8g IlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCi0rICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotK30KLSsK LSt0ZXN0ICIkbW9kZSIgPSBmaW5pc2ggJiYgZnVuY19tb2RlX2ZpbmlzaCAkezErIiRAIn0KLSsK LSsKLSsjIGZ1bmNfbW9kZV9pbnN0YWxsIGFyZy4uLgotK2Z1bmNfbW9kZV9pbnN0YWxsICgpCi0r ewotKyAgICAkb3B0X2RlYnVnCi0rICAgICMgVGhlcmUgbWF5IGJlIGFuIG9wdGlvbmFsIHNoKDEp IGFyZ3VtZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YKLSsgICAgIyBpbnN0YWxsX3Byb2cgKGVzcGVj aWFsbHkgb24gV2luZG93cyBOVCkuCi0rICAgIGlmIHRlc3QgIiRub25vcHQiID0gIiRTSEVMTCIg fHwgdGVzdCAiJG5vbm9wdCIgPSAvYmluL3NoIHx8Ci0rICAgICAgICMgQWxsb3cgdGhlIHVzZSBv ZiBHTlUgc2h0b29sJ3MgaW5zdGFsbCBjb21tYW5kLgotKyAgICAgICAkRUNITyAiWCRub25vcHQi IHwgJEdSRVAgc2h0b29sID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAjIEFlc3RoZXRpY2FsbHkg cXVvdGUgaXQuCi0rICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJG5vbm9wdCIKLSsgICAgICBp bnN0YWxsX3Byb2c9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCAiCi0rICAgICAgYXJnPSQx Ci0rICAgICAgc2hpZnQKLSsgICAgZWxzZQotKyAgICAgIGluc3RhbGxfcHJvZz0KLSsgICAgICBh cmc9JG5vbm9wdAotKyAgICBmaQotKwotKyAgICAjIFRoZSByZWFsIGZpcnN0IGFyZ3VtZW50IHNo b3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgaW5zdGFsbGF0aW9uIHByb2dyYW0uCi0rICAgICMgQWVz dGhldGljYWxseSBxdW90ZSBpdC4KLSsgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSsg ICAgaW5zdGFsbF9wcm9nPSIkaW5zdGFsbF9wcm9nJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0 IgotKwotKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxlYXN0IGFsbCB0aGUgQlNEIGluc3Rh bGwgZmxhZ3MuCi0rICAgIGRlc3Q9Ci0rICAgIGZpbGVzPQotKyAgICBvcHRzPQotKyAgICBwcmV2 PQotKyAgICBpbnN0YWxsX3R5cGU9Ci0rICAgIGlzZGlyPW5vCi0rICAgIHN0cmlwbWU9Ci0rICAg IGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBpZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4KLSsJZmls ZXM9IiRmaWxlcyAkZGVzdCIKLSsJZGVzdD0kYXJnCi0rCWNvbnRpbnVlCi0rICAgICAgZmkKLSsK LSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtZCkgaXNkaXI9eWVzIDs7Ci0rICAgICAgLWYp Ci0rCWNhc2UgIiAkaW5zdGFsbF9wcm9nICIgaW4KLSsJKltcXFwgL11jcFwgKikgOzsKLSsJKikg cHJldj0kYXJnIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAtZyB8IC1tIHwgLW8pCi0rCXByZXY9 JGFyZwotKwk7OwotKyAgICAgIC1zKQotKwlzdHJpcG1lPSIgLXMiCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rICAgICAgLSopCi0rCTs7Ci0rICAgICAgKikKLSsJIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9u IG5lZWRlZCBhbiBhcmd1bWVudCwgdGhlbiBza2lwIGl0LgotKwlpZiB0ZXN0IC1uICIkcHJldiI7 IHRoZW4KLSsJICBwcmV2PQotKwllbHNlCi0rCSAgZGVzdD0kYXJnCi0rCSAgY29udGludWUKLSsJ ZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRo ZSBhcmd1bWVudC4KLSsgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKyAgICAgIGlu c3RhbGxfcHJvZz0iJGluc3RhbGxfcHJvZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0r ICAgIGRvbmUKLSsKLSsgICAgdGVzdCAteiAiJGluc3RhbGxfcHJvZyIgJiYgXAotKyAgICAgIGZ1 bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBpbnN0YWxsIHByb2dyYW0iCi0rCi0r ICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCi0rICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAk cHJldicgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgotKwotKyAgICBpZiB0ZXN0IC16ICIk ZmlsZXMiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAteiAiJGRlc3QiOyB0aGVuCi0rCWZ1bmNfZmF0 YWxfaGVscCAibm8gZmlsZSBvciBkZXN0aW5hdGlvbiBzcGVjaWZpZWQiCi0rICAgICAgZWxzZQot KwlmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBkZXN0aW5hdGlvbiIKLSsgICAg ICBmaQotKyAgICBmaQotKwotKyAgICAjIFN0cmlwIGFueSB0cmFpbGluZyBzbGFzaCBmcm9tIHRo ZSBkZXN0aW5hdGlvbi4KLSsgICAgZnVuY19zdHJpcG5hbWUgJycgJy8nICIkZGVzdCIKLSsgICAg ZGVzdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0rICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQg dGhlIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LgotKyAgICB0ZXN0IC1kICIkZGVzdCIgJiYg aXNkaXI9eWVzCi0rICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRoZW4KLSsgICAgICBkZXN0 ZGlyPSIkZGVzdCIKLSsgICAgICBkZXN0bmFtZT0KLSsgICAgZWxzZQotKyAgICAgIGZ1bmNfZGly bmFtZV9hbmRfYmFzZW5hbWUgIiRkZXN0IiAiIiAiLiIKLSsgICAgICBkZXN0ZGlyPSIkZnVuY19k aXJuYW1lX3Jlc3VsdCIKLSsgICAgICBkZXN0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0Igot KwotKyAgICAgICMgTm90IGEgZGlyZWN0b3J5LCBzbyBjaGVjayB0byBzZWUgdGhhdCB0aGVyZSBp cyBvbmx5IG9uZSBmaWxlIHNwZWNpZmllZC4KLSsgICAgICBzZXQgZHVtbXkgJGZpbGVzOyBzaGlm dAotKyAgICAgIHRlc3QgIiQjIiAtZ3QgMSAmJiBcCi0rCWZ1bmNfZmF0YWxfaGVscCAiXGAkZGVz dCcgaXMgbm90IGEgZGlyZWN0b3J5IgotKyAgICBmaQotKyAgICBjYXNlICRkZXN0ZGlyIGluCi0r ICAgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKLSsgICAgKikKLSsgICAgICBmb3IgZmls ZSBpbiAkZmlsZXM7IGRvCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi5sbykgOzsKLSsJKikKLSsJICBm dW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3RkaXInIG11c3QgYmUgYW4gYWJzb2x1dGUgZGlyZWN0b3J5 IG5hbWUiCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICA7OwotKyAgICBlc2Fj Ci0rCi0rICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBz ZXQgdmFyaWFibGVzIHJhdGhlcgotKyAgICAjIHRoYW4gcnVubmluZyB0aGVpciBwcm9ncmFtcy4K LSsgICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCi0rCi0rICAgIHN0YXRpY2xpYnM9 Ci0rICAgIGZ1dHVyZV9saWJkaXJzPQotKyAgICBjdXJyZW50X2xpYmRpcnM9Ci0rICAgIGZvciBm aWxlIGluICRmaWxlczsgZG8KLSsKLSsgICAgICAjIERvIGVhY2ggaW5zdGFsbGF0aW9uLgotKyAg ICAgIGNhc2UgJGZpbGUgaW4KLSsgICAgICAqLiRsaWJleHQpCi0rCSMgRG8gdGhlIHN0YXRpYyBs aWJyYXJpZXMgbGF0ZXIuCi0rCXN0YXRpY2xpYnM9IiRzdGF0aWNsaWJzICRmaWxlIgotKwk7Owot KwotKyAgICAgICoubGEpCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBs aWJ0b29sIGFyY2hpdmUuCi0rCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCi0rCSAgfHwg ZnVuY19mYXRhbF9oZWxwICJcYCRmaWxlJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUi Ci0rCi0rCWxpYnJhcnlfbmFtZXM9Ci0rCW9sZF9saWJyYXJ5PQotKwlyZWxpbmtfY29tbWFuZD0K LSsJZnVuY19zb3VyY2UgIiRmaWxlIgotKwotKwkjIEFkZCB0aGUgbGliZGlyIHRvIGN1cnJlbnRf bGliZGlycyBpZiBpdCBpcyB0aGUgZGVzdGluYXRpb24uCi0rCWlmIHRlc3QgIlgkZGVzdGRpciIg PSAiWCRsaWJkaXIiOyB0aGVuCi0rCSAgY2FzZSAiJGN1cnJlbnRfbGliZGlycyAiIGluCi0rCSAg KiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBjdXJyZW50X2xpYmRpcnM9IiRjdXJyZW50X2xpYmRp cnMgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWVsc2UKLSsJICAjIE5vdGUgdGhlIGxpYmRpciBh cyBhIGZ1dHVyZSBsaWJkaXIuCi0rCSAgY2FzZSAiJGZ1dHVyZV9saWJkaXJzICIgaW4KLSsJICAq IiAkbGliZGlyICIqKSA7OwotKwkgICopIGZ1dHVyZV9saWJkaXJzPSIkZnV0dXJlX2xpYmRpcnMg JGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIv IiAiIgotKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwlkaXI9IiRkaXIkb2JqZGlyIgot KwotKwlpZiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCi0rCSAgIyBEZXRlcm1pbmUg dGhlIHByZWZpeCB0aGUgdXNlciBoYXMgYXBwbGllZCB0byBvdXIgZnV0dXJlIGRpci4KLSsJICBp bnN0X3ByZWZpeF9kaXI9YCRFQ0hPICJYJGRlc3RkaXIiIHwgJFhzZWQgLWUgInMlJGxpYmRpclwk JSUiYAotKwotKwkgICMgRG9uJ3QgYWxsb3cgdGhlIHVzZXIgdG8gcGxhY2UgdXMgb3V0c2lkZSBv ZiBvdXIgZXhwZWN0ZWQKLSsJICAjIGxvY2F0aW9uIGIvYyB0aGlzIHByZXZlbnRzIGZpbmRpbmcg ZGVwZW5kZW50IGxpYnJhcmllcyB0aGF0Ci0rCSAgIyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBzYW1l IHByZWZpeC4KLSsJICAjIEF0IHByZXNlbnQsIHRoaXMgY2hlY2sgZG9lc24ndCBhZmZlY3Qgd2lu ZG93cyAuZGxsJ3MgdGhhdAotKwkgICMgYXJlIGluc3RhbGxlZCBpbnRvICRsaWJkaXIvLi4vYmlu IChjdXJyZW50bHksIHRoYXQgd29ya3MgZmluZSkKLSsJICAjIGJ1dCBpdCdzIHNvbWV0aGluZyB0 byBrZWVwIGFuIGV5ZSBvbi4KLSsJICB0ZXN0ICIkaW5zdF9wcmVmaXhfZGlyIiA9ICIkZGVzdGRp ciIgJiYgXAotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxg JGZpbGUnIHRvIGEgZGlyZWN0b3J5IG5vdCBlbmRpbmcgaW4gJGxpYmRpciIKLSsKLSsJICBpZiB0 ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgotKwkgICAgIyBTdGljayB0aGUgaW5zdF9w cmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgotKwkgICAgcmVsaW5rX2NvbW1h bmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBpbnN0X3ByZWZpeF9k aXJAJS1pbnN0LXByZWZpeC1kaXIgJGluc3RfcHJlZml4X2RpciUiYAotKwkgIGVsc2UKLSsJICAg IHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVA aW5zdF9wcmVmaXhfZGlyQCUlImAKLSsJICBmaQotKwotKwkgIGZ1bmNfd2FybmluZyAicmVsaW5r aW5nIFxgJGZpbGUnIgotKwkgIGZ1bmNfc2hvd19ldmFsICIkcmVsaW5rX2NvbW1hbmQiIFwKLSsJ ICAgICdmdW5jX2ZhdGFsX2Vycm9yICJlcnJvcjogcmVsaW5rIFxgJGZpbGUnXCcnIHdpdGggdGhl IGFib3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcgaXQiJwotKwlmaQotKwotKwkjIFNlZSB0 aGUgbmFtZXMgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgotKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFt ZXM7IHNoaWZ0Ci0rCWlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKwkgIHJlYWxuYW1lPSIkMSIKLSsJ ICBzaGlmdAotKwotKwkgIHNyY25hbWU9IiRyZWFsbmFtZSIKLSsJICB0ZXN0IC1uICIkcmVsaW5r X2NvbW1hbmQiICYmIHNyY25hbWU9IiRyZWFsbmFtZSJUCi0rCi0rCSAgIyBJbnN0YWxsIHRoZSBz aGFyZWQgbGlicmFyeSBhbmQgYnVpbGQgdGhlIHN5bWxpbmtzLgotKwkgIGZ1bmNfc2hvd19ldmFs ICIkaW5zdGFsbF9wcm9nICRkaXIvJHNyY25hbWUgJGRlc3RkaXIvJHJlYWxuYW1lIiBcCi0rCSAg ICAgICdleGl0ICQ/JwotKwkgIHRzdHJpcG1lPSIkc3RyaXBtZSIKLSsJICBjYXNlICRob3N0X29z IGluCi0rCSAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKwkgICAgY2FzZSAk cmVhbG5hbWUgaW4KLSsJICAgICouZGxsLmEpCi0rCSAgICAgIHRzdHJpcG1lPSIiCi0rCSAgICAg IDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBpZiB0ZXN0IC1uICIkdHN0 cmlwbWUiICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7IHRoZW4KLSsJICAgIGZ1bmNfc2hvd19ldmFs ICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1lIiAnZXhpdCAkPycKLSsJICBmaQotKwotKwkg IGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkgICAgIyBEZWxldGUgdGhlIG9sZCBzeW1saW5r cywgYW5kIGNyZWF0ZSBuZXcgb25lcy4KLSsJICAgICMgVHJ5IGBsbiAtc2YnIGZpcnN0LCBiZWNh dXNlIHRoZSBgbG4nIGJpbmFyeSBtaWdodCBkZXBlbmQgb24KLSsJICAgICMgdGhlIHN5bWxpbmsg d2UgcmVwbGFjZSEgIFNvbGFyaXMgL2Jpbi9sbiBkb2VzIG5vdCB1bmRlcnN0YW5kIC1mLAotKwkg ICAgIyBzbyB3ZSBhbHNvIG5lZWQgdG8gdHJ5IHJtICYmIGxuIC1zLgotKwkgICAgZm9yIGxpbmtu YW1lCi0rCSAgICBkbwotKwkgICAgICB0ZXN0ICIkbGlua25hbWUiICE9ICIkcmVhbG5hbWUiIFwK LSsJCSYmIGZ1bmNfc2hvd19ldmFsICIoY2QgJGRlc3RkaXIgJiYgeyAkTE5fUyAtZiAkcmVhbG5h bWUgJGxpbmtuYW1lIHx8IHsgJFJNICRsaW5rbmFtZSAmJiAkTE5fUyAkcmVhbG5hbWUgJGxpbmtu YW1lOyB9OyB9KSIKLSsJICAgIGRvbmUKLSsJICBmaQotKwotKwkgICMgRG8gZWFjaCBjb21tYW5k IGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KLSsJICBsaWI9IiRkZXN0ZGlyLyRyZWFsbmFt ZSIKLSsJICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/Jwot KwlmaQotKwotKwkjIEluc3RhbGwgdGhlIHBzZXVkby1saWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBw dXJwb3Nlcy4KLSsJZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rCW5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKLSsJaW5zdG5hbWU9IiRkaXIvJG5hbWUiaQotKwlmdW5jX3Nob3dfZXZhbCAiJGlu c3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUiICdleGl0ICQ/JwotKwotKwkjIE1h eWJlIGluc3RhbGwgdGhlIHN0YXRpYyBsaWJyYXJ5LCB0b28uCi0rCXRlc3QgLW4gIiRvbGRfbGli cmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8kb2xkX2xpYnJhcnkiCi0rCTs7 Ci0rCi0rICAgICAgKi5sbykKLSsJIyBJbnN0YWxsIChpLmUuIGNvcHkpIGEgbGlidG9vbCBvYmpl Y3QuCi0rCi0rCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdhc24n dCBhbHJlYWR5IHNwZWNpZmllZC4KLSsJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgotKwkg IGRlc3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCi0rCWVsc2UKLSsJICBmdW5jX2Jhc2VuYW1l ICIkZmlsZSIKLSsJICBkZXN0ZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkgIGRlc3Rm aWxlPSIkZGVzdGRpci8kZGVzdGZpbGUiCi0rCWZpCi0rCi0rCSMgRGVkdWNlIHRoZSBuYW1lIG9m IHRoZSBkZXN0aW5hdGlvbiBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCi0rCWNhc2UgJGRlc3RmaWxl IGluCi0rCSoubG8pCi0rCSAgZnVuY19sbzJvICIkZGVzdGZpbGUiCi0rCSAgc3RhdGljZGVzdD0k ZnVuY19sbzJvX3Jlc3VsdAotKwkgIDs7Ci0rCSouJG9iamV4dCkKLSsJICBzdGF0aWNkZXN0PSIk ZGVzdGZpbGUiCi0rCSAgZGVzdGZpbGU9Ci0rCSAgOzsKLSsJKikKLSsJICBmdW5jX2ZhdGFsX2hl bHAgImNhbm5vdCBjb3B5IGEgbGlidG9vbCBvYmplY3QgdG8gXGAkZGVzdGZpbGUnIgotKwkgIDs7 Ci0rCWVzYWMKLSsKLSsJIyBJbnN0YWxsIHRoZSBsaWJ0b29sIG9iamVjdCBpZiByZXF1ZXN0ZWQu Ci0rCXRlc3QgLW4gIiRkZXN0ZmlsZSIgJiYgXAotKwkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFs bF9wcm9nICRmaWxlICRkZXN0ZmlsZSIgJ2V4aXQgJD8nCi0rCi0rCSMgSW5zdGFsbCB0aGUgb2xk IG9iamVjdCBpZiBlbmFibGVkLgotKwlpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0 aGVuCi0rCSAgIyBEZWR1Y2UgdGhlIG5hbWUgb2YgdGhlIG9sZC1zdHlsZSBvYmplY3QgZmlsZS4K LSsJICBmdW5jX2xvMm8gIiRmaWxlIgotKwkgIHN0YXRpY29iaj0kZnVuY19sbzJvX3Jlc3VsdAot KwkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nIFwkc3RhdGljb2JqIFwkc3RhdGljZGVz dCIgJ2V4aXQgJD8nCi0rCWZpCi0rCWV4aXQgJEVYSVRfU1VDQ0VTUwotKwk7OwotKwotKyAgICAg ICopCi0rCSMgRmlndXJlIG91dCBkZXN0aW5hdGlvbiBmaWxlIG5hbWUsIGlmIGl0IHdhc24ndCBh bHJlYWR5IHNwZWNpZmllZC4KLSsJaWYgdGVzdCAtbiAiJGRlc3RuYW1lIjsgdGhlbgotKwkgIGRl c3RmaWxlPSIkZGVzdGRpci8kZGVzdG5hbWUiCi0rCWVsc2UKLSsJICBmdW5jX2Jhc2VuYW1lICIk ZmlsZSIKLSsJICBkZXN0ZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkgIGRlc3RmaWxl PSIkZGVzdGRpci8kZGVzdGZpbGUiCi0rCWZpCi0rCi0rCSMgSWYgdGhlIGZpbGUgaXMgbWlzc2lu ZywgYW5kIHRoZXJlIGlzIGEgLmV4ZSBvbiB0aGUgZW5kLCBzdHJpcCBpdAotKwkjIGJlY2F1c2Ug aXQgaXMgbW9zdCBsaWtlbHkgYSBsaWJ0b29sIHNjcmlwdCB3ZSBhY3R1YWxseSB3YW50IHRvCi0r CSMgaW5zdGFsbAotKwlzdHJpcHBlZF9leHQ9IiIKLSsJY2FzZSAkZmlsZSBpbgotKwkgICouZXhl KQotKwkgICAgaWYgdGVzdCAhIC1mICIkZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY19zdHJpcG5h bWUgJycgJy5leGUnICIkZmlsZSIKLSsJICAgICAgZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 Ci0rCSAgICAgIHN0cmlwcGVkX2V4dD0iLmV4ZSIKLSsJICAgIGZpCi0rCSAgICA7OwotKwllc2Fj Ci0rCi0rCSMgRG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJv Z3JhbS4KLSsJY2FzZSAkaG9zdCBpbgotKwkqY3lnd2luKiB8ICptaW5ndyopCi0rCSAgICBpZiBm dW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgotKwkgICAgICBmdW5jX2x0 d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKLSsJICAgICAgd3JhcHBlcj0kZnVuY19sdHdyYXBw ZXJfc2NyaXB0bmFtZV9yZXN1bHQKLSsJICAgIGVsc2UKLSsJICAgICAgZnVuY19zdHJpcG5hbWUg JycgJy5leGUnICIkZmlsZSIKLSsJICAgICAgd3JhcHBlcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 Ci0rCSAgICBmaQotKwkgICAgOzsKLSsJKikKLSsJICAgIHdyYXBwZXI9JGZpbGUKLSsJICAgIDs7 Ci0rCWVzYWMKLSsJaWYgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiR3cmFwcGVyIjsgdGhlbgot KwkgIG5vdGluc3RfZGVwbGlicz0KLSsJICByZWxpbmtfY29tbWFuZD0KLSsKLSsJICBmdW5jX3Nv dXJjZSAiJHdyYXBwZXIiCi0rCi0rCSAgIyBDaGVjayB0aGUgdmFyaWFibGVzIHRoYXQgc2hvdWxk IGhhdmUgYmVlbiBzZXQuCi0rCSAgdGVzdCAteiAiJGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNp b24iICYmIFwKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImludmFsaWQgbGlidG9vbCB3cmFwcGVy IHNjcmlwdCBcYCR3cmFwcGVyJyIKLSsKLSsJICBmaW5hbGl6ZT15ZXMKLSsJICBmb3IgbGliIGlu ICRub3RpbnN0X2RlcGxpYnM7IGRvCi0rCSAgICAjIENoZWNrIHRvIHNlZSB0aGF0IGVhY2ggbGli cmFyeSBpcyBpbnN0YWxsZWQuCi0rCSAgICBsaWJkaXI9Ci0rCSAgICBpZiB0ZXN0IC1mICIkbGli IjsgdGhlbgotKwkgICAgICBmdW5jX3NvdXJjZSAiJGxpYiIKLSsJICAgIGZpCi0rCSAgICBsaWJm aWxlPSIkbGliZGlyLyJgJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdzJV4uKi8lJWcnYCAjIyMg dGVzdHN1aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKLSsJICAgIGlmIHRlc3QgLW4gIiRs aWJkaXIiICYmIHRlc3QgISAtZiAiJGxpYmZpbGUiOyB0aGVuCi0rCSAgICAgIGZ1bmNfd2Fybmlu ZyAiXGAkbGliJyBoYXMgbm90IGJlZW4gaW5zdGFsbGVkIGluIFxgJGxpYmRpciciCi0rCSAgICAg IGZpbmFsaXplPW5vCi0rCSAgICBmaQotKwkgIGRvbmUKLSsKLSsJICByZWxpbmtfY29tbWFuZD0K LSsJICBmdW5jX3NvdXJjZSAiJHdyYXBwZXIiCi0rCi0rCSAgb3V0cHV0bmFtZT0KLSsJICBpZiB0 ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IG5vICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRo ZW4KLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgIGlmIHRlc3QgIiRmaW5hbGl6ZSIg PSB5ZXM7IHRoZW4KLSsJICAgICAgICB0bXBkaXI9YGZ1bmNfbWt0ZW1wZGlyYAotKwkJZnVuY19i YXNlbmFtZSAiJGZpbGUkc3RyaXBwZWRfZXh0IgotKwkJZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVz dWx0IgotKwkgICAgICAgIG91dHB1dG5hbWU9IiR0bXBkaXIvJGZpbGUiCi0rCSAgICAgICAgIyBS ZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKwkgICAgICAgIHJlbGlua19j b21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUn IiRvdXRwdXRuYW1lIiclZydgCi0rCi0rCSAgICAgICAgJG9wdF9zaWxlbnQgfHwgewotKwkgICAg ICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkcmVsaW5rX2NvbW1hbmQiCi0rCQkgIGV2YWwg ImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKLSsJICAgICAgICB9Ci0r CSAgICAgICAgaWYgZXZhbCAiJHJlbGlua19jb21tYW5kIjsgdGhlbiA6Ci0rCSAgICAgICAgICBl bHNlCi0rCQkgIGZ1bmNfZXJyb3IgImVycm9yOiByZWxpbmsgXGAkZmlsZScgd2l0aCB0aGUgYWJv dmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIKLSsJCSAgJG9wdF9kcnlfcnVuIHx8ICR7 Uk19ciAiJHRtcGRpciIKLSsJCSAgY29udGludWUKLSsJICAgICAgICBmaQotKwkgICAgICAgIGZp bGU9IiRvdXRwdXRuYW1lIgotKwkgICAgICBlbHNlCi0rCSAgICAgICAgZnVuY193YXJuaW5nICJj YW5ub3QgcmVsaW5rIFxgJGZpbGUnIgotKwkgICAgICBmaQotKwkgICAgfQotKwkgIGVsc2UKLSsJ ICAgICMgSW5zdGFsbCB0aGUgYmluYXJ5IHRoYXQgd2UgY29tcGlsZWQgZWFybGllci4KLSsJICAg IGZpbGU9YCRFQ0hPICJYJGZpbGUkc3RyaXBwZWRfZXh0IiB8ICRYc2VkIC1lICJzJVwoW14vXSpc KSQlJG9iamRpci9cMSUiYAotKwkgIGZpCi0rCWZpCi0rCi0rCSMgcmVtb3ZlIC5leGUgc2luY2Ug Y3lnd2luIC91c3IvYmluL2luc3RhbGwgd2lsbCBhcHBlbmQgYW5vdGhlcgotKwkjIG9uZSBhbnl3 YXkKLSsJY2FzZSAkaW5zdGFsbF9wcm9nLCRob3N0IGluCi0rCSovdXNyL2Jpbi9pbnN0YWxsKiwq Y3lnd2luKikKLSsJICBjYXNlICRmaWxlOiRkZXN0ZmlsZSBpbgotKwkgICouZXhlOiouZXhlKQot KwkgICAgIyB0aGlzIGlzIG9rCi0rCSAgICA7OwotKwkgICouZXhlOiopCi0rCSAgICBkZXN0Zmls ZT0kZGVzdGZpbGUuZXhlCi0rCSAgICA7OwotKwkgICo6Ki5leGUpCi0rCSAgICBmdW5jX3N0cmlw bmFtZSAnJyAnLmV4ZScgIiRkZXN0ZmlsZSIKLSsJICAgIGRlc3RmaWxlPSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsJZnVuY19zaG93 X2V2YWwgIiRpbnN0YWxsX3Byb2dcJHN0cmlwbWUgXCRmaWxlIFwkZGVzdGZpbGUiICdleGl0ICQ/ JwotKwkkb3B0X2RyeV9ydW4gfHwgaWYgdGVzdCAtbiAiJG91dHB1dG5hbWUiOyB0aGVuCi0rCSAg JHtSTX1yICIkdG1wZGlyIgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwot KyAgICBmb3IgZmlsZSBpbiAkc3RhdGljbGliczsgZG8KLSsgICAgICBmdW5jX2Jhc2VuYW1lICIk ZmlsZSIKLSsgICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCi0rICAgICAgIyBT ZXQgdXAgdGhlIHJhbmxpYiBwYXJhbWV0ZXJzLgotKyAgICAgIG9sZGxpYj0iJGRlc3RkaXIvJG5h bWUiCi0rCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRmaWxlIFwkb2xk bGliIiAnZXhpdCAkPycKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkc3RyaXBtZSIgJiYgdGVzdCAt biAiJG9sZF9zdHJpcGxpYiI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgIiRvbGRfc3RyaXBsaWIg JG9sZGxpYiIgJ2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAgICAjIERvIGVhY2ggY29tbWFu ZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCi0rICAgICAgZnVuY19leGVjdXRlX2NtZHMg IiRvbGRfcG9zdGluc3RhbGxfY21kcyIgJ2V4aXQgJD8nCi0rICAgIGRvbmUKLSsKLSsgICAgdGVz dCAtbiAiJGZ1dHVyZV9saWJkaXJzIiAmJiBcCi0rICAgICAgZnVuY193YXJuaW5nICJyZW1lbWJl ciB0byBydW4gXGAkcHJvZ25hbWUgLS1maW5pc2gkZnV0dXJlX2xpYmRpcnMnIgotKwotKyAgICBp ZiB0ZXN0IC1uICIkY3VycmVudF9saWJkaXJzIjsgdGhlbgotKyAgICAgICMgTWF5YmUganVzdCBk byBhIGRyeSBydW4uCi0rICAgICAgJG9wdF9kcnlfcnVuICYmIGN1cnJlbnRfbGliZGlycz0iIC1u JGN1cnJlbnRfbGliZGlycyIKLSsgICAgICBleGVjX2NtZD0nJFNIRUxMICRwcm9ncGF0aCAkcHJl c2VydmVfYXJncyAtLWZpbmlzaCRjdXJyZW50X2xpYmRpcnMnCi0rICAgIGVsc2UKLSsgICAgICBl eGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgZmkKLSt9Ci0rCi0rdGVzdCAiJG1vZGUiID0gaW5zdGFs bCAmJiBmdW5jX21vZGVfaW5zdGFsbCAkezErIiRAIn0KLSsKLSsKLSsjIGZ1bmNfZ2VuZXJhdGVf ZGxzeW1zIG91dHB1dG5hbWUgb3JpZ2luYXRvciBwaWNfcAotKyMgRXh0cmFjdCBzeW1ib2xzIGZy b20gZGxwcmVmaWxlcyBhbmQgY3JlYXRlICR7b3V0cHV0bmFtZX1TLm8gd2l0aAotKyMgYSBkbHBy ZW9wZW4gc3ltYm9sIHRhYmxlLgotK2Z1bmNfZ2VuZXJhdGVfZGxzeW1zICgpCi0rewotKyAgICAk b3B0X2RlYnVnCi0rICAgIG15X291dHB1dG5hbWU9IiQxIgotKyAgICBteV9vcmlnaW5hdG9yPSIk MiIKLSsgICAgbXlfcGljX3A9IiR7My1ub30iCi0rICAgIG15X3ByZWZpeD1gJEVDSE8gIiRteV9v cmlnaW5hdG9yIiB8IHNlZCAncyVbXmEtekEtWjAtOV0lXyVnJ2AKLSsgICAgbXlfZGxzeW1zPQot KwotKyAgICBpZiB0ZXN0IC1uICIkZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxm IiAhPSBubzsgdGhlbgotKyAgICAgIGlmIHRlc3QgLW4gIiROTSIgJiYgdGVzdCAtbiAiJGdsb2Jh bF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJbXlfZGxzeW1zPSIke215X291dHB1dG5hbWV9Uy5jIgot KyAgICAgIGVsc2UKLSsJZnVuY19lcnJvciAibm90IGNvbmZpZ3VyZWQgdG8gZXh0cmFjdCBnbG9i YWwgc3ltYm9scyBmcm9tIGRscHJlb3BlbmVkIGZpbGVzIgotKyAgICAgIGZpCi0rICAgIGZpCi0r Ci0rICAgIGlmIHRlc3QgLW4gIiRteV9kbHN5bXMiOyB0aGVuCi0rICAgICAgY2FzZSAkbXlfZGxz eW1zIGluCi0rICAgICAgIiIpIDs7Ci0rICAgICAgKi5jKQotKwkjIERpc2NvdmVyIHRoZSBubGlz dCBvZiBlYWNoIG9mIHRoZSBkbGZpbGVzLgotKwlubGlzdD0iJG91dHB1dF9vYmpkaXIvJHtteV9v dXRwdXRuYW1lfS5ubSIKLSsKLSsJZnVuY19zaG93X2V2YWwgIiRSTSAkbmxpc3QgJHtubGlzdH1T ICR7bmxpc3R9VCIKLSsKLSsJIyBQYXJzZSB0aGUgbmFtZSBsaXN0IGludG8gYSBzb3VyY2UgZmls ZS4KLSsJZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgot KwotKwkkb3B0X2RyeV9ydW4gfHwgJEVDSE8gPiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIg IlwKLSsvKiAkbXlfZGxzeW1zIC0gc3ltYm9sIHJlc29sdXRpb24gdGFibGUgZm9yIFxgJG15X291 dHB1dG5hbWUnIGRsc3ltIGVtdWxhdGlvbi4gKi8KLSsvKiBHZW5lcmF0ZWQgYnkgJFBST0dSQU0g KEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OICovCi0rCi0rI2lmZGVmIF9fY3BsdXNw bHVzCi0rZXh0ZXJuIFwiQ1wiIHsKLSsjZW5kaWYKLSsKLSsvKiBFeHRlcm5hbCBzeW1ib2wgZGVj bGFyYXRpb25zIGZvciB0aGUgY29tcGlsZXIuICovXAotKyIKLSsKLSsJaWYgdGVzdCAiJGRsc2Vs ZiIgPSB5ZXM7IHRoZW4KLSsJICBmdW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3Qg Zm9yIFxgJG91dHB1dCciCi0rCi0rCSAgJG9wdF9kcnlfcnVuIHx8IGVjaG8gJzogQFBST0dSQU1A ICcgPiAiJG5saXN0IgotKwotKwkgICMgQWRkIG91ciBvd24gcHJvZ3JhbSBvYmplY3RzIHRvIHRo ZSBzeW1ib2wgbGlzdC4KLSsJICBwcm9nZmlsZXM9YCRFQ0hPICJYJG9ianMkb2xkX2RlcGxpYnMi IHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKLSsJICBmb3IgcHJvZ2ZpbGUg aW4gJHByb2dmaWxlczsgZG8KLSsJICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9iYWwg QyBzeW1ib2xzIGZyb20gXGAkcHJvZ2ZpbGUnIgotKwkgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwg IiROTSAkcHJvZ2ZpbGUgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ICckbmxpc3QnIgotKwkgIGRv bmUKLSsKLSsJICBpZiB0ZXN0IC1uICIkZXhjbHVkZV9leHBzeW1zIjsgdGhlbgotKwkgICAgJG9w dF9kcnlfcnVuIHx8IHsKLSsJICAgICAgZXZhbCAnJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5 bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQg IiRubGlzdCInCi0rCSAgICB9Ci0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5 bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICBldmFs ICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRubGlzdCIgPiAiJG5saXN0IlQn Ci0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCi0rCSAgICB9Ci0rCSAgZmkK LSsKLSsJICAjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scwotKwkgIGlmIHRl c3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0 cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkg ICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICAgIGV2YWwgIiR7U0VEfSAtbiAtZSAnL146 IEBQUk9HUkFNQCAkL2QnIC1lICdzL14uKiBcKC4qXCkkL1wxL3AnICInPCAiJG5saXN0IiA+ICIk ZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICpjeWd3aW4q IHwgKm1pbmd3KiB8ICpjZWdjYyogKQotKyAgICAgICAgICAgICAgICBldmFsICJlY2hvIEVYUE9S VFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwotKyAgICAgICAgICAgICAg ICBldmFsICdjYXQgIiRleHBvcnRfc3ltYm9scyIgPj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRu YW1lLmRlZiInCi0rCSAgICAgICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgfQotKwkgIGVsc2UK LSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgIGV2YWwgIiR7U0VEfSAtZSAncy9cKFtd LlsqXiRdXCkvXFxcXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9z eW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiJwotKwkgICAgICBldmFs ICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4g IiRubGlzdCJUJwotKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJwotKwkgICAg ICBjYXNlICRob3N0IGluCi0rCSAgICAgICAgKmN5Z3dpbiB8ICptaW5ndyogfCAqY2VnY2MqICkK LSsJICAgICAgICAgIGV2YWwgImVjaG8gRVhQT1JUUyAiJz4gIiRvdXRwdXRfb2JqZGlyLyRvdXRw dXRuYW1lLmRlZiInCi0rCSAgICAgICAgICBldmFsICdjYXQgIiRubGlzdCIgPj4gIiRvdXRwdXRf b2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rCSAgICAgICAgICA7OwotKwkgICAgICBlc2FjCi0r CSAgICB9Ci0rCSAgZmkKLSsJZmkKLSsKLSsJZm9yIGRscHJlZmlsZSBpbiAkZGxwcmVmaWxlczsg ZG8KLSsJICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxg JGRscHJlZmlsZSciCi0rCSAgZnVuY19iYXNlbmFtZSAiJGRscHJlZmlsZSIKLSsJICBuYW1lPSIk ZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgIGV2YWwg JyRFQ0hPICI6ICRuYW1lICIgPj4gIiRubGlzdCInCi0rCSAgICBldmFsICIkTk0gJGRscHJlZmls ZSAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCi0rCSAgfQot Kwlkb25lCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgIyBNYWtlIHN1cmUgd2UgaGF2ZSBh dCBsZWFzdCBhbiBlbXB0eSBmaWxlLgotKwkgIHRlc3QgLWYgIiRubGlzdCIgfHwgOiA+ICIkbmxp c3QiCi0rCi0rCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAgICRF R1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUCi0rCSAg ICAkTVYgIiRubGlzdCJUICIkbmxpc3QiCi0rCSAgZmkKLSsKLSsJICAjIFRyeSBzb3J0aW5nIGFu ZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKwkgIGlmICRHUkVQIC12ICJeOiAiIDwgIiRubGlz dCIgfAotKwkgICAgICBpZiBzb3J0IC1rIDMgPC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsJCXNvcnQgLWsgMwotKwkgICAgICBlbHNlCi0rCQlzb3J0ICsyCi0rCSAgICAgIGZpIHwK LSsJICAgICAgdW5pcSA+ICIkbmxpc3QiUzsgdGhlbgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAg ICRHUkVQIC12ICJeOiAiIDwgIiRubGlzdCIgPiAiJG5saXN0IlMKLSsJICBmaQotKwotKwkgIGlm IHRlc3QgLWYgIiRubGlzdCJTOyB0aGVuCi0rCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19j ZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIicKLSsJICBl bHNlCi0rCSAgICAkRUNITyAnLyogTk9ORSAqLycgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5 bXMiCi0rCSAgZmkKLSsKLSsJICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIg IlwKLSsKLSsvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4g ICovCi0rdHlwZWRlZiBzdHJ1Y3QgewotKyAgY29uc3QgY2hhciAqbmFtZTsKLSsgIHZvaWQgKmFk ZHJlc3M7Ci0rfSBsdF9kbHN5bWxpc3Q7Ci0rIgotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAqY3ln d2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKLSsJICAgICRFQ0hPID4+ICIkb3V0cHV0X29iamRp ci8kbXlfZGxzeW1zIiAiXAotKy8qIERBVEEgaW1wb3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29u J3QgYmUgY29uc3QsIGJlY2F1c2UKLSsgICBydW50aW1lIHJlbG9jYXRpb25zIGFyZSBwZXJmb3Jt ZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbgotKyAgIG9uIHBzZXVkby1yZWxvY3MuICAqLyIK LSsJICAgIGx0X2Rsc3ltX2NvbnN0PSA7OwotKwkgICpvc2Y1KikKLSsJICAgIGVjaG8gPj4gIiRv dXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi0rLyogVGhpcyBzeXN0ZW0gZG9lcyBub3QgY29w ZSB3ZWxsIHdpdGggcmVsb2NhdGlvbnMgaW4gY29uc3QgZGF0YSAqLyIKLSsJICAgIGx0X2Rsc3lt X2NvbnN0PSA7OwotKwkgICopCi0rCSAgICBsdF9kbHN5bV9jb25zdD1jb25zdCA7OwotKwkgIGVz YWMKLSsKLSsJICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKLStleHRl cm4gJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAotK2x0XyR7bXlfcHJlZml4fV9MVFhfcHJl bG9hZGVkX3N5bWJvbHNbXTsKLSskbHRfZGxzeW1fY29uc3QgbHRfZGxzeW1saXN0Ci0rbHRfJHtt eV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0KLSt7XAotKyAgeyBcIiRteV9vcmln aW5hdG9yXCIsICh2b2lkICopIDAgfSwiCi0rCi0rCSAgY2FzZSAkbmVlZF9saWJfcHJlZml4IGlu Ci0rCSAgbm8pCi0rCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyIg PCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKLSsJICAgIDs7Ci0rCSAg KikKLSsJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVm aXgiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiCi0rCSAgICA7Owot KwkgIGVzYWMKLSsJICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKLSsg IHswLCAodm9pZCAqKSAwfQotK307Ci0rCi0rLyogVGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVt IGluIEZyZWVCU0QgbGlua2VyICovCi0rI2lmZGVmIEZSRUVCU0RfV09SS0FST1VORAotK3N0YXRp YyBjb25zdCB2b2lkICpsdF9wcmVsb2FkZWRfc2V0dXAoKSB7Ci0rICByZXR1cm4gbHRfJHtteV9w cmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sczsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9f Y3BsdXNwbHVzCi0rfQotKyNlbmRpZlwKLSsiCi0rCX0gIyAhJG9wdF9kcnlfcnVuCi0rCi0rCXBp Y19mbGFnX2Zvcl9zeW10YWJsZT0KLSsJY2FzZSAiJGNvbXBpbGVfY29tbWFuZCAiIGluCi0rCSoi IC1zdGF0aWMgIiopIDs7Ci0rCSopCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICMgY29tcGlsaW5n IHRoZSBzeW1ib2wgdGFibGUgZmlsZSB3aXRoIHBpY19mbGFnIHdvcmtzIGFyb3VuZAotKwkgICMg YSBGcmVlQlNEIGJ1ZyB0aGF0IGNhdXNlcyBwcm9ncmFtcyB0byBjcmFzaCB3aGVuIC1sbSBpcwot KwkgICMgbGlua2VkIGJlZm9yZSBhbnkgb3RoZXIgUElDIG9iamVjdC4gIEJ1dCB3ZSBtdXN0IG5v dCB1c2UKLSsJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJv YmxlbSBleGlzdHMgaW4KLSsJICAjIEZyZWVCU0QgMi4yLjYgYW5kIGlzIGZpeGVkIGluIEZyZWVC U0QgMy4xLgotKwkgICotKi1mcmVlYnNkMip8Ki0qLWZyZWVic2QzLjAqfCotKi1mcmVlYnNkZWxm My4wKikKLSsJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyAtREZSRUVCU0Rf V09SS0FST1VORCIgOzsKLSsJICAqLSotaHB1eCopCi0rCSAgICBwaWNfZmxhZ19mb3Jfc3ltdGFi bGU9IiAkcGljX2ZsYWciICA7OwotKwkgICopCi0rCSAgICBpZiB0ZXN0ICJYJG15X3BpY19wIiAh PSBYbm87IHRoZW4KLSsJICAgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIgot KwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsJc3ltdGFiX2Nm bGFncz0KLSsJZm9yIGFyZyBpbiAkTFRDRkxBR1M7IGRvCi0rCSAgY2FzZSAkYXJnIGluCi0rCSAg LXBpZSB8IC1mcGllIHwgLWZQSUUpIDs7Ci0rCSAgKikgc3ltdGFiX2NmbGFncz0iJHN5bXRhYl9j ZmxhZ3MgJGFyZyIgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsKLSsJIyBOb3cgY29tcGlsZSB0aGUg ZHluYW1pYyBzeW1ib2wgZmlsZS4KLSsJZnVuY19zaG93X2V2YWwgJyhjZCAkb3V0cHV0X29iamRp ciAmJiAkTFRDQyRzeW10YWJfY2ZsYWdzIC1jJG5vX2J1aWx0aW5fZmxhZyRwaWNfZmxhZ19mb3Jf c3ltdGFibGUgIiRteV9kbHN5bXMiKScgJ2V4aXQgJD8nCi0rCi0rCSMgQ2xlYW4gdXAgdGhlIGdl bmVyYXRlZCBmaWxlcy4KLSsJZnVuY19zaG93X2V2YWwgJyRSTSAiJG91dHB1dF9vYmpkaXIvJG15 X2Rsc3ltcyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxpc3R9VCInCi0rCi0rCSMgVHJhbnNm b3JtIHRoZSBzeW1ib2wgZmlsZSBpbnRvIHRoZSBjb3JyZWN0IG5hbWUuCi0rCXN5bWZpbGVvYmo9 IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX1TLiRvYmpleHQiCi0rCWNhc2UgJGhvc3Qg aW4KLSsJKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0rCSAgaWYgdGVzdCAtZiAiJG91 dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmIjsgdGhlbgotKwkgICAgY29tcGlsZV9jb21t YW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRv dXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAotKwkgICAgZmlu YWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVA U1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJg Ci0rCSAgZWxzZQotKwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1h bmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCi0rCSAgICBmaW5hbGl6 ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1G SUxFQCUkc3ltZmlsZW9iaiUiYAotKwkgIGZpCi0rCSAgOzsKLSsJKikKLSsJICBjb21waWxlX2Nv bW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAl JHN5bWZpbGVvYmolImAKLSsJICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9j b21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotKwkgIDs7Ci0r CWVzYWMKLSsJOzsKLSsgICAgICAqKQotKwlmdW5jX2ZhdGFsX2Vycm9yICJ1bmtub3duIHN1ZmZp eCBmb3IgXGAkbXlfZGxzeW1zJyIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGVsc2UKLSsgICAg ICAjIFdlIGtlZXAgZ29pbmcganVzdCBpbiBjYXNlIHRoZSB1c2VyIGRpZG4ndCByZWZlciB0bwot KyAgICAgICMgbHRfcHJlbG9hZGVkX3N5bWJvbHMuICBUaGUgbGlua2VyIHdpbGwgZmFpbCBpZiBn bG9iYWxfc3ltYm9sX3BpcGUKLSsgICAgICAjIHJlYWxseSB3YXMgcmVxdWlyZWQuCi0rCi0rICAg ICAgIyBOdWxsaWZ5IHRoZSBzeW1ib2wgZmlsZS4KLSsgICAgICBjb21waWxlX2NvbW1hbmQ9YCRF Q0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyUgQFNZTUZJTEVAJSUiYAotKyAg ICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQg LWUgInMlIEBTWU1GSUxFQCUlImAKLSsgICAgZmkKLSt9Ci0rCi0rIyBmdW5jX3dpbjMyX2xpYmlk IGFyZwotKyMgcmV0dXJuIHRoZSBsaWJyYXJ5IHR5cGUgb2YgZmlsZSAnYXJnJwotKyMKLSsjIE5l ZWQgYSBsb3Qgb2YgZ29vIHRvIGhhbmRsZSAqYm90aCogRExMcyBhbmQgaW1wb3J0IGxpYnMKLSsj IEhhcyB0byBiZSBhIHNoZWxsIGZ1bmN0aW9uIGluIG9yZGVyIHRvICdlYXQnIHRoZSBhcmd1bWVu dAotKyMgdGhhdCBpcyBzdXBwbGllZCB3aGVuICRmaWxlX21hZ2ljX2NvbW1hbmQgaXMgY2FsbGVk LgotK2Z1bmNfd2luMzJfbGliaWQgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICB3aW4zMl9saWJp ZF90eXBlPSJ1bmtub3duIgotKyAgd2luMzJfZmlsZXJlcz1gZmlsZSAtTCAkMSAyPi9kZXYvbnVs bGAKLSsgIGNhc2UgJHdpbjMyX2ZpbGVyZXMgaW4KLSsgICphclwgYXJjaGl2ZVwgaW1wb3J0XCBs aWJyYXJ5KikgIyBkZWZpbml0ZWx5IGltcG9ydAotKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYg YXJjaGl2ZSBpbXBvcnQiCi0rICAgIDs7Ci0rICAqYXJcIGFyY2hpdmUqKSAjIGNvdWxkIGJlIGFu IGltcG9ydCwgb3Igc3RhdGljCi0rICAgIGlmIGV2YWwgJE9CSkRVTVAgLWYgJDEgfCAkU0VEIC1l ICcxMHEnIDI+L2Rldi9udWxsIHwKLSsgICAgICAgJEVHUkVQICdmaWxlIGZvcm1hdCBwZS1pMzg2 KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT8nID4vZGV2L251bGwgOyB0aGVuCi0rICAgICAgd2luMzJf bm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1BICQxIHwKLSsJJFNFRCAtbiAtZSAnCi0rCSAgICAx LDEwMHsKLSsJCS8gSSAvewotKwkJICAgIHMsLiosaW1wb3J0LAotKwkJICAgIHAKLSsJCSAgICBx Ci0rCQl9Ci0rCSAgICB9J2AKLSsgICAgICBjYXNlICR3aW4zMl9ubXJlcyBpbgotKyAgICAgIGlt cG9ydCopICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBpbXBvcnQiOzsKLSsgICAgICAq KSAgICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgc3RhdGljIjs7Ci0rICAgICAg ZXNhYwotKyAgICBmaQotKyAgICA7OwotKyAgKkRMTCopCi0rICAgIHdpbjMyX2xpYmlkX3R5cGU9 Ing4NiBETEwiCi0rICAgIDs7Ci0rICAqZXhlY3V0YWJsZSopICMgYnV0IHNoZWxsIHNjcmlwdHMg YXJlICJleGVjdXRhYmxlIiB0b28uLi4KLSsgICAgY2FzZSAkd2luMzJfZmlsZXJlcyBpbgotKyAg ICAqTVNcIFdpbmRvd3NcIFBFXCBJbnRlbCopCi0rICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2 IERMTCIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rICAkRUNITyAi JHdpbjMyX2xpYmlkX3R5cGUiCi0rfQotKwotKwotKwotKyMgZnVuY19leHRyYWN0X2FuX2FyY2hp dmUgZGlyIG9sZGxpYgotK2Z1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICgpCi0rewotKyAgICAkb3B0 X2RlYnVnCi0rICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0Ci0rICAgIGZfZXhfYW5fYXJf b2xkbGliPSIkMSIKLSsgICAgZnVuY19zaG93X2V2YWwgIihjZCBcJGZfZXhfYW5fYXJfZGlyICYm ICRBUiB4IFwiXCRmX2V4X2FuX2FyX29sZGxpYlwiKSIgJ2V4aXQgJD8nCi0rICAgIGlmICgkQVIg dCAiJGZfZXhfYW5fYXJfb2xkbGliIiB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEp OyB0aGVuCi0rICAgICA6Ci0rICAgIGVsc2UKLSsgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJvYmpl Y3QgbmFtZSBjb25mbGljdHMgaW4gYXJjaGl2ZTogJGZfZXhfYW5fYXJfZGlyLyRmX2V4X2FuX2Fy X29sZGxpYiIKLSsgICAgZmkKLSt9Ci0rCi0rCi0rIyBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgZ2Vu dG9wIG9sZGxpYiAuLi4KLStmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgKCkKLSt7Ci0rICAgICRvcHRf ZGVidWcKLSsgICAgbXlfZ2VudG9wPSIkMSI7IHNoaWZ0Ci0rICAgIG15X29sZGxpYnM9JHsxKyIk QCJ9Ci0rICAgIG15X29sZG9ianM9IiIKLSsgICAgbXlfeGxpYj0iIgotKyAgICBteV94YWJzPSIi Ci0rICAgIG15X3hkaXI9IiIKLSsKLSsgICAgZm9yIG15X3hsaWIgaW4gJG15X29sZGxpYnM7IGRv Ci0rICAgICAgIyBFeHRyYWN0IHRoZSBvYmplY3RzLgotKyAgICAgIGNhc2UgJG15X3hsaWIgaW4K LSsJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBteV94YWJzPSIkbXlfeGxpYiIgOzsKLSsJKikg bXlfeGFicz1gcHdkYCIvJG15X3hsaWIiIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGZ1bmNfYmFz ZW5hbWUgIiRteV94bGliIgotKyAgICAgIG15X3hsaWI9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIK LSsgICAgICBteV94bGliX3U9JG15X3hsaWIKLSsgICAgICB3aGlsZSA6OyBkbwotKyAgICAgICAg Y2FzZSAiICRleHRyYWN0ZWRfYXJjaGl2ZXMgIiBpbgotKwkqIiAkbXlfeGxpYl91ICIqKQotKwkg IGZ1bmNfYXJpdGggJGV4dHJhY3RlZF9zZXJpYWwgKyAxCi0rCSAgZXh0cmFjdGVkX3NlcmlhbD0k ZnVuY19hcml0aF9yZXN1bHQKLSsJICBteV94bGliX3U9bHQkZXh0cmFjdGVkX3NlcmlhbC0kbXlf eGxpYiA7OwotKwkqKSBicmVhayA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKyAgICAgIGV4dHJh Y3RlZF9hcmNoaXZlcz0iJGV4dHJhY3RlZF9hcmNoaXZlcyAkbXlfeGxpYl91IgotKyAgICAgIG15 X3hkaXI9IiRteV9nZW50b3AvJG15X3hsaWJfdSIKLSsKLSsgICAgICBmdW5jX21rZGlyX3AgIiRt eV94ZGlyIgotKwotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsgICAgICAqLWRhcndpbiopCi0rCWZ1 bmNfdmVyYm9zZSAiRXh0cmFjdGluZyAkbXlfeGFicyIKLSsJIyBEbyBub3QgYm90aGVyIGRvaW5n IGFueXRoaW5nIGlmIGp1c3QgYSBkcnkgcnVuCi0rCSRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgZGFy d2luX29yaWdfZGlyPWBwd2RgCi0rCSAgY2QgJG15X3hkaXIgfHwgZXhpdCAkPwotKwkgIGRhcndp bl9hcmNoaXZlPSRteV94YWJzCi0rCSAgZGFyd2luX2N1cmRpcj1gcHdkYAotKwkgIGRhcndpbl9i YXNlX2FyY2hpdmU9YGJhc2VuYW1lICIkZGFyd2luX2FyY2hpdmUiYAotKwkgIGRhcndpbl9hcmNo ZXM9YCRMSVBPIC1pbmZvICIkZGFyd2luX2FyY2hpdmUiIDI+L2Rldi9udWxsIHwgJEdSRVAgQXJj aGl0ZWN0dXJlcyAyPi9kZXYvbnVsbCB8fCB0cnVlYAotKwkgIGlmIHRlc3QgLW4gIiRkYXJ3aW5f YXJjaGVzIjsgdGhlbgotKwkgICAgZGFyd2luX2FyY2hlcz1gJEVDSE8gIiRkYXJ3aW5fYXJjaGVz IiB8ICRTRUQgLWUgJ3MvLiphcmU6Ly8nYAotKwkgICAgZGFyd2luX2FyY2g9Ci0rCSAgICBmdW5j X3ZlcmJvc2UgIiRkYXJ3aW5fYmFzZV9hcmNoaXZlIGhhcyBtdWx0aXBsZSBhcmNoaXRlY3R1cmVz ICRkYXJ3aW5fYXJjaGVzIgotKwkgICAgZm9yIGRhcndpbl9hcmNoIGluICAkZGFyd2luX2FyY2hl cyA7IGRvCi0rCSAgICAgIGZ1bmNfbWtkaXJfcCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNo aXZlfS0ke2Rhcndpbl9hcmNofSIKLSsJICAgICAgJExJUE8gLXRoaW4gJGRhcndpbl9hcmNoIC1v dXRwdXQgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0vJHtk YXJ3aW5fYmFzZV9hcmNoaXZlfSIgIiR7ZGFyd2luX2FyY2hpdmV9IgotKwkgICAgICBjZCAidW5m YXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKLSsJICAgICAgZnVu Y19leHRyYWN0X2FuX2FyY2hpdmUgImBwd2RgIiAiJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIKLSsJ ICAgICAgY2QgIiRkYXJ3aW5fY3VyZGlyIgotKwkgICAgICAkUk0gInVuZmF0LSQkLyR7ZGFyd2lu X2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0vJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfSIKLSsJ ICAgIGRvbmUgIyAkZGFyd2luX2FyY2hlcwotKyAgICAgICAgICAgICMjIE9rYXkgbm93IHdlJ3Zl IGEgYnVuY2ggb2YgdGhpbiBvYmplY3RzLCBnb3R0YSBmYXR0ZW4gdGhlbSB1cCA6KQotKwkgICAg ZGFyd2luX2ZpbGVsaXN0PWBmaW5kIHVuZmF0LSQkIC10eXBlIGYgLW5hbWUgXCoubyAtcHJpbnQg LW8gLW5hbWUgXCoubG8gLXByaW50IHwgJFNFRCAtZSAiJGJhc2VuYW1lIiB8IHNvcnQgLXVgCi0r CSAgICBkYXJ3aW5fZmlsZT0KLSsJICAgIGRhcndpbl9maWxlcz0KLSsJICAgIGZvciBkYXJ3aW5f ZmlsZSBpbiAkZGFyd2luX2ZpbGVsaXN0OyBkbwotKwkgICAgICBkYXJ3aW5fZmlsZXM9YGZpbmQg dW5mYXQtJCQgLW5hbWUgJGRhcndpbl9maWxlIC1wcmludCB8ICROTDJTUGAKLSsJICAgICAgJExJ UE8gLWNyZWF0ZSAtb3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKLSsJICAgIGRv bmUgIyAkZGFyd2luX2ZpbGVsaXN0Ci0rCSAgICAkUk0gLXJmIHVuZmF0LSQkCi0rCSAgICBjZCAi JGRhcndpbl9vcmlnX2RpciIKLSsJICBlbHNlCi0rCSAgICBjZCAkZGFyd2luX29yaWdfZGlyCi0r CSAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKLSsJICBm aSAjICRkYXJ3aW5fYXJjaGVzCi0rCX0gIyAhJG9wdF9kcnlfcnVuCi0rCTs7Ci0rICAgICAgKikK LSsgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgot Kwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBteV9vbGRvYmpzPSIkbXlfb2xkb2JqcyAiYGZpbmQg JG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwg JE5MMlNQYAotKyAgICBkb25lCi0rCi0rICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQ9 IiRteV9vbGRvYmpzIgotK30KLSsKLSsKLSsKLSsjIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIFth cmc9bm9dCi0rIwotKyMgRW1pdCB0aGUgZmlyc3QgcGFydCBvZiBhIGxpYnRvb2wgd3JhcHBlciBz Y3JpcHQgb24gc3Rkb3V0LgotKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3Jp cHRpb24gYXNzb2NpYXRlZCB3aXRoCi0rIyBmdW5jX2VtaXRfd3JhcHBlcigpLCBiZWxvdy4KLStm dW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSAoKQotK3sKLSsJZnVuY19lbWl0X3dyYXBwZXJfcGFydDFf YXJnMT1ubwotKwlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0rCSAgZnVuY19lbWl0X3dyYXBwZXJf cGFydDFfYXJnMT0kMQotKwlmaQotKwotKwkkRUNITyAiXAotKyMhICRTSEVMTAotKwotKyMgJG91 dHB1dCAtIHRlbXBvcmFyeSB3cmFwcGVyIHNjcmlwdCBmb3IgJG9iamRpci8kb3V0cHV0bmFtZQot KyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lP TgotKyMKLSsjIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVk IHVudGlsIGFsbCB0aGUgbGlidG9vbAotKyMgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBh cmUgaW5zdGFsbGVkLgotKyMKLSsjIFRoaXMgd3JhcHBlciBzY3JpcHQgc2hvdWxkIG5ldmVyIGJl IG1vdmVkIG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKyMgSWYgaXQgaXMsIGl0IHdpbGwg bm90IG9wZXJhdGUgY29ycmVjdGx5LgotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBz IHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKLSsjIG1ldGFjaGFyYWN0 ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgot K1hzZWQ9JyR7U0VEfSAtZSAxcy9eWC8vJwotK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9z dWJzdCcKLSsKLSsjIEJlIEJvdXJuZSBjb21wYXRpYmxlCi0raWYgdGVzdCAtbiBcIlwke1pTSF9W RVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBl bXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdv cmQgc3BsaXR0aW5nIG9uIFwkezErXCJcJEBcIn0sIHdoaWNoCi0rICAjIGlzIGNvbnRyYXJ5IHRv IG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgotKyAgYWxpYXMgLWcgJ1wkezErXCJc JEBcIn0nPSdcIlwkQFwiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNl IFxgKHNldCAtbykgMj4vZGV2L251bGxcYCBpbiAqcG9zaXgqKSBzZXQgLW8gcG9zaXg7OyBlc2Fj Ci0rZmkKLStCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBUcnU2NAotK0RVQUxDQVNF PTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5k IFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYg Q0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQg Q0RQQVRICi0rCi0rcmVsaW5rX2NvbW1hbmQ9XCIkcmVsaW5rX2NvbW1hbmRcIgotKwotKyMgVGhp cyBlbnZpcm9ubWVudCB2YXJpYWJsZSBkZXRlcm1pbmVzIG91ciBvcGVyYXRpb24gbW9kZS4KLStp ZiB0ZXN0IFwiXCRsaWJ0b29sX2luc3RhbGxfbWFnaWNcIiA9IFwiJG1hZ2ljXCI7IHRoZW4KLSsg ICMgaW5zdGFsbCBtb2RlIG5lZWRzIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzOgotKyAgZ2VuZXJh dGVkX2J5X2xpYnRvb2xfdmVyc2lvbj0nJG1hY3JvX3ZlcnNpb24nCi0rICBub3RpbnN0X2RlcGxp YnM9JyRub3RpbnN0X2RlcGxpYnMnCi0rZWxzZQotKyAgIyBXaGVuIHdlIGFyZSBzb3VyY2VkIGlu IGV4ZWN1dGUgbW9kZSwgXCRmaWxlIGFuZCBcJEVDSE8gYXJlIGFscmVhZHkgc2V0LgotKyAgaWYg dGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgotKyAg ICBFQ0hPPVwiJHFlY2hvXCIKLSsgICAgZmlsZT1cIlwkMFwiCi0rICAgICMgTWFrZSBzdXJlIGVj aG8gd29ya3MuCi0rICAgIGlmIHRlc3QgXCJYXCQxXCIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSsg ICAgICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcsIGFuZCBjb250aW51ZS4KLSsgICAg ICBzaGlmdAotKyAgICBlbGlmIHRlc3QgXCJYXGB7IFwkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxs XGBcIiA9ICdYXHQnOyB0aGVuCi0rICAgICAgIyBZaXBwZWUsIFwkRUNITyB3b3JrcyEKLSsgICAg ICA6Ci0rICAgIGVsc2UKLSsgICAgICAjIFJlc3RhcnQgdW5kZXIgdGhlIGNvcnJlY3Qgc2hlbGws IGFuZCB0aGVuIG1heWJlIFwkRUNITyB3aWxsIHdvcmsuCi0rICAgICAgZXhlYyAkU0hFTEwgXCJc JDBcIiAtLW5vLXJlZXhlYyBcJHsxK1wiXCRAXCJ9Ci0rICAgIGZpCi0rICBmaVwKLSsiCi0rCSRF Q0hPICJcCi0rCi0rICAjIEZpbmQgdGhlIGRpcmVjdG9yeSB0aGF0IHRoaXMgc2NyaXB0IGxpdmVz IGluLgotKyAgdGhpc2Rpcj1cYFwkRUNITyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyUvW14v XSokJSUnXGAKLSsgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0aGlzZGly PS4KLSsKLSsgICMgRm9sbG93IHN5bWJvbGljIGxpbmtzIHVudGlsIHdlIGdldCB0byB0aGUgcmVh bCB0aGlzZGlyLgotKyAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4q LT4gLy9wJ1xgCi0rICB3aGlsZSB0ZXN0IC1uIFwiXCRmaWxlXCI7IGRvCi0rICAgIGRlc3RkaXI9 XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAotKwotKyAg ICAjIElmIHRoZXJlIHdhcyBhIGRpcmVjdG9yeSBjb21wb25lbnQsIHRoZW4gY2hhbmdlIHRoaXNk aXIuCi0rICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4KLSsg ICAgICBjYXNlIFwiXCRkZXN0ZGlyXCIgaW4KLSsgICAgICBbXFxcXC9dKiB8IFtBLVphLXpdOltc XFxcL10qKSB0aGlzZGlyPVwiXCRkZXN0ZGlyXCIgOzsKLSsgICAgICAqKSB0aGlzZGlyPVwiXCR0 aGlzZGlyL1wkZGVzdGRpclwiIDs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKwotKyAgICBmaWxl PVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1lICdzJV4uKi8lJSdcYAotKyAgICBmaWxl PVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xg Ci0rICBkb25lCi0rIgotK30KLSsjIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDEKLSsKLSsj IGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyIFthcmc9bm9dCi0rIwotKyMgRW1pdCB0aGUgc2Vjb25k IHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KLSsjIEZvciBtb3Jl IGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29jaWF0ZWQgd2l0aAotKyMgZnVu Y19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCi0rZnVuY19lbWl0X3dyYXBwZXJfcGFydDIgKCkKLSt7 Ci0rCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzE9bm8KLSsJaWYgdGVzdCAtbiAiJDEiIDsg dGhlbgotKwkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzE9JDEKLSsJZmkKLSsKLSsJJEVD SE8gIlwKLSsKLSsgICMgVXN1YWxseSAnbm8nLCBleGNlcHQgb24gY3lnd2luL21pbmd3IHdoZW4g ZW1iZWRkZWQgaW50bwotKyAgIyB0aGUgY3dyYXBwZXIuCi0rICBXUkFQUEVSX1NDUklQVF9CRUxP TkdTX0lOX09CSkRJUj0kZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMQotKyAgaWYgdGVzdCBc IlwkV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVJcIiA9IFwieWVzXCI7IHRoZW4KLSsg ICAgIyBzcGVjaWFsIGNhc2UgZm9yICcuJwotKyAgICBpZiB0ZXN0IFwiXCR0aGlzZGlyXCIgPSBc Ii5cIjsgdGhlbgotKyAgICAgIHRoaXNkaXI9XGBwd2RcYAotKyAgICBmaQotKyAgICAjIHJlbW92 ZSAubGlicyBmcm9tIHRoaXNkaXIKLSsgICAgY2FzZSBcIlwkdGhpc2RpclwiIGluCi0rICAgICpb XFxcXC9dJG9iamRpciApIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCR0aGlzZGlyXCIgfCBcJFhzZWQg LWUgJ3MlW1xcXFwvXVteXFxcXC9dKiQlJSdcYCA7OwotKyAgICAkb2JqZGlyICkgICB0aGlzZGly PS4gOzsKLSsgICAgZXNhYwotKyAgZmkKLSsKLSsgICMgVHJ5IHRvIGdldCB0aGUgYWJzb2x1dGUg ZGlyZWN0b3J5IG5hbWUuCi0rICBhYnNkaXI9XGBjZCBcIlwkdGhpc2RpclwiICYmIHB3ZFxgCi0r ICB0ZXN0IC1uIFwiXCRhYnNkaXJcIiAmJiB0aGlzZGlyPVwiXCRhYnNkaXJcIgotKyIKLSsKLSsJ aWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJICAkRUNITyAiXAotKyAgcHJv Z3JhbT1sdC0nJG91dHB1dG5hbWUnJGV4ZWV4dAotKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2Jq ZGlyXCIKLSsKLSsgIGlmIHRlc3QgISAtZiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiB8fAotKyAg ICAgeyBmaWxlPVxgbHMgLTFkdCBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcIlwkcHJvZ2Rpci8u Li9cJHByb2dyYW1cIiAyPi9kZXYvbnVsbCB8ICR7U0VEfSAxcVxgOyBcXAotKyAgICAgICB0ZXN0 IFwiWFwkZmlsZVwiICE9IFwiWFwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfTsgdGhlbgotKwotKyAg ICBmaWxlPVwiXCRcJC1cJHByb2dyYW1cIgotKwotKyAgICBpZiB0ZXN0ICEgLWQgXCJcJHByb2dk aXJcIjsgdGhlbgotKyAgICAgICRNS0RJUiBcIlwkcHJvZ2RpclwiCi0rICAgIGVsc2UKLSsgICAg ICAkUk0gXCJcJHByb2dkaXIvXCRmaWxlXCIKLSsgICAgZmkiCi0rCi0rCSAgJEVDSE8gIlwKLSsK LSsgICAgIyByZWxpbmsgZXhlY3V0YWJsZSBpZiBuZWNlc3NhcnkKLSsgICAgaWYgdGVzdCAtbiBc IlwkcmVsaW5rX2NvbW1hbmRcIjsgdGhlbgotKyAgICAgIGlmIHJlbGlua19jb21tYW5kX291dHB1 dD1cYGV2YWwgXCRyZWxpbmtfY29tbWFuZCAyPiYxXGA7IHRoZW4gOgotKyAgICAgIGVsc2UKLSsJ JEVDSE8gXCJcJHJlbGlua19jb21tYW5kX291dHB1dFwiID4mMgotKwkkUk0gXCJcJHByb2dkaXIv XCRmaWxlXCIKLSsJZXhpdCAxCi0rICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgJE1WIFwiXCRw cm9nZGlyL1wkZmlsZVwiIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIDI+L2Rldi9udWxsIHx8Ci0r ICAgIHsgJFJNIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOwotKyAgICAgICRNViBcIlwkcHJvZ2Rp ci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgfQotKyAgICAkUk0gXCJcJHByb2dk aXIvXCRmaWxlXCIKLSsgIGZpIgotKwllbHNlCi0rCSAgJEVDSE8gIlwKLSsgIHByb2dyYW09JyRv dXRwdXRuYW1lJwotKyAgcHJvZ2Rpcj1cIlwkdGhpc2Rpci8kb2JqZGlyXCIKLSsiCi0rCWZpCi0r Ci0rCSRFQ0hPICJcCi0rCi0rICBpZiB0ZXN0IC1mIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiOyB0 aGVuIgotKwotKwkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4KLSsJ aWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAi JHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgotKwkgICRFQ0hP ICJcCi0rICAgICMgQWRkIG91ciBvd24gbGlicmFyeSBwYXRoIHRvICRzaGxpYnBhdGhfdmFyCi0r ICAgICRzaGxpYnBhdGhfdmFyPVwiJHRlbXBfcnBhdGhcJCRzaGxpYnBhdGhfdmFyXCIKLSsKLSsg ICAgIyBTb21lIHN5c3RlbXMgY2Fubm90IGNvcGUgd2l0aCBjb2xvbi10ZXJtaW5hdGVkICRzaGxp YnBhdGhfdmFyCi0rICAgICMgVGhlIHNlY29uZCBjb2xvbiBpcyBhIHdvcmthcm91bmQgZm9yIGEg YnVnIGluIEJlT1MgUjQgc2VkCi0rICAgICRzaGxpYnBhdGhfdmFyPVxgXCRFQ0hPIFwiWFwkJHNo bGlicGF0aF92YXJcIiB8IFwkWHNlZCAtZSAncy86OipcJC8vJ1xgCi0rCi0rICAgIGV4cG9ydCAk c2hsaWJwYXRoX3ZhcgotKyIKLSsJZmkKLSsKLSsJIyBmaXh1cCB0aGUgZGxsIHNlYXJjaHBhdGgg aWYgd2UgbmVlZCB0by4KLSsJaWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCi0rCSAg JEVDSE8gIlwKLSsgICAgIyBBZGQgdGhlIGRsbCBzZWFyY2ggcGF0aCBjb21wb25lbnRzIHRvIHRo ZSBleGVjdXRhYmxlIFBBVEgKLSsgICAgUEFUSD0kZGxsc2VhcmNocGF0aDpcJFBBVEgKLSsiCi0r CWZpCi0rCi0rCSRFQ0hPICJcCi0rICAgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdp Y1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAgICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0g d2l0aCBvdXIgYXJndW1lbnRzLgotKyIKLSsJY2FzZSAkaG9zdCBpbgotKwkjIEJhY2tzbGFzaGVz IHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MKLSsJKi0qLW1pbmd3IHwgKi0q LW9zMiogfCAqLWNlZ2NjKikKLSsJICAkRUNITyAiXAotKyAgICAgIGV4ZWMgXCJcJHByb2dkaXJc XFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQotKyIKLSsJICA7OwotKwotKwkqKQotKwkgICRF Q0hPICJcCi0rICAgICAgZXhlYyBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcJHsxK1wiXCRAXCJ9 Ci0rIgotKwkgIDs7Ci0rCWVzYWMKLSsJJEVDSE8gIlwKLSsgICAgICBcJEVDSE8gXCJcJDA6IGNh bm5vdCBleGVjIFwkcHJvZ3JhbSBcJCpcIiAxPiYyCi0rICAgICAgZXhpdCAxCi0rICAgIGZpCi0r ICBlbHNlCi0rICAgICMgVGhlIHByb2dyYW0gZG9lc24ndCBleGlzdC4KLSsgICAgXCRFQ0hPIFwi XCQwOiBlcnJvcjogXFxcYFwkcHJvZ2Rpci9cJHByb2dyYW0nIGRvZXMgbm90IGV4aXN0XCIgMT4m MgotKyAgICBcJEVDSE8gXCJUaGlzIHNjcmlwdCBpcyBqdXN0IGEgd3JhcHBlciBmb3IgXCRwcm9n cmFtLlwiIDE+JjIKLSsgICAgJEVDSE8gXCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24g Zm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgotKyAgICBleGl0IDEKLSsgIGZpCi0rZmlcCi0r IgotK30KLSsjIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDIKLSsKLSsKLSsjIGZ1bmNfZW1p dF93cmFwcGVyIFthcmc9bm9dCi0rIwotKyMgRW1pdCBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQg b24gc3Rkb3V0LgotKyMgRG9uJ3QgZGlyZWN0bHkgb3BlbiBhIGZpbGUgYmVjYXVzZSB3ZSBtYXkg d2FudCB0bwotKyMgaW5jb3Jwb3JhdGUgdGhlIHNjcmlwdCBjb250ZW50cyB3aXRoaW4gYSBjeWd3 aW4vbWluZ3cKLSsjIHdyYXBwZXIgZXhlY3V0YWJsZS4gIE11c3QgT05MWSBiZSBjYWxsZWQgZnJv bSB3aXRoaW4KLSsjIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiBhIG51bWJl ciBvZiB2YXJpYWJsZXMKLSsjIHNldCB0aGVyZWluLgotKyMKLSsjIEFSRyBpcyB0aGUgdmFsdWUg dGhhdCB0aGUgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVIKLSsjIHZhcmlhYmxlIHdp bGwgdGFrZS4gIElmICd5ZXMnLCB0aGVuIHRoZSBlbWl0dGVkIHNjcmlwdAotKyMgd2lsbCBhc3N1 bWUgdGhhdCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGl0IGlzIHN0b3JlZCBpcwotKyMgdGhlICRv YmpkaXIgZGlyZWN0b3J5LiAgVGhpcyBpcyBhIGN5Z3dpbi9taW5ndy1zcGVjaWZpYwotKyMgYmVo YXZpb3IuCi0rZnVuY19lbWl0X3dyYXBwZXIgKCkKLSt7Ci0rCWZ1bmNfZW1pdF93cmFwcGVyX2Fy ZzE9bm8KLSsJaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotKwkgIGZ1bmNfZW1pdF93cmFwcGVyX2Fy ZzE9JDEKLSsJZmkKLSsKLSsJIyBzcGxpdCB0aGlzIHVwIHNvIHRoYXQgZnVuY19lbWl0X2N3cmFw cGVyZXhlX3NyYwotKwkjIGNhbiBjYWxsIGVhY2ggcGFydCBpbmRlcGVuZGVudGx5LgotKwlmdW5j X2VtaXRfd3JhcHBlcl9wYXJ0MSAiJHtmdW5jX2VtaXRfd3JhcHBlcl9hcmcxfSIKLSsJZnVuY19l bWl0X3dyYXBwZXJfcGFydDIgIiR7ZnVuY19lbWl0X3dyYXBwZXJfYXJnMX0iCi0rfQotKwotKwot KyMgZnVuY190b19ob3N0X3BhdGggYXJnCi0rIwotKyMgQ29udmVydCBwYXRocyB0byBob3N0IGZv cm1hdCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KLSsjIEludGVuZGVkIGZvciB1c2Ugd2l0 aCAibmF0aXZlIiBtaW5ndyAod2hlcmUgbGlidG9vbCBpdHNlbGYKLSsjIGlzIHJ1bm5pbmcgdW5k ZXIgdGhlIG1zeXMgc2hlbGwpLCBvciBpbiB0aGUgZm9sbG93aW5nIGNyb3NzLQotKyMgYnVpbGQg ZW52aXJvbm1lbnRzOgotKyMgICAgJGJ1aWxkICAgICAgICAgICRob3N0Ci0rIyAgICBtaW5ndyAo bXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2ZV0KLSsjICAgIGN5Z3dpbiAgICAgICAgICBtaW5n dwotKyMgICAgKm5peCArIHdpbmUgICAgIG1pbmd3Ci0rIyB3aGVyZSB3aW5lIGlzIGVxdWlwcGVk IHdpdGggdGhlIGB3aW5lcGF0aCcgZXhlY3V0YWJsZS4KLSsjIEluIHRoZSBuYXRpdmUgbWluZ3cg Y2FzZSwgdGhlIChtc3lzKSBzaGVsbCBhdXRvbWF0aWNhbGx5Ci0rIyBjb252ZXJ0cyBwYXRocyBm b3IgYW55IG5vbi1tc3lzIGFwcGxpY2F0aW9ucyBpdCBsYXVuY2hlcywKLSsjIGJ1dCB0aGF0IGZh Y2lsaXR5IGlzbid0IGF2YWlsYWJsZSBmcm9tIGluc2lkZSB0aGUgY3dyYXBwZXIuCi0rIyBTaW1p bGFyIGFjY29tbW9kYXRpb25zIGFyZSBuZWNlc3NhcnkgZm9yICRob3N0IG1pbmd3IGFuZAotKyMg JGJ1aWxkIGN5Z3dpbi4gIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBkb2VzIG5vIGhhcm0gZm9yIG90 aGVyCi0rIyAkaG9zdC8kYnVpbGQgY29tYmluYXRpb25zIG5vdCBsaXN0ZWQgYWJvdmUuCi0rIwot KyMgQVJHIGlzIHRoZSBwYXRoIChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0 bwotKyMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBmb3IgJGhvc3QuIFRoZSByZXN1bHQgaXMg c3RvcmVkCi0rIyBpbiAkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0LgotK2Z1bmNfdG9faG9zdF9w YXRoICgpCi0rewotKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKLSsgIGlmIHRlc3Qg LW4gIiQxIiA7IHRoZW4KLSsgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICptaW5ndyogKQotKyAg ICAgICAgbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxcKnxcXHxnO3N8L3xcXHxnO3N8 XFx8XFxcXHxnJwotKyAgICAgICAgY2FzZSAkYnVpbGQgaW4KLSsgICAgICAgICAgKm1pbmd3KiAp ICMgYWN0dWFsbHksIG1zeXMKLSsgICAgICAgICAgICAjIGF3a3dhcmQ6IGNtZCBhcHBlbmRzIHNw YWNlcyB0byByZXN1bHQKLSsgICAgICAgICAgICBsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2Vz PSJzL1sgXSpcJC8vIgotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YCggY21k IC8vYyBlY2hvICIkMSIgfFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfc3RyaXBf dHJhaWxpbmdfc3BhY2VzIiApIDI+L2Rldi9udWxsIHx8IGVjaG8gIiJgCi0rICAgICAgICAgICAg ZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIg fFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAK LSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqY3lnd2luKiApCi0rICAgICAgICAgICAgZnVu Y190b19ob3N0X3BhdGhfdG1wMT1gY3lncGF0aCAtdyAiJDEiYAotKyAgICAgICAgICAgIGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCi0r ICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0rICAg ICAgICAgICAgOzsKLSsgICAgICAgICAgKiApCi0rICAgICAgICAgICAgIyBVbmZvcnR1bmF0ZWx5 LCB3aW5lcGF0aCBkb2VzIG5vdCBleGl0IHdpdGggYSBub24temVybwotKyAgICAgICAgICAgICMg ZXJyb3IgY29kZSwgc28gd2UgYXJlIGZvcmNlZCB0byBjaGVjayB0aGUgY29udGVudHMgb2YKLSsg ICAgICAgICAgICAjIHN0ZG91dC4gT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoZSBjb21tYW5kIGlz IG5vdAotKyAgICAgICAgICAgICMgZm91bmQsIHRoZSBzaGVsbCB3aWxsIHNldCBhbiBleGl0IGNv ZGUgb2YgMTI3IGFuZCBwcmludAotKyAgICAgICAgICAgICMgKmFuIGVycm9yIG1lc3NhZ2UqIHRv IHN0ZG91dC4gU28gd2UgbXVzdCBjaGVjayBmb3IgYm90aAotKyAgICAgICAgICAgICMgZXJyb3Ig Y29kZSBvZiB6ZXJvIEFORCBub24tZW1wdHkgc3Rkb3V0LCB3aGljaCBleHBsYWlucwotKyAgICAg ICAgICAgICMgdGhlIG9kZCBjb25zdHJ1Y3Rpb246Ci0rICAgICAgICAgICAgZnVuY190b19ob3N0 X3BhdGhfdG1wMT1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKLSsgICAgICAgICAgICBp ZiB0ZXN0ICIkPyIgLWVxIDAgJiYgdGVzdCAtbiAiJHtmdW5jX3RvX2hvc3RfcGF0aF90bXAxfSI7 IHRoZW4KLSsgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1 bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCi0rICAgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9z ZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAg ICAjIEFsbG93IHdhcm5pbmcgYmVsb3cuCi0rICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0 aF9yZXN1bHQ9IiIKLSsgICAgICAgICAgICBmaQotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBl c2FjCi0rICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IiA7IHRo ZW4KLSsgICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSBob3N0IHBhdGgg Y29ycmVzcG9uZGluZyB0byIKLSsgICAgICAgICAgZnVuY19lcnJvciAiICAnJDEnIgotKyAgICAg ICAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMg bWF5IG5vdCB3b3JrLiIKLSsgICAgICAgICAgIyBGYWxsYmFjazoKLSsgICAgICAgICAgZnVuY190 b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICBl c2FjCi0rICBmaQotK30KLSsjIGVuZDogZnVuY190b19ob3N0X3BhdGgKLSsKLSsjIGZ1bmNfdG9f aG9zdF9wYXRobGlzdCBhcmcKLSsjCi0rIyBDb252ZXJ0IHBhdGhsaXN0cyB0byBob3N0IGZvcm1h dCB3aGVuIHVzZWQgd2l0aCBidWlsZCB0b29scy4KLSsjIFNlZSBmdW5jX3RvX2hvc3RfcGF0aCgp LCBhYm92ZS4gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyB0aGUKLSsjIGZvbGxvd2luZyAkYnVpbGQv JGhvc3QgY29tYmluYXRpb25zIChidXQgZG9lcyBubyBoYXJtIGZvcgotKyMgY29tYmluYXRpb25z IG5vdCBsaXN0ZWQgaGVyZSk6Ci0rIyAgICAkYnVpbGQgICAgICAgICAgJGhvc3QKLSsjICAgIG1p bmd3IChtc3lzKSAgICBtaW5ndyAgW2UuZy4gbmF0aXZlXQotKyMgICAgY3lnd2luICAgICAgICAg IG1pbmd3Ci0rIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKLSsjCi0rIyBQYXRoIHNlcGFyYXRv cnMgYXJlIGFsc28gY29udmVydGVkIGZyb20gJGJ1aWxkIGZvcm1hdCB0bwotKyMgJGhvc3QgZm9y bWF0LiBJZiBBUkcgYmVnaW5zIG9yIGVuZHMgd2l0aCBhIHBhdGggc2VwYXJhdG9yCi0rIyBjaGFy YWN0ZXIsIGl0IGlzIHByZXNlcnZlZCAoYnV0IGNvbnZlcnRlZCB0byAkaG9zdCBmb3JtYXQpCi0r IyBvbiBvdXRwdXQuCi0rIwotKyMgQVJHIGlzIGEgcGF0aGxpc3QgKG9uICRidWlsZCkgdGhhdCBz aG91bGQgYmUgY29udmVydGVkIHRvCi0rIyB0aGUgcHJvcGVyIHJlcHJlc2VudGF0aW9uIG9uICRo b3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAotKyMgaW4gJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9y ZXN1bHQuCi0rZnVuY190b19ob3N0X3BhdGhsaXN0ICgpCi0rewotKyAgZnVuY190b19ob3N0X3Bh dGhsaXN0X3Jlc3VsdD0iJDEiCi0rICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0rICAgIGNhc2Ug JGhvc3QgaW4KLSsgICAgICAqbWluZ3cqICkKLSsgICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xh c2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKLSsgICAgICAgICMgUmVt b3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQot KyAgICAgICAgIyBBUkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUsIGN5Z3Bh dGggdHVybnMgdGhlbQotKyAgICAgICAgIyBpbnRvICcuOycgYW5kICc7LicsIGFuZCB3aW5lcGF0 aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KLSsgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlz dF90bXAyPSIkMSIKLSsgICAgICAgICMgT25jZSBzZXQgZm9yIHRoaXMgY2FsbCwgdGhpcyB2YXJp YWJsZSBzaG91bGQgbm90IGJlCi0rICAgICAgICAjIHJlYXNzaWduZWQuIEl0IGlzIHVzZWQgaW4g dGhhIGZhbGxiYWNrIGNhc2UuCi0rICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMT1g ZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAotKyAgICAgICAgICAkU0VEIC1l ICdzfF46Knx8JyAtZSAnc3w6KiR8fCdgCi0rICAgICAgICBjYXNlICRidWlsZCBpbgotKyAgICAg ICAgICAqbWluZ3cqICkgIyBBY3R1YWxseSwgbXN5cy4KLSsgICAgICAgICAgICAjIEF3a3dhcmQ6 IGNtZCBhcHBlbmRzIHNwYWNlcyB0byByZXN1bHQuCi0rICAgICAgICAgICAgbHRfc2VkX3N0cmlw X3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3Rf cGF0aGxpc3RfdG1wMj1gKCBjbWQgLy9jIGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1w MSIgfFwKLSsgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3Bh Y2VzIiApIDI+L2Rldi9udWxsIHx8IGVjaG8gIiJgCi0rICAgICAgICAgICAgZnVuY190b19ob3N0 X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8XAot KyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAotKyAg ICAgICAgICAgIDs7Ci0rICAgICAgICAgICpjeWd3aW4qICkKLSsgICAgICAgICAgICBmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfdG1wMj1gY3lncGF0aCAtdyAtcCAiJGZ1bmNfdG9faG9zdF9wYXRobGlz dF90bXAxImAKLSsgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hv ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0rICAgICAgICAgICAgICAkU0VEIC1l ICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0rICAgICAgICAgICAgOzsKLSsgICAgICAg ICAgKiApCi0rICAgICAgICAgICAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNv bnZlcnQgcGF0aGxpc3RzCi0rICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3Vs dD0iIgotKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlM9JElGUwotKyAg ICAgICAgICAgIElGUz06Ci0rICAgICAgICAgICAgZm9yIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9m IGluICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSA7IGRvCi0rICAgICAgICAgICAgICBJRlM9 JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKLSsgICAgICAgICAgICAgIGlmIHRlc3QgLW4g IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiIgOyB0aGVuCi0rICAgICAgICAgICAgICAgIGZ1bmNf dG9faG9zdF9wYXRoICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2YiCi0rICAgICAgICAgICAgICAg IGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgotKyAgICAgICAg ICAgICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRo ZW4KLSsgICAgICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRm dW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCi0rICAgICAgICAgICAgICAgICAgZWxzZQotKyAgICAg ICAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJGZ1bmNfdG9faG9z dF9wYXRobGlzdF9yZXN1bHQ7JGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKLSsgICAgICAgICAg ICAgICAgICBmaQotKyAgICAgICAgICAgICAgICBmaQotKyAgICAgICAgICAgICAgZmkKLSsgICAg ICAgICAgICAgIElGUz06Ci0rICAgICAgICAgICAgZG9uZQotKyAgICAgICAgICAgIElGUz0kZnVu Y190b19ob3N0X3BhdGhsaXN0X29sZElGUwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2Fj Ci0rICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0 aGVuCi0rICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGhvc3Qg cGF0aChzKSBjb3JyZXNwb25kaW5nIHRvIgotKyAgICAgICAgICBmdW5jX2Vycm9yICIgICckMSci Ci0rICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVj dXRhYmxlcyBtYXkgbm90IHdvcmsuIgotKyAgICAgICAgICAjIEZhbGxiYWNrLiBUaGlzIG1heSBi cmVhayBpZiAkMSBjb250YWlucyBET1Mtc3R5bGUgZHJpdmUKLSsgICAgICAgICAgIyBzcGVjaWZp Y2F0aW9ucy4gVGhlIGZpeCBpcyBub3QgdG8gY29tcGxpY2F0ZSB0aGUgZXhwcmVzc2lvbgotKyAg ICAgICAgICAjIGJlbG93LCBidXQgZm9yIHRoZSB1c2VyIHRvIHByb3ZpZGUgYSB3b3JraW5nIHdp bmUgaW5zdGFsbGF0aW9uCi0rICAgICAgICAgICMgd2l0aCB3aW5lcGF0aCBzbyB0aGF0IHBhdGgg dHJhbnNsYXRpb24gaW4gdGhlIGNyb3NzLXRvLW1pbmd3Ci0rICAgICAgICAgICMgY2FzZSB3b3Jr cyBwcm9wZXJseS4KLSsgICAgICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3M9InN8 Onw7fGciCi0rICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRm dW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSIgfFwKLSsgICAgICAgICAgICAkU0VEIC1lICIkbHRf cmVwbGFjZV9wYXRoc2VwX25peF90b19kb3MiYAotKyAgICAgICAgZmkKLSsgICAgICAgICMgTm93 LCBhZGQgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9ycyBiYWNrCi0rICAg ICAgICBjYXNlICIkMSIgaW4KLSsgICAgICAgICAgOiogKSBmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf cmVzdWx0PSI7JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiCi0rICAgICAgICAgICAgOzsK LSsgICAgICAgIGVzYWMKLSsgICAgICAgIGNhc2UgIiQxIiBpbgotKyAgICAgICAgICAqOiApIGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0 OyIKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsgICAgZXNh YwotKyAgZmkKLSt9Ci0rIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRobGlzdAotKwotKyMgZnVuY19l bWl0X2N3cmFwcGVyZXhlX3NyYwotKyMgZW1pdCB0aGUgc291cmNlIGNvZGUgZm9yIGEgd3JhcHBl ciBleGVjdXRhYmxlIG9uIHN0ZG91dAotKyMgTXVzdCBPTkxZIGJlIGNhbGxlZCBmcm9tIHdpdGhp biBmdW5jX21vZGVfbGluayBiZWNhdXNlCi0rIyBpdCBkZXBlbmRzIG9uIGEgbnVtYmVyIG9mIHZh cmlhYmxlIHNldCB0aGVyZWluLgotK2Z1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMgKCkKLSt7Ci0r CWNhdCA8PEVPRgotKwotKy8qICRjd3JhcHBlcnNvdXJjZSAtIHRlbXBvcmFyeSB3cmFwcGVyIGV4 ZWN1dGFibGUgZm9yICRvYmpkaXIvJG91dHB1dG5hbWUKLSsgICBHZW5lcmF0ZWQgYnkgJFBST0dS QU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rCi0rICAgVGhlICRvdXRwdXQg cHJvZ3JhbSBjYW5ub3QgYmUgZGlyZWN0bHkgZXhlY3V0ZWQgdW50aWwgYWxsIHRoZSBsaWJ0b29s Ci0rICAgbGlicmFyaWVzIHRoYXQgaXQgZGVwZW5kcyBvbiBhcmUgaW5zdGFsbGVkLgotKwotKyAg IFRoaXMgd3JhcHBlciBleGVjdXRhYmxlIHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhl IGJ1aWxkIGRpcmVjdG9yeS4KLSsgICBJZiBpdCBpcywgaXQgd2lsbCBub3Qgb3BlcmF0ZSBjb3Jy ZWN0bHkuCi0rCi0rICAgQ3VycmVudGx5LCBpdCBzaW1wbHkgZXhlY3MgdGhlIHdyYXBwZXIgKnNj cmlwdCogIiRTSEVMTCAkb3V0cHV0IiwKLSsgICBidXQgY291bGQgZXZlbnR1YWxseSBhYnNvcmIg YWxsIG9mIHRoZSBzY3JpcHRzIGZ1bmN0aW9uYWxpdHkgYW5kCi0rICAgZXhlYyAkb2JqZGlyLyRv dXRwdXRuYW1lIGRpcmVjdGx5LgotKyovCi0rRU9GCi0rCSAgICBjYXQgPDwiRU9GIgotKyNpbmNs dWRlIDxzdGRpby5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWZkZWYgX01TQ19WRVIKLSsj IGluY2x1ZGUgPGRpcmVjdC5oPgotKyMgaW5jbHVkZSA8cHJvY2Vzcy5oPgotKyMgaW5jbHVkZSA8 aW8uaD4KLSsjIGRlZmluZSBzZXRtb2RlIF9zZXRtb2RlCi0rI2Vsc2UKLSsjIGluY2x1ZGUgPHVu aXN0ZC5oPgotKyMgaW5jbHVkZSA8c3RkaW50Lmg+Ci0rIyBpZmRlZiBfX0NZR1dJTl9fCi0rIyAg aW5jbHVkZSA8aW8uaD4KLSsjICBkZWZpbmUgSEFWRV9TRVRFTlYKLSsjICBpZmRlZiBfX1NUUklD VF9BTlNJX18KLStjaGFyICpyZWFscGF0aCAoY29uc3QgY2hhciAqLCBjaGFyICopOwotK2ludCBw dXRlbnYgKGNoYXIgKik7Ci0raW50IHNldGVudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICos IGludCk7Ci0rIyAgZW5kaWYKLSsjIGVuZGlmCi0rI2VuZGlmCi0rI2luY2x1ZGUgPG1hbGxvYy5o PgotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2luY2x1ZGUg PHN0cmluZy5oPgotKyNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxlcnJuby5oPgotKyNp bmNsdWRlIDxmY250bC5oPgotKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgotKwotKyNpZiBkZWZpbmVk KFBBVEhfTUFYKQotKyMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9NQVgKLSsjZWxpZiBkZWZpbmVk KE1BWFBBVEhMRU4pCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCBNQVhQQVRITEVOCi0rI2Vsc2UKLSsj IGRlZmluZSBMVF9QQVRITUFYIDEwMjQKLSsjZW5kaWYKLSsKLSsjaWZuZGVmIFNfSVhPVEgKLSsj IGRlZmluZSBTX0lYT1RIIDAKLSsjZW5kaWYKLSsjaWZuZGVmIFNfSVhHUlAKLSsjIGRlZmluZSBT X0lYR1JQIDAKLSsjZW5kaWYKLSsKLSsjaWZkZWYgX01TQ19WRVIKLSsjIGRlZmluZSBTX0lYVVNS IF9TX0lFWEVDCi0rIyBkZWZpbmUgc3RhdCBfc3RhdAotKyMgaWZuZGVmIF9JTlRQVFJfVF9ERUZJ TkVECi0rIyAgZGVmaW5lIGludHB0cl90IGludAotKyMgZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWZu ZGVmIERJUl9TRVBBUkFUT1IKLSsjIGRlZmluZSBESVJfU0VQQVJBVE9SICcvJwotKyMgZGVmaW5l IFBBVEhfU0VQQVJBVE9SICc6JwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkIChfV0lOMzIpIHx8 IGRlZmluZWQgKF9fTVNET1NfXykgfHwgZGVmaW5lZCAoX19ESkdQUF9fKSB8fCBcCi0rICBkZWZp bmVkIChfX09TMl9fKQotKyMgZGVmaW5lIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNCi0rIyBk ZWZpbmUgRk9QRU5fV0IgIndiIgotKyMgaWZuZGVmIERJUl9TRVBBUkFUT1JfMgotKyMgIGRlZmlu ZSBESVJfU0VQQVJBVE9SXzIgJ1xcJwotKyMgZW5kaWYKLSsjIGlmbmRlZiBQQVRIX1NFUEFSQVRP Ul8yCi0rIyAgZGVmaW5lIFBBVEhfU0VQQVJBVE9SXzIgJzsnCi0rIyBlbmRpZgotKyNlbmRpZgot KwotKyNpZm5kZWYgRElSX1NFUEFSQVRPUl8yCi0rIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihj aCkgKChjaCkgPT0gRElSX1NFUEFSQVRPUikKLSsjZWxzZSAvKiBESVJfU0VQQVJBVE9SXzIgKi8K LSsjIGRlZmluZSBJU19ESVJfU0VQQVJBVE9SKGNoKSBcCi0rCSgoKGNoKSA9PSBESVJfU0VQQVJB VE9SKSB8fCAoKGNoKSA9PSBESVJfU0VQQVJBVE9SXzIpKQotKyNlbmRpZiAvKiBESVJfU0VQQVJB VE9SXzIgKi8KLSsKLSsjaWZuZGVmIFBBVEhfU0VQQVJBVE9SXzIKLSsjIGRlZmluZSBJU19QQVRI X1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1IpCi0rI2Vsc2UgLyogUEFUSF9T RVBBUkFUT1JfMiAqLwotKyMgZGVmaW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQ QVRIX1NFUEFSQVRPUl8yKQotKyNlbmRpZiAvKiBQQVRIX1NFUEFSQVRPUl8yICovCi0rCi0rI2lm ZGVmIF9fQ1lHV0lOX18KLSsjIGRlZmluZSBGT1BFTl9XQiAid2IiCi0rI2VuZGlmCi0rCi0rI2lm bmRlZiBGT1BFTl9XQgotKyMgZGVmaW5lIEZPUEVOX1dCICJ3IgotKyNlbmRpZgotKyNpZm5kZWYg X09fQklOQVJZCi0rIyBkZWZpbmUgX09fQklOQVJZIDAKLSsjZW5kaWYKLSsKLSsjZGVmaW5lIFhN QUxMT0ModHlwZSwgbnVtKSAgICAgICgodHlwZSAqKSB4bWFsbG9jICgobnVtKSAqIHNpemVvZih0 eXBlKSkpCi0rI2RlZmluZSBYRlJFRShzdGFsZSkgZG8geyBcCi0rICBpZiAoc3RhbGUpIHsgZnJl ZSAoKHZvaWQgKikgc3RhbGUpOyBzdGFsZSA9IDA7IH0gXAotK30gd2hpbGUgKDApCi0rCi0rI3Vu ZGVmIExUV1JBUFBFUl9ERUJVR1BSSU5URgotKyNpZiBkZWZpbmVkIERFQlVHV1JBUFBFUgotKyMg ZGVmaW5lIExUV1JBUFBFUl9ERUJVR1BSSU5URihhcmdzKSBsdHdyYXBwZXJfZGVidWdwcmludGYg YXJncwotK3N0YXRpYyB2b2lkCi0rbHR3cmFwcGVyX2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpm bXQsIC4uLikKLSt7Ci0rICAgIHZhX2xpc3QgYXJnczsKLSsgICAgdmFfc3RhcnQgKGFyZ3MsIGZt dCk7Ci0rICAgICh2b2lkKSB2ZnByaW50ZiAoc3RkZXJyLCBmbXQsIGFyZ3MpOwotKyAgICB2YV9l bmQgKGFyZ3MpOwotK30KLSsjZWxzZQotKyMgZGVmaW5lIExUV1JBUFBFUl9ERUJVR1BSSU5URihh cmdzKQotKyNlbmRpZgotKwotK2NvbnN0IGNoYXIgKnByb2dyYW1fbmFtZSA9IE5VTEw7Ci0rCi0r dm9pZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7Ci0rY2hhciAqeHN0cmR1cCAoY29uc3QgY2hhciAq c3RyaW5nKTsKLStjb25zdCBjaGFyICpiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOwotK2No YXIgKmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3JhcHBlcik7Ci0rY2hhciAqY2hhc2Vf c3ltbGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKTsKLStpbnQgbWFrZV9leGVjdXRhYmxlIChj b25zdCBjaGFyICpwYXRoKTsKLStpbnQgY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0 aCk7Ci0rY2hhciAqc3RyZW5kemFwIChjaGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCk7Ci0rdm9p ZCBsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKTsKLSt2b2lkIGx0X3NldGVudiAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwotK2NoYXIgKmx0X2V4dGVuZF9z dHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRvX2VuZCk7 Ci0rdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChjb25zdCBjaGFyICphcmcpOwotK3ZvaWQg bHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZyk7Ci0rdm9pZCBsdF9v cHRfcHJvY2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcpOwotK2ludCBsdF9zcGxpdF9u YW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIqKiBuYW1lLCBjaGFyKiogdmFsdWUpOwot K3ZvaWQgbHRfdXBkYXRlX2V4ZV9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2 YWx1ZSk7Ci0rdm9pZCBsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKnZhbHVlKTsKLSsKLStzdGF0aWMgY29uc3QgY2hhciAqc2NyaXB0X3RleHRfcGFydDEg PQotK0VPRgotKwotKwkgICAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgeWVzIHwKLSsJICAgICAg ICAkU0VEIC1lICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKLSsJICAgICAgICAgICAgIC1lICdzL14v ICAiLycgLWUgJ3MvJC9cXG4iLycKLSsJICAgIGVjaG8gIjsiCi0rCSAgICBjYXQgPDxFT0YKLSsK LStzdGF0aWMgY29uc3QgY2hhciAqc2NyaXB0X3RleHRfcGFydDIgPQotK0VPRgotKwkgICAgZnVu Y19lbWl0X3dyYXBwZXJfcGFydDIgeWVzIHwKLSsJICAgICAgICAkU0VEIC1lICdzL1woW1xcIl1c KS9cXFwxL2cnIFwKLSsJICAgICAgICAgICAgIC1lICdzL14vICAiLycgLWUgJ3MvJC9cXG4iLycK LSsJICAgIGVjaG8gIjsiCi0rCi0rCSAgICBjYXQgPDxFT0YKLStjb25zdCBjaGFyICogTUFHSUNf RVhFID0gIiRtYWdpY19leGUiOwotK2NvbnN0IGNoYXIgKiBMSUJfUEFUSF9WQVJOQU1FID0gIiRz aGxpYnBhdGhfdmFyIjsKLStFT0YKLSsKLSsJICAgIGlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1u ICIkdGVtcF9ycGF0aCI7IHRoZW4KLSsgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlz dCAiJHRlbXBfcnBhdGgiCi0rCSAgICAgIGNhdCA8PEVPRgotK2NvbnN0IGNoYXIgKiBMSUJfUEFU SF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKLStFT0YKLSsJICAg IGVsc2UKLSsJICAgICAgY2F0IDw8IkVPRiIKLStjb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUg ICA9ICIiOwotK0VPRgotKwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRkbGxzZWFyY2hw YXRoIjsgdGhlbgotKyAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkZGxsc2Vh cmNocGF0aDoiCi0rCSAgICAgIGNhdCA8PEVPRgotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJO QU1FID0gIlBBVEgiOwotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKLStFT0YKLSsJICAgIGVsc2UKLSsJICAgICAgY2F0IDw8 IkVPRiIKLStjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICIiOwotK2NvbnN0IGNoYXIg KiBFWEVfUEFUSF9WQUxVRSAgID0gIiI7Ci0rRU9GCi0rCSAgICBmaQotKwotKwkgICAgaWYgdGVz dCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgY2F0IDw8RU9GCi0rY29uc3Qg Y2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAibHQtJG91dHB1dG5hbWUiOyAvKiBob3BlZnVs bHksIG5vIC5leGUgKi8KLStFT0YKLSsJICAgIGVsc2UKLSsJICAgICAgY2F0IDw8RU9GCi0rY29u c3QgY2hhciAqIFRBUkdFVF9QUk9HUkFNX05BTUUgPSAiJG91dHB1dG5hbWUiOyAvKiBob3BlZnVs bHksIG5vIC5leGUgKi8KLStFT0YKLSsJICAgIGZpCi0rCi0rCi0rCSAgICBjYXQgPDwiRU9GIgot KwotKyNkZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggICAgICAgICAiLS1sdC0iCi0rI2Rl ZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggIDUKLSsKLStzdGF0aWMgY29uc3Qg c2l6ZV90IG9wdF9wcmVmaXhfbGVuICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9M RU5HVEg7Ci0rc3RhdGljIGNvbnN0IGNoYXIgKmx0d3JhcHBlcl9vcHRpb25fcHJlZml4ID0gTFRX UkFQUEVSX09QVElPTl9QUkVGSVg7Ci0rCi0rc3RhdGljIGNvbnN0IGNoYXIgKmR1bXBzY3JpcHRf b3B0ICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImR1bXAtc2NyaXB0IjsKLSsKLStz dGF0aWMgY29uc3Qgc2l6ZV90IGVudl9zZXRfb3B0X2xlbiAgICAgPSBMVFdSQVBQRVJfT1BUSU9O X1BSRUZJWF9MRU5HVEggKyA3OwotK3N0YXRpYyBjb25zdCBjaGFyICplbnZfc2V0X29wdCAgICAg ICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtc2V0IjsKLSsgIC8qIGFyZ3VtZW50 IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIHZhbHVlIG9mIGZvbyBpcyBzZXQgdG8gYmFyICov Ci0rCi0rc3RhdGljIGNvbnN0IHNpemVfdCBlbnZfcHJlcGVuZF9vcHRfbGVuID0gTFRXUkFQUEVS X09QVElPTl9QUkVGSVhfTEVOR1RIICsgMTE7Ci0rc3RhdGljIGNvbnN0IGNoYXIgKmVudl9wcmVw ZW5kX29wdCAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1wcmVwZW5kIjsKLSsg IC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28g aXMgYmFyJHtmb299ICovCi0rCi0rc3RhdGljIGNvbnN0IHNpemVfdCBlbnZfYXBwZW5kX29wdF9s ZW4gID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsgMTA7Ci0rc3RhdGljIGNvbnN0 IGNoYXIgKmVudl9hcHBlbmRfb3B0ICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVu di1hcHBlbmQiOwotKyAgLyogYXJndW1lbnQgaXMgcHV0ZW52LXN0eWxlICJmb289YmFyIiwgbmV3 IHZhbHVlIG9mIGZvbyBpcyAke2Zvb31iYXIgKi8KLSsKLStpbnQKLSttYWluIChpbnQgYXJnYywg Y2hhciAqYXJndltdKQotK3sKLSsgIGNoYXIgKipuZXdhcmd6OwotKyAgaW50ICBuZXdhcmdjOwot KyAgY2hhciAqdG1wX3BhdGhzcGVjOwotKyAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX3BhdGg7Ci0r ICBjaGFyICphY3R1YWxfY3dyYXBwZXJfbmFtZTsKLSsgIGNoYXIgKnRhcmdldF9uYW1lOwotKyAg Y2hhciAqbHRfYXJndl96ZXJvOwotKyAgaW50cHRyX3QgcnZhbCA9IDEyNzsKLSsKLSsgIGludCBp OwotKwotKyAgcHJvZ3JhbV9uYW1lID0gKGNoYXIgKikgeHN0cmR1cCAoYmFzZV9uYW1lIChhcmd2 WzBdKSk7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGFyZ3ZbMF0gICAgICA6 ICVzXG4iLCBhcmd2WzBdKSk7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIHBy b2dyYW1fbmFtZSA6ICVzXG4iLCBwcm9ncmFtX25hbWUpKTsKLSsKLSsgIC8qIHZlcnkgc2ltcGxl IGFyZyBwYXJzaW5nOyBkb24ndCB3YW50IHRvIHJlbHkgb24gZ2V0b3B0ICovCi0rICBmb3IgKGkg PSAxOyBpIDwgYXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwg ZHVtcHNjcmlwdF9vcHQpID09IDApCi0rCXsKLStFT0YKLSsJICAgIGNhc2UgIiRob3N0IiBpbgot KwkgICAgICAqbWluZ3cqIHwgKmN5Z3dpbiogKQotKwkJIyBtYWtlIHN0ZG91dCB1c2UgInVuaXgi IGxpbmUgZW5kaW5ncwotKwkJZWNobyAiICAgICAgICAgIHNldG1vZGUoMSxfT19CSU5BUlkpOyIK LSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rCSAgcHJpbnRmICgi JXMiLCBzY3JpcHRfdGV4dF9wYXJ0MSk7Ci0rCSAgcHJpbnRmICgiJXMiLCBzY3JpcHRfdGV4dF9w YXJ0Mik7Ci0rCSAgcmV0dXJuIDA7Ci0rCX0KLSsgICAgfQotKwotKyAgbmV3YXJneiA9IFhNQUxM T0MgKGNoYXIgKiwgYXJnYyArIDEpOwotKyAgdG1wX3BhdGhzcGVjID0gZmluZF9leGVjdXRhYmxl IChhcmd2WzBdKTsKLSsgIGlmICh0bXBfcGF0aHNwZWMgPT0gTlVMTCkKLSsgICAgbHRfZmF0YWwg KCJDb3VsZG4ndCBmaW5kICVzIiwgYXJndlswXSk7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYg KCgiKG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCi0r CQkJICB0bXBfcGF0aHNwZWMpKTsKLSsKLSsgIGFjdHVhbF9jd3JhcHBlcl9wYXRoID0gY2hhc2Vf c3ltbGlua3MgKHRtcF9wYXRoc3BlYyk7Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1h aW4pIGZvdW5kIGV4ZSAoYWZ0ZXIgc3ltbGluayBjaGFzZSkgYXQgOiAlc1xuIiwKLSsJCQkgIGFj dHVhbF9jd3JhcHBlcl9wYXRoKSk7Ci0rICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKLSsKLSsgIGFj dHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCggYmFzZV9uYW1lIChhY3R1YWxfY3dyYXBwZXJf cGF0aCkpOwotKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfcGF0aCwgYWN0dWFsX2N3cmFw cGVyX25hbWUpOwotKwotKyAgLyogd3JhcHBlciBuYW1lIHRyYW5zZm9ybXMgKi8KLSsgIHN0cmVu ZHphcCAoYWN0dWFsX2N3cmFwcGVyX25hbWUsICIuZXhlIik7Ci0rICB0bXBfcGF0aHNwZWMgPSBs dF9leHRlbmRfc3RyIChhY3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5leGUiLCAxKTsKLSsgIFhGUkVF IChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9IHRtcF9w YXRoc3BlYzsKLSsgIHRtcF9wYXRoc3BlYyA9IDA7Ci0rCi0rICAvKiB0YXJnZXRfbmFtZSB0cmFu c2Zvcm1zIC0tIHVzZSBhY3R1YWwgdGFyZ2V0IHByb2dyYW0gbmFtZTsgbWlnaHQgaGF2ZSBsdC0g cHJlZml4ICovCi0rICB0YXJnZXRfbmFtZSA9IHhzdHJkdXAgKGJhc2VfbmFtZSAoVEFSR0VUX1BS T0dSQU1fTkFNRSkpOwotKyAgc3RyZW5kemFwICh0YXJnZXRfbmFtZSwgIi5leGUiKTsKLSsgIHRt cF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKHRhcmdldF9uYW1lLCAiLmV4ZSIsIDEpOwotKyAg WEZSRUUgKHRhcmdldF9uYW1lKTsKLSsgIHRhcmdldF9uYW1lID0gdG1wX3BhdGhzcGVjOwotKyAg dG1wX3BhdGhzcGVjID0gMDsKLSsKLSsgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikg bGlidG9vbCB0YXJnZXQgbmFtZTogJXNcbiIsCi0rCQkJICB0YXJnZXRfbmFtZSkpOwotK0VPRgot KwotKwkgICAgY2F0IDw8RU9GCi0rICBuZXdhcmd6WzBdID0KLSsgICAgWE1BTExPQyAoY2hhciwg KHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpICsKLSsJCSAgICBzdHJsZW4gKCIkb2JqZGly IikgKyAxICsgc3RybGVuIChhY3R1YWxfY3dyYXBwZXJfbmFtZSkgKyAxKSk7Ci0rICBzdHJjcHkg KG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKLSsgIHN0cmNhdCAobmV3YXJnelsw XSwgIiRvYmpkaXIiKTsKLSsgIHN0cmNhdCAobmV3YXJnelswXSwgIi8iKTsKLStFT0YKLSsKLSsJ ICAgIGNhdCA8PCJFT0YiCi0rICAvKiBzdG9wIGhlcmUsIGFuZCBjb3B5IHNvIHdlIGRvbid0IGhh dmUgdG8gZG8gdGhpcyB0d2ljZSAqLwotKyAgdG1wX3BhdGhzcGVjID0geHN0cmR1cCAobmV3YXJn elswXSk7Ci0rCi0rICAvKiBkbyBOT1Qgd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlLCBzbyB1c2Ug YWN0dWFsX2N3cmFwcGVyX25hbWUgKi8KLSsgIHN0cmNhdCAobmV3YXJnelswXSwgYWN0dWFsX2N3 cmFwcGVyX25hbWUpOwotKwotKyAgLyogRE8gd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlIGlmIGl0 IGV4aXN0cywgc28gdXNlIHRhcmdldF9uYW1lICovCi0rICBsdF9hcmd2X3plcm8gPSBsdF9leHRl bmRfc3RyICh0bXBfcGF0aHNwZWMsIHRhcmdldF9uYW1lLCAxKTsKLSsgIFhGUkVFICh0bXBfcGF0 aHNwZWMpOwotKyAgdG1wX3BhdGhzcGVjID0gTlVMTDsKLStFT0YKLSsKLSsJICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsJICAgICAgbWluZ3cqKQotKwkgICAgY2F0IDw8IkVPRiIKLSsgIHsKLSsgICAg Y2hhciogcDsKLSsgICAgd2hpbGUgKChwID0gc3RyY2hyIChuZXdhcmd6WzBdLCAnXFwnKSkgIT0g TlVMTCkKLSsgICAgICB7Ci0rCSpwID0gJy8nOwotKyAgICAgIH0KLSsgICAgd2hpbGUgKChwID0g c3RyY2hyIChsdF9hcmd2X3plcm8sICdcXCcpKSAhPSBOVUxMKQotKyAgICAgIHsKLSsJKnAgPSAn Lyc7Ci0rICAgICAgfQotKyAgfQotK0VPRgotKwkgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJICAg IGNhdCA8PCJFT0YiCi0rICBYRlJFRSAodGFyZ2V0X25hbWUpOwotKyAgWEZSRUUgKGFjdHVhbF9j d3JhcHBlcl9wYXRoKTsKLSsgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0rICBs dF9zZXRlbnYgKCJCSU5fU0giLCAieHBnNCIpOyAvKiBmb3IgVHJ1NjQgKi8KLSsgIGx0X3NldGVu diAoIkRVQUxDQVNFIiwgIjEiKTsgIC8qIGZvciBNU0sgc2ggKi8KLSsgIGx0X3VwZGF0ZV9saWJf cGF0aCAoTElCX1BBVEhfVkFSTkFNRSwgTElCX1BBVEhfVkFMVUUpOwotKyAgbHRfdXBkYXRlX2V4 ZV9wYXRoIChFWEVfUEFUSF9WQVJOQU1FLCBFWEVfUEFUSF9WQUxVRSk7Ci0rCi0rICBuZXdhcmdj PTA7Ci0rICBmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgaWYgKHN0 cm5jbXAgKGFyZ3ZbaV0sIGVudl9zZXRfb3B0LCBlbnZfc2V0X29wdF9sZW4pID09IDApCi0rICAg ICAgICB7Ci0rICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9zZXRfb3B0X2xlbl0gPT0gJz0nKQot KyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsg ZW52X3NldF9vcHRfbGVuICsgMTsKLSsgICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9z ZXQgKHApOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZf c2V0X29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQotKyAgICAgICAgICAgIHsKLSsg ICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0 IGNvcHkgKi8KLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBs dF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfc2V0X29wdCk7Ci0r ICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgIGlmIChzdHJuY21wIChhcmd2 W2ldLCBlbnZfcHJlcGVuZF9vcHQsIGVudl9wcmVwZW5kX29wdF9sZW4pID09IDApCi0rICAgICAg ICB7Ci0rICAgICAgICAgIGlmIChhcmd2W2ldW2Vudl9wcmVwZW5kX29wdF9sZW5dID09ICc9JykK LSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gYXJndltpXSAr IGVudl9wcmVwZW5kX29wdF9sZW4gKyAxOwotKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3Nf ZW52X3ByZXBlbmQgKHApOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxzZSBpZiAoYXJn dltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwgYXJnYykKLSsgICAg ICAgICAgICB7Ci0rICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoYXJn dlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxz ZQotKyAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIs IGVudl9wcmVwZW5kX29wdCk7Ci0rICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAg ICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfYXBwZW5kX29wdCwgZW52X2FwcGVuZF9vcHRf bGVuKSA9PSAwKQotKyAgICAgICAgewotKyAgICAgICAgICBpZiAoYXJndltpXVtlbnZfYXBwZW5k X29wdF9sZW5dID09ICc9JykKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBjb25zdCBj aGFyICpwID0gYXJndltpXSArIGVudl9hcHBlbmRfb3B0X2xlbiArIDE7Ci0rICAgICAgICAgICAg ICBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChwKTsKLSsgICAgICAgICAgICB9Ci0rICAgICAg ICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAx IDwgYXJnYykKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19l bnZfYXBwZW5kIChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCi0rICAgICAgICAgICAgfQot KyAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVp cmVkIGFyZ3VtZW50IiwgZW52X2FwcGVuZF9vcHQpOwotKyAgICAgICAgICBjb250aW51ZTsKLSsg ICAgICAgIH0KLSsgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgbHR3cmFwcGVyX29wdGlvbl9w cmVmaXgsIG9wdF9wcmVmaXhfbGVuKSA9PSAwKQotKyAgICAgICAgewotKyAgICAgICAgICAvKiBo b3dldmVyLCBpZiB0aGVyZSBpcyBhbiBvcHRpb24gaW4gdGhlIExUV1JBUFBFUl9PUFRJT05fUFJF RklYCi0rICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlzIG5vdCBvbmUgb2YgdGhlIG9u ZXMgd2Uga25vdyBhYm91dCBhbmQKLSsgICAgICAgICAgICAgaGF2ZSBhbHJlYWR5IGRlYWx0IHdp dGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4KLSsgICAgICAgICAgICAgcmVw b3J0IGFuIGVycm9yLiBPdGhlcndpc2UsIHRhcmdldHMgbWlnaHQgYmVnaW4gdG8gYmVsaWV2ZQot KyAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBvcHRpb25zIGluIHRoZSBMVFdS QVBQRVJfT1BUSU9OX1BSRUZJWAotKyAgICAgICAgICAgICBuYW1lc3BhY2UuIFRoZSBmaXJzdCB0 aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSdsbAotKyAgICAgICAgICAgICBu ZWVkIHRvIG1ha2UgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggYSBjb25maWd1cmUtdGltZSBvcHRp b24KLSsgICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0dGFibGUgdmFsdWUuCi0rICAg ICAgICAgICAqLwotKyAgICAgICAgICBsdF9mYXRhbCAoIlVucmVjb2duaXplZCBvcHRpb24gaW4g JXMgbmFtZXNwYWNlOiAnJXMnIiwKLSsgICAgICAgICAgICAgICAgICAgIGx0d3JhcHBlcl9vcHRp b25fcHJlZml4LCBhcmd2W2ldKTsKLSsgICAgICAgIH0KLSsgICAgICAvKiBvdGhlcndpc2UgLi4u ICovCi0rICAgICAgbmV3YXJnelsrK25ld2FyZ2NdID0geHN0cmR1cCAoYXJndltpXSk7Ci0rICAg IH0KLSsgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IE5VTEw7Ci0rCi0rICBMVFdSQVBQRVJfREVCVUdQ UklOVEYgICAgICgoIihtYWluKSBsdF9hcmd2X3plcm8gOiAlc1xuIiwgKGx0X2FyZ3ZfemVybyA/ IGx0X2FyZ3ZfemVybyA6ICI8TlVMTD4iKSkpOwotKyAgZm9yIChpID0gMDsgaSA8IG5ld2FyZ2M7 IGkrKykKLSsgICAgewotKyAgICAgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgbmV3 YXJnelslZF0gICA6ICVzXG4iLCBpLCAobmV3YXJneltpXSA/IG5ld2FyZ3pbaV0gOiAiPE5VTEw+ IikpKTsKLSsgICAgfQotKwotK0VPRgotKwotKwkgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkgICAg ICBtaW5ndyopCi0rCQljYXQgPDwiRU9GIgotKyAgLyogZXhlY3YgZG9lc24ndCBhY3R1YWxseSB3 b3JrIG9uIG1pbmd3IGFzIGV4cGVjdGVkIG9uIHVuaXggKi8KLSsgIHJ2YWwgPSBfc3Bhd252IChf UF9XQUlULCBsdF9hcmd2X3plcm8sIChjb25zdCBjaGFyICogY29uc3QgKikgbmV3YXJneik7Ci0r ICBpZiAocnZhbCA9PSAtMSkKLSsgICAgewotKyAgICAgIC8qIGZhaWxlZCB0byBzdGFydCBwcm9j ZXNzICovCi0rICAgICAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmYWlsZWQgdG8g bGF1bmNoIHRhcmdldCBcIiVzXCI6IGVycm5vID0gJWRcbiIsIGx0X2FyZ3ZfemVybywgZXJybm8p KTsKLSsgICAgICByZXR1cm4gMTI3OwotKyAgICB9Ci0rICByZXR1cm4gcnZhbDsKLStFT0YKLSsJ CTs7Ci0rCSAgICAgICopCi0rCQljYXQgPDwiRU9GIgotKyAgZXhlY3YgKGx0X2FyZ3ZfemVybywg bmV3YXJneik7Ci0rICByZXR1cm4gcnZhbDsgLyogPTEyNywgYnV0IGF2b2lkcyB1bnVzZWQgdmFy aWFibGUgd2FybmluZyAqLwotK0VPRgotKwkJOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8 PCJFT0YiCi0rfQotKwotK3ZvaWQgKgotK3htYWxsb2MgKHNpemVfdCBudW0pCi0rewotKyAgdm9p ZCAqcCA9ICh2b2lkICopIG1hbGxvYyAobnVtKTsKLSsgIGlmICghcCkKLSsgICAgbHRfZmF0YWwg KCJNZW1vcnkgZXhoYXVzdGVkIik7Ci0rCi0rICByZXR1cm4gcDsKLSt9Ci0rCi0rY2hhciAqCi0r eHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKQotK3sKLSsgIHJldHVybiBzdHJpbmcgPyBzdHJj cHkgKChjaGFyICopIHhtYWxsb2MgKHN0cmxlbiAoc3RyaW5nKSArIDEpLAotKwkJCSAgc3RyaW5n KSA6IE5VTEw7Ci0rfQotKwotK2NvbnN0IGNoYXIgKgotK2Jhc2VfbmFtZSAoY29uc3QgY2hhciAq bmFtZSkKLSt7Ci0rICBjb25zdCBjaGFyICpiYXNlOwotKwotKyNpZiBkZWZpbmVkIChIQVZFX0RP U19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgIC8qIFNraXAgb3ZlciB0aGUgZGlzayBuYW1lIGluIE1T RE9TIHBhdGhuYW1lcy4gKi8KLSsgIGlmIChpc2FscGhhICgodW5zaWduZWQgY2hhcikgbmFtZVsw XSkgJiYgbmFtZVsxXSA9PSAnOicpCi0rICAgIG5hbWUgKz0gMjsKLSsjZW5kaWYKLSsKLSsgIGZv ciAoYmFzZSA9IG5hbWU7ICpuYW1lOyBuYW1lKyspCi0rICAgIGlmIChJU19ESVJfU0VQQVJBVE9S ICgqbmFtZSkpCi0rICAgICAgYmFzZSA9IG5hbWUgKyAxOwotKyAgcmV0dXJuIGJhc2U7Ci0rfQot KwotK2ludAotK2NoZWNrX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpCi0rewotKyAgc3Ry dWN0IHN0YXQgc3Q7Ci0rCi0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGNoZWNrX2V4ZWN1 dGFibGUpICA6ICVzXG4iLAotKwkJCSAgcGF0aCA/ICgqcGF0aCA/IHBhdGggOiAiRU1QVFkhIikg OiAiTlVMTCEiKSk7Ci0rICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKLSsgICAgcmV0dXJuIDA7 Ci0rCi0rICBpZiAoKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKLSsgICAgICAmJiAoc3Quc3RfbW9k ZSAmIChTX0lYVVNSIHwgU19JWEdSUCB8IFNfSVhPVEgpKSkKLSsgICAgcmV0dXJuIDE7Ci0rICBl bHNlCi0rICAgIHJldHVybiAwOwotK30KLSsKLStpbnQKLSttYWtlX2V4ZWN1dGFibGUgKGNvbnN0 IGNoYXIgKnBhdGgpCi0rewotKyAgaW50IHJ2YWwgPSAwOwotKyAgc3RydWN0IHN0YXQgc3Q7Ci0r Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1ha2VfZXhlY3V0YWJsZSkgICA6ICVzXG4i LAotKwkJCSAgcGF0aCA/ICgqcGF0aCA/IHBhdGggOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7Ci0r ICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBpZiAoc3Rh dCAocGF0aCwgJnN0KSA+PSAwKQotKyAgICB7Ci0rICAgICAgcnZhbCA9IGNobW9kIChwYXRoLCBz dC5zdF9tb2RlIHwgU19JWE9USCB8IFNfSVhHUlAgfCBTX0lYVVNSKTsKLSsgICAgfQotKyAgcmV0 dXJuIHJ2YWw7Ci0rfQotKwotKy8qIFNlYXJjaGVzIGZvciB0aGUgZnVsbCBwYXRoIG9mIHRoZSB3 cmFwcGVyLiAgUmV0dXJucwotKyAgIG5ld2x5IGFsbG9jYXRlZCBmdWxsIHBhdGggbmFtZSBpZiBm b3VuZCwgTlVMTCBvdGhlcndpc2UKLSsgICBEb2VzIG5vdCBjaGFzZSBzeW1saW5rcywgZXZlbiBv biBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHRoZW0uCi0rKi8KLStjaGFyICoKLStmaW5kX2V4ZWN1 dGFibGUgKGNvbnN0IGNoYXIgKndyYXBwZXIpCi0rewotKyAgaW50IGhhc19zbGFzaCA9IDA7Ci0r ICBjb25zdCBjaGFyICpwOwotKyAgY29uc3QgY2hhciAqcF9uZXh0OwotKyAgLyogc3RhdGljIGJ1 ZmZlciBmb3IgZ2V0Y3dkICovCi0rICBjaGFyIHRtcFtMVF9QQVRITUFYICsgMV07Ci0rICBpbnQg dG1wX2xlbjsKLSsgIGNoYXIgKmNvbmNhdF9uYW1lOwotKwotKyAgTFRXUkFQUEVSX0RFQlVHUFJJ TlRGICgoIihmaW5kX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKLSsJCQkgIHdyYXBwZXIgPyAoKndy YXBwZXIgPyB3cmFwcGVyIDogIkVNUFRZISIpIDogIk5VTEwhIikpOwotKwotKyAgaWYgKCh3cmFw cGVyID09IE5VTEwpIHx8ICgqd3JhcHBlciA9PSAnXDAnKSkKLSsgICAgcmV0dXJuIE5VTEw7Ci0r Ci0rICAvKiBBYnNvbHV0ZSBwYXRoPyAqLwotKyNpZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9G SUxFX1NZU1RFTSkKLSsgIGlmIChpc2FscGhhICgodW5zaWduZWQgY2hhcikgd3JhcHBlclswXSkg JiYgd3JhcHBlclsxXSA9PSAnOicpCi0rICAgIHsKLSsgICAgICBjb25jYXRfbmFtZSA9IHhzdHJk dXAgKHdyYXBwZXIpOwotKyAgICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkp Ci0rCXJldHVybiBjb25jYXRfbmFtZTsKLSsgICAgICBYRlJFRSAoY29uY2F0X25hbWUpOwotKyAg ICB9Ci0rICBlbHNlCi0rICAgIHsKLSsjZW5kaWYKLSsgICAgICBpZiAoSVNfRElSX1NFUEFSQVRP UiAod3JhcHBlclswXSkpCi0rCXsKLSsJICBjb25jYXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIp OwotKwkgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCi0rCSAgICByZXR1cm4g Y29uY2F0X25hbWU7Ci0rCSAgWEZSRUUgKGNvbmNhdF9uYW1lKTsKLSsJfQotKyNpZiBkZWZpbmVk IChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgICAgfQotKyNlbmRpZgotKwotKyAgZm9y IChwID0gd3JhcHBlcjsgKnA7IHArKykKLSsgICAgaWYgKCpwID09ICcvJykKLSsgICAgICB7Ci0r CWhhc19zbGFzaCA9IDE7Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsgIGlmICghaGFzX3NsYXNoKQot KyAgICB7Ci0rICAgICAgLyogbm8gc2xhc2hlczsgc2VhcmNoIFBBVEggKi8KLSsgICAgICBjb25z dCBjaGFyICpwYXRoID0gZ2V0ZW52ICgiUEFUSCIpOwotKyAgICAgIGlmIChwYXRoICE9IE5VTEwp Ci0rCXsKLSsJICBmb3IgKHAgPSBwYXRoOyAqcDsgcCA9IHBfbmV4dCkKLSsJICAgIHsKLSsJICAg ICAgY29uc3QgY2hhciAqcTsKLSsJICAgICAgc2l6ZV90IHBfbGVuOwotKwkgICAgICBmb3IgKHEg PSBwOyAqcTsgcSsrKQotKwkJaWYgKElTX1BBVEhfU0VQQVJBVE9SICgqcSkpCi0rCQkgIGJyZWFr OwotKwkgICAgICBwX2xlbiA9IHEgLSBwOwotKwkgICAgICBwX25leHQgPSAoKnEgPT0gJ1wwJyA/ IHEgOiBxICsgMSk7Ci0rCSAgICAgIGlmIChwX2xlbiA9PSAwKQotKwkJewotKwkJICAvKiBlbXB0 eSBwYXRoOiBjdXJyZW50IGRpcmVjdG9yeSAqLwotKwkJICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BB VEhNQVgpID09IE5VTEwpCi0rCQkgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVkIik7Ci0rCQkg IHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7Ci0rCQkgIGNvbmNhdF9uYW1lID0KLSsJCSAgICBYTUFM TE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKLSsJCSAgbWVt Y3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKLSsJCSAgY29uY2F0X25hbWVbdG1wX2xl bl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBl cik7Ci0rCQl9Ci0rCSAgICAgIGVsc2UKLSsJCXsKLSsJCSAgY29uY2F0X25hbWUgPQotKwkJICAg IFhNQUxMT0MgKGNoYXIsIHBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKLSsJCSAg bWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4pOwotKwkJICBjb25jYXRfbmFtZVtwX2xlbl0g PSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyBwX2xlbiArIDEsIHdyYXBwZXIpOwot KwkJfQotKwkgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQotKwkJcmV0 dXJuIGNvbmNhdF9uYW1lOwotKwkgICAgICBYRlJFRSAoY29uY2F0X25hbWUpOwotKwkgICAgfQot Kwl9Ci0rICAgICAgLyogbm90IGZvdW5kIGluIFBBVEg7IGFzc3VtZSBjdXJkaXIgKi8KLSsgICAg fQotKyAgLyogUmVsYXRpdmUgcGF0aCB8IG5vdCBmb3VuZCBpbiBwYXRoOiBwcmVwZW5kIGN3ZCAq LwotKyAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQotKyAgICBsdF9mYXRh bCAoImdldGN3ZCBmYWlsZWQiKTsKLSsgIHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7Ci0rICBjb25j YXRfbmFtZSA9IFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSAr IDEpOwotKyAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKLSsgIGNvbmNhdF9u YW1lW3RtcF9sZW5dID0gJy8nOwotKyAgc3RyY3B5IChjb25jYXRfbmFtZSArIHRtcF9sZW4gKyAx LCB3cmFwcGVyKTsKLSsKLSsgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCi0r ICAgIHJldHVybiBjb25jYXRfbmFtZTsKLSsgIFhGUkVFIChjb25jYXRfbmFtZSk7Ci0rICByZXR1 cm4gTlVMTDsKLSt9Ci0rCi0rY2hhciAqCi0rY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNoYXIgKnBh dGhzcGVjKQotK3sKLSsjaWZuZGVmIFNfSVNMTksKLSsgIHJldHVybiB4c3RyZHVwIChwYXRoc3Bl Yyk7Ci0rI2Vsc2UKLSsgIGNoYXIgYnVmW0xUX1BBVEhNQVhdOwotKyAgc3RydWN0IHN0YXQgczsK LSsgIGNoYXIgKnRtcF9wYXRoc3BlYyA9IHhzdHJkdXAgKHBhdGhzcGVjKTsKLSsgIGNoYXIgKnA7 Ci0rICBpbnQgaGFzX3N5bWxpbmtzID0gMDsKLSsgIHdoaWxlIChzdHJsZW4gKHRtcF9wYXRoc3Bl YykgJiYgIWhhc19zeW1saW5rcykKLSsgICAgewotKyAgICAgIExUV1JBUFBFUl9ERUJVR1BSSU5U RiAoKCJjaGVja2luZyBwYXRoIGNvbXBvbmVudCBmb3Igc3ltbGlua3M6ICVzXG4iLAotKwkJCSAg ICAgIHRtcF9wYXRoc3BlYykpOwotKyAgICAgIGlmIChsc3RhdCAodG1wX3BhdGhzcGVjLCAmcykg PT0gMCkKLSsJewotKwkgIGlmIChTX0lTTE5LIChzLnN0X21vZGUpICE9IDApCi0rCSAgICB7Ci0r CSAgICAgIGhhc19zeW1saW5rcyA9IDE7Ci0rCSAgICAgIGJyZWFrOwotKwkgICAgfQotKwotKwkg IC8qIHNlYXJjaCBiYWNrd2FyZHMgZm9yIGxhc3QgRElSX1NFUEFSQVRPUiAqLwotKwkgIHAgPSB0 bXBfcGF0aHNwZWMgKyBzdHJsZW4gKHRtcF9wYXRoc3BlYykgLSAxOwotKwkgIHdoaWxlICgocCA+ IHRtcF9wYXRoc3BlYykgJiYgKCFJU19ESVJfU0VQQVJBVE9SICgqcCkpKQotKwkgICAgcC0tOwot KwkgIGlmICgocCA9PSB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkK LSsJICAgIHsKLSsJICAgICAgLyogbm8gbW9yZSBESVJfU0VQQVJBVE9SUyBsZWZ0ICovCi0rCSAg ICAgIGJyZWFrOwotKwkgICAgfQotKwkgICpwID0gJ1wwJzsKLSsJfQotKyAgICAgIGVsc2UKLSsJ ewotKwkgIGNoYXIgKmVycnN0ciA9IHN0cmVycm9yIChlcnJubyk7Ci0rCSAgbHRfZmF0YWwgKCJF cnJvciBhY2Nlc3NpbmcgZmlsZSAlcyAoJXMpIiwgdG1wX3BhdGhzcGVjLCBlcnJzdHIpOwotKwl9 Ci0rICAgIH0KLSsgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwotKwotKyAgaWYgKCFoYXNfc3ltbGlu a3MpCi0rICAgIHsKLSsgICAgICByZXR1cm4geHN0cmR1cCAocGF0aHNwZWMpOwotKyAgICB9Ci0r Ci0rICB0bXBfcGF0aHNwZWMgPSByZWFscGF0aCAocGF0aHNwZWMsIGJ1Zik7Ci0rICBpZiAodG1w X3BhdGhzcGVjID09IDApCi0rICAgIHsKLSsgICAgICBsdF9mYXRhbCAoIkNvdWxkIG5vdCBmb2xs b3cgc3ltbGlua3MgZm9yICVzIiwgcGF0aHNwZWMpOwotKyAgICB9Ci0rICByZXR1cm4geHN0cmR1 cCAodG1wX3BhdGhzcGVjKTsKLSsjZW5kaWYKLSt9Ci0rCi0rY2hhciAqCi0rc3RyZW5kemFwIChj aGFyICpzdHIsIGNvbnN0IGNoYXIgKnBhdCkKLSt7Ci0rICBzaXplX3QgbGVuLCBwYXRsZW47Ci0r Ci0rICBhc3NlcnQgKHN0ciAhPSBOVUxMKTsKLSsgIGFzc2VydCAocGF0ICE9IE5VTEwpOwotKwot KyAgbGVuID0gc3RybGVuIChzdHIpOwotKyAgcGF0bGVuID0gc3RybGVuIChwYXQpOwotKwotKyAg aWYgKHBhdGxlbiA8PSBsZW4pCi0rICAgIHsKLSsgICAgICBzdHIgKz0gbGVuIC0gcGF0bGVuOwot KyAgICAgIGlmIChzdHJjbXAgKHN0ciwgcGF0KSA9PSAwKQotKwkqc3RyID0gJ1wwJzsKLSsgICAg fQotKyAgcmV0dXJuIHN0cjsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStsdF9lcnJvcl9jb3JlIChp bnQgZXhpdF9zdGF0dXMsIGNvbnN0IGNoYXIgKm1vZGUsCi0rCSAgICAgICBjb25zdCBjaGFyICpt ZXNzYWdlLCB2YV9saXN0IGFwKQotK3sKLSsgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAlczogIiwg cHJvZ3JhbV9uYW1lLCBtb2RlKTsKLSsgIHZmcHJpbnRmIChzdGRlcnIsIG1lc3NhZ2UsIGFwKTsK LSsgIGZwcmludGYgKHN0ZGVyciwgIi5cbiIpOwotKwotKyAgaWYgKGV4aXRfc3RhdHVzID49IDAp Ci0rICAgIGV4aXQgKGV4aXRfc3RhdHVzKTsKLSt9Ci0rCi0rdm9pZAotK2x0X2ZhdGFsIChjb25z dCBjaGFyICptZXNzYWdlLCAuLi4pCi0rewotKyAgdmFfbGlzdCBhcDsKLSsgIHZhX3N0YXJ0IChh cCwgbWVzc2FnZSk7Ci0rICBsdF9lcnJvcl9jb3JlIChFWElUX0ZBSUxVUkUsICJGQVRBTCIsIG1l c3NhZ2UsIGFwKTsKLSsgIHZhX2VuZCAoYXApOwotK30KLSsKLSt2b2lkCi0rbHRfc2V0ZW52IChj b25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKLSt7Ci0rICBMVFdSQVBQRVJfREVC VUdQUklOVEYgKCgiKGx0X3NldGVudikgc2V0dGluZyAnJXMnIHRvICclcydcbiIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOwotKyAgewotKyNp ZmRlZiBIQVZFX1NFVEVOVgotKyAgICAvKiBhbHdheXMgbWFrZSBhIGNvcHksIGZvciBjb25zaXN0 ZW5jeSB3aXRoICFIQVZFX1NFVEVOViAqLwotKyAgICBjaGFyICpzdHIgPSB4c3RyZHVwICh2YWx1 ZSk7Ci0rICAgIHNldGVudiAobmFtZSwgc3RyLCAxKTsKLSsjZWxzZQotKyAgICBpbnQgbGVuID0g c3RybGVuIChuYW1lKSArIDEgKyBzdHJsZW4gKHZhbHVlKSArIDE7Ci0rICAgIGNoYXIgKnN0ciA9 IFhNQUxMT0MgKGNoYXIsIGxlbik7Ci0rICAgIHNwcmludGYgKHN0ciwgIiVzPSVzIiwgbmFtZSwg dmFsdWUpOwotKyAgICBpZiAocHV0ZW52IChzdHIpICE9IEVYSVRfU1VDQ0VTUykKLSsgICAgICB7 Ci0rICAgICAgICBYRlJFRSAoc3RyKTsKLSsgICAgICB9Ci0rI2VuZGlmCi0rICB9Ci0rfQotKwot K2NoYXIgKgotK2x0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNo YXIgKmFkZCwgaW50IHRvX2VuZCkKLSt7Ci0rICBjaGFyICpuZXdfdmFsdWU7Ci0rICBpZiAob3Jp Z192YWx1ZSAmJiAqb3JpZ192YWx1ZSkKLSsgICAgewotKyAgICAgIGludCBvcmlnX3ZhbHVlX2xl biA9IHN0cmxlbiAob3JpZ192YWx1ZSk7Ci0rICAgICAgaW50IGFkZF9sZW4gPSBzdHJsZW4gKGFk ZCk7Ci0rICAgICAgbmV3X3ZhbHVlID0gWE1BTExPQyAoY2hhciwgYWRkX2xlbiArIG9yaWdfdmFs dWVfbGVuICsgMSk7Ci0rICAgICAgaWYgKHRvX2VuZCkKLSsgICAgICAgIHsKLSsgICAgICAgICAg c3RyY3B5IChuZXdfdmFsdWUsIG9yaWdfdmFsdWUpOwotKyAgICAgICAgICBzdHJjcHkgKG5ld192 YWx1ZSArIG9yaWdfdmFsdWVfbGVuLCBhZGQpOwotKyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsg ICAgICAgIHsKLSsgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUsIGFkZCk7Ci0rICAgICAgICAg IHN0cmNweSAobmV3X3ZhbHVlICsgYWRkX2xlbiwgb3JpZ192YWx1ZSk7Ci0rICAgICAgICB9Ci0r ICAgIH0KLSsgIGVsc2UKLSsgICAgewotKyAgICAgIG5ld192YWx1ZSA9IHhzdHJkdXAgKGFkZCk7 Ci0rICAgIH0KLSsgIHJldHVybiBuZXdfdmFsdWU7Ci0rfQotKwotK2ludAotK2x0X3NwbGl0X25h bWVfdmFsdWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUsIGNoYXIqKiB2YWx1ZSkKLSt7 Ci0rICBjb25zdCBjaGFyICpwOwotKyAgaW50IGxlbjsKLSsgIGlmICghYXJnIHx8ICEqYXJnKQot KyAgICByZXR1cm4gMTsKLSsKLSsgIHAgPSBzdHJjaHIgKGFyZywgKGludCknPScpOwotKwotKyAg aWYgKCFwKQotKyAgICByZXR1cm4gMTsKLSsKLSsgICp2YWx1ZSA9IHhzdHJkdXAgKCsrcCk7Ci0r Ci0rICBsZW4gPSBzdHJsZW4gKGFyZykgLSBzdHJsZW4gKCp2YWx1ZSk7Ci0rICAqbmFtZSA9IFhN QUxMT0MgKGNoYXIsIGxlbik7Ci0rICBzdHJuY3B5ICgqbmFtZSwgYXJnLCBsZW4tMSk7Ci0rICAo Km5hbWUpW2xlbiAtIDFdID0gJ1wwJzsKLSsKLSsgIHJldHVybiAwOwotK30KLSsKLSt2b2lkCi0r bHRfb3B0X3Byb2Nlc3NfZW52X3NldCAoY29uc3QgY2hhciAqYXJnKQotK3sKLSsgIGNoYXIgKm5h bWUgPSBOVUxMOwotKyAgY2hhciAqdmFsdWUgPSBOVUxMOwotKwotKyAgaWYgKGx0X3NwbGl0X25h bWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSsgICAgewotKyAgICAgIFhGUkVF IChuYW1lKTsKLSsgICAgICBYRlJFRSAodmFsdWUpOwotKyAgICAgIGx0X2ZhdGFsICgiYmFkIGFy Z3VtZW50IGZvciAlczogJyVzJyIsIGVudl9zZXRfb3B0LCBhcmcpOwotKyAgICB9Ci0rCi0rICBs dF9zZXRlbnYgKG5hbWUsIHZhbHVlKTsKLSsgIFhGUkVFIChuYW1lKTsKLSsgIFhGUkVFICh2YWx1 ZSk7Ci0rfQotKwotK3ZvaWQKLStsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoY29uc3QgY2hh ciAqYXJnKQotK3sKLSsgIGNoYXIgKm5hbWUgPSBOVUxMOwotKyAgY2hhciAqdmFsdWUgPSBOVUxM OwotKyAgY2hhciAqbmV3X3ZhbHVlID0gTlVMTDsKLSsKLSsgIGlmIChsdF9zcGxpdF9uYW1lX3Zh bHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9IDApCi0rICAgIHsKLSsgICAgICBYRlJFRSAobmFt ZSk7Ci0rICAgICAgWEZSRUUgKHZhbHVlKTsKLSsgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVu dCBmb3IgJXM6ICclcyciLCBlbnZfcHJlcGVuZF9vcHQsIGFyZyk7Ci0rICAgIH0KLSsKLSsgIG5l d192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKLSsgIGx0 X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKLSsgIFhGUkVFIChuZXdfdmFsdWUpOwotKyAgWEZS RUUgKG5hbWUpOwotKyAgWEZSRUUgKHZhbHVlKTsKLSt9Ci0rCi0rdm9pZAotK2x0X29wdF9wcm9j ZXNzX2Vudl9hcHBlbmQgKGNvbnN0IGNoYXIgKmFyZykKLSt7Ci0rICBjaGFyICpuYW1lID0gTlVM TDsKLSsgIGNoYXIgKnZhbHVlID0gTlVMTDsKLSsgIGNoYXIgKm5ld192YWx1ZSA9IE5VTEw7Ci0r Ci0rICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQot KyAgICB7Ci0rICAgICAgWEZSRUUgKG5hbWUpOwotKyAgICAgIFhGUkVFICh2YWx1ZSk7Ci0rICAg ICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X2FwcGVuZF9vcHQs IGFyZyk7Ci0rICAgIH0KLSsKLSsgIG5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAo bmFtZSksIHZhbHVlLCAxKTsKLSsgIGx0X3NldGVudiAobmFtZSwgbmV3X3ZhbHVlKTsKLSsgIFhG UkVFIChuZXdfdmFsdWUpOwotKyAgWEZSRUUgKG5hbWUpOwotKyAgWEZSRUUgKHZhbHVlKTsKLSt9 Ci0rCi0rdm9pZAotK2x0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqdmFsdWUpCi0rewotKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF91cGRhdGVf ZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7Ci0rCi0rICBpZiAo bmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCi0rICAgIHsKLSsgICAgICBjaGFyICpu ZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMCk7Ci0rICAg ICAgLyogc29tZSBzeXN0ZW1zIGNhbid0IGNvcGUgd2l0aCBhICc6Jy10ZXJtaW5hdGVkIHBhdGgg IycgKi8KLSsgICAgICBpbnQgbGVuID0gc3RybGVuIChuZXdfdmFsdWUpOwotKyAgICAgIHdoaWxl ICgoKGxlbiA9IHN0cmxlbiAobmV3X3ZhbHVlKSkgPiAwKSAmJiBJU19QQVRIX1NFUEFSQVRPUiAo bmV3X3ZhbHVlW2xlbi0xXSkpCi0rICAgICAgICB7Ci0rICAgICAgICAgIG5ld192YWx1ZVtsZW4t MV0gPSAnXDAnOwotKyAgICAgICAgfQotKyAgICAgIGx0X3NldGVudiAobmFtZSwgbmV3X3ZhbHVl KTsKLSsgICAgICBYRlJFRSAobmV3X3ZhbHVlKTsKLSsgICAgfQotK30KLSsKLSt2b2lkCi0rbHRf dXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKLSt7 Ci0rICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3VwZGF0ZV9saWJfcGF0aCkgbW9kaWZ5 aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg KHZhbHVlID8gdmFsdWUgOiAiPE5VTEw+IikpKTsKLSsKLSsgIGlmIChuYW1lICYmICpuYW1lICYm IHZhbHVlICYmICp2YWx1ZSkKLSsgICAgewotKyAgICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0X2V4 dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKLSsgICAgICBsdF9zZXRlbnYgKG5h bWUsIG5ld192YWx1ZSk7Ci0rICAgICAgWEZSRUUgKG5ld192YWx1ZSk7Ci0rICAgIH0KLSt9Ci0r Ci0rCi0rRU9GCi0rfQotKyMgZW5kOiBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjCi0rCi0rIyBm dW5jX21vZGVfbGluayBhcmcuLi4KLStmdW5jX21vZGVfbGluayAoKQotK3sKLSsgICAgJG9wdF9k ZWJ1ZwotKyAgICBjYXNlICRob3N0IGluCi0rICAgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8 ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCi0rICAgICAgIyBJdCBpcyBpbXBvc3Np YmxlIHRvIGxpbmsgYSBkbGwgd2l0aG91dCB0aGlzIHNldHRpbmcsIGFuZAotKyAgICAgICMgd2Ug c2hvdWxkbid0IGZvcmNlIHRoZSBtYWtlZmlsZSBtYWludGFpbmVyIHRvIGZpZ3VyZSBvdXQKLSsg ICAgICAjIHdoaWNoIHN5c3RlbSB3ZSBhcmUgY29tcGlsaW5nIGZvciBpbiBvcmRlciB0byBwYXNz IGFuIGV4dHJhCi0rICAgICAgIyBmbGFnIGZvciBldmVyeSBsaWJ0b29sIGludm9jYXRpb24uCi0r ICAgICAgIyBhbGxvd191bmRlZmluZWQ9bm8KLSsKLSsgICAgICAjIEZJWE1FOiBVbmZvcnR1bmF0 ZWx5LCB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCB0aGUgYWJvdmUgd2hlbiB0cnlpbmcKLSsgICAg ICAjIHRvIG1ha2UgYSBkbGwgd2hpY2ggaGFzIHVuZGVmaW5lZCBzeW1ib2xzLCBpbiB3aGljaCBj YXNlIG5vdAotKyAgICAgICMgZXZlbiBhIHN0YXRpYyBsaWJyYXJ5IGlzIGJ1aWx0LiAgRm9yIG5v dywgd2UgbmVlZCB0byBzcGVjaWZ5Ci0rICAgICAgIyAtbm8tdW5kZWZpbmVkIG9uIHRoZSBsaWJ0 b29sIGxpbmsgbGluZSB3aGVuIHdlIGNhbiBiZSBjZXJ0YWluCi0rICAgICAgIyB0aGF0IGFsbCBz eW1ib2xzIGFyZSBzYXRpc2ZpZWQsIG90aGVyd2lzZSB3ZSBnZXQgYSBzdGF0aWMgbGlicmFyeS4K LSsgICAgICBhbGxvd191bmRlZmluZWQ9eWVzCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBh bGxvd191bmRlZmluZWQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBsaWJ0b29sX2Fy Z3M9JG5vbm9wdAotKyAgICBiYXNlX2NvbXBpbGU9IiRub25vcHQgJEAiCi0rICAgIGNvbXBpbGVf Y29tbWFuZD0kbm9ub3B0Ci0rICAgIGZpbmFsaXplX2NvbW1hbmQ9JG5vbm9wdAotKwotKyAgICBj b21waWxlX3JwYXRoPQotKyAgICBmaW5hbGl6ZV9ycGF0aD0KLSsgICAgY29tcGlsZV9zaGxpYnBh dGg9Ci0rICAgIGZpbmFsaXplX3NobGlicGF0aD0KLSsgICAgY29udmVuaWVuY2U9Ci0rICAgIG9s ZF9jb252ZW5pZW5jZT0KLSsgICAgZGVwbGlicz0KLSsgICAgb2xkX2RlcGxpYnM9Ci0rICAgIGNv bXBpbGVyX2ZsYWdzPQotKyAgICBsaW5rZXJfZmxhZ3M9Ci0rICAgIGRsbHNlYXJjaHBhdGg9Ci0r ICAgIGxpYl9zZWFyY2hfcGF0aD1gcHdkYAotKyAgICBpbnN0X3ByZWZpeF9kaXI9Ci0rICAgIG5l d19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQotKwotKyAgICBhdm9pZF92ZXJzaW9uPW5vCi0rICAg IGRsZmlsZXM9Ci0rICAgIGRscHJlZmlsZXM9Ci0rICAgIGRsc2VsZj1ubwotKyAgICBleHBvcnRf ZHluYW1pYz1ubwotKyAgICBleHBvcnRfc3ltYm9scz0KLSsgICAgZXhwb3J0X3N5bWJvbHNfcmVn ZXg9Ci0rICAgIGdlbmVyYXRlZD0KLSsgICAgbGlib2Jqcz0KLSsgICAgbHRsaWJzPQotKyAgICBt b2R1bGU9bm8KLSsgICAgbm9faW5zdGFsbD1ubwotKyAgICBvYmpzPQotKyAgICBub25fcGljX29i amVjdHM9Ci0rICAgIHByZWNpb3VzX2ZpbGVzX3JlZ2V4PQotKyAgICBwcmVmZXJfc3RhdGljX2xp YnM9bm8KLSsgICAgcHJlbG9hZD1ubwotKyAgICBwcmV2PQotKyAgICBwcmV2YXJnPQotKyAgICBy ZWxlYXNlPQotKyAgICBycGF0aD0KLSsgICAgeHJwYXRoPQotKyAgICBwZXJtX3JwYXRoPQotKyAg ICB0ZW1wX3JwYXRoPQotKyAgICB0aHJlYWRfc2FmZT1ubwotKyAgICB2aW5mbz0KLSsgICAgdmlu Zm9fbnVtYmVyPW5vCi0rICAgIHdlYWtfbGlicz0KLSsgICAgc2luZ2xlX21vZHVsZT0iJHt3bH0t c2luZ2xlX21vZHVsZSIKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQotKwotKyAg ICAjIFdlIG5lZWQgdG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91dHB1dCBmaWxl bmFtZXMuCi0rICAgIGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAg ICAtc2hhcmVkKQotKwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgXAotKwkg IGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5 IgotKwlidWlsZF9vbGRfbGlicz1ubwotKwlicmVhawotKwk7OwotKyAgICAgIC1hbGwtc3RhdGlj IHwgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwljYXNlICRhcmcgaW4KLSsJLWFs bC1zdGF0aWMpCi0rCSAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVz dCAteiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBmdW5jX3dhcm5pbmcgImNvbXBs ZXRlIHN0YXRpYyBsaW5raW5nIGlzIGltcG9zc2libGUgaW4gdGhpcyBjb25maWd1cmF0aW9uIgot KwkgIGZpCi0rCSAgaWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBk bG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCi0rCSAgZmkKLSsJICBwcmVmZXJfc3RhdGlj X2xpYnM9eWVzCi0rCSAgOzsKLSsJLXN0YXRpYykKLSsJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWci ICYmIHRlc3QgLW4gIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgICAgZGxvcGVuX3NlbGY9 JGRsb3Blbl9zZWxmX3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVyX3N0YXRpY19saWJzPWJ1aWx0 Ci0rCSAgOzsKLSsJLXN0YXRpYy1saWJ0b29sLWxpYnMpCi0rCSAgaWYgdGVzdCAteiAiJHBpY19m bGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGRsb3Blbl9z ZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKLSsJICBmaQotKwkgIHByZWZlcl9zdGF0aWNfbGlicz15 ZXMKLSsJICA7OwotKwllc2FjCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwlidWlsZF9vbGRf bGlicz15ZXMKLSsJYnJlYWsKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsKLSsgICAg IyBTZWUgaWYgb3VyIHNoYXJlZCBhcmNoaXZlcyBkZXBlbmQgb24gc3RhdGljIGFyY2hpdmVzLgot KyAgICB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgYnVpbGRfb2xkX2xp YnM9eWVzCi0rCi0rICAgICMgR28gdGhyb3VnaCB0aGUgYXJndW1lbnRzLCB0cmFuc2Zvcm1pbmcg dGhlbSBvbiB0aGUgd2F5LgotKyAgICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCi0rICAgICAg YXJnPSIkMSIKLSsgICAgICBzaGlmdAotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmci Ci0rICAgICAgcWFyZz0kZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQKLSsgICAg ICBmdW5jX2FwcGVuZCBsaWJ0b29sX2FyZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQi Ci0rCi0rICAgICAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBh c3NpZ24gaXQuCi0rICAgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCi0rCWNhc2UgJHByZXYg aW4KLSsJb3V0cHV0KQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBPVVRQVVRA IgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAT1VUUFVUQCIKLSsJICA7Owot Kwllc2FjCi0rCi0rCWNhc2UgJHByZXYgaW4KLSsJZGxmaWxlc3xkbHByZWZpbGVzKQotKwkgIGlm IHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCi0rCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9iamVj dCBpbnRvIHRoZSBsaW5raW5nIGNvbW1hbmRzLgotKwkgICAgZnVuY19hcHBlbmQgY29tcGlsZV9j b21tYW5kICIgQFNZTUZJTEVAIgotKwkgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAi IEBTWU1GSUxFQCIKLSsJICAgIHByZWxvYWQ9eWVzCi0rCSAgZmkKLSsJICBjYXNlICRhcmcgaW4K LSsJICAqLmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2VzIGJlbG93LgotKwkg IGZvcmNlKQotKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgotKwkgICAgICBkbHNl bGY9bmVlZGxlc3MKLSsJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCi0rCSAgICBmaQotKwkgICAg cHJldj0KLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHNlbGYpCi0rCSAgICBpZiB0ZXN0 ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgICAgIGRsc2VsZj15ZXMKLSsJICAgIGVs aWYgdGVzdCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiICE9IHllczsg dGhlbgotKwkgICAgICBkbHNlbGY9eWVzCi0rCSAgICBlbHNlCi0rCSAgICAgIGRsc2VsZj1uZWVk bGVzcwotKwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAgIGZpCi0rCSAgICBwcmV2PQot KwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRwcmV2IiA9 IGRsZmlsZXM7IHRoZW4KLSsJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKLSsJICAgIGVs c2UKLSsJICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKLSsJICAgIGZpCi0rCSAg ICBwcmV2PQotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWV4 cHN5bXMpCi0rCSAgZXhwb3J0X3N5bWJvbHM9IiRhcmciCi0rCSAgdGVzdCAtZiAiJGFyZyIgXAot KwkgICAgfHwgZnVuY19mYXRhbF9lcnJvciAic3ltYm9sIGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBl eGlzdCIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJZXhwc3ltc19yZWdleCkK LSsJICBleHBvcnRfc3ltYm9sc19yZWdleD0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVl Ci0rCSAgOzsKLSsJZnJhbWV3b3JrKQotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAgICotKi1kYXJ3 aW4qKQotKwkgICAgICBjYXNlICIkZGVwbGlicyAiIGluCi0rCQkqIiAkcWFyZy5sdGZyYW1ld29y ayAiKikgOzsKLSsJCSopIGRlcGxpYnM9IiRkZXBsaWJzICRxYXJnLmx0ZnJhbWV3b3JrIiAjIHRo aXMgaXMgZml4ZWQgbGF0ZXIKLSsJCSAgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJ ICBlc2FjCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWluc3RfcHJlZml4KQot KwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAg OzsKLSsJb2JqZWN0bGlzdCkKLSsJICBpZiB0ZXN0IC1mICIkYXJnIjsgdGhlbgotKwkgICAgc2F2 ZV9hcmc9JGFyZwotKwkgICAgbW9yZWFyZ3M9Ci0rCSAgICBmb3IgZmlsIGluIGBjYXQgIiRzYXZl X2FyZyJgCi0rCSAgICBkbwotKyMJICAgICAgbW9yZWFyZ3M9IiRtb3JlYXJncyAkZmlsIgotKwkg ICAgICBhcmc9JGZpbAotKwkgICAgICAjIEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KLSsK LSsJICAgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgb2Jq ZWN0LgotKwkgICAgICBpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJnIjsgdGhlbgotKwkJcGlj X29iamVjdD0KLSsJCW5vbl9waWNfb2JqZWN0PQotKwotKwkJIyBSZWFkIHRoZSAubG8gZmlsZQot KwkJZnVuY19zb3VyY2UgIiRhcmciCi0rCi0rCQlpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwK LSsJCSAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKLSsJCSAgIHRlc3QgIiRwaWNfb2Jq ZWN0IiA9IG5vbmUgJiYKLSsJCSAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25lOyB0aGVu Ci0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2JqZWN0IGZvciBc YCRhcmcnIgotKwkJZmkKLSsKLSsJCSMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJn dW1lbnQuCi0rCQlmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkJeGRpcj0iJGZ1bmNfZGly bmFtZV9yZXN1bHQiCi0rCi0rCQlpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgot KwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgot KwkJICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgotKwotKwkJICBpZiB0ZXN0ICIkcHJl diIgPSBkbGZpbGVzOyB0aGVuCi0rCQkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIg PSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgotKwkJICAgICAgZGxm aWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCi0rCQkgICAgICBwcmV2PQotKwkJICAgICAgY29u dGludWUKLSsJCSAgICBlbHNlCi0rCQkgICAgICAjIElmIGxpYnRvb2wgb2JqZWN0cyBhcmUgdW5z dXBwb3J0ZWQsIHRoZW4gd2UgbmVlZCB0byBwcmVsb2FkLgotKwkJICAgICAgcHJldj1kbHByZWZp bGVzCi0rCQkgICAgZmkKLSsJCSAgZmkKLSsKLSsJCSAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBi dXN0ZWQgdGhpcy4gIC1Pc3NhbWEKLSsJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsg dGhlbgotKwkJICAgICMgUHJlbG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KLSsJCSAgICBkbHBy ZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVjdCIKLSsJCSAgICBwcmV2PQotKwkJICBmaQot KwotKwkJICAjIEEgUElDIG9iamVjdC4KLSsJCSAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNf b2JqZWN0IgotKwkJICBhcmc9IiRwaWNfb2JqZWN0IgotKwkJZmkKLSsKLSsJCSMgTm9uLVBJQyBv YmplY3QuCi0rCQlpZiB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJCSAg IyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KLSsJCSAg bm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgotKwotKwkJICAjIEEgc3RhbmRh cmQgbm9uLVBJQyBvYmplY3QKLSsJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5v bl9waWNfb2JqZWN0IgotKwkJICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBp Y19vYmplY3QiID0gbm9uZSA7IHRoZW4KLSsJCSAgICBhcmc9IiRub25fcGljX29iamVjdCIKLSsJ CSAgZmkKLSsJCWVsc2UKLSsJCSAgIyBJZiB0aGUgUElDIG9iamVjdCBleGlzdHMsIHVzZSBpdCBp bnN0ZWFkLgotKwkJICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQgdG8gJHBpY19vYmplY3QgYWJvdmUu Ci0rCQkgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKLSsJCSAgZnVuY19hcHBlbmQgbm9u X3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgotKwkJZmkKLSsJICAgICAgZWxzZQotKwkJ IyBPbmx5IGFuIGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4uCi0rCQlpZiAkb3B0X2RyeV9y dW47IHRoZW4KLSsJCSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4K LSsJCSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKLSsJCSAgeGRpcj0iJGZ1bmNfZGlybmFt ZV9yZXN1bHQiCi0rCi0rCQkgIGZ1bmNfbG8ybyAiJGFyZyIKLSsJCSAgcGljX29iamVjdD0keGRp ciRvYmpkaXIvJGZ1bmNfbG8yb19yZXN1bHQKLSsJCSAgbm9uX3BpY19vYmplY3Q9JHhkaXIkZnVu Y19sbzJvX3Jlc3VsdAotKwkJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCi0r CQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKLSsJICAg ICAgICBlbHNlCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGFyZycgaXMgbm90IGEgdmFsaWQg bGlidG9vbCBvYmplY3QiCi0rCQlmaQotKwkgICAgICBmaQotKwkgICAgZG9uZQotKwkgIGVsc2UK LSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImxpbmsgaW5wdXQgZmlsZSBcYCRhcmcnIGRvZXMgbm90 IGV4aXN0IgotKwkgIGZpCi0rCSAgYXJnPSRzYXZlX2FyZwotKwkgIHByZXY9Ci0rCSAgY29udGlu dWUKLSsJICA7OwotKwlwcmVjaW91c19yZWdleCkKLSsJICBwcmVjaW91c19maWxlc19yZWdleD0i JGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJcmVsZWFzZSkKLSsJICBy ZWxlYXNlPSItJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJcnBhdGgg fCB4cnBhdGgpCi0rCSAgIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCSAgY2FzZSAkYXJn IGluCi0rCSAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwotKwkgICopCi0rCSAgICBmdW5j X2ZhdGFsX2Vycm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIKLSsJICAg IDs7Ci0rCSAgZXNhYwotKwkgIGlmIHRlc3QgIiRwcmV2IiA9IHJwYXRoOyB0aGVuCi0rCSAgICBj YXNlICIkcnBhdGggIiBpbgotKwkgICAgKiIgJGFyZyAiKikgOzsKLSsJICAgICopIHJwYXRoPSIk cnBhdGggJGFyZyIgOzsKLSsJICAgIGVzYWMKLSsJICBlbHNlCi0rCSAgICBjYXNlICIkeHJwYXRo ICIgaW4KLSsJICAgICoiICRhcmcgIiopIDs7Ci0rCSAgICAqKSB4cnBhdGg9IiR4cnBhdGggJGFy ZyIgOzsKLSsJICAgIGVzYWMKLSsJICBmaQotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7 OwotKwlzaHJleHQpCi0rCSAgc2hyZXh0X2NtZHM9IiRhcmciCi0rCSAgcHJldj0KLSsJICBjb250 aW51ZQotKwkgIDs7Ci0rCXdlYWspCi0rCSAgd2Vha19saWJzPSIkd2Vha19saWJzICRhcmciCi0r CSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXhjY2xpbmtlcikKLSsJICBsaW5rZXJf ZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJHFhcmciCi0rCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxl cl9mbGFncyAkcWFyZyIKLSsJICBwcmV2PQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFu ZCAiICRxYXJnIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKLSsJ ICBjb250aW51ZQotKwkgIDs7Ci0rCXhjb21waWxlcikKLSsJICBjb21waWxlcl9mbGFncz0iJGNv bXBpbGVyX2ZsYWdzICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9j b21tYW5kICIgJHFhcmciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJn IgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGxpbmtlcikKLSsJICBsaW5rZXJfZmxhZ3M9IiRs aW5rZXJfZmxhZ3MgJHFhcmciCi0rCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAk d2wkcWFyZyIKLSsJICBwcmV2PQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICR3 bCRxYXJnIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkd2wkcWFyZyIKLSsJ ICBjb250aW51ZQotKwkgIDs7Ci0rCSopCi0rCSAgZXZhbCAiJHByZXY9XCJcJGFyZ1wiIgotKwkg IHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkgIyB0ZXN0IC1u ICIkcHJldiIKLSsKLSsgICAgICBwcmV2YXJnPSIkYXJnIgotKwotKyAgICAgIGNhc2UgJGFyZyBp bgotKyAgICAgIC1hbGwtc3RhdGljKQotKwlpZiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7 IHRoZW4KLSsJICAjIFNlZSBjb21tZW50IGZvciAtc3RhdGljIGZsYWcgYmVsb3csIGZvciBtb3Jl IGRldGFpbHMuCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGxpbmtfc3RhdGlj X2ZsYWciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRsaW5rX3N0YXRpY19m bGFnIgotKwlmaQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1hbGxvdy11bmRlZmluZWQp Ci0rCSMgRklYTUU6IHJlbW92ZSB0aGlzIGZsYWcgc29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4KLSsJ ZnVuY19mYXRhbF9lcnJvciAiXGAtYWxsb3ctdW5kZWZpbmVkJyBtdXN0IG5vdCBiZSB1c2VkIGJl Y2F1c2UgaXQgaXMgdGhlIGRlZmF1bHQiCi0rCTs7Ci0rCi0rICAgICAgLWF2b2lkLXZlcnNpb24p Ci0rCWF2b2lkX3ZlcnNpb249eWVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWRsb3Bl bikKLSsJcHJldj1kbGZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWRscHJlb3Bl bikKLSsJcHJldj1kbHByZWZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWV4cG9y dC1keW5hbWljKQotKwlleHBvcnRfZHluYW1pYz15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0LXN5bWJvbHMtcmVnZXgpCi0rCWlmIHRlc3Qg LW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4Ijsg dGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1vcmUgdGhhbiBvbmUgLWV4cG9ydGVkLXN5bWJv bHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCi0rCWZpCi0rCWlmIHRlc3QgIlgkYXJnIiA9ICJY LWV4cG9ydC1zeW1ib2xzIjsgdGhlbgotKwkgIHByZXY9ZXhwc3ltcwotKwllbHNlCi0rCSAgcHJl dj1leHBzeW1zX3JlZ2V4Ci0rCWZpCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLWZyYW1l d29yaykKLSsJcHJldj1mcmFtZXdvcmsKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtaW5z dC1wcmVmaXgtZGlyKQotKwlwcmV2PWluc3RfcHJlZml4Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0r ICAgICAgIyBUaGUgbmF0aXZlIElSSVggbGlua2VyIHVuZGVyc3RhbmRzIC1MQU5HOiosIC1MSVNU OiogYW5kIC1MTk86KgotKyAgICAgICMgc28sIGlmIHdlIHNlZSB0aGVzZSBmbGFncyBiZSBjYXJl ZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxpa2UgLUwKLSsgICAgICAtTFtBLVpdW0EtWl0qOiopCi0r CWNhc2UgJHdpdGhfZ2NjLyRob3N0IGluCi0rCW5vLyotKi1pcml4KiB8IC8qLSotaXJpeCopCi0r CSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKLSsJICBmdW5jX2FwcGVuZCBm aW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsJICA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLUwqKQotKwlmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkYXJnIgotKwlkaXI9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlpZiB0ZXN0IC16ICIkZGlyIjsgdGhlbgotKwkgIGlm IHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJvciAicmVxdWlyZSBu byBzcGFjZSBiZXR3ZWVuIFxgLUwnIGFuZCBcYCQxJyIKLSsJICBlbHNlCi0rCSAgICBmdW5jX2Zh dGFsX2Vycm9yICJuZWVkIHBhdGggZm9yIFxgLUwnIG9wdGlvbiIKLSsJICBmaQotKwlmaQotKwkj IFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkZGlyIGluCi0rCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgOzsKLSsJKikKLSsJICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCi0r CSAgdGVzdCAteiAiJGFic2RpciIgJiYgXAotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90 IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRkaXInIgotKwkgIGRpcj0i JGFic2RpciIKLSsJICA7OwotKwllc2FjCi0rCWNhc2UgIiRkZXBsaWJzICIgaW4KLSsJKiIgLUwk ZGlyICIqKSA7OwotKwkqKQotKwkgIGRlcGxpYnM9IiRkZXBsaWJzIC1MJGRpciIKLSsJICBsaWJf c2VhcmNoX3BhdGg9IiRsaWJfc2VhcmNoX3BhdGggJGRpciIKLSsJICA7OwotKwllc2FjCi0rCWNh c2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0q LW9zMiogfCAqLWNlZ2NjKikKLSsJICB0ZXN0YmluZGlyPWAkRUNITyAiWCRkaXIiIHwgJFhzZWQg LWUgJ3MqL2xpYiQqL2JpbionYAotKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgotKwkgICoi OiRkaXI6IiopIDs7Ci0rCSAgOjopIGRsbHNlYXJjaHBhdGg9JGRpcjs7Ci0rCSAgKikgZGxsc2Vh cmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGRpciI7OwotKwkgIGVzYWMKLSsJICBjYXNlIDokZGxs c2VhcmNocGF0aDogaW4KLSsJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKLSsJICA6OikgZGxsc2Vh cmNocGF0aD0kdGVzdGJpbmRpcjs7Ci0rCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBh dGg6JHRlc3RiaW5kaXIiOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKwljb250aW51ZQot Kwk7OwotKwotKyAgICAgIC1sKikKLSsJaWYgdGVzdCAiWCRhcmciID0gIlgtbGMiIHx8IHRlc3Qg IlgkYXJnIiA9ICJYLWxtIjsgdGhlbgotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAqLSotY3lnd2lu KiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikKLSsJICAg ICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBvciBtYXRoIGxpYnJhcnkg KGFzIHN1Y2gpCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotb3MyKikKLSsJICAg ICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBsaWJyYXJ5IChhcyBzdWNo KQotKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCi0rCSAgICA7OwotKwkg ICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFnb25mbHkqKQotKwkgICAgIyBE byBub3QgaW5jbHVkZSBsaWJjIGR1ZSB0byB1cyBoYXZpbmcgbGliYy9saWJjX3IuCi0rCSAgICB0 ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLXJoYXBz b2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkgICAgIyBSaGFwc29keSBDIGFuZCBtYXRoIGxp YnJhcmllcyBhcmUgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKLSsJICAgIGRlcGxpYnM9IiRkZXBs aWJzIFN5c3RlbS5sdGZyYW1ld29yayIKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgICot Ki1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKLSsJICAgICMgQ2F1c2VzIHByb2JsZW1zIHdpdGgg X19jdHlwZQotKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVlCi0rCSAgICA7 OwotKwkgICotKi1zeXN2NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0q LU9wZW5VTklYKikKLSsJICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0 IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdvcmsKLSsJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAm JiBjb250aW51ZQotKwkgICAgOzsKLSsJICBlc2FjCi0rCWVsaWYgdGVzdCAiWCRhcmciID0gIlgt bGNfciI7IHRoZW4KLSsJIGNhc2UgJGhvc3QgaW4KLSsJICotKi1vcGVuYnNkKiB8ICotKi1mcmVl YnNkKiB8ICotKi1kcmFnb25mbHkqKQotKwkgICAjIERvIG5vdCBpbmNsdWRlIGxpYmNfciBkaXJl Y3RseSwgdXNlIC1wdGhyZWFkIGZsYWcuCi0rCSAgIGNvbnRpbnVlCi0rCSAgIDs7Ci0rCSBlc2Fj Ci0rCWZpCi0rCWRlcGxpYnM9IiRkZXBsaWJzICRhcmciCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0r ICAgICAgLW1vZHVsZSkKLSsJbW9kdWxlPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg ICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBv ZiBDKysKLSsgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFuZCBleGNlcHRpb24gaGFu ZGxpbmcuCi0rICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxhZyB0byBkZXRlcm1pbmUg b3V0cHV0IGFyY2hpdGVjdHVyZS4KLSsgICAgICAtbW9kZWx8LWFyY2h8LWlzeXNyb290KQotKwlj b21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCi0rCWZ1bmNfYXBwZW5kIGNvbXBp bGVfY29tbWFuZCAiICRhcmciCi0rCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJn IgotKwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1tdHwtbXRo cmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8 LXRocmVhZHMpCi0rCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKLSsJZnVu Y19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKLSsJZnVuY19hcHBlbmQgZmluYWxpemVf Y29tbWFuZCAiICRhcmciCi0rCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGlu Ci0rCSAgICAqIiAkYXJnICIqKSA7OwotKwkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2Zs YWdzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGFyZyIgOzsKLSsJZXNhYwotKwljb250 aW51ZQotKwk7OwotKwotKyAgICAgIC1tdWx0aV9tb2R1bGUpCi0rCXNpbmdsZV9tb2R1bGU9IiR7 d2x9LW11bHRpX21vZHVsZSIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtbm8tZmFzdC1p bnN0YWxsKQotKwlmYXN0X2luc3RhbGw9bm8KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAt bm8taW5zdGFsbCkKLSsJY2FzZSAkaG9zdCBpbgotKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyog fCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1kYXJ3aW4qIHwgKi1jZWdjYyopCi0rCSAgIyBU aGUgUEFUSCBoYWNrZXJ5IGluIHdyYXBwZXIgc2NyaXB0cyBpcyByZXF1aXJlZCBvbiBXaW5kb3dz Ci0rCSAgIyBhbmQgRGFyd2luIGluIG9yZGVyIGZvciB0aGUgbG9hZGVyIHRvIGZpbmQgYW55IGRs bHMgaXQgbmVlZHMuCi0rCSAgZnVuY193YXJuaW5nICJcYC1uby1pbnN0YWxsJyBpcyBpZ25vcmVk IGZvciAkaG9zdCIKLSsJICBmdW5jX3dhcm5pbmcgImFzc3VtaW5nIFxgLW5vLWZhc3QtaW5zdGFs bCcgaW5zdGVhZCIKLSsJICBmYXN0X2luc3RhbGw9bm8KLSsJICA7OwotKwkqKSBub19pbnN0YWxs PXllcyA7OwotKwllc2FjCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW5vLXVuZGVmaW5l ZCkKLSsJYWxsb3dfdW5kZWZpbmVkPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW9i amVjdGxpc3QpCi0rCXByZXY9b2JqZWN0bGlzdAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC1vKSBwcmV2PW91dHB1dCA7OwotKwotKyAgICAgIC1wcmVjaW91cy1maWxlcy1yZWdleCkKLSsJ cHJldj1wcmVjaW91c19yZWdleAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1yZWxlYXNl KQotKwlwcmV2PXJlbGVhc2UKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcnBhdGgpCi0r CXByZXY9cnBhdGgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtUikKLSsJcHJldj14cnBh dGgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtUiopCi0rCWZ1bmNfc3RyaXBuYW1lICct UicgJycgIiRhcmciCi0rCWRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSMgV2UgbmVlZCBh biBhYnNvbHV0ZSBwYXRoLgotKwljYXNlICRkaXIgaW4KLSsJW1xcL10qIHwgW0EtWmEtel06W1xc L10qKSA7OwotKwkqKQotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBh dGhzIGFyZSBhbGxvd2VkIgotKwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSAiJHhycGF0aCAiIGluCi0r CSoiICRkaXIgIiopIDs7Ci0rCSopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7OwotKwllc2FjCi0r CWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXNoYXJlZCkKLSsJIyBUaGUgZWZmZWN0cyBvZiAt c2hhcmVkIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4KLSsJY29udGludWUKLSsJOzsK LSsKLSsgICAgICAtc2hyZXh0KQotKwlwcmV2PXNocmV4dAotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgIC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGlicykKLSsJIyBUaGUgZWZmZWN0cyBv ZiAtc3RhdGljIGFyZSBkZWZpbmVkIGluIGEgcHJldmlvdXMgbG9vcC4KLSsJIyBXZSB1c2VkIHRv IGRvIHRoZSBzYW1lIGFzIC1hbGwtc3RhdGljIG9uIHBsYXRmb3JtcyB0aGF0Ci0rCSMgZGlkbid0 IGhhdmUgYSBQSUMgZmxhZywgYnV0IHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGVmZmVjdHMKLSsJ IyB3b3VsZCBiZSBlcXVpdmFsZW50IHdhcyB3cm9uZy4gIEl0IHdvdWxkIGJyZWFrIG9uIGF0IGxl YXN0Ci0rCSMgRGlnaXRhbCBVbml4IGFuZCBBSVguCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLXRocmVhZC1zYWZlKQotKwl0aHJlYWRfc2FmZT15ZXMKLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtdmVyc2lvbi1pbmZvKQotKwlwcmV2PXZpbmZvCi0rCWNvbnRpbnVlCi0rCTs7Ci0r Ci0rICAgICAgLXZlcnNpb24tbnVtYmVyKQotKwlwcmV2PXZpbmZvCi0rCXZpbmZvX251bWJlcj15 ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtd2VhaykKLSsgICAgICAgIHByZXY9d2Vh awotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1XYywqKQotKwlmdW5jX3N0cmlwbmFtZSAn LVdjLCcgJycgIiRhcmciCi0rCWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwlhcmc9Ci0r CXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJwotKwlmb3IgZmxhZyBpbiAkYXJnczsgZG8KLSsJICBJ RlM9IiRzYXZlX2lmcyIKLSsgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCi0r CSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJICBjb21waWxl cl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJ ZG9uZQotKwlJRlM9IiRzYXZlX2lmcyIKLSsJZnVuY19zdHJpcG5hbWUgJyAnICcnICIkYXJnIgot Kwlhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwk7OwotKwotKyAgICAgIC1XbCwqKQotKwlm dW5jX3N0cmlwbmFtZSAnLVdsLCcgJycgIiRhcmciCi0rCWFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdAotKwlhcmc9Ci0rCXNhdmVfaWZzPSIkSUZTIjsgSUZTPScsJwotKwlmb3IgZmxhZyBpbiAk YXJnczsgZG8KLSsJICBJRlM9IiRzYXZlX2lmcyIKLSsgICAgICAgICAgZnVuY19xdW90ZV9mb3Jf ZXZhbCAiJGZsYWciCi0rCSAgYXJnPSIkYXJnICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICR3bCRmdW5jX3F1b3RlX2Zv cl9ldmFsX3Jlc3VsdCIKLSsJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0IgotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgotKwlmdW5jX3N0 cmlwbmFtZSAnICcgJycgIiRhcmciCi0rCWFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCTs7 Ci0rCi0rICAgICAgLVhjb21waWxlcikKLSsJcHJldj14Y29tcGlsZXIKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtWGxpbmtlcikKLSsJcHJldj14bGlua2VyCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLVhDQ2xpbmtlcikKLSsJcHJldj14Y2NsaW5rZXIKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAjIC1tc2dfKiBmb3Igb3NmIGNjCi0rICAgICAgLW1zZ18qKQotKwlmdW5j X3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKLSsJOzsKLSsKLSsgICAgICAjIC02NCwgLW1pcHNbMC05XSBlbmFibGUgNjQtYml0IG1vZGUg b24gdGhlIFNHSSBjb21waWxlcgotKyAgICAgICMgLXJbMC05XVswLTldKiBzcGVjaWZpZXMgdGhl IHByb2Nlc3NvciBvbiB0aGUgU0dJIGNvbXBpbGVyCi0rICAgICAgIyAteGFyY2g9KiwgLXh0YXJn ZXQ9KiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFN1biBjb21waWxlcgotKyAgICAgICMgK0RB KiwgK0REKiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIEhQIGNvbXBpbGVyCi0rICAgICAgIyAt cSogcGFzcyB0aHJvdWdoIGNvbXBpbGVyIGFyZ3MgZm9yIHRoZSBJQk0gY29tcGlsZXIKLSsgICAg ICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIHBhc3MgdGhyb3VnaCBhcmNoaXRlY3R1cmUtc3Bl Y2lmaWMKLSsgICAgICAjIGNvbXBpbGVyIGFyZ3MgZm9yIEdDQwotKyAgICAgICMgLUYvcGF0aCBn aXZlcyBwYXRoIHRvIHVuaW5zdGFsbGVkIGZyYW1ld29ya3MsIGdjYyBvbiBkYXJ3aW4KLSsgICAg ICAjIC1wLCAtcGcsIC0tY292ZXJhZ2UsIC1mcHJvZmlsZS0qIHBhc3MgdGhyb3VnaCBwcm9maWxp bmcgZmxhZyBmb3IgR0NDCi0rICAgICAgIyBAZmlsZSBHQ0MgcmVzcG9uc2UgZmlsZXMKLSsgICAg ICAtNjR8LW1pcHNbMC05XXwtclswLTldWzAtOV0qfC14YXJjaD0qfC14dGFyZ2V0PSp8K0RBKnwr REQqfC1xKnwtbSp8IFwKLSsgICAgICAtdFs0NV0qfC10eHNjYWxlKnwtcHwtcGd8LS1jb3ZlcmFn ZXwtZnByb2ZpbGUtKnwtRip8QCopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJn IgotKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgICAgIGZ1bmNfYXBw ZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rICAgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6 ZV9jb21tYW5kICIgJGFyZyIKLSsgICAgICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxh Z3MgJGFyZyIKLSsgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICA7OwotKwotKyAgICAgICMgU29t ZSBvdGhlciBjb21waWxlciBmbGFnLgotKyAgICAgIC0qIHwgKyopCi0rICAgICAgICBmdW5jX3F1 b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIK LSsJOzsKLSsKLSsgICAgICAqLiRvYmpleHQpCi0rCSMgQSBzdGFuZGFyZCBvYmplY3QuCi0rCW9i anM9IiRvYmpzICRhcmciCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBBIGxpYnRvb2wtY29u dHJvbGxlZCBvYmplY3QuCi0rCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMg YSBsaWJ0b29sIG9iamVjdC4KLSsJaWYgZnVuY19sYWxpYl91bnNhZmVfcCAiJGFyZyI7IHRoZW4K LSsJICBwaWNfb2JqZWN0PQotKwkgIG5vbl9waWNfb2JqZWN0PQotKwotKwkgICMgUmVhZCB0aGUg LmxvIGZpbGUKLSsJICBmdW5jX3NvdXJjZSAiJGFyZyIKLSsKLSsJICBpZiB0ZXN0IC16ICIkcGlj X29iamVjdCIgfHwKLSsJICAgICB0ZXN0IC16ICIkbm9uX3BpY19vYmplY3QiIHx8Ci0rCSAgICAg dGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSAmJgotKwkgICAgIHRlc3QgIiRub25fcGljX29iamVj dCIgPSBub25lOyB0aGVuCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgZmluZCBuYW1l IG9mIG9iamVjdCBmb3IgXGAkYXJnJyIKLSsJICBmaQotKwotKwkgICMgRXh0cmFjdCBzdWJkaXJl Y3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0rCSAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIK LSsJICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJICBpZiB0ZXN0ICIkcGljX29i amVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3RvcnkgdGhl IG9iamVjdCBpcyBmb3VuZCBpbi4KLSsJICAgIHBpY19vYmplY3Q9IiR4ZGlyJHBpY19vYmplY3Qi Ci0rCi0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCi0rCSAgICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIg PSB5ZXM7IHRoZW4KLSsJCWRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgotKwkJcHJldj0K LSsJCWNvbnRpbnVlCi0rCSAgICAgIGVsc2UKLSsJCSMgSWYgbGlidG9vbCBvYmplY3RzIGFyZSB1 bnN1cHBvcnRlZCwgdGhlbiB3ZSBuZWVkIHRvIHByZWxvYWQuCi0rCQlwcmV2PWRscHJlZmlsZXMK LSsJICAgICAgZmkKLSsJICAgIGZpCi0rCi0rCSAgICAjIENIRUNLIE1FOiAgSSB0aGluayBJIGJ1 c3RlZCB0aGlzLiAgLU9zc2FtYQotKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsg dGhlbgotKwkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0rCSAgICAgIGRs cHJlZmlsZXM9IiRkbHByZWZpbGVzICRwaWNfb2JqZWN0IgotKwkgICAgICBwcmV2PQotKwkgICAg ZmkKLSsKLSsJICAgICMgQSBQSUMgb2JqZWN0LgotKwkgICAgZnVuY19hcHBlbmQgbGlib2JqcyAi ICRwaWNfb2JqZWN0IgotKwkgICAgYXJnPSIkcGljX29iamVjdCIKLSsJICBmaQotKwotKwkgICMg Tm9uLVBJQyBvYmplY3QuCi0rCSAgaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0 aGVuCi0rCSAgICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5k IGluLgotKwkgICAgbm9uX3BpY19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgotKwotKwkg ICAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2JqZWN0Ci0rCSAgICBmdW5jX2FwcGVuZCBub25fcGlj X29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVj dCIgfHwgdGVzdCAiJHBpY19vYmplY3QiID0gbm9uZSA7IHRoZW4KLSsJICAgICAgYXJnPSIkbm9u X3BpY19vYmplY3QiCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgICMgSWYgdGhlIFBJQyBvYmpl Y3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KLSsJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0 byAkcGljX29iamVjdCBhYm92ZS4KLSsJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIK LSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKLSsJ ICBmaQotKwllbHNlCi0rCSAgIyBPbmx5IGFuIGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4u Ci0rCSAgaWYgJG9wdF9kcnlfcnVuOyB0aGVuCi0rCSAgICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5 IGZyb20gdGhlIGFyZ3VtZW50LgotKwkgICAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKLSsJ ICAgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwotKwkgICAgZnVuY19sbzJvICIkYXJn IgotKwkgICAgcGljX29iamVjdD0keGRpciRvYmpkaXIvJGZ1bmNfbG8yb19yZXN1bHQKLSsJICAg IG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQKLSsJICAgIGZ1bmNfYXBwZW5k IGxpYm9ianMgIiAkcGljX29iamVjdCIKLSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0 cyAiICRub25fcGljX29iamVjdCIKLSsJICBlbHNlCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJc YCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0IgotKwkgIGZpCi0rCWZpCi0rCTs7 Ci0rCi0rICAgICAgKi4kbGliZXh0KQotKwkjIEFuIGFyY2hpdmUuCi0rCWRlcGxpYnM9IiRkZXBs aWJzICRhcmciCi0rCW9sZF9kZXBsaWJzPSIkb2xkX2RlcGxpYnMgJGFyZyIKLSsJY29udGludWUK LSsJOzsKLSsKLSsgICAgICAqLmxhKQotKwkjIEEgbGlidG9vbC1jb250cm9sbGVkIGxpYnJhcnku Ci0rCi0rCWlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KLSsJICAjIFRoaXMgbGlicmFy eSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KLSsJICBkbGZpbGVzPSIkZGxmaWxlcyAkYXJn IgotKwkgIHByZXY9Ci0rCWVsaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgotKwkg ICMgVGhlIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0rCSAgZGxwcmVm aWxlcz0iJGRscHJlZmlsZXMgJGFyZyIKLSsJICBwcmV2PQotKwllbHNlCi0rCSAgZGVwbGlicz0i JGRlcGxpYnMgJGFyZyIKLSsJZmkKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAjIFNvbWUg b3RoZXIgY29tcGlsZXIgYXJndW1lbnQuCi0rICAgICAgKikKLSsJIyBVbmtub3duIGFyZ3VtZW50 cyBpbiBib3RoIGZpbmFsaXplX2NvbW1hbmQgYW5kIGNvbXBpbGVfY29tbWFuZCBuZWVkCi0rCSMg dG8gYmUgYWVzdGhldGljYWxseSBxdW90ZWQgYmVjYXVzZSB0aGV5IGFyZSBldmFsZWQgbGF0ZXIu Ci0rCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rCWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0IgotKwk7OwotKyAgICAgIGVzYWMgIyBhcmcKLSsKLSsgICAgICAjIE5vdyBhY3R1 YWxseSBzdWJzdGl0dXRlIHRoZSBhcmd1bWVudCBpbnRvIHRoZSBjb21tYW5kcy4KLSsgICAgICBp ZiB0ZXN0IC1uICIkYXJnIjsgdGhlbgotKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAk YXJnIgotKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsgICAgICBmaQot KyAgICBkb25lICMgYXJndW1lbnQgcGFyc2luZyBsb29wCi0rCi0rICAgIHRlc3QgLW4gIiRwcmV2 IiAmJiBcCi0rICAgICAgZnVuY19mYXRhbF9oZWxwICJ0aGUgXGAkcHJldmFyZycgb3B0aW9uIHJl cXVpcmVzIGFuIGFyZ3VtZW50IgotKwotKyAgICBpZiB0ZXN0ICIkZXhwb3J0X2R5bmFtaWMiID0g eWVzICYmIHRlc3QgLW4gIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiOyB0aGVuCi0rICAgICAg ZXZhbCBhcmc9XCIkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKLSsgICAgICBmdW5jX2FwcGVu ZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgotKyAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2Nv bW1hbmQgIiAkYXJnIgotKyAgICBmaQotKwotKyAgICBvbGRsaWJzPQotKyAgICAjIGNhbGN1bGF0 ZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgd2l0aG91dCBpdHMgZGlyZWN0b3J5Ci0rICAgIGZ1bmNf YmFzZW5hbWUgIiRvdXRwdXQiCi0rICAgIG91dHB1dG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3Vs dCIKLSsgICAgbGlib2Jqc19zYXZlPSIkbGlib2JqcyIKLSsKLSsgICAgaWYgdGVzdCAtbiAiJHNo bGlicGF0aF92YXIiOyB0aGVuCi0rICAgICAgIyBnZXQgdGhlIGRpcmVjdG9yaWVzIGxpc3RlZCBp biAkc2hsaWJwYXRoX3ZhcgotKyAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3BhdGg9XGBcJEVDSE8g XCJYXCR7JHNobGlicGF0aF92YXJ9XCIgXHwgXCRYc2VkIC1lIFwncy86LyAvZ1wnXGAKLSsgICAg ZWxzZQotKyAgICAgIHNobGliX3NlYXJjaF9wYXRoPQotKyAgICBmaQotKyAgICBldmFsIHN5c19s aWJfc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjXCIKLSsgICAgZXZhbCBz eXNfbGliX2Rsc2VhcmNoX3BhdGg9XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgotKwot KyAgICBmdW5jX2Rpcm5hbWUgIiRvdXRwdXQiICIvIiAiIgotKyAgICBvdXRwdXRfb2JqZGlyPSIk ZnVuY19kaXJuYW1lX3Jlc3VsdCRvYmpkaXIiCi0rICAgICMgQ3JlYXRlIHRoZSBvYmplY3QgZGly ZWN0b3J5LgotKyAgICBmdW5jX21rZGlyX3AgIiRvdXRwdXRfb2JqZGlyIgotKwotKyAgICAjIERl dGVybWluZSB0aGUgdHlwZSBvZiBvdXRwdXQKLSsgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICIi KQotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQgZmls ZSIKLSsgICAgICA7OwotKyAgICAqLiRsaWJleHQpIGxpbmttb2RlPW9sZGxpYiA7OwotKyAgICAq LmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9kZT1vYmogOzsKLSsgICAgKi5sYSkgbGlua21vZGU9bGli IDs7Ci0rICAgICopIGxpbmttb2RlPXByb2cgOzsgIyBBbnl0aGluZyBlbHNlIHNob3VsZCBiZSBh IHByb2dyYW0uCi0rICAgIGVzYWMKLSsKLSsgICAgc3BlY2lhbGRlcGxpYnM9Ci0rCi0rICAgIGxp YnM9Ci0rICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcg Zm9yIGxpYnJhcmllcwotKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3JlIHRoYW4gb25jZSAoZS5n LiAtbGEgLWxiIC1sYSkKLSsgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KLSsgICAgICBp ZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgotKwljYXNlICIkbGlicyAiIGluCi0rCSoiICRk ZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKLSsJ ZXNhYwotKyAgICAgIGZpCi0rICAgICAgbGlicz0iJGxpYnMgJGRlcGxpYiIKLSsgICAgZG9uZQot KwotKyAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rICAgICAgbGlicz0iJHBy ZWRlcHMgJGxpYnMgJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCAkcG9zdGRlcHMiCi0rCi0rICAg ICAgIyBDb21wdXRlIGxpYnJhcmllcyB0aGF0IGFyZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UgaW4g JHByZWRlcHMKLSsgICAgICAjICRwb3N0ZGVwcyBhbmQgbWFyayB0aGVtIGFzIHNwZWNpYWwgKGku ZS4sIHdob3NlIGR1cGxpY2F0ZXMgYXJlCi0rICAgICAgIyBub3QgdG8gYmUgZWxpbWluYXRlZCku Ci0rICAgICAgcHJlX3Bvc3RfZGVwcz0KLSsgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9jb21waWxl cl9nZW5lcmF0ZWRfZGVwczsgdGhlbgotKwlmb3IgcHJlX3Bvc3RfZGVwIGluICRwcmVkZXBzICRw b3N0ZGVwczsgZG8KLSsJICBjYXNlICIkcHJlX3Bvc3RfZGVwcyAiIGluCi0rCSAgKiIgJHByZV9w b3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVw cyIgOzsKLSsJICBlc2FjCi0rCSAgcHJlX3Bvc3RfZGVwcz0iJHByZV9wb3N0X2RlcHMgJHByZV9w b3N0X2RlcCIKLSsJZG9uZQotKyAgICAgIGZpCi0rICAgICAgcHJlX3Bvc3RfZGVwcz0KLSsgICAg ZmkKLSsKLSsgICAgZGVwbGlicz0KLSsgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQotKyAgICBuZXds aWJfc2VhcmNoX3BhdGg9Ci0rICAgIG5lZWRfcmVsaW5rPW5vICMgd2hldGhlciB3ZSdyZSBsaW5r aW5nIGFueSB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwotKyAgICBub3RpbnN0X2RlcGxp YnM9ICMgbm90LWluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcwotKyAgICBub3RpbnN0X3BhdGg9 ICMgcGF0aHMgdGhhdCBjb250YWluIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKLSsK LSsgICAgY2FzZSAkbGlua21vZGUgaW4KLSsgICAgbGliKQotKwlwYXNzZXM9ImNvbnYgZGxwcmVv cGVuIGxpbmsiCi0rCWZvciBmaWxlIGluICRkbGZpbGVzICRkbHByZWZpbGVzOyBkbwotKwkgIGNh c2UgJGZpbGUgaW4KLSsJICAqLmxhKSA7OwotKwkgICopCi0rCSAgICBmdW5jX2ZhdGFsX2hlbHAg ImxpYnJhcmllcyBjYW4gXGAtZGxvcGVuJyBvbmx5IGxpYnRvb2wgbGlicmFyaWVzOiAkZmlsZSIK LSsJICAgIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rCTs7Ci0rICAgIHByb2cpCi0rCWNvbXBpbGVf ZGVwbGlicz0KLSsJZmluYWxpemVfZGVwbGlicz0KLSsJYWxsZGVwbGlicz1ubwotKwluZXdkbGZp bGVzPQotKwluZXdkbHByZWZpbGVzPQotKwlwYXNzZXM9ImNvbnYgc2NhbiBkbG9wZW4gZGxwcmVv cGVuIGxpbmsiCi0rCTs7Ci0rICAgICopICBwYXNzZXM9ImNvbnYiCi0rCTs7Ci0rICAgIGVzYWMK LSsKLSsgICAgZm9yIHBhc3MgaW4gJHBhc3NlczsgZG8KLSsgICAgICAjIFRoZSBwcmVvcGVuIHBh c3MgaW4gbGliIG1vZGUgcmV2ZXJzZXMgJGRlcGxpYnM7IHB1dCBpdCBiYWNrIGhlcmUKLSsgICAg ICAjIHNvIHRoYXQgLUwgY29tZXMgYmVmb3JlIGxpYnMgdGhhdCBuZWVkIGl0IGZvciBpbnN0YW5j ZS4uLgotKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiOyB0aGVu Ci0rCSMjIEZJWE1FOiBGaW5kIHRoZSBwbGFjZSB3aGVyZSB0aGUgbGlzdCBpcyByZWJ1aWx0IGlu IHRoZSB3cm9uZwotKwkjIyAgICAgICAgb3JkZXIsIGFuZCBmaXggaXQgdGhlcmUgcHJvcGVybHkK LSsgICAgICAgIHRtcF9kZXBsaWJzPQotKwlmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwkg IHRtcF9kZXBsaWJzPSIkZGVwbGliICR0bXBfZGVwbGlicyIKLSsJZG9uZQotKwlkZXBsaWJzPSIk dG1wX2RlcGxpYnMiCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUsJHBh c3MiID0gImxpYixsaW5rIiB8fAotKwkgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNj YW4iOyB0aGVuCi0rCWxpYnM9IiRkZXBsaWJzIgotKwlkZXBsaWJzPQotKyAgICAgIGZpCi0rICAg ICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJY2FzZSAkcGFzcyBpbgotKwlk bG9wZW4pIGxpYnM9IiRkbGZpbGVzIiA7OwotKwlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVz IiA7OwotKwlsaW5rKSBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUgJGRlcGVuZGVuY3lfbGlicyIg OzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9 ICJsaWIsZGxwcmVvcGVuIjsgdGhlbgotKwkjIENvbGxlY3QgYW5kIGZvcndhcmQgZGVwbGlicyBv ZiBwcmVvcGVuZWQgbGlidG9vbCBsaWJzCi0rCWZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCi0r CSAgIyBJZ25vcmUgbm9uLWxpYnRvb2wtbGlicwotKwkgIGRlcGVuZGVuY3lfbGlicz0KLSsJICBj YXNlICRsaWIgaW4KLSsJICAqLmxhKQlmdW5jX3NvdXJjZSAiJGxpYiIgOzsKLSsJICBlc2FjCi0r Ci0rCSAgIyBDb2xsZWN0IHByZW9wZW5lZCBsaWJ0b29sIGRlcGxpYnMsIGV4Y2VwdCBhbnkgdGhp cyBsaWJyYXJ5Ci0rCSAgIyBoYXMgZGVjbGFyZWQgYXMgd2VhayBsaWJzCi0rCSAgZm9yIGRlcGxp YiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKyAgICAgICAgICAgIGRlcGxpYl9iYXNlPWAkRUNI TyAiWCRkZXBsaWIiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0rCSAgICBjYXNlICIgJHdlYWtf bGlicyAiIGluCi0rCSAgICAqIiAkZGVwbGliX2Jhc2UgIiopIDs7Ci0rCSAgICAqKSBkZXBsaWJz PSIkZGVwbGlicyAkZGVwbGliIiA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJZG9uZQotKwls aWJzPSIkZGxwcmVmaWxlcyIKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiRwYXNzIiA9IGRs b3BlbjsgdGhlbgotKwkjIENvbGxlY3QgZGxwcmVvcGVuZWQgbGlicmFyaWVzCi0rCXNhdmVfZGVw bGlicz0iJGRlcGxpYnMiCi0rCWRlcGxpYnM9Ci0rICAgICAgZmkKLSsKLSsgICAgICBmb3IgZGVw bGliIGluICRsaWJzOyBkbwotKwlsaWI9Ci0rCWZvdW5kPW5vCi0rCWNhc2UgJGRlcGxpYiBpbgot KwktbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRo cmVhZC1zYWZlfC10aHJlYWRzKQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJv ZyxsaW5rIjsgdGhlbgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2Rl cGxpYnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJz IgotKwkgIGVsc2UKLSsJICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGRlcGxp YiIKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgOyB0aGVuCi0rCQljYXNlICIkbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgotKwkJICAgICoiICRkZXBsaWIgIiopIDs7Ci0r CQkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5r ZXJfZmxhZ3MgJGRlcGxpYiIgOzsKLSsJCWVzYWMKLSsJICAgIGZpCi0rCSAgZmkKLSsJICBjb250 aW51ZQotKwkgIDs7Ci0rCS1sKikKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYiAmJiB0 ZXN0ICIkbGlua21vZGUiICE9IHByb2c7IHRoZW4KLSsJICAgIGZ1bmNfd2FybmluZyAiXGAtbCcg aXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMvb2JqZWN0cyIKLSsJICAgIGNvbnRpbnVlCi0rCSAgZmkK LSsJICBmdW5jX3N0cmlwbmFtZSAnLWwnICcnICIkZGVwbGliIgotKwkgIG5hbWU9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdAotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsJICAg IHNlYXJjaGRpcnM9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxpYl9zZWFyY2hfcGF0aCAkY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0 aCIKLSsJICBlbHNlCi0rCSAgICBzZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsaWJf c2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoIgotKwkg IGZpCi0rCSAgZm9yIHNlYXJjaGRpciBpbiAkc2VhcmNoZGlyczsgZG8KLSsJICAgIGZvciBzZWFy Y2hfZXh0IGluIC5sYSAkc3RkX3NocmV4dCAuc28gLmE7IGRvCi0rCSAgICAgICMgU2VhcmNoIHRo ZSBsaWJ0b29sIGxpYnJhcnkKLSsJICAgICAgbGliPSIkc2VhcmNoZGlyL2xpYiR7bmFtZX0ke3Nl YXJjaF9leHR9IgotKwkgICAgICBpZiB0ZXN0IC1mICIkbGliIjsgdGhlbgotKwkJaWYgdGVzdCAi JHNlYXJjaF9leHQiID0gIi5sYSI7IHRoZW4KLSsJCSAgZm91bmQ9eWVzCi0rCQllbHNlCi0rCQkg IGZvdW5kPW5vCi0rCQlmaQotKwkJYnJlYWsgMgotKwkgICAgICBmaQotKwkgICAgZG9uZQotKwkg IGRvbmUKLSsJICBpZiB0ZXN0ICIkZm91bmQiICE9IHllczsgdGhlbgotKwkgICAgIyBkZXBsaWIg ZG9lc24ndCBzZWVtIHRvIGJlIGEgbGlidG9vbCBsaWJyYXJ5Ci0rCSAgICBpZiB0ZXN0ICIkbGlu a21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICAgICAgY29tcGlsZV9kZXBsaWJz PSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRk ZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIGRlcGxpYnM9IiRk ZXBsaWIgJGRlcGxpYnMiCi0rCSAgICAgIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYgbmV3ZGVw ZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgICBmaQotKwkg ICAgY29udGludWUKLSsJICBlbHNlICMgZGVwbGliIGlzIGEgbGlidG9vbCBsaWJyYXJ5Ci0rCSAg ICAjIElmICRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMgJiYgJGRlcGxp YiBpcyBhIHN0ZGxpYiwKLSsJICAgICMgV2UgbmVlZCB0byBkbyBzb21lIHNwZWNpYWwgdGhpbmdz IGhlcmUsIGFuZCBub3QgbGF0ZXIuCi0rCSAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCSAgICAgIGNhc2UgIiAk cHJlZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkgICAgICAqIiAkZGVwbGliICIqKQotKwkJaWYgZnVu Y19sYWxpYl9wICIkbGliIjsgdGhlbgotKwkJICBsaWJyYXJ5X25hbWVzPQotKwkJICBvbGRfbGli cmFyeT0KLSsJCSAgZnVuY19zb3VyY2UgIiRsaWIiCi0rCQkgIGZvciBsIGluICRvbGRfbGlicmFy eSAkbGlicmFyeV9uYW1lczsgZG8KLSsJCSAgICBsbD0iJGwiCi0rCQkgIGRvbmUKLSsJCSAgaWYg dGVzdCAiWCRsbCIgPSAiWCRvbGRfbGlicmFyeSIgOyB0aGVuICMgb25seSBzdGF0aWMgdmVyc2lv biBhdmFpbGFibGUKLSsJCSAgICBmb3VuZD1ubwotKwkJICAgIGZ1bmNfZGlybmFtZSAiJGxpYiIg IiIgIi4iCi0rCQkgICAgbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwkJICAgIGxpYj0k bGFkaXIvJG9sZF9saWJyYXJ5Ci0rCQkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJw cm9nLGxpbmsiOyB0aGVuCi0rCQkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBp bGVfZGVwbGlicyIKLSsJCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXpl X2RlcGxpYnMiCi0rCQkgICAgZWxzZQotKwkJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGli cyIKLSsJCSAgICAgIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgJiYgbmV3ZGVwZW5kZW5jeV9saWJz PSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCQkgICAgZmkKLSsJCSAgICBjb250aW51 ZQotKwkJICBmaQotKwkJZmkKLSsJCTs7Ci0rCSAgICAgICopIDs7Ci0rCSAgICAgIGVzYWMKLSsJ ICAgIGZpCi0rCSAgZmkKLSsJICA7OyAjIC1sCi0rCSoubHRmcmFtZXdvcmspCi0rCSAgaWYgdGVz dCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgICBjb21waWxlX2Rl cGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9 IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgZGVwbGlicz0iJGRl cGxpYiAkZGVwbGlicyIKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIgOyB0aGVuCi0r CQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgotKwkJICAgICoiICRkZXBs aWIgIiopIDs7Ci0rCQkgICAgKiApIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2lu aGVyaXRlZF9saW5rZXJfZmxhZ3MgJGRlcGxpYiIgOzsKLSsJCWVzYWMKLSsJICAgIGZpCi0rCSAg ZmkKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCS1MKikKLSsJICBjYXNlICRsaW5rbW9kZSBpbgot KwkgIGxpYikKLSsJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICB0ZXN0ICIk cGFzcyIgPSBjb252ICYmIGNvbnRpbnVlCi0rCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBs aWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRk ZXBsaWIiCi0rCSAgICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJICAgIDs7Ci0rCSAgcHJvZykKLSsJICAgIGlmIHRlc3Qg IiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIK LSsJICAgICAgY29udGludWUKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBzY2Fu OyB0aGVuCi0rCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICBlbHNlCi0r CSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAg ICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZmkK LSsJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCi0rCSAgICBuZXdsaWJfc2Vh cmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJ ICAgIDs7Ci0rCSAgKikKLSsJICAgIGZ1bmNfd2FybmluZyAiXGAtTCcgaXMgaWdub3JlZCBmb3Ig YXJjaGl2ZXMvb2JqZWN0cyIKLSsJICAgIDs7Ci0rCSAgZXNhYyAjIGxpbmttb2RlCi0rCSAgY29u dGludWUKLSsJICA7OyAjIC1MCi0rCS1SKikKLSsJICBpZiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0 aGVuCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkZGVwbGliIgotKwkgICAgZGlyPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICMgTWFrZSBzdXJlIHRoZSB4cnBhdGggY29udGFp bnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgICBjYXNlICIkeHJwYXRoICIgaW4KLSsJ ICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKLSsJ ICAgIGVzYWMKLSsJICBmaQotKwkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgY29u dGludWUKLSsJICA7OwotKwkqLmxhKSBsaWI9IiRkZXBsaWIiIDs7Ci0rCSouJGxpYmV4dCkKLSsJ ICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAgICBkZXBsaWJzPSIkZGVwbGliICRk ZXBsaWJzIgotKwkgICAgY29udGludWUKLSsJICBmaQotKwkgIGNhc2UgJGxpbmttb2RlIGluCi0r CSAgbGliKQotKwkgICAgIyBMaW5raW5nIGNvbnZlbmllbmNlIG1vZHVsZXMgaW50byBzaGFyZWQg bGlicmFyaWVzIGlzIGFsbG93ZWQsCi0rCSAgICAjIGJ1dCBsaW5raW5nIG90aGVyIHN0YXRpYyBs aWJyYXJpZXMgaXMgbm9uLXBvcnRhYmxlLgotKwkgICAgY2FzZSAiICRkbHByZWNvbnZlbmllbmNl bGlicyAiIGluCi0rCSAgICAqIiAkZGVwbGliICIqKSA7OwotKwkgICAgKikKLSsJICAgICAgdmFs aWRfYV9saWI9bm8KLSsJICAgICAgY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLSsJCW1h dGNoX3BhdHRlcm4qKQotKwkJICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlm dAotKwkJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2Qi IDogIiQxIFwoLipcKSJgCi0rCQkgIGlmIGV2YWwgIlwkRUNITyBcIlgkZGVwbGliXCIiIDI+L2Rl di9udWxsIHwgJFhzZWQgLWUgMTBxIFwKLSsJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5f cmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0rCQkgICAgdmFsaWRfYV9saWI9eWVzCi0rCQkgIGZp Ci0rCQk7OwotKwkJcGFzc19hbGwpCi0rCQkgIHZhbGlkX2FfbGliPXllcwotKwkJOzsKLSsJICAg ICAgZXNhYwotKwkgICAgICBpZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhlbgotKwkJ JEVDSE8KLSsJCSRFQ0hPICIqKiogV2FybmluZzogVHJ5aW5nIHRvIGxpbmsgd2l0aCBzdGF0aWMg bGliIGFyY2hpdmUgJGRlcGxpYi4iCi0rCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0 eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLSsJCSRF Q0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhp cyBpZiB5b3UgaGF2ZSBhIgotKwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGli cmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLSsJCSRFQ0hPICIqKiogYmVj YXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMg bWUgYmVsaWV2ZSIKLSsJCSRFQ0hPICIqKiogdGhhdCBpdCBpcyBqdXN0IGEgc3RhdGljIGFyY2hp dmUgdGhhdCBJIHNob3VsZCBub3QgdXNlIGhlcmUuIgotKwkgICAgICBlbHNlCi0rCQkkRUNITwot KwkJJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0 IGFnYWluc3QgdGhlIgotKwkJJEVDSE8gIioqKiBzdGF0aWMgbGlicmFyeSAkZGVwbGliIGlzIG5v dCBwb3J0YWJsZSEiCi0rCQlkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgICBmaQot KwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgcHJv ZykKLSsJICAgIGlmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCi0rCSAgICAgIGRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0i JGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVw bGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZmkKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7 OwotKwkgIGVzYWMgIyBsaW5rbW9kZQotKwkgIDs7ICMgKi4kbGliZXh0Ci0rCSoubG8gfCAqLiRv YmpleHQpCi0rCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgotKwkgICAgZGVwbGlicz0i JGRlcGxpYiAkZGVwbGlicyIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVu Ci0rCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW4gfHwgdGVzdCAiJGRsb3Blbl9zdXBw b3J0IiAhPSB5ZXMgfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsgdGhlbgotKwkg ICAgICAjIElmIHRoZXJlIGlzIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3JlIGxpbmtpbmcgc3Rh dGljYWxseSwKLSsJICAgICAgIyB3ZSBuZWVkIHRvIHByZWxvYWQuCi0rCSAgICAgIG5ld2RscHJl ZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkZXBsaWIiCi0rCSAgICAgIGNvbXBpbGVfZGVwbGlicz0i JGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVw bGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICBuZXdkbGZpbGVzPSIk bmV3ZGxmaWxlcyAkZGVwbGliIgotKwkgICAgZmkKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0rCSAg OzsKLSsJJURFUExJQlMlKQotKwkgIGFsbGRlcGxpYnM9eWVzCi0rCSAgY29udGludWUKLSsJICA7 OwotKwllc2FjICMgY2FzZSAkZGVwbGliCi0rCi0rCWlmIHRlc3QgIiRmb3VuZCIgPSB5ZXMgfHwg dGVzdCAtZiAiJGxpYiI7IHRoZW4gOgotKwllbHNlCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fu bm90IGZpbmQgdGhlIGxpYnJhcnkgXGAkbGliJyBvciB1bmhhbmRsZWQgYXJndW1lbnQgXGAkZGVw bGliJyIKLSsJZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxp YnRvb2wgYXJjaGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGxpYiIgXAotKwkgIHx8IGZ1 bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgot KwotKwlmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgotKwlsYWRpcj0iJGZ1bmNfZGlybmFtZV9y ZXN1bHQiCi0rCi0rCWRsbmFtZT0KLSsJZGxvcGVuPQotKwlkbHByZW9wZW49Ci0rCWxpYmRpcj0K LSsJbGlicmFyeV9uYW1lcz0KLSsJb2xkX2xpYnJhcnk9Ci0rCWluaGVyaXRlZF9saW5rZXJfZmxh Z3M9Ci0rCSMgSWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3aXRoIGFuIG9sZCByZWxlYXNl IG9mIGxpYnRvb2wsCi0rCSMgaXQgd2lsbCBub3QgcmVkZWZpbmUgdmFyaWFibGVzIGluc3RhbGxl ZCwgb3Igc2hvdWxkbm90bGluawotKwlpbnN0YWxsZWQ9eWVzCi0rCXNob3VsZG5vdGxpbms9bm8K LSsJYXZvaWR0ZW1wcnBhdGg9Ci0rCi0rCi0rCSMgUmVhZCB0aGUgLmxhIGZpbGUKLSsJZnVuY19z b3VyY2UgIiRsaWIiCi0rCi0rCSMgQ29udmVydCAiLWZyYW1ld29yayBmb28iIHRvICJmb28ubHRm cmFtZXdvcmsiCi0rCWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIjsgdGhlbgot KwkgIHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCRpbmhlcml0ZWRfbGlua2Vy X2ZsYWdzIiB8ICRYc2VkIC1lICdzLy1mcmFtZXdvcmsgXChbXiAkXSpcKS9cMS5sdGZyYW1ld29y ay9nJ2AKLSsJICBmb3IgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyBpbiAkdG1wX2luaGVyaXRl ZF9saW5rZXJfZmxhZ3M7IGRvCi0rCSAgICBjYXNlICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2Zs YWdzICIgaW4KLSsJICAgICAgKiIgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgIiopIDs7Ci0r CSAgICAgICopIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSIkbmV3X2luaGVyaXRlZF9saW5r ZXJfZmxhZ3MgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWciOzsKLSsJICAgIGVzYWMKLSsJICBk b25lCi0rCWZpCi0rCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIlggJGRlcGVuZGVuY3lfbGlicyIg fCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AK LSsJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKLSsJICAgdGVzdCAi JGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLHNjYW4iIHx8Ci0rCSAgIHsgdGVzdCAiJGxpbmttb2Rl IiAhPSBwcm9nICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gbGliOyB9OyB0aGVuCi0rCSAgdGVzdCAt biAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3BlbiIKLSsJICB0ZXN0IC1uICIk ZGxwcmVvcGVuIiAmJiBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkZGxwcmVvcGVuIgotKwlmaQot KwotKwlpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0rCSAgIyBPbmx5IGNoZWNrIGZvciBj b252ZW5pZW5jZSBsaWJyYXJpZXMKLSsJICBkZXBsaWJzPSIkbGliICRkZXBsaWJzIgotKwkgIGlm IHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnki OyB0aGVuCi0rCSAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGlu ayBsaWJyYXJ5IGZvciBcYCRsaWInIgotKwkgICAgZmkKLSsJICAgICMgSXQgaXMgYSBsaWJ0b29s IGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KLSsJICAgIGNvbnZl bmllbmNlPSIkY29udmVuaWVuY2UgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgotKwkgICAg b2xkX2NvbnZlbmllbmNlPSIkb2xkX2NvbnZlbmllbmNlICRsYWRpci8kb2JqZGlyLyRvbGRfbGli cmFyeSIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21v ZGUiICE9IGxpYjsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3Qg YSBjb252ZW5pZW5jZSBsaWJyYXJ5IgotKwkgIGZpCi0rCSAgdG1wX2xpYnM9Ci0rCSAgZm9yIGRl cGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVw bGlicyIKLSsJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0rCSAgICAgIGNhc2Ug IiR0bXBfbGlicyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIk c3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAg IHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKLSsJICBkb25lCi0rCSAgY29udGludWUKLSsJ ZmkgIyAkcGFzcyA9IGNvbnYKLSsKLSsKLSsJIyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkg d2UgbGluayBhZ2FpbnN0LgotKwlsaW5rbGliPQotKwlmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxp YnJhcnlfbmFtZXM7IGRvCi0rCSAgbGlua2xpYj0iJGwiCi0rCWRvbmUKLSsJaWYgdGVzdCAteiAi JGxpbmtsaWIiOyB0aGVuCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBv ZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciCi0rCWZpCi0rCi0rCSMgVGhpcyBsaWJyYXJ5IHdh cyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotKwlpZiB0ZXN0ICIkcGFzcyIgPSBkbG9wZW47IHRo ZW4KLSsJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJv ciAiY2Fubm90IC1kbG9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5OiBcYCRsaWInIgotKwkgIGZp Ci0rCSAgaWYgdGVzdCAteiAiJGRsbmFtZSIgfHwKLSsJICAgICB0ZXN0ICIkZGxvcGVuX3N1cHBv cnQiICE9IHllcyB8fAotKwkgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRo ZW4KLSsJICAgICMgSWYgdGhlcmUgaXMgbm8gZGxuYW1lLCBubyBkbG9wZW4gc3VwcG9ydCBvciB3 ZSdyZSBsaW5raW5nCi0rCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJlbG9hZC4gIFdl IGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQotKwkgICAgIyBkZXBlbmRlbnQgbGlicmFyaWVzIHNv IGxpYmx0ZGwncyBkZXBsaWIgcHJlbG9hZGVyIGRvZXNuJ3QKLSsJICAgICMgYm9tYiBvdXQgaW4g dGhlIGxvYWQgZGVwbGlicyBwaGFzZS4KLSsJICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRs aWIgJGRlcGVuZGVuY3lfbGlicyIKLSsJICBlbHNlCi0rCSAgICBuZXdkbGZpbGVzPSIkbmV3ZGxm aWxlcyAkbGliIgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9IGRsb3Blbgot KwotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkbGFkaXIgaW4KLSsJW1xc L10qIHwgW0EtWmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRpciIgOzsKLSsJKikKLSsJICBh YnNfbGFkaXI9YGNkICIkbGFkaXIiICYmIHB3ZGAKLSsJICBpZiB0ZXN0IC16ICIkYWJzX2xhZGly IjsgdGhlbgotKwkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRp cmVjdG9yeSBuYW1lIG9mIFxgJGxhZGlyJyIKLSsJICAgIGZ1bmNfd2FybmluZyAicGFzc2luZyBp dCBsaXRlcmFsbHkgdG8gdGhlIGxpbmtlciwgYWx0aG91Z2ggaXQgbWlnaHQgZmFpbCIKLSsJICAg IGFic19sYWRpcj0iJGxhZGlyIgotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlmdW5jX2Jhc2Vu YW1lICIkbGliIgotKwlsYW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsKLSsJIyBGaW5k IHRoZSByZWxldmFudCBvYmplY3QgZGlyZWN0b3J5IGFuZCBsaWJyYXJ5IG5hbWUuCi0rCWlmIHRl c3QgIlgkaW5zdGFsbGVkIiA9IFh5ZXM7IHRoZW4KLSsJICBpZiB0ZXN0ICEgLWYgIiRsaWJkaXIv JGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCi0rCSAgICBm dW5jX3dhcm5pbmcgImxpYnJhcnkgXGAkbGliJyB3YXMgbW92ZWQuIgotKwkgICAgZGlyPSIkbGFk aXIiCi0rCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIiCi0rCSAgICBsaWJkaXI9IiRhYnNfbGFkaXIi Ci0rCSAgZWxzZQotKwkgICAgZGlyPSIkbGliZGlyIgotKwkgICAgYWJzZGlyPSIkbGliZGlyIgot KwkgIGZpCi0rCSAgdGVzdCAiWCRoYXJkY29kZV9hdXRvbWF0aWMiID0gWHllcyAmJiBhdm9pZHRl bXBycGF0aD15ZXMKLSsJZWxzZQotKwkgIGlmIHRlc3QgISAtZiAiJGxhZGlyLyRvYmpkaXIvJGxp bmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCi0rCSAgICBkaXI9 IiRsYWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpciIKLSsJICAgICMgUmVtb3ZlIHRoaXMg c2VhcmNoIHBhdGggbGF0ZXIKLSsJICAgIG5vdGluc3RfcGF0aD0iJG5vdGluc3RfcGF0aCAkYWJz X2xhZGlyIgotKwkgIGVsc2UKLSsJICAgIGRpcj0iJGxhZGlyLyRvYmpkaXIiCi0rCSAgICBhYnNk aXI9IiRhYnNfbGFkaXIvJG9iamRpciIKLSsJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBhdGgg bGF0ZXIKLSsJICAgIG5vdGluc3RfcGF0aD0iJG5vdGluc3RfcGF0aCAkYWJzX2xhZGlyIgotKwkg IGZpCi0rCWZpICMgJGluc3RhbGxlZCA9IHllcwotKwlmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmxh JyAiJGxhbmFtZSIKLSsJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0rCSMgVGhpcyBs aWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxwcmVvcGVuLgotKwlpZiB0ZXN0ICIkcGFzcyIg PSBkbHByZW9wZW47IHRoZW4KLSsJICBpZiB0ZXN0IC16ICIkbGliZGlyIiAmJiB0ZXN0ICIkbGlu a21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJvciAib25seSBsaWJyYXJp ZXMgbWF5IC1kbHByZW9wZW4gYSBjb252ZW5pZW5jZSBsaWJyYXJ5OiBcYCRsaWInIgotKwkgIGZp Ci0rCSAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAoc28gdGhhdCBubyBzaWxseSBf RFlOQU1JQyBzeW1ib2xzCi0rCSAgIyBhcmUgcmVxdWlyZWQgdG8gbGluaykuCi0rCSAgaWYgdGVz dCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJl ZmlsZXMgJGRpci8kb2xkX2xpYnJhcnkiCi0rCSAgICAjIEtlZXAgYSBsaXN0IG9mIHByZW9wZW5l ZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sKLSsJICAgICMgdGhhdCB0aGV5IGFyZSBi ZWluZyB1c2VkIGNvcnJlY3RseSBpbiB0aGUgbGluayBwYXNzLgotKwkgICAgdGVzdCAteiAiJGxp YmRpciIgJiYgXAotKwkJZGxwcmVjb252ZW5pZW5jZWxpYnM9IiRkbHByZWNvbnZlbmllbmNlbGli cyAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAjIE90aGVyd2lzZSwgdXNlIHRoZSBkbG5hbWUsIHNv IHRoYXQgbHRfZGxvcGVuIGZpbmRzIGl0LgotKwkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRo ZW4KLSsJICAgIG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJGRsbmFtZSIKLSsJ ICBlbHNlCi0rCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGli IgotKwkgIGZpCi0rCWZpICMgJHBhc3MgPSBkbHByZW9wZW4KLSsKLSsJaWYgdGVzdCAteiAiJGxp YmRpciI7IHRoZW4KLSsJICAjIExpbmsgdGhlIGNvbnZlbmllbmNlIGxpYnJhcnkKLSsJICBpZiB0 ZXN0ICIkbGlua21vZGUiID0gbGliOyB0aGVuCi0rCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGli cmFyeSAkZGVwbGlicyIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxs aW5rIjsgdGhlbgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkY29t cGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkg JGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgZGVwbGlicz0iJGxpYiAkZGVwbGli cyIgIyB1c2VkIGZvciBwcm9nLHNjYW4gcGFzcwotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkK LSsKLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgJiYgdGVzdCAiJHBhc3MiICE9IGxp bms7IHRoZW4KLSsJICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGxh ZGlyIgotKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCi0rCi0rCSAgbGlua2FsbGRlcGxpYnM9 bm8KLSsJICBpZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0gbm8gfHwgdGVzdCAteiAiJGxp YnJhcnlfbmFtZXMiIHx8Ci0rCSAgICAgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBubzsg dGhlbgotKwkgICAgbGlua2FsbGRlcGxpYnM9eWVzCi0rCSAgZmkKLSsKLSsJICB0bXBfbGlicz0K LSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBjYXNlICRkZXBs aWIgaW4KLSsJICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKLSsJICAg ICAgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlw bmFtZV9yZXN1bHQiCi0rCQkgOzsKLSsJICAgIGVzYWMKLSsJICAgICMgTmVlZCB0byBsaW5rIGFn YWluc3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KLSsJICAgIGlmIHRlc3QgIiRsaW5rYWxsZGVwbGli cyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAg IGVsc2UKLSsJICAgICAgIyBOZWVkIHRvIGhhcmRjb2RlIHNoYXJlZCBsaWJyYXJ5IHBhdGhzCi0r CSAgICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGlicmFyaWVzCi0rCSAgICAgIG5l d2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZmkK LSsJICAgIGlmICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0rCSAgICAgIGNhc2UgIiR0bXBf bGlicyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lh bGRlcGxpYnMgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIHRtcF9s aWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKLSsJICBkb25lICMgZm9yIGRlcGxpYgotKwkgIGNvbnRp bnVlCi0rCWZpICMgJGxpbmttb2RlID0gcHJvZy4uLgotKwotKwlpZiB0ZXN0ICIkbGlua21vZGUs JHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1l cyIgJiYKLSsJICAgICB7IHsgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSBubyB8fAotKwkg ICAgICAgICB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzLCRpbnN0YWxsZWQiID0gImJ1aWx0LHll cyI7IH0gfHwKLSsJICAgICAgIHRlc3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KLSsJICAg ICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoCi0rCSAgICBpZiB0ZXN0IC1u ICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4KLSsJ ICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9y aWVzLgotKwkgICAgICBjYXNlICIkdGVtcF9ycGF0aDoiIGluCi0rCSAgICAgICoiJGFic2Rpcjoi KikgOzsKLSsJICAgICAgKikgdGVtcF9ycGF0aD0iJHRlbXBfcnBhdGgkYWJzZGlyOiIgOzsKLSsJ ICAgICAgZXNhYwotKwkgICAgZmkKLSsKLSsJICAgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0 aC4KLSsJICAgICMgU2tpcCBkaXJlY3RvcmllcyB0aGF0IGFyZSBpbiB0aGUgc3lzdGVtIGRlZmF1 bHQgcnVuLXRpbWUKLSsJICAgICMgc2VhcmNoIHBhdGguCi0rCSAgICBjYXNlICIgJHN5c19saWJf ZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAkYWJzZGlyICIqKSA7OwotKwkgICAgKikKLSsJ ICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgotKwkgICAgICAqIiAkYWJzZGlyICIqKSA7 OwotKwkgICAgICAqKSBjb21waWxlX3JwYXRoPSIkY29tcGlsZV9ycGF0aCAkYWJzZGlyIgotKwkg ICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBjYXNlICIgJHN5c19saWJf ZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgKikKLSsJ ICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAgICAgKiIgJGxpYmRpciAiKikg OzsKLSsJICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgot KwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkgIyAkbGlua21vZGUs JHBhc3MgPSBwcm9nLGxpbmsuLi4KLSsKLSsJICBpZiB0ZXN0ICIkYWxsZGVwbGlicyIgPSB5ZXMg JiYKLSsJICAgICB7IHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSBwYXNzX2FsbCB8fAot KwkgICAgICAgeyB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAmJgotKwkJIHRlc3Qg LW4gIiRsaWJyYXJ5X25hbWVzIjsgfTsgfTsgdGhlbgotKwkgICAgIyBXZSBvbmx5IG5lZWQgdG8g c2VhcmNoIGZvciBzdGF0aWMgbGlicmFyaWVzCi0rCSAgICBjb250aW51ZQotKwkgIGZpCi0rCWZp Ci0rCi0rCWxpbmtfc3RhdGljPW5vICMgV2hldGhlciB0aGUgZGVwbGliIHdpbGwgYmUgbGlua2Vk IHN0YXRpY2FsbHkKLSsJdXNlX3N0YXRpY19saWJzPSRwcmVmZXJfc3RhdGljX2xpYnMKLSsJaWYg dGVzdCAiJHVzZV9zdGF0aWNfbGlicyIgPSBidWlsdCAmJiB0ZXN0ICIkaW5zdGFsbGVkIiA9IHll czsgdGhlbgotKwkgIHVzZV9zdGF0aWNfbGlicz1ubwotKwlmaQotKwlpZiB0ZXN0IC1uICIkbGli cmFyeV9uYW1lcyIgJiYKLSsJICAgeyB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IG5vIHx8IHRl c3QgLXogIiRvbGRfbGlicmFyeSI7IH07IHRoZW4KLSsJICBjYXNlICRob3N0IGluCi0rCSAgKmN5 Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKikKLSsJICAgICAgIyBObyBwb2ludCBpbiByZWxpbmtp bmcgRExMcyBiZWNhdXNlIHBhdGhzIGFyZSBub3QgZW5jb2RlZAotKwkgICAgICBub3RpbnN0X2Rl cGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIKLSsJICAgICAgbmVlZF9yZWxpbms9bm8KLSsJ ICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm87IHRoZW4KLSsJ ICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9kZXBsaWJzICRsaWIiCi0rCSAgICAgIG5l ZWRfcmVsaW5rPXllcwotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgICMgVGhpcyBp cyBhIHNoYXJlZCBsaWJyYXJ5Ci0rCi0rCSAgIyBXYXJuIGFib3V0IHBvcnRhYmlsaXR5LCBjYW4n dCBsaW5rIGFnYWluc3QgLW1vZHVsZSdzIG9uIHNvbWUKLSsJICAjIHN5c3RlbXMgKGRhcndpbiku ICBEb24ndCBibGVhdCBhYm91dCBkbG9wZW5lZCBtb2R1bGVzIHRob3VnaCEKLSsJICBkbG9wZW5t b2R1bGU9IiIKLSsJICBmb3IgZGxwcmVtb2R1bGV0ZXN0IGluICRkbHByZWZpbGVzOyBkbwotKwkg ICAgaWYgdGVzdCAiWCRkbHByZW1vZHVsZXRlc3QiID0gIlgkbGliIjsgdGhlbgotKwkgICAgICBk bG9wZW5tb2R1bGU9IiRkbHByZW1vZHVsZXRlc3QiCi0rCSAgICAgIGJyZWFrCi0rCSAgICBmaQot KwkgIGRvbmUKLSsJICBpZiB0ZXN0IC16ICIkZGxvcGVubW9kdWxlIiAmJiB0ZXN0ICIkc2hvdWxk bm90bGluayIgPSB5ZXMgJiYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgotKwkgICAgJEVDSE8K LSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAgICRFQ0hPICIq KiogV2FybmluZzogTGlua2luZyB0aGUgZXhlY3V0YWJsZSAkb3V0cHV0IGFnYWluc3QgdGhlIGxv YWRhYmxlIG1vZHVsZSIKLSsJICAgIGVsc2UKLSsJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBM aW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIGxvYWRhYmxlIG1v ZHVsZSIKLSsJICAgIGZpCi0rCSAgICAkRUNITyAiKioqICRsaW5rbGliIGlzIG5vdCBwb3J0YWJs ZSEiCi0rCSAgZmkKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliICYmCi0rCSAgICAgdGVz dCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAgICMgSGFyZGNvZGUgdGhl IGxpYnJhcnkgcGF0aC4KLSsJICAgICMgU2tpcCBkaXJlY3RvcmllcyB0aGF0IGFyZSBpbiB0aGUg c3lzdGVtIGRlZmF1bHQgcnVuLXRpbWUKLSsJICAgICMgc2VhcmNoIHBhdGguCi0rCSAgICBjYXNl ICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAkYWJzZGlyICIqKSA7Owot KwkgICAgKikKLSsJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgotKwkgICAgICAqIiAk YWJzZGlyICIqKSA7OwotKwkgICAgICAqKSBjb21waWxlX3JwYXRoPSIkY29tcGlsZV9ycGF0aCAk YWJzZGlyIgotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBjYXNl ICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAkbGliZGlyICIqKSA7Owot KwkgICAgKikKLSsJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAgICAgKiIg JGxpYmRpciAiKikgOzsKLSsJICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0 aCAkbGliZGlyIgotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkK LSsKLSsJICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiOyB0aGVu Ci0rCSAgICAjIGZpZ3VyZSBvdXQgdGhlIHNvbmFtZQotKwkgICAgc2V0IGR1bW15ICRsaWJyYXJ5 X25hbWVzCi0rCSAgICBzaGlmdAotKwkgICAgcmVhbG5hbWU9IiQxIgotKwkgICAgc2hpZnQKLSsJ ICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAotKwkgICAgIyB1 c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkgZ29vZCwgbm8/Ci0rCSAgICBp ZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkgICAgICBzb25hbWU9IiRkbG5hbWUiCi0rCSAg ICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJICAgICAgIyBibGVoIHdpbmRv d3MKLSsJICAgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICAqY3lnd2luKiB8IG1pbmd3KiB8ICpj ZWdjYyopCi0rCSAgICAgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJCW1ham9yPSRm dW5jX2FyaXRoX3Jlc3VsdAotKwkJdmVyc3VmZml4PSItJG1ham9yIgotKwkJOzsKLSsJICAgICAg ZXNhYwotKwkgICAgICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3BlY1wiCi0rCSAgICBlbHNlCi0r CSAgICAgIHNvbmFtZT0iJHJlYWxuYW1lIgotKwkgICAgZmkKLSsKLSsJICAgICMgTWFrZSBhIG5l dyBuYW1lIGZvciB0aGUgZXh0cmFjdF9leHBzeW1zX2NtZHMgdG8gdXNlCi0rCSAgICBzb3Jvb3Q9 IiRzb25hbWUiCi0rCSAgICBmdW5jX2Jhc2VuYW1lICIkc29yb290IgotKwkgICAgc29uYW1lPSIk ZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAnbGliJyAnLmRsbCcg IiRzb25hbWUiCi0rCSAgICBuZXdsaWI9bGliaW1wLSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuYQot KwotKwkgICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0IGxpc3QsIHRoZW4gY3JlYXRl IG9uZSBub3cKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRzb25hbWUtZGVmIjsg dGhlbiA6Ci0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBleHBv cnRlZCBzeW1ib2wgbGlzdCBmcm9tIFxgJHNvbmFtZSciCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9j bWRzICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiICdleGl0ICQ/JwotKwkgICAgZmkKLSsKLSsJICAg ICMgQ3JlYXRlICRuZXdsaWIKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRuZXds aWIiOyB0aGVuIDo7IGVsc2UKLSsJICAgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIGltcG9y dCBsaWJyYXJ5IGZvciBcYCRzb25hbWUnIgotKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJG9s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiAnZXhpdCAkPycKLSsJICAgIGZpCi0rCSAgICAj IG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJlIHBvaW50aW5nIHRvIHRoZSBuZXcg bGlicmFyeQotKwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCi0rCSAgICBsaW5rbGliPSRuZXdsaWIK LSsJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKLSsKLSsJ ICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rOyB0 aGVuCi0rCSAgICBhZGRfc2hsaWJwYXRoPQotKwkgICAgYWRkX2Rpcj0KLSsJICAgIGFkZD0KLSsJ ICAgIGxpYl9saW5rZWQ9eWVzCi0rCSAgICBjYXNlICRoYXJkY29kZV9hY3Rpb24gaW4KLSsJICAg IGltbWVkaWF0ZSB8IHVuc3VwcG9ydGVkKQotKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0IiA9IG5vOyB0aGVuCi0rCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCi0rCQljYXNlICRob3N0IGlu Ci0rCQkgICotKi1zY28zLjJ2NS4wLlswMjRdKikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAq LSotc3lzdjQqdXcyKikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAqLSotc3lzdjVPcGVuVU5J WCogfCAqLSotc3lzdjVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IFwKLSsJCSAgICAqLSotdW5peHdh cmU3KikgYWRkX2Rpcj0iLUwkZGlyIiA7OwotKwkJICAqLSotZGFyd2luKiApCi0rCQkgICAgIyBp ZiB0aGUgbGliIGlzIGEgKG5vbi1kbG9wZW5lZCkgbW9kdWxlIHRoZW4gd2UgY2FuIG5vdAotKwkJ ICAgICMgbGluayBhZ2FpbnN0IGl0LCBzb21lb25lIGlzIGlnbm9yaW5nIHRoZSBlYXJsaWVyIHdh cm5pbmdzCi0rCQkgICAgaWYgL3Vzci9iaW4vZmlsZSAtTCAkYWRkIDI+IC9kZXYvbnVsbCB8Ci0r CQkJICRHUkVQICI6IFteOl0qIGJ1bmRsZSIgPi9kZXYvbnVsbCA7IHRoZW4KLSsJCSAgICAgIGlm IHRlc3QgIlgkZGxvcGVubW9kdWxlIiAhPSAiWCRsaWIiOyB0aGVuCi0rCQkJJEVDSE8gIioqKiBX YXJuaW5nOiBsaWIgJGxpbmtsaWIgaXMgYSBtb2R1bGUsIG5vdCBhIHNoYXJlZCBsaWJyYXJ5Igot KwkJCWlmIHRlc3QgLXogIiRvbGRfbGlicmFyeSIgOyB0aGVuCi0rCQkJICAkRUNITwotKwkJCSAg JEVDSE8gIioqKiBBbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgc3RhdGljIGFyY2hpdmUg YXZhaWxhYmxlIgotKwkJCSAgJEVDSE8gIioqKiBUaGUgbGluayB3aWxsIHByb2JhYmx5IGZhaWws IHNvcnJ5IgotKwkJCWVsc2UKLSsJCQkgIGFkZD0iJGRpci8kb2xkX2xpYnJhcnkiCi0rCQkJZmkK LSsJCSAgICAgIGVsaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkJCWFkZD0iJGRp ci8kb2xkX2xpYnJhcnkiCi0rCQkgICAgICBmaQotKwkJICAgIGZpCi0rCQllc2FjCi0rCSAgICAg IGVsaWYgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiID0gbm87IHRoZW4KLSsJCWNhc2UgJGhvc3Qg aW4KLSsJCSotKi1zdW5vcyopIGFkZF9zaGxpYnBhdGg9IiRkaXIiIDs7Ci0rCQllc2FjCi0rCQlh ZGRfZGlyPSItTCRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsaWYgdGVzdCAiJGhh cmRjb2RlX3NobGlicGF0aF92YXIiID0gbm87IHRoZW4KLSsJCWFkZF9zaGxpYnBhdGg9IiRkaXIi Ci0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJCWxpYl9saW5rZWQ9bm8KLSsJICAg ICAgZmkKLSsJICAgICAgOzsKLSsJICAgIHJlbGluaykKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRj b2RlX2RpcmVjdCIgPSB5ZXMgJiYKLSsJICAgICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZSIgPSBubzsgdGhlbgotKwkJYWRkPSIkZGlyLyRsaW5rbGliIgotKwkgICAgICBlbGlm IHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IHllczsgdGhlbgotKwkJYWRkX2Rpcj0iLUwkZGly IgotKwkJIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24gd2UncmUgYmVpbmcgaW5z dGFsbGVkIHRvLgotKwkJaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KLSsJCSAg Y2FzZSAkbGliZGlyIGluCi0rCQkgICAgW1xcL10qKQotKwkJICAgICAgYWRkX2Rpcj0iJGFkZF9k aXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKLSsJCSAgICAgIDs7Ci0rCQkgIGVzYWMKLSsJ CWZpCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGli cGF0aF92YXIiID0geWVzOyB0aGVuCi0rCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgotKwkJYWRkPSIt bCRuYW1lIgotKwkgICAgICBlbHNlCi0rCQlsaWJfbGlua2VkPW5vCi0rCSAgICAgIGZpCi0rCSAg ICAgIDs7Ci0rCSAgICAqKSBsaWJfbGlua2VkPW5vIDs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBp ZiB0ZXN0ICIkbGliX2xpbmtlZCIgIT0geWVzOyB0aGVuCi0rCSAgICAgIGZ1bmNfZmF0YWxfY29u ZmlndXJhdGlvbiAidW5zdXBwb3J0ZWQgaGFyZGNvZGUgcHJvcGVydGllcyIKLSsJICAgIGZpCi0r Ci0rCSAgICBpZiB0ZXN0IC1uICIkYWRkX3NobGlicGF0aCI7IHRoZW4KLSsJICAgICAgY2FzZSA6 JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgotKwkgICAgICAqIjokYWRkX3NobGlicGF0aDoiKikgOzsK LSsJICAgICAgKikgY29tcGlsZV9zaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRhZGRfc2hs aWJwYXRoOiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIiRsaW5r bW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBjb21waWxl X2RlcGxpYnM9IiRhZGRfZGlyICRjb21waWxlX2RlcGxpYnMiCi0rCSAgICAgIHRlc3QgLW4gIiRh ZGQiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZCAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZWxz ZQotKwkgICAgICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxp YnMiCi0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCi0r CSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiICE9IHllcyAmJgotKwkJIHRlc3QgIiRo YXJkY29kZV9taW51c19MIiAhPSB5ZXMgJiYKLSsJCSB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciIgPSB5ZXM7IHRoZW4KLSsJCWNhc2UgOiRmaW5hbGl6ZV9zaGxpYnBhdGg6IGluCi0rCQkq IjokbGliZGlyOiIqKSA7OwotKwkJKikgZmluYWxpemVfc2hsaWJwYXRoPSIkZmluYWxpemVfc2hs aWJwYXRoJGxpYmRpcjoiIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgIGZp Ci0rCi0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiID0gcmVs aW5rOyB0aGVuCi0rCSAgICBhZGRfc2hsaWJwYXRoPQotKwkgICAgYWRkX2Rpcj0KLSsJICAgIGFk ZD0KLSsJICAgICMgRmluYWxpemUgY29tbWFuZCBmb3IgYm90aCBpcyBzaW1wbGU6IGp1c3QgaGFy ZGNvZGUgaXQuCi0rCSAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllcyAmJgotKwkg ICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgotKwkgICAg ICBhZGQ9IiRsaWJkaXIvJGxpbmtsaWIiCi0rCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51 c19MIiA9IHllczsgdGhlbgotKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCi0rCSAgICAgIGFk ZD0iLWwkbmFtZSIKLSsJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0g eWVzOyB0aGVuCi0rCSAgICAgIGNhc2UgOiRmaW5hbGl6ZV9zaGxpYnBhdGg6IGluCi0rCSAgICAg ICoiOiRsaWJkaXI6IiopIDs7Ci0rCSAgICAgICopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFs aXplX3NobGlicGF0aCRsaWJkaXI6IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGFkZD0iLWwk bmFtZSIKLSsJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXM7IHRoZW4K LSsJICAgICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciIgJiYKLSsJCSB0ZXN0IC1mICIk aW5zdF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIgOyB0aGVuCi0rCQlhZGQ9IiRpbnN0X3By ZWZpeF9kaXIkbGliZGlyLyRsaW5rbGliIgotKwkgICAgICBlbHNlCi0rCQlhZGQ9IiRsaWJkaXIv JGxpbmtsaWIiCi0rCSAgICAgIGZpCi0rCSAgICBlbHNlCi0rCSAgICAgICMgV2UgY2Fubm90IHNl ZW0gdG8gaGFyZGNvZGUgaXQsIGd1ZXNzIHdlJ2xsIGZha2UgaXQuCi0rCSAgICAgIGFkZF9kaXI9 Ii1MJGxpYmRpciIKLSsJICAgICAgIyBUcnkgbG9va2luZyBmaXJzdCBpbiB0aGUgbG9jYXRpb24g d2UncmUgYmVpbmcgaW5zdGFsbGVkIHRvLgotKwkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVm aXhfZGlyIjsgdGhlbgotKwkJY2FzZSAkbGliZGlyIGluCi0rCQkgIFtcXC9dKikKLSsJCSAgICBh ZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJICAgIDs7Ci0r CQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGFkZD0iLWwkbmFtZSIKLSsJICAgIGZpCi0rCi0r CSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAgICB0ZXN0IC1uICIk YWRkX2RpciIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFkZF9kaXIgJGZpbmFsaXplX2RlcGxpYnMi Ci0rCSAgICAgIHRlc3QgLW4gIiRhZGQiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRhZGQgJGZpbmFs aXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBk ZXBsaWJzPSIkYWRkX2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVw bGlicz0iJGFkZCAkZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgZmkKLSsJZWxpZiB0ZXN0ICIkbGlu a21vZGUiID0gcHJvZzsgdGhlbgotKwkgICMgSGVyZSB3ZSBhc3N1bWUgdGhhdCBvbmUgb2YgaGFy ZGNvZGVfZGlyZWN0IG9yIGhhcmRjb2RlX21pbnVzX0wKLSsJICAjIGlzIG5vdCB1bnN1cHBvcnRl ZC4gIFRoaXMgaXMgdmFsaWQgb24gYWxsIGtub3duIHN0YXRpYyBhbmQKLSsJICAjIHNoYXJlZCBw bGF0Zm9ybXMuCi0rCSAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gdW5zdXBwb3J0ZWQ7 IHRoZW4KLSsJICAgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgbGlua2xpYj0iJG9sZF9saWJy YXJ5IgotKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRjb21waWxlX2RlcGxp YnMiCi0rCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGlyLyRsaW5rbGliICRmaW5hbGl6ZV9kZXBs aWJzIgotKwkgIGVsc2UKLSsJICAgIGNvbXBpbGVfZGVwbGlicz0iLWwkbmFtZSAtTCRkaXIgJGNv bXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRm aW5hbGl6ZV9kZXBsaWJzIgotKwkgIGZpCi0rCWVsaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSB5ZXM7IHRoZW4KLSsJICAjIE5vdCBhIHNoYXJlZCBsaWJyYXJ5Ci0rCSAgaWYgdGVzdCAi JGRlcGxpYnNfY2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgotKwkgICAgIyBXZSdyZSB0 cnlpbmcgbGluayBhIHNoYXJlZCBsaWJyYXJ5IGFnYWluc3QgYSBzdGF0aWMgb25lCi0rCSAgICAj IGJ1dCB0aGUgc3lzdGVtIGRvZXNuJ3Qgc3VwcG9ydCBpdC4KLSsKLSsJICAgICMgSnVzdCBwcmlu dCBhIHdhcm5pbmcgYW5kIGFkZCB0aGUgbGlicmFyeSB0byBkZXBlbmRlbmN5X2xpYnMgc28KLSsJ ICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhlIHN0YXRpYyBs aWJyYXJ5LgotKwkgICAgJEVDSE8KLSsJICAgICRFQ0hPICIqKiogV2FybmluZzogVGhpcyBzeXN0 ZW0gY2FuIG5vdCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAkbGliLiIKLSsJICAgICRFQ0hP ICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgbGluayBpbiB3aGVuIgotKwkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxp YnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCSAgICAkRUNI TyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFw cGVhciB0byBoYXZlLiIKLSsJICAgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzOyB0aGVuCi0rCSAg ICAgICRFQ0hPICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUgbGlicmFyeSwg bGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCi0rCSAgICAgICRFQ0hPICIqKiogYSBzdGF0aWMg bW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyBhcHBsaWNh dGlvbiIKLSsJICAgICAgJEVDSE8gIioqKiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFn IHRvIHJlc29sdmUgc3ltYm9scyBhdCBydW50aW1lLiIKLSsJICAgICAgaWYgdGVzdCAteiAiJGds b2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLSsJCSRFQ0hPCi0rCQkkRUNITyAiKioqIEhvd2V2ZXIs IHRoaXMgd291bGQgb25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1i b2wiCi0rCQkkRUNITyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBl cXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKLSsJCSRFQ0hPICIqKiogbm90IGZpbmQgc3Vj aCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0rCQkk RUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBtYXkg aGVscC4iCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBu bzsgdGhlbgotKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRfb2xkX2xpYnM9 eWVzCi0rCSAgICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkgICAgICBmaQot KwkgICAgZmkKLSsJICBlbHNlCi0rCSAgICBkZXBsaWJzPSIkZGlyLyRvbGRfbGlicmFyeSAkZGVw bGlicyIKLSsJICAgIGxpbmtfc3RhdGljPXllcwotKwkgIGZpCi0rCWZpICMgbGluayBzaGFyZWQv c3RhdGljIGxpYnJhcnk/Ci0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KLSsJ ICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgotKwkgICAgIHsgdGVzdCAiJGhhcmRj b2RlX2ludG9fbGlicyIgIT0geWVzIHx8Ci0rCSAgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMi ID0geWVzIHx8Ci0rCSAgICAgICB0ZXN0ICIkbGlua19zdGF0aWMiID0geWVzOyB9OyB0aGVuCi0r CSAgICAjIEV4dHJhY3QgLVIgZnJvbSBkZXBlbmRlbmN5X2xpYnMKLSsJICAgIHRlbXBfZGVwbGli cz0KLSsJICAgIGZvciBsaWJkaXIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgICAgY2Fz ZSAkbGliZGlyIGluCi0rCSAgICAgIC1SKikgZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGxpYmRp ciIKLSsJICAgICAgICAgICB0ZW1wX3hycGF0aD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCQkg ICBjYXNlICIgJHhycGF0aCAiIGluCi0rCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7Ci0rCQkg ICAqKSB4cnBhdGg9IiR4cnBhdGggJHRlbXBfeHJwYXRoIjs7Ci0rCQkgICBlc2FjOzsKLSsJICAg ICAgKikgdGVtcF9kZXBsaWJzPSIkdGVtcF9kZXBsaWJzICRsaWJkaXIiOzsKLSsJICAgICAgZXNh YwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJzIgotKwkg IGZpCi0rCi0rCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRhYnNk aXIiCi0rCSAgIyBMaW5rIGFnYWluc3QgdGhpcyBsaWJyYXJ5Ci0rCSAgdGVzdCAiJGxpbmtfc3Rh dGljIiA9IG5vICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGFic19sYWRpci8kbGFuYW1lICRuZXdk ZXBlbmRlbmN5X2xpYnMiCi0rCSAgIyAuLi4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMKLSsJICB0 bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBu ZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJICAgIGlm ICRvcHRfZHVwbGljYXRlX2RlcHMgOyB0aGVuCi0rCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGlu Ci0rCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMg JGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgZmkKLSsJICAgIHRtcF9saWJzPSIkdG1w X2xpYnMgJGRlcGxpYiIKLSsJICBkb25lCi0rCi0rCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxp YnMiICE9IG5vOyB0aGVuCi0rCSAgICAjIEFkZCB0aGUgc2VhcmNoIHBhdGhzIG9mIGFsbCBkZXBl bmRlbmN5IGxpYnJhcmllcwotKwkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBk bwotKwkgICAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgICAgLUwqKSBwYXRoPSIkZGVwbGliIiA7 OwotKwkgICAgICAqLmxhKQotKwkgICAgICAgIGZ1bmNfZGlybmFtZSAiJGRlcGxpYiIgIiIgIi4i Ci0rCQlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKwkJIyBXZSBuZWVkIGFuIGFic29sdXRl IHBhdGguCi0rCQljYXNlICRkaXIgaW4KLSsJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJz ZGlyPSIkZGlyIiA7OwotKwkJKikKLSsJCSAgYWJzZGlyPWBjZCAiJGRpciIgJiYgcHdkYAotKwkJ ICBpZiB0ZXN0IC16ICIkYWJzZGlyIjsgdGhlbgotKwkJICAgIGZ1bmNfd2FybmluZyAiY2Fubm90 IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRkaXInIgotKwkJICAgIGFi c2Rpcj0iJGRpciIKLSsJCSAgZmkKLSsJCSAgOzsKLSsJCWVzYWMKLSsJCWlmICRHUkVQICJeaW5z dGFsbGVkPW5vIiAkZGVwbGliID4gL2Rldi9udWxsOyB0aGVuCi0rCQljYXNlICRob3N0IGluCi0r CQkqLSotZGFyd2luKikKLSsJCSAgZGVwZGVwbD0KLSsJCSAgZXZhbCBkZXBsaWJyYXJ5X25hbWVz PWAke1NFRH0gLW4gLWUgJ3MvXmxpYnJhcnlfbmFtZXM9XCguKlwpJC9cMS9wJyAkZGVwbGliYAot KwkJICBpZiB0ZXN0IC1uICIkZGVwbGlicmFyeV9uYW1lcyIgOyB0aGVuCi0rCQkgICAgZm9yIHRt cCBpbiAkZGVwbGlicmFyeV9uYW1lcyA7IGRvCi0rCQkgICAgICBkZXBkZXBsPSR0bXAKLSsJCSAg ICBkb25lCi0rCQkgICAgaWYgdGVzdCAtZiAiJGFic2Rpci8kb2JqZGlyLyRkZXBkZXBsIiA7IHRo ZW4KLSsJCSAgICAgIGRlcGRlcGw9IiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIKLSsJCSAgICAg IGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0x9IC1MICRkZXBkZXBsIHwgYXdrICd7aWYgKE5S ID09IDIpIHtwcmludCAkMTtleGl0fX0nYAotKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0 IC16ICIkZGFyd2luX2luc3RhbGxfbmFtZSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0w2NH0gLUwgJGRlcGRlcGwgIHwgYXdrICd7 aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAotKyAgICAgICAgICAgICAgICAgICAgICBm aQotKwkJICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAke3dsfS1keWxpYl9m aWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgotKwkJICAgICAgbGlu a2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzIC1keWxpYl9maWxlICR7ZGFyd2luX2luc3RhbGxfbmFt ZX06JHtkZXBkZXBsfSIKLSsJCSAgICAgIHBhdGg9Ci0rCQkgICAgZmkKLSsJCSAgZmkKLSsJCSAg OzsKLSsJCSopCi0rCQkgIHBhdGg9Ii1MJGFic2Rpci8kb2JqZGlyIgotKwkJICA7OwotKwkJZXNh YwotKwkJZWxzZQotKwkJICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCgu KlwpJC9cMS9wJyAkZGVwbGliYAotKwkJICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCQkgICAg ZnVuY19mYXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hp dmUiCi0rCQkgIHRlc3QgIiRhYnNkaXIiICE9ICIkbGliZGlyIiAmJiBcCi0rCQkgICAgZnVuY193 YXJuaW5nICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVkIgotKwotKwkJICBwYXRoPSItTCRh YnNkaXIiCi0rCQlmaQotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBjYXNlICIgJGRlcGxp YnMgIiBpbgotKwkgICAgICAqIiAkcGF0aCAiKikgOzsKLSsJICAgICAgKikgZGVwbGlicz0iJHBh dGggJGRlcGxpYnMiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICBmaSAjIGxpbmtf YWxsX2RlcGxpYnMgIT0gbm8KLSsJZmkgIyBsaW5rbW9kZSA9IGxpYgotKyAgICAgIGRvbmUgIyBm b3IgZGVwbGliIGluICRsaWJzCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgot KwlpZiB0ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVuCi0rCSAgY29tcGlsZV9kZXBsaWJz PSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNvbXBpbGVfZGVwbGlicyIKLSsJICBmaW5h bGl6ZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGZpbmFsaXplX2RlcGxp YnMiCi0rCWVsc2UKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICJgJEVDSE8g IlggJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwp Lmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlmaQotKyAgICAgIGZpCi0rICAgICAg ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgotKyAgICAgIGlmIHRlc3QgIiRw YXNzIiA9IGRscHJlb3BlbjsgdGhlbgotKwkjIExpbmsgdGhlIGRscHJlb3BlbmVkIGxpYnJhcmll cyBiZWZvcmUgb3RoZXIgbGlicmFyaWVzCi0rCWZvciBkZXBsaWIgaW4gJHNhdmVfZGVwbGliczsg ZG8KLSsJICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwlkb25lCi0rICAgICAgZmkKLSsg ICAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gZGxvcGVuOyB0aGVuCi0rCWlmIHRlc3QgIiRwYXNzIiAh PSBjb252OyB0aGVuCi0rCSAgIyBNYWtlIHN1cmUgbGliX3NlYXJjaF9wYXRoIGNvbnRhaW5zIG9u bHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgIGxpYl9zZWFyY2hfcGF0aD0KLSsJICBmb3IgZGly IGluICRuZXdsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCSAgICBjYXNlICIkbGliX3NlYXJjaF9wYXRo ICIgaW4KLSsJICAgICoiICRkaXIgIiopIDs7Ci0rCSAgICAqKSBsaWJfc2VhcmNoX3BhdGg9IiRs aWJfc2VhcmNoX3BhdGggJGRpciIgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lCi0rCSAgbmV3bGli X3NlYXJjaF9wYXRoPQotKwlmaQotKwotKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiICE9ICJw cm9nLGxpbmsiOyB0aGVuCi0rCSAgdmFycz0iZGVwbGlicyIKLSsJZWxzZQotKwkgIHZhcnM9ImNv bXBpbGVfZGVwbGlicyBmaW5hbGl6ZV9kZXBsaWJzIgotKwlmaQotKwlmb3IgdmFyIGluICR2YXJz IGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAjIEFkZCBsaWJyYXJpZXMgdG8gJHZhciBpbiByZXZl cnNlIG9yZGVyCi0rCSAgZXZhbCB0bXBfbGlicz1cIlwkJHZhclwiCi0rCSAgbmV3X2xpYnM9Ci0r CSAgZm9yIGRlcGxpYiBpbiAkdG1wX2xpYnM7IGRvCi0rCSAgICAjIEZJWE1FOiBQZWRhbnRpY2Fs bHksIHRoaXMgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLCBzbwotKwkgICAgIyAgICAgICAgdGhh dCBzb21lIG5hc3R5IGRlcGVuZGVuY3kgbG9vcCBpc24ndCBhY2NpZGVudGFsbHkKLSsJICAgICMg ICAgICAgIGJyb2tlbjoKLSsJICAgICNuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiCi0rCSAg ICAjIFByYWdtYXRpY2FsbHksIHRoaXMgc2VlbXMgdG8gY2F1c2UgdmVyeSBmZXcgcHJvYmxlbXMg aW4KLSsJICAgICMgcHJhY3RpY2U6Ci0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikg bmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkgICAgLVIqKSA7OwotKwkgICAgKikK LSsJICAgICAgIyBBbmQgaGVyZSBpcyB0aGUgcmVhc29uOiB3aGVuIGEgbGlicmFyeSBhcHBlYXJz IG1vcmUKLSsJICAgICAgIyB0aGFuIG9uY2UgYXMgYW4gZXhwbGljaXQgZGVwZW5kZW5jZSBvZiBh IGxpYnJhcnksIG9yCi0rCSAgICAgICMgaXMgaW1wbGljaXRseSBsaW5rZWQgaW4gbW9yZSB0aGFu IG9uY2UgYnkgdGhlCi0rCSAgICAgICMgY29tcGlsZXIsIGl0IGlzIGNvbnNpZGVyZWQgc3BlY2lh bCwgYW5kIG11bHRpcGxlCi0rCSAgICAgICMgb2NjdXJyZW5jZXMgdGhlcmVvZiBhcmUgbm90IHJl bW92ZWQuICBDb21wYXJlIHRoaXMKLSsJICAgICAgIyB3aXRoIGhhdmluZyB0aGUgc2FtZSBsaWJy YXJ5IGJlaW5nIGxpc3RlZCBhcyBhCi0rCSAgICAgICMgZGVwZW5kZW5jeSBvZiBtdWx0aXBsZSBv dGhlciBsaWJyYXJpZXM6IGluIHRoaXMgY2FzZSwKLSsJICAgICAgIyB3ZSBrbm93IChwZWRhbnRp Y2FsbHksIHdlIGFzc3VtZSkgdGhlIGxpYnJhcnkgZG9lcyBub3QKLSsJICAgICAgIyBuZWVkIHRv IGJlIGxpc3RlZCBtb3JlIHRoYW4gb25jZSwgc28gd2Uga2VlcCBvbmx5IHRoZQotKwkgICAgICAj IGxhc3QgY29weS4gIFRoaXMgaXMgbm90IGFsd2F5cyByaWdodCwgYnV0IGl0IGlzIHJhcmUKLSsJ ICAgICAgIyBlbm91Z2ggdGhhdCB3ZSByZXF1aXJlIHVzZXJzIHRoYXQgcmVhbGx5IG1lYW4gdG8g cGxheQotKwkgICAgICAjIHN1Y2ggdW5wb3J0YWJsZSBsaW5raW5nIHRyaWNrcyB0byBsaW5rIHRo ZSBsaWJyYXJ5Ci0rCSAgICAgICMgdXNpbmcgLVdsLC1sbmFtZSwgc28gdGhhdCBsaWJ0b29sIGRv ZXMgbm90IGNvbnNpZGVyIGl0Ci0rCSAgICAgICMgZm9yIGR1cGxpY2F0ZSByZW1vdmFsLgotKwkg ICAgICBjYXNlICIgJHNwZWNpYWxkZXBsaWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikg bmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7OwotKwkgICAgICAqKQotKwkJY2FzZSAiICRu ZXdfbGlicyAiIGluCi0rCQkqIiAkZGVwbGliICIqKSA7OwotKwkJKikgbmV3X2xpYnM9IiRkZXBs aWIgJG5ld19saWJzIiA7OwotKwkJZXNhYwotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICA7 OwotKwkgICAgZXNhYwotKwkgIGRvbmUKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGlu ICRuZXdfbGliczsgZG8KLSsJICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAgLUwqKQotKwkgICAg ICBjYXNlICIgJHRtcF9saWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJICAg ICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAg ICAgIDs7Ci0rCSAgICAqKSB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiIDs7Ci0rCSAgICBl c2FjCi0rCSAgZG9uZQotKwkgIGV2YWwgJHZhcj1cIiR0bXBfbGlic1wiCi0rCWRvbmUgIyBmb3Ig dmFyCi0rICAgICAgZmkKLSsgICAgICAjIExhc3Qgc3RlcDogcmVtb3ZlIHJ1bnRpbWUgbGlicyBm cm9tIGRlcGVuZGVuY3lfbGlicwotKyAgICAgICMgKHRoZXkgc3RheSBpbiBkZXBsaWJzKQotKyAg ICAgIHRtcF9saWJzPQotKyAgICAgIGZvciBpIGluICRkZXBlbmRlbmN5X2xpYnMgOyBkbwotKwlj YXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggIiBpbgot KwkqIiAkaSAiKikKLSsJICBpPSIiCi0rCSAgOzsKLSsJZXNhYwotKwlpZiB0ZXN0IC1uICIkaSIg OyB0aGVuCi0rCSAgdG1wX2xpYnM9IiR0bXBfbGlicyAkaSIKLSsJZmkKLSsgICAgICBkb25lCi0r ICAgICAgZGVwZW5kZW5jeV9saWJzPSR0bXBfbGlicwotKyAgICBkb25lICMgZm9yIHBhc3MKLSsg ICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsgICAgICBkbGZpbGVzPSIkbmV3 ZGxmaWxlcyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVz dCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKyAgICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZp bGVzIgotKyAgICBmaQotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBvbGRsaWIpCi0r ICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIg IT0gbm87IHRoZW4KLSsJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFy Y2hpdmVzIgotKyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAgICAg ICpcIC1sKiB8ICpcIC1MKikKLSsJZnVuY193YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJlIGln bm9yZWQgZm9yIGFyY2hpdmVzIiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICB0ZXN0IC1uICIk cnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3IgYXJj aGl2ZXMiCi0rCi0rICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYgXAotKwlmdW5jX3dhcm5pbmcg IlxgLVInIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRlc3QgLW4gIiR2aW5m byIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXIn IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAm JiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMi Ci0rCi0rICAgICAgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzJGV4cG9ydF9zeW1ib2xzX3JlZ2V4 IiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtZXhwb3J0LXN5bWJvbHMnIGlzIGlnbm9yZWQgZm9y IGFyY2hpdmVzIgotKwotKyAgICAgICMgTm93IHNldCB0aGUgdmFyaWFibGVzIGZvciBidWlsZGlu ZyBvbGQgbGlicmFyaWVzLgotKyAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKyAgICAgIG9s ZGxpYnM9IiRvdXRwdXQiCi0rICAgICAgb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMiCi0rICAgICAg OzsKLSsKLSsgICAgbGliKQotKyAgICAgICMgTWFrZSBzdXJlIHdlIG9ubHkgZ2VuZXJhdGUgbGli cmFyaWVzIG9mIHRoZSBmb3JtIGBsaWJOQU1FLmxhJy4KLSsgICAgICBjYXNlICRvdXRwdXRuYW1l IGluCi0rICAgICAgbGliKikKLSsJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRvdXRwdXRu YW1lIgotKwluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJZXZhbCBzaGFyZWRfZXh0PVwi JHNocmV4dF9jbWRzXCIKLSsJZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCi0rCTs7Ci0r ICAgICAgKikKLSsJdGVzdCAiJG1vZHVsZSIgPSBubyAmJiBcCi0rCSAgZnVuY19mYXRhbF9oZWxw ICJsaWJ0b29sIGxpYnJhcnkgXGAkb3V0cHV0JyBtdXN0IGJlZ2luIHdpdGggXGBsaWInIgotKwot KwlpZiB0ZXN0ICIkbmVlZF9saWJfcHJlZml4IiAhPSBubzsgdGhlbgotKwkgICMgQWRkIHRoZSAi bGliIiBwcmVmaXggZm9yIG1vZHVsZXMgaWYgcmVxdWlyZWQKLSsJICBmdW5jX3N0cmlwbmFtZSAn JyAnLmxhJyAiJG91dHB1dG5hbWUiCi0rCSAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0r CSAgZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4dF9jbWRzXCIKLSsJICBldmFsIGxpYm5hbWU9XCIk bGlibmFtZV9zcGVjXCIKLSsJZWxzZQotKwkgIGZ1bmNfc3RyaXBuYW1lICcnICcubGEnICIkb3V0 cHV0bmFtZSIKLSsJICBsaWJuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJZmkKLSsJOzsK LSsgICAgICBlc2FjCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJG9ianMiOyB0aGVuCi0rCWlmIHRl c3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KLSsJICBmdW5jX2Zh dGFsX2Vycm9yICJjYW5ub3QgYnVpbGQgbGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgZnJvbSBu b24tbGlidG9vbCBvYmplY3RzIG9uIHRoaXMgaG9zdDokb2JqcyIKLSsJZWxzZQotKwkgICRFQ0hP Ci0rCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0 cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgotKwkgICRFQ0hPICIqKiogb2JqZWN0cyAkb2Jq cyBpcyBub3QgcG9ydGFibGUhIgotKwkgIGxpYm9ianM9IiRsaWJvYmpzICRvYmpzIgotKwlmaQot KyAgICAgIGZpCi0rCi0rICAgICAgdGVzdCAiJGRsc2VsZiIgIT0gbm8gJiYgXAotKwlmdW5jX3dh cm5pbmcgIlxgLWRsb3BlbiBzZWxmJyBpcyBpZ25vcmVkIGZvciBsaWJ0b29sIGxpYnJhcmllcyIK LSsKLSsgICAgICBzZXQgZHVtbXkgJHJwYXRoCi0rICAgICAgc2hpZnQKLSsgICAgICB0ZXN0ICIk IyIgLWd0IDEgJiYgXAotKwlmdW5jX3dhcm5pbmcgImlnbm9yaW5nIG11bHRpcGxlIFxgLXJwYXRo J3MgZm9yIGEgbGlidG9vbCBsaWJyYXJ5IgotKwotKyAgICAgIGluc3RhbGxfbGliZGlyPSIkMSIK LSsKLSsgICAgICBvbGRsaWJzPQotKyAgICAgIGlmIHRlc3QgLXogIiRycGF0aCI7IHRoZW4KLSsJ aWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIEJ1aWxkaW5n IGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LgotKwkgICMgU29tZSBjb21waWxlcnMgaGF2 ZSBwcm9ibGVtcyB3aXRoIGEgYC5hbCcgZXh0ZW5zaW9uIHNvCi0rCSAgIyBjb252ZW5pZW5jZSBs aWJyYXJpZXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZXh0ZW5zaW9uIGFuCi0rCSAgIyBhcmNoaXZl IG5vcm1hbGx5IHdvdWxkLgotKwkgIG9sZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRs aWJleHQgJG9sZGxpYnMiCi0rCSAgYnVpbGRfbGlidG9vbF9saWJzPWNvbnZlbmllbmNlCi0rCSAg YnVpbGRfb2xkX2xpYnM9eWVzCi0rCWZpCi0rCi0rCXRlc3QgLW4gIiR2aW5mbyIgJiYgXAotKwkg IGZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvLy12ZXJzaW9uLW51bWJlcicgaXMgaWdub3Jl ZCBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzIgotKwotKwl0ZXN0IC1uICIkcmVsZWFzZSIgJiYg XAotKwkgIGZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3IgY29udmVuaWVu Y2UgbGlicmFyaWVzIgotKyAgICAgIGVsc2UKLSsKLSsJIyBQYXJzZSB0aGUgdmVyc2lvbiBpbmZv cm1hdGlvbiBhcmd1bWVudC4KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JzonCi0rCXNldCBkdW1t eSAkdmluZm8gMCAwIDAKLSsJc2hpZnQKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCi0rCXRlc3QgLW4g IiQ3IiAmJiBcCi0rCSAgZnVuY19mYXRhbF9oZWxwICJ0b28gbWFueSBwYXJhbWV0ZXJzIHRvIFxg LXZlcnNpb24taW5mbyciCi0rCi0rCSMgY29udmVydCBhYnNvbHV0ZSB2ZXJzaW9uIG51bWJlcnMg dG8gbGlidG9vbCBhZ2VzCi0rCSMgdGhpcyByZXRhaW5zIGNvbXBhdGliaWxpdHkgd2l0aCAubGEg ZmlsZXMgYW5kIGF0dGVtcHRzCi0rCSMgdG8gbWFrZSB0aGUgY29kZSBiZWxvdyBhIGJpdCBtb3Jl IGNvbXByZWhlbnNpYmxlCi0rCi0rCWNhc2UgJHZpbmZvX251bWJlciBpbgotKwl5ZXMpCi0rCSAg bnVtYmVyX21ham9yPSIkMSIKLSsJICBudW1iZXJfbWlub3I9IiQyIgotKwkgIG51bWJlcl9yZXZp c2lvbj0iJDMiCi0rCSAgIwotKwkgICMgVGhlcmUgYXJlIHJlYWxseSBvbmx5IHR3byBraW5kcyAt LSB0aG9zZSB0aGF0Ci0rCSAgIyB1c2UgdGhlIGN1cnJlbnQgcmV2aXNpb24gYXMgdGhlIG1ham9y IHZlcnNpb24KLSsJICAjIGFuZCB0aG9zZSB0aGF0IHN1YnRyYWN0IGFnZSBhbmQgdXNlIGFnZSBh cwotKwkgICMgYSBtaW5vciB2ZXJzaW9uLiAgQnV0LCB0aGVuIHRoZXJlIGlzIGlyaXgKLSsJICAj IHdoaWNoIGhhcyBhbiBleHRyYSAxIGFkZGVkIGp1c3QgZm9yIGZ1bgotKwkgICMKLSsJICBjYXNl ICR2ZXJzaW9uX3R5cGUgaW4KLSsJICBkYXJ3aW58bGludXh8b3NmfHdpbmRvd3N8bm9uZSkKLSsJ ICAgIGZ1bmNfYXJpdGggJG51bWJlcl9tYWpvciArICRudW1iZXJfbWlub3IKLSsJICAgIGN1cnJl bnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCi0rCSAgICBy ZXZpc2lvbj0iJG51bWJlcl9yZXZpc2lvbiIKLSsJICAgIDs7Ci0rCSAgZnJlZWJzZC1hb3V0fGZy ZWVic2QtZWxmfHN1bm9zKQotKwkgICAgY3VycmVudD0iJG51bWJlcl9tYWpvciIKLSsJICAgIHJl dmlzaW9uPSIkbnVtYmVyX21pbm9yIgotKwkgICAgYWdlPSIwIgotKwkgICAgOzsKLSsJICBpcml4 fG5vbnN0b3B1eCkKLSsJICAgIGZ1bmNfYXJpdGggJG51bWJlcl9tYWpvciArICRudW1iZXJfbWlu b3IKLSsJICAgIGN1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICBhZ2U9IiRudW1iZXJf bWlub3IiCi0rCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKLSsJICAgIGx0X2lyaXhfaW5j cmVtZW50PW5vCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICA7OwotKwlubykKLSsJICBjdXJyZW50 PSIkMSIKLSsJICByZXZpc2lvbj0iJDIiCi0rCSAgYWdlPSIkMyIKLSsJICA7OwotKwllc2FjCi0r Ci0rCSMgQ2hlY2sgdGhhdCBlYWNoIG9mIHRoZSB0aGluZ3MgYXJlIHZhbGlkIG51bWJlcnMuCi0r CWNhc2UgJGN1cnJlbnQgaW4KLSsJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxb MS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OwotKwkqKQot KwkgIGZ1bmNfZXJyb3IgIkNVUlJFTlQgXGAkY3VycmVudCcgbXVzdCBiZSBhIG5vbm5lZ2F0aXZl IGludGVnZXIiCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2 ZXJzaW9uIGluZm9ybWF0aW9uIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJY2FzZSAkcmV2aXNpb24g aW4KLSsJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1b MC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OwotKwkqKQotKwkgIGZ1bmNfZXJyb3Ig IlJFVklTSU9OIFxgJHJldmlzaW9uJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKLSsJ ICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3Jt YXRpb24iCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNlICRhZ2UgaW4KLSsJMHxbMS05XXxbMS05 XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XXxbMS05XVswLTldWzAt OV1bMC05XVswLTldKSA7OwotKwkqKQotKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIG11c3Qg YmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZv JyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKLSsJICA7OwotKwllc2FjCi0rCi0r CWlmIHRlc3QgIiRhZ2UiIC1ndCAiJGN1cnJlbnQiOyB0aGVuCi0rCSAgZnVuY19lcnJvciAiQUdF IFxgJGFnZScgaXMgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGludGVyZmFjZSBudW1iZXIgXGAk Y3VycmVudCciCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2 ZXJzaW9uIGluZm9ybWF0aW9uIgotKwlmaQotKwotKwkjIENhbGN1bGF0ZSB0aGUgdmVyc2lvbiB2 YXJpYWJsZXMuCi0rCW1ham9yPQotKwl2ZXJzdWZmaXg9Ci0rCXZlcnN0cmluZz0KLSsJY2FzZSAk dmVyc2lvbl90eXBlIGluCi0rCW5vbmUpIDs7Ci0rCi0rCWRhcndpbikKLSsJICAjIExpa2UgTGlu dXgsIGJ1dCB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gYXZhaWxhYmxlIGluCi0rCSAgIyB2ZXJz dHJpbmcgZm9yIGNvZGluZyBpdCBpbnRvIHRoZSBsaWJyYXJ5IGhlYWRlcgotKwkgIGZ1bmNfYXJp dGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgIHZl cnN1ZmZpeD0iJG1ham9yLiRhZ2UuJHJldmlzaW9uIgotKwkgICMgRGFyd2luIGxkIGRvZXNuJ3Qg bGlrZSAwIGZvciB0aGVzZSBvcHRpb25zLi4uCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCArIDEK LSsJICBtaW5vcl9jdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgIHhsY3ZlcnN0cmluZz0i JHt3bH0tY29tcGF0aWJpbGl0eV92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQgJHt3bH0tY3Vy cmVudF92ZXJzaW9uICR7d2x9JG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgotKwkgIHZlcnN0cmlu Zz0iLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkbWlub3JfY3VycmVudCAtY3VycmVudF92ZXJzaW9u ICRtaW5vcl9jdXJyZW50LiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwlmcmVlYnNkLWFvdXQpCi0r CSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2aXNpb24i OwotKwkgIDs7Ci0rCi0rCWZyZWVic2QtZWxmKQotKwkgIG1ham9yPSIuJGN1cnJlbnQiCi0rCSAg dmVyc3VmZml4PSIuJGN1cnJlbnQiCi0rCSAgOzsKLSsKLSsJaXJpeCB8IG5vbnN0b3B1eCkKLSsJ ICBpZiB0ZXN0ICJYJGx0X2lyaXhfaW5jcmVtZW50IiA9ICJYbm8iOyB0aGVuCi0rCSAgICBmdW5j X2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkgIGVsc2UKLSsJICAgIGZ1bmNfYXJpdGggJGN1cnJl bnQgLSAkYWdlICsgMQotKwkgIGZpCi0rCSAgbWFqb3I9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCi0r CSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgICBub25zdG9wdXgpIHZlcnN0cmluZ19wcmVm aXg9bm9uc3RvcHV4IDs7Ci0rCSAgICAqKSAgICAgICAgIHZlcnN0cmluZ19wcmVmaXg9c2dpIDs7 Ci0rCSAgZXNhYwotKwkgIHZlcnN0cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJHJldmlz aW9uIgotKwotKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21w YXRpYmxlIHdpdGguCi0rCSAgbG9vcD0kcmV2aXNpb24KLSsJICB3aGlsZSB0ZXN0ICIkbG9vcCIg LW5lIDA7IGRvCi0rCSAgICBmdW5jX2FyaXRoICRyZXZpc2lvbiAtICRsb29wCi0rCSAgICBpZmFj ZT0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGZ1bmNfYXJpdGggJGxvb3AgLSAxCi0rCSAgICBs b29wPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZp eCRtYWpvci4kaWZhY2U6JHZlcnN0cmluZyIKLSsJICBkb25lCi0rCi0rCSAgIyBCZWZvcmUgdGhp cyBwb2ludCwgJG1ham9yIG11c3Qgbm90IGNvbnRhaW4gYC4nLgotKwkgIG1ham9yPS4kbWFqb3IK LSsJICB2ZXJzdWZmaXg9IiRtYWpvci4kcmV2aXNpb24iCi0rCSAgOzsKLSsKLSsJbGludXgpCi0r CSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVz dWx0Ci0rCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCi0rCSAgOzsKLSsKLSsJ b3NmKQotKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgbWFqb3I9LiRmdW5jX2Fy aXRoX3Jlc3VsdAotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRhZ2UuJHJldmlzaW9uIgotKwkg IHZlcnN0cmluZz0iJGN1cnJlbnQuJGFnZS4kcmV2aXNpb24iCi0rCi0rCSAgIyBBZGQgaW4gYWxs IHRoZSBpbnRlcmZhY2VzIHRoYXQgd2UgYXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJICBsb29wPSRh Z2UKLSsJICB3aGlsZSB0ZXN0ICIkbG9vcCIgLW5lIDA7IGRvCi0rCSAgICBmdW5jX2FyaXRoICRj dXJyZW50IC0gJGxvb3AKLSsJICAgIGlmYWNlPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgZnVu Y19hcml0aCAkbG9vcCAtIDEKLSsJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICB2 ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtpZmFjZX0uMCIKLSsJICBkb25lCi0rCi0rCSAgIyBNYWtl IGV4ZWN1dGFibGVzIGRlcGVuZCBvbiBvdXIgY3VycmVudCB2ZXJzaW9uLgotKwkgIHZlcnN0cmlu Zz0iJHZlcnN0cmluZzoke2N1cnJlbnR9LjAiCi0rCSAgOzsKLSsKLSsJcW54KQotKwkgIG1ham9y PSIuJGN1cnJlbnQiCi0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQiCi0rCSAgOzsKLSsKLSsJc3Vu b3MpCi0rCSAgbWFqb3I9Ii4kY3VycmVudCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudC4kcmV2 aXNpb24iCi0rCSAgOzsKLSsKLSsJd2luZG93cykKLSsJICAjIFVzZSAnLScgcmF0aGVyIHRoYW4g Jy4nLCBzaW5jZSB3ZSBvbmx5IHdhbnQgb25lCi0rCSAgIyBleHRlbnNpb24gb24gRE9TIDguMyBm aWxlc3lzdGVtcy4KLSsJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkgIG1ham9yPSRm dW5jX2FyaXRoX3Jlc3VsdAotKwkgIHZlcnN1ZmZpeD0iLSRtYWpvciIKLSsJICA7OwotKwotKwkq KQotKwkgIGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiAidW5rbm93biBsaWJyYXJ5IHZlcnNpb24g dHlwZSBcYCR2ZXJzaW9uX3R5cGUnIgotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJIyBDbGVhciB0aGUg dmVyc2lvbiBpbmZvIGlmIHdlIGRlZmF1bHRlZCwgYW5kIHRoZXkgc3BlY2lmaWVkIGEgcmVsZWFz ZS4KLSsJaWYgdGVzdCAteiAiJHZpbmZvIiAmJiB0ZXN0IC1uICIkcmVsZWFzZSI7IHRoZW4KLSsJ ICBtYWpvcj0KLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJICBkYXJ3aW4pCi0rCSAgICAj IHdlIGNhbid0IGNoZWNrIGZvciAiMC4wIiBpbiBhcmNoaXZlX2NtZHMgZHVlIHRvIHF1b3RpbmcK LSsJICAgICMgcHJvYmxlbXMsIHNvIHdlIHJlc2V0IGl0IGNvbXBsZXRlbHkKLSsJICAgIHZlcnN0 cmluZz0KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIHZlcnN0cmluZz0iMC4wIgotKwkgICAgOzsK LSsJICBlc2FjCi0rCSAgaWYgdGVzdCAiJG5lZWRfdmVyc2lvbiIgPSBubzsgdGhlbgotKwkgICAg dmVyc3VmZml4PQotKwkgIGVsc2UKLSsJICAgIHZlcnN1ZmZpeD0iLjAuMCIKLSsJICBmaQotKwlm aQotKwotKwkjIFJlbW92ZSB2ZXJzaW9uIGluZm8gZnJvbSBuYW1lIGlmIHZlcnNpb25pbmcgc2hv dWxkIGJlIGF2b2lkZWQKLSsJaWYgdGVzdCAiJGF2b2lkX3ZlcnNpb24iID0geWVzICYmIHRlc3Qg IiRuZWVkX3ZlcnNpb24iID0gbm87IHRoZW4KLSsJICBtYWpvcj0KLSsJICB2ZXJzdWZmaXg9Ci0r CSAgdmVyc3RyaW5nPSIiCi0rCWZpCi0rCi0rCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBhcmNoaXZl IHdpbGwgaGF2ZSB1bmRlZmluZWQgc3ltYm9scy4KLSsJaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5l ZCIgPSB5ZXM7IHRoZW4KLSsJICBpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWciID0gdW5z dXBwb3J0ZWQ7IHRoZW4KLSsJICAgIGZ1bmNfd2FybmluZyAidW5kZWZpbmVkIHN5bWJvbHMgbm90 IGFsbG93ZWQgaW4gJGhvc3Qgc2hhcmVkIGxpYnJhcmllcyIKLSsJICAgIGJ1aWxkX2xpYnRvb2xf bGlicz1ubwotKwkgICAgYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAgZmkKLSsJZWxzZQotKwkgICMg RG9uJ3QgYWxsb3cgdW5kZWZpbmVkIHN5bWJvbHMuCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 IiRub191bmRlZmluZWRfZmxhZyIKLSsJZmkKLSsKLSsgICAgICBmaQotKwotKyAgICAgIGZ1bmNf Z2VuZXJhdGVfZGxzeW1zICIkbGlibmFtZSIgIiRsaWJuYW1lIiAieWVzIgotKyAgICAgIGxpYm9i anM9IiRsaWJvYmpzICRzeW1maWxlb2JqIgotKyAgICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAi ICYmIGxpYm9ianM9Ci0rCi0rICAgICAgaWYgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgot KwkjIFJlbW92ZSBvdXIgb3V0cHV0cywgYnV0IGRvbid0IHJlbW92ZSBvYmplY3QgZmlsZXMgc2lu Y2UgdGhleQotKwkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2Jq ZWN0cy4KLSsJcmVtb3ZlbGlzdD0KLSsJdGVtcHJlbW92ZWxpc3Q9YCRFQ0hPICIkb3V0cHV0X29i amRpci8qImAKLSsJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBkbwotKwkgIGNhc2UgJHAgaW4K LSsJICAgICouJG9iamV4dCB8ICouZ2NubykKLSsJICAgICAgIDs7Ci0rCSAgICAkb3V0cHV0X29i amRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiogfCAkb3V0cHV0X29i amRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQotKwkgICAgICAgaWYgdGVzdCAiWCRwcmVjaW91 c19maWxlc19yZWdleCIgIT0gIlgiOyB0aGVuCi0rCQkgaWYgJEVDSE8gIiRwIiB8ICRFR1JFUCAt ZSAiJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+JjEKLSsJCSB0aGVuCi0rCQkg ICBjb250aW51ZQotKwkJIGZpCi0rCSAgICAgICBmaQotKwkgICAgICAgcmVtb3ZlbGlzdD0iJHJl bW92ZWxpc3QgJHAiCi0rCSAgICAgICA7OwotKwkgICAgKikgOzsKLSsJICBlc2FjCi0rCWRvbmUK LSsJdGVzdCAtbiAiJHJlbW92ZWxpc3QiICYmIFwKLSsJICBmdW5jX3Nob3dfZXZhbCAiJHtSTX1y IFwkcmVtb3ZlbGlzdCIKLSsgICAgICBmaQotKwotKyAgICAgICMgTm93IHNldCB0aGUgdmFyaWFi bGVzIGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0gY29udmVuaWVu Y2UgOyB0aGVuCi0rCW9sZGxpYnM9IiRvbGRsaWJzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRs aWJleHQiCi0rCi0rCSMgVHJhbnNmb3JtIC5sbyBmaWxlcyB0byAubyBmaWxlcy4KLSsJb2xkb2Jq cz0iJG9ianMgImAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHts aWJleHR9JyQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAKLSsgICAgICBmaQotKwotKyAgICAgICMg RWxpbWluYXRlIGFsbCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMuCi0rICAgICAgI2ZvciBwYXRoIGlu ICRub3RpbnN0X3BhdGg7IGRvCi0rICAgICAgIwlsaWJfc2VhcmNoX3BhdGg9YCRFQ0hPICJYJGxp Yl9zZWFyY2hfcGF0aCAiIHwgJFhzZWQgLWUgInMlICRwYXRoICUgJWciYAotKyAgICAgICMJZGVw bGlicz1gJEVDSE8gIlgkZGVwbGlicyAiIHwgJFhzZWQgLWUgInMlIC1MJHBhdGggJSAlZyJgCi0r ICAgICAgIwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYJGRlcGVuZGVuY3lfbGlicyAiIHwgJFhz ZWQgLWUgInMlIC1MJHBhdGggJSAlZyJgCi0rICAgICAgI2RvbmUKLSsKLSsgICAgICBpZiB0ZXN0 IC1uICIkeHJwYXRoIjsgdGhlbgotKwkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGgg ZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCi0rCXRlbXBfeHJwYXRoPQotKwlmb3IgbGliZGlyIGluICR4 cnBhdGg7IGRvCi0rCSAgdGVtcF94cnBhdGg9IiR0ZW1wX3hycGF0aCAtUiRsaWJkaXIiCi0rCSAg Y2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICop IGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKLSsJICBlc2FjCi0r CWRvbmUKLSsJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8IHRlc3QgIiRi dWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX3hy cGF0aCAkZGVwZW5kZW5jeV9saWJzIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBNYWtl IHN1cmUgZGxmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxlcyB0aGF0IHdvbid0IGJlIGRs cHJlb3BlbmVkCi0rICAgICAgb2xkX2RsZmlsZXM9IiRkbGZpbGVzIgotKyAgICAgIGRsZmlsZXM9 Ci0rICAgICAgZm9yIGxpYiBpbiAkb2xkX2RsZmlsZXM7IGRvCi0rCWNhc2UgIiAkZGxwcmVmaWxl cyAkZGxmaWxlcyAiIGluCi0rCSoiICRsaWIgIiopIDs7Ci0rCSopIGRsZmlsZXM9IiRkbGZpbGVz ICRsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rCi0rICAgICAgIyBNYWtlIHN1cmUgZGxw cmVmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxlcwotKyAgICAgIG9sZF9kbHByZWZpbGVz PSIkZGxwcmVmaWxlcyIKLSsgICAgICBkbHByZWZpbGVzPQotKyAgICAgIGZvciBsaWIgaW4gJG9s ZF9kbHByZWZpbGVzOyBkbwotKwljYXNlICIkZGxwcmVmaWxlcyAiIGluCi0rCSoiICRsaWIgIiop IDs7Ci0rCSopIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIiIDs7Ci0rCWVzYWMKLSsgICAg ICBkb25lCi0rCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRo ZW4KLSsJaWYgdGVzdCAtbiAiJHJwYXRoIjsgdGhlbgotKwkgIGNhc2UgJGhvc3QgaW4KLSsJICAq LSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1iZW9z KiB8ICotY2VnY2MqKQotKwkgICAgIyB0aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUg YSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQotKwkgICAgOzsKLSsJICAqLSotcmhhcHNvZHkqIHwgKi0q LWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBpcyBpbiB0aGUgU3lz dGVtIGZyYW1ld29yawotKwkgICAgZGVwbGlicz0iJGRlcGxpYnMgU3lzdGVtLmx0ZnJhbWV3b3Jr IgotKwkgICAgOzsKLSsJICAqLSotbmV0YnNkKikKLSsJICAgICMgRG9uJ3QgbGluayB3aXRoIGxp YmMgdW50aWwgdGhlIGEub3V0IGxkLnNvIGlzIGZpeGVkLgotKwkgICAgOzsKLSsJICAqLSotb3Bl bmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKLSsJICAgICMgRG8gbm90IGlu Y2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgotKwkgICAgOzsKLSsJICAq LSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCi0rCSAgICAjIENhdXNlcyBwcm9ibGVtcyB3aXRo IF9fY3R5cGUKLSsJICAgIDs7Ci0rCSAgKi0qLXN5c3Y0LjJ1dzIqIHwgKi0qLXN5c3Y1KiB8ICot Ki11bml4d2FyZSogfCAqLSotT3BlblVOSVgqKQotKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxp YmMgaW4gdGhlIGNvcnJlY3QgcGxhY2UgZm9yIHRocmVhZHMgdG8gd29yawotKwkgICAgOzsKLSsJ ICAqKQotKwkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlm IG5lY2Vzc2FyeS4KLSsJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX25lZWRfbGMiID0gInll cyI7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYnMgLWxjIgotKwkgICAgZmkKLSsJICAg IDs7Ci0rCSAgZXNhYwotKwlmaQotKwotKwkjIFRyYW5zZm9ybSBkZXBsaWJzIGludG8gb25seSBk ZXBsaWJzIHRoYXQgY2FuIGJlIGxpbmtlZCBpbiBzaGFyZWQuCi0rCW5hbWVfc2F2ZT0kbmFtZQot KwlsaWJuYW1lX3NhdmU9JGxpYm5hbWUKLSsJcmVsZWFzZV9zYXZlPSRyZWxlYXNlCi0rCXZlcnN1 ZmZpeF9zYXZlPSR2ZXJzdWZmaXgKLSsJbWFqb3Jfc2F2ZT0kbWFqb3IKLSsJIyBJJ20gbm90IHN1 cmUgaWYgSSdtIHRyZWF0aW5nIHRoZSByZWxlYXNlIGNvcnJlY3RseS4gIEkgdGhpbmsKLSsJIyBy ZWxlYXNlIHNob3VsZCBzaG93IHVwIGluIHRoZSAtbCAoaWUgLWxnbXA1KSBzbyB3ZSBkb24ndCB3 YW50IHRvCi0rCSMgYWRkIGl0IGluIHR3aWNlLiAgSXMgdGhhdCBjb3JyZWN0PwotKwlyZWxlYXNl PSIiCi0rCXZlcnN1ZmZpeD0iIgotKwltYWpvcj0iIgotKwluZXdkZXBsaWJzPQotKwlkcm9wcGVk ZGVwcz1ubwotKwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotKwlwYXNzX2FsbCkKLSsJ ICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGljLiAgRXZlcnl0aGluZyB3b3Jrcy4KLSsJ ICAjIFRoaXMgbWlnaHQgYmUgYSBsaXR0bGUgbmFpdmUuICBXZSBtaWdodCB3YW50IHRvIGNoZWNr Ci0rCSAgIyB3aGV0aGVyIHRoZSBsaWJyYXJ5IGV4aXN0cyBvciBub3QuICBCdXQgdGhpcyBpcyBv bgotKwkgICMgb3NmMyAmIG9zZjQgYW5kIEknbSBub3QgcmVhbGx5IHN1cmUuLi4gSnVzdAotKwkg ICMgaW1wbGVtZW50aW5nIHdoYXQgd2FzIGFscmVhZHkgdGhlIGJlaGF2aW9yLgotKwkgIG5ld2Rl cGxpYnM9JGRlcGxpYnMKLSsJICA7OwotKwl0ZXN0X2NvbXBpbGUpCi0rCSAgIyBUaGlzIGNvZGUg c3RyZXNzZXMgdGhlICJsaWJyYXJpZXMgYXJlIHByb2dyYW1zIiBwYXJhZGlnbSB0byBpdHMKLSsJ ICAjIGxpbWl0cy4gTWF5YmUgZXZlbiBicmVha3MgaXQuICBXZSBjb21waWxlIGEgcHJvZ3JhbSwg bGlua2luZyBpdAotKwkgICMgYWdhaW5zdCB0aGUgZGVwbGlicyBhcyBhIHByb3h5IGZvciB0aGUg bGlicmFyeS4gIFRoZW4gd2UgY2FuIGNoZWNrCi0rCSAgIyB3aGV0aGVyIHRoZXkgbGlua2VkIGlu IHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkgd2l0aCBsZGQuCi0rCSAgJG9wdF9kcnlfcnVuIHx8 ICRSTSBjb25mdGVzdC5jCi0rCSAgY2F0ID4gY29uZnRlc3QuYyA8PEVPRgotKwkgIGludCBtYWlu KCkgeyByZXR1cm4gMDsgfQotK0VPRgotKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QK LSsJICBpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkZGVwbGliczsg dGhlbgotKwkgICAgbGRkX291dHB1dD1gbGRkIGNvbmZ0ZXN0YAotKwkgICAgZm9yIGkgaW4gJGRl cGxpYnM7IGRvCi0rCSAgICAgIGNhc2UgJGkgaW4KLSsJICAgICAgLWwqKQotKwkJZnVuY19zdHJp cG5hbWUgLWwgJycgIiRpIgotKwkJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCQlpZiB0 ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIg OyB0aGVuCi0rCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkJICAqIiAkaSAi KikKLSsJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCSAgICBpPSIiCi0rCQkg ICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJCWlmIHRlc3QgLW4gIiRpIiA7IHRoZW4KLSsJCSAg bGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCQkgIGRlcGxpYl9t YXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiImAKLSsJCSAgc2V0 IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKLSsJCSAgZGVwbGliX21hdGNoPSQxCi0rCQkg IGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7 IHRoZW4KLSsJCSAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCSAgZWxzZQotKwkJ ICAgIGRyb3BwZWRkZXBzPXllcwotKwkJICAgICRFQ0hPCi0rCQkgICAgJEVDSE8gIioqKiBXYXJu aW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgot KwkJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJy YXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkJICAgICRFQ0hPICIqKiogeW91IGxp bmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBh IgotKwkJICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNo IEkgYmVsaWV2ZSB5b3UgZG8gbm90IGhhdmUiCi0rCQkgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEg dGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIGl0IGZv ciIKLSsJCSAgICAkRUNITyAiKioqIGl0cyBkeW5hbWljIGRlcGVuZGVuY3kgbGlzdCB0aGF0IHBy b2dyYW1zIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgotKwkJICBmaQotKwkJZmkKLSsJ CTs7Ci0rCSAgICAgICopCi0rCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkaSIKLSsJCTs7Ci0r CSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICBlbHNlCi0rCSAgICAjIEVycm9yIG9jY3VycmVk IGluIHRoZSBmaXJzdCBjb21waWxlLiAgTGV0J3MgdHJ5IHRvIHNhbHZhZ2UKLSsJICAgICMgdGhl IHNpdHVhdGlvbjogQ29tcGlsZSBhIHNlcGFyYXRlIHByb2dyYW0gZm9yIGVhY2ggbGlicmFyeS4K LSsJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbwotKwkgICAgICBjYXNlICRpIGluCi0rCSAgICAg IC1sKikKLSsJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIkaSIKLSsJCW5hbWU9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAotKwkJJG9wdF9kcnlfcnVuIHx8ICRSTSBjb25mdGVzdAotKwkJaWYgJExUQ0Mg JExUQ0ZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgJGk7IHRoZW4KLSsJCSAgbGRkX291dHB1 dD1gbGRkIGNvbmZ0ZXN0YAotKwkJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRo X3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCi0rCQkgICAgY2FzZSAiICRwcmVkZXBz ICRwb3N0ZGVwcyAiIGluCi0rCQkgICAgKiIgJGkgIiopCi0rCQkgICAgICBuZXdkZXBsaWJzPSIk bmV3ZGVwbGlicyAkaSIKLSsJCSAgICAgIGk9IiIKLSsJCSAgICAgIDs7Ci0rCQkgICAgZXNhYwot KwkJICBmaQotKwkJICBpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0rCQkgICAgbGlibmFtZT1gZXZh bCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCQkgICAgZGVwbGliX21hdGNoZXM9YGV2 YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAotKwkJICAgIHNldCBkdW1teSAk ZGVwbGliX21hdGNoZXM7IHNoaWZ0Ci0rCQkgICAgZGVwbGliX21hdGNoPSQxCi0rCQkgICAgaWYg dGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9tYXRjaCJgIC1uZSAwIDsgdGhl bgotKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCi0rCQkgICAgZWxzZQotKwkJ ICAgICAgZHJvcHBlZGRlcHM9eWVzCi0rCQkgICAgICAkRUNITwotKwkJICAgICAgJEVDSE8gIioq KiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkg JGkuIgotKwkJICAgICAgJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0 aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkgICAgICAkRUNITyAi KioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYg eW91IGhhdmUgYSIKLSsJCSAgICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxp YnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkgICAgICAkRUNITyAi KioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIgZGlk IG5vdCB1c2UgdGhpcyBvbmUiCi0rCQkgICAgICAkRUNITyAiKioqIGFzIGEgZHluYW1pYyBkZXBl bmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgot KwkJICAgIGZpCi0rCQkgIGZpCi0rCQllbHNlCi0rCQkgIGRyb3BwZWRkZXBzPXllcwotKwkJICAk RUNITwotKwkJICAkRUNITyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0 aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgotKwkJICAkRUNITyAiKioqIG1ha2Ug aXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBpdCBvciBzb21l IgotKwkJICAkRUNITyAiKioqIGxpYnJhcnkgdGhhdCBpdCBkZXBlbmRzIG9uIGJlZm9yZSB0aGlz IGxpYnJhcnkgd2lsbCBiZSBmdWxseSIKLSsJCSAgJEVDSE8gIioqKiBmdW5jdGlvbmFsLiAgSW5z dGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRlci4iCi0rCQlm aQotKwkJOzsKLSsJICAgICAgKikKLSsJCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgotKwkJ OzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGZpCi0rCSAgOzsKLSsJZmlsZV9tYWdp YyopCi0rCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKLSsJICBmaWxl X21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJg Ci0rCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwkgICAgY2FzZSAkYV9kZXBsaWIg aW4KLSsJICAgIC1sKikKLSsJICAgICAgZnVuY19zdHJpcG5hbWUgLWwgJycgIiRhX2RlcGxpYiIK LSsJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgICAgIGlmIHRlc3QgIlgk YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4K LSsJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgotKwkJKiIgJGFfZGVwbGliICIqKQot KwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCi0rCQkgIGFfZGVwbGliPSIi Ci0rCQkgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRhX2Rl cGxpYiIgOyB0aGVuCi0rCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wi ImAKLSsJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNo bGliX3NlYXJjaF9wYXRoOyBkbwotKwkJICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVb Li1dKiAyPi9kZXYvbnVsbGAKLSsJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJz OyBkbwotKwkJICAgICAgIyBGb2xsb3cgc29mdCBsaW5rcy4KLSsJCSAgICAgIGlmIGxzIC1sTGQg IiRwb3RlbnRfbGliIiAyPi9kZXYvbnVsbCB8Ci0rCQkJICRHUkVQICIgLT4gIiA+L2Rldi9udWxs OyB0aGVuCi0rCQkJY29udGludWUKLSsJCSAgICAgIGZpCi0rCQkgICAgICAjIFRoZSBzdGF0ZW1l bnQgYWJvdmUgdHJpZXMgdG8gYXZvaWQgZW50ZXJpbmcgYW4KLSsJCSAgICAgICMgZW5kbGVzcyBs b29wIGJlbG93LCBpbiBjYXNlIG9mIGN5Y2xpYyBsaW5rcy4KLSsJCSAgICAgICMgV2UgbWlnaHQg c3RpbGwgZW50ZXIgYW4gZW5kbGVzcyBsb29wLCBzaW5jZSBhIGxpbmsKLSsJCSAgICAgICMgbG9v cCBjYW4gYmUgY2xvc2VkIHdoaWxlIHdlIGZvbGxvdyBsaW5rcywKLSsJCSAgICAgICMgYnV0IHNv IHdoYXQ/Ci0rCQkgICAgICBwb3RsaWI9IiRwb3RlbnRfbGliIgotKwkJICAgICAgd2hpbGUgdGVz dCAtaCAiJHBvdGxpYiIgMj4vZGV2L251bGw7IGRvCi0rCQkJcG90bGlibGluaz1gbHMgLWxkICRw b3RsaWIgfCAke1NFRH0gJ3MvLiogLT4gLy8nYAotKwkJCWNhc2UgJHBvdGxpYmxpbmsgaW4KLSsJ CQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHBvdGxpYj0iJHBvdGxpYmxpbmsiOzsKLSsJCQkq KSBwb3RsaWI9YCRFQ0hPICJYJHBvdGxpYiIgfCAkWHNlZCAtZSAncyxbXi9dKiQsLCdgIiRwb3Rs aWJsaW5rIjs7Ci0rCQkJZXNhYwotKwkJICAgICAgZG9uZQotKwkJICAgICAgaWYgZXZhbCAkZmls ZV9tYWdpY19jbWQgXCJcJHBvdGxpYlwiIDI+L2Rldi9udWxsIHwKLSsJCQkgJFNFRCAtZSAxMHEg fAotKwkJCSAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJ CW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCQlhX2RlcGxpYj0iIgotKwkJ CWJyZWFrIDIKLSsJCSAgICAgIGZpCi0rCQkgIGRvbmUKLSsJCWRvbmUKLSsJICAgICAgZmkKLSsJ ICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KLSsJCWRyb3BwZWRkZXBzPXllcwot KwkJJEVDSE8KLSsJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2 ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKLSsJCSRFQ0hPICIqKiogSSBoYXZl IHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBp biB3aGVuIgotKwkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBj YW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJz aW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgotKwkJ JEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZv ciBhIGZpbGUgc3RhcnRpbmciCi0rCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KLSsJCSAg JEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICgu Li5mb3IgZmlsZSBtYWdpYyB0ZXN0KSIKLSsJCWVsc2UKLSsJCSAgJEVDSE8gIioqKiB3aXRoICRs aWJuYW1lIGFuZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRl c3QiCi0rCQkgICRFQ0hPICIqKiogdXNpbmcgYSBmaWxlIG1hZ2ljLiBMYXN0IGZpbGUgY2hlY2tl ZDogJHBvdGxpYiIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkg ICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50LgotKwkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGli cyAkYV9kZXBsaWIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZSAjIEdvbmUgdGhy b3VnaCBhbGwgZGVwbGlicy4KLSsJICA7OwotKwltYXRjaF9wYXR0ZXJuKikKLSsJICBzZXQgZHVt bXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAotKwkgIG1hdGNoX3BhdHRlcm5fcmVnZXg9 YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKLSsJICBmb3IgYV9k ZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICBjYXNlICRhX2RlcGxpYiBpbgotKwkgICAgLWwq KQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVwbGliIgotKwkgICAgICBuYW1l PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29s X2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgotKwkJY2FzZSAiICRw cmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkqIiAkYV9kZXBsaWIgIiopCi0rCQkgIG5ld2RlcGxp YnM9IiRuZXdkZXBsaWJzICRhX2RlcGxpYiIKLSsJCSAgYV9kZXBsaWI9IiIKLSsJCSAgOzsKLSsJ CWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4K LSsJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAotKwkJZm9yIGkg aW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3Bh dGg7IGRvCi0rCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9u dWxsYAotKwkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRvCi0rCQkgICAg cG90bGliPSIkcG90ZW50X2xpYiIgIyBzZWUgc3ltbGluay1jaGVjayBhYm92ZSBpbiBmaWxlX21h Z2ljIHRlc3QKLSsJCSAgICBpZiBldmFsICJcJEVDSE8gXCJYJHBvdGVudF9saWJcIiIgMj4vZGV2 L251bGwgfCAkWHNlZCAtZSAxMHEgfCBcCi0rCQkgICAgICAgJEVHUkVQICIkbWF0Y2hfcGF0dGVy bl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBs aWJzICRhX2RlcGxpYiIKLSsJCSAgICAgIGFfZGVwbGliPSIiCi0rCQkgICAgICBicmVhayAyCi0r CQkgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBpZiB0ZXN0 IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQkkRUNITwotKwkJ JEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBm b3IgbGlicmFyeSAkYV9kZXBsaWIuIgotKwkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxp dHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkk RUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRo aXMgaWYgeW91IGhhdmUgYSIKLSsJCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxp YnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQkkRUNITyAiKioqIGJl Y2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFy dGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgotKwkJICAkRUNITyAiKioqIHdp dGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciByZWdleCBw YXR0ZXJuIHRlc3QpIgotKwkJZWxzZQotKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYW5k IG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBmb3JtYXQgdGVzdCIKLSsJCSAg JEVDSE8gIioqKiB1c2luZyBhIHJlZ2V4IHBhdHRlcm4uIExhc3QgZmlsZSBjaGVja2VkOiAkcG90 bGliIgotKwkJZmkKLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAgICopCi0rCSAgICAgICMg QWRkIGEgLUwgYXJndW1lbnQuCi0rCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRhX2Rl cGxpYiIKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lICMgR29uZSB0aHJvdWdoIGFs bCBkZXBsaWJzLgotKwkgIDs7Ci0rCW5vbmUgfCB1bmtub3duIHwgKikKLSsJICBuZXdkZXBsaWJz PSIiCi0rCSAgdG1wX2RlcGxpYnM9YCRFQ0hPICJYICRkZXBsaWJzIiB8ICRYc2VkIFwKLSsJICAg ICAgLWUgJ3MvIC1sYyQvLycgLWUgJ3MvIC1bTFJdW14gXSovL2cnYAotKwkgIGlmIHRlc3QgIlgk YWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4K LSsJICAgIGZvciBpIGluICRwcmVkZXBzICRwb3N0ZGVwcyA7IGRvCi0rCSAgICAgICMgY2FuJ3Qg dXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKLSsJICAgICAgdG1w X2RlcGxpYnM9YCRFQ0hPICJYICR0bXBfZGVwbGlicyIgfCAkWHNlZCAtZSAicywkaSwsImAKLSsJ ICAgIGRvbmUKLSsJICBmaQotKwkgIGlmICRFQ0hPICJYICR0bXBfZGVwbGlicyIgfCAkWHNlZCAt ZSAncy9bCSBdLy9nJyB8Ci0rCSAgICAgJEdSRVAgLiA+L2Rldi9udWxsOyB0aGVuCi0rCSAgICAk RUNITwotKwkgICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAiWG5vbmUiOyB0 aGVuCi0rCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNp ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCi0rCSAgICBlbHNlCi0rCSAg ICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5v dCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgotKwkgICAgZmkKLSsJICAgICRFQ0hPICIqKiogQWxs IGRlY2xhcmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIK LSsJICAgIGRyb3BwZWRkZXBzPXllcwotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwl2ZXJzdWZm aXg9JHZlcnN1ZmZpeF9zYXZlCi0rCW1ham9yPSRtYWpvcl9zYXZlCi0rCXJlbGVhc2U9JHJlbGVh c2Vfc2F2ZQotKwlsaWJuYW1lPSRsaWJuYW1lX3NhdmUKLSsJbmFtZT0kbmFtZV9zYXZlCi0rCi0r CWNhc2UgJGhvc3QgaW4KLSsJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkg ICMgT24gUmhhcHNvZHkgcmVwbGFjZSB0aGUgQyBsaWJyYXJ5IHdpdGggdGhlIFN5c3RlbSBmcmFt ZXdvcmsKLSsJICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAn cy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJaWYg dGVzdCAiJGRyb3BwZWRkZXBzIiA9IHllczsgdGhlbgotKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0g eWVzOyB0aGVuCi0rCSAgICAkRUNITwotKwkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBsaWJ0b29s IGNvdWxkIG5vdCBzYXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgotKwkgICAgJEVD SE8gIioqKiBkZXBlbmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3JlLCBsaWJ0 b29sIHdpbGwgY3JlYXRlIgotKwkgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQg c2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgotKwkgICAgJEVDSE8gIioqKiBh cHBsaWNhdGlvbiBpcyBsaW5rZWQgd2l0aCB0aGUgLWRsb3BlbiBmbGFnLiIKLSsJICAgIGlmIHRl c3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rCSAgICAgICRFQ0hPCi0rCSAgICAg ICRFQ0hPICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMg YWJsZSB0byBleHRyYWN0IHN5bWJvbCIKLSsJICAgICAgJEVDSE8gIioqKiBsaXN0cyBmcm9tIGEg cHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCi0r CSAgICAgICRFQ0hPICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1 bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0rCSAgICAgICRFQ0hPICIqKiogXGBubScgZnJvbSBH TlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKLSsJICAgIGZpCi0rCSAg ICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KLSsJICAgICAgb2xkbGlicz0i JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKLSsJICAgICAgYnVpbGRfbGlidG9vbF9s aWJzPW1vZHVsZQotKwkgICAgICBidWlsZF9vbGRfbGlicz15ZXMKLSsJICAgIGVsc2UKLSsJICAg ICAgYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgICRFQ0hP ICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3Bw ZWQgaGVyZSB3aWxsIGJlIgotKwkgICAgJEVDSE8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdo ZW5ldmVyIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCi0rCSAgICAkRUNI TyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgotKwotKwkgICAgaWYgdGVzdCAi JGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgotKwkgICAgICAkRUNITwotKwkgICAgICAkRUNI TyAiKioqIFNpbmNlIHRoaXMgbGlicmFyeSBtdXN0IG5vdCBjb250YWluIHVuZGVmaW5lZCBzeW1i b2xzLCIKLSsJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9l cyBub3Qgc3VwcG9ydCB0aGVtIG9yIgotKwkgICAgICAkRUNITyAiKioqIGl0IHdhcyBleHBsaWNp dGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgotKwkgICAgICAkRUNITyAiKioqIGxp YnRvb2wgd2lsbCBvbmx5IGNyZWF0ZSBhIHN0YXRpYyB2ZXJzaW9uIG9mIGl0LiIKLSsJICAgICAg aWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCi0rCQlvbGRsaWJzPSIkb3V0cHV0 X29iamRpci8kbGlibmFtZS4kbGliZXh0IgotKwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQot KwkJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAgICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGli cz1ubwotKwkgICAgICBmaQotKwkgICAgZmkKLSsJICBmaQotKwlmaQotKwkjIERvbmUgY2hlY2tp bmcgZGVwbGlicyEKLSsJZGVwbGlicz0kbmV3ZGVwbGlicwotKyAgICAgIGZpCi0rICAgICAgIyBU aW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1m cmFtZXdvcmsgZm9vIgotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsJKi0qLWRhcndpbiopCi0rCSAg bmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0q XCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCSAgbmV3X2luaGVyaXRlZF9saW5r ZXJfZmxhZ3M9YCRFQ0hPICJYICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkWHNlZCAt ZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJICBkZXBs aWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1l d29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJICA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAj IG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5v dCB5ZXQKLSsgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0 aGUgbGlicmFyeSBzZWFyY2ggbGlzdAotKyAgICAgIG5ld19saWJzPQotKyAgICAgIGZvciBwYXRo IGluICRub3RpbnN0X3BhdGg7IGRvCi0rCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkqIiAtTCRw YXRoLyRvYmpkaXIgIiopIDs7Ci0rCSopCi0rCSAgY2FzZSAiICRkZXBsaWJzICIgaW4KLSsJICAq IiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAgICBuZXdfbGlicz0iJG5ld19saWJzIC1MJHBhdGgv JG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAg ICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwljYXNlICRkZXBsaWIgaW4KLSsJLUwqKQot KwkgIGNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkgICoiICRkZXBsaWIgIiopIDs7Ci0rCSAgKikg bmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OwotKwkgIGVzYWMKLSsJICA7OwotKwkqKSBu ZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAg ICAgZGVwbGlicz0iJG5ld19saWJzIgotKwotKyAgICAgICMgQWxsIHRoZSBsaWJyYXJ5LXNwZWNp ZmljIHZhcmlhYmxlcyAoaW5zdGFsbF9saWJkaXIgaXMgc2V0IGFib3ZlKS4KLSsgICAgICBsaWJy YXJ5X25hbWVzPQotKyAgICAgIG9sZF9saWJyYXJ5PQotKyAgICAgIGRsbmFtZT0KLSsKLSsgICAg ICAjIFRlc3QgYWdhaW4sIHdlIG1heSBoYXZlIGRlY2lkZWQgbm90IHRvIGJ1aWxkIGl0IGFueSBt b3JlCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJ aWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAjIEhhcmRjb2Rl IHRoZSBsaWJyYXJ5IHBhdGhzCi0rCSAgaGFyZGNvZGVfbGliZGlycz0KLSsJICBkZXBfcnBhdGg9 Ci0rCSAgcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCIKLSsJICB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5r ICYmIHJwYXRoPSIkY29tcGlsZV9ycGF0aCRycGF0aCIKLSsJICBmb3IgbGliZGlyIGluICRycGF0 aDsgZG8KLSsJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhl bgotKwkgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4K LSsJCWlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkJICBoYXJkY29kZV9s aWJkaXJzPSIkbGliZGlyIgotKwkJZWxzZQotKwkJICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5p cXVlIGxpYmRpcnMuCi0rCQkgIGNhc2UgJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNv ZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGluCi0rCQkgICoiJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKLSsJ CSAgICA7OwotKwkJICAqKQotKwkJICAgIGhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJk aXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgotKwkJICAgIDs7Ci0rCQkgIGVz YWMKLSsJCWZpCi0rCSAgICAgIGVsc2UKLSsJCWV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjXCIKLSsJCWRlcF9ycGF0aD0iJGRlcF9ycGF0aCAkZmxhZyIKLSsJICAgICAgZmkK LSsJICAgIGVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgotKwkgICAgICBjYXNlICIk cGVybV9ycGF0aCAiIGluCi0rCSAgICAgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgICAgICopIHBl cm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZp Ci0rCSAgZG9uZQotKwkgICMgU3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0 aGUgcnBhdGguCi0rCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiICYm Ci0rCSAgICAgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICBsaWJkaXI9 IiRoYXJkY29kZV9saWJkaXJzIgotKwkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQiOyB0aGVuCi0rCSAgICAgIGV2YWwgZGVwX3JwYXRoPVwiJGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfbGRcIgotKwkgICAgZWxzZQotKwkgICAgICBldmFsIGRlcF9ycGF0aD1c IiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsJICAgIGZpCi0rCSAgZmkKLSsJICBpZiB0 ZXN0IC1uICIkcnVucGF0aF92YXIiICYmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgotKwkg ICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJICAgIHJwYXRoPQotKwkgICAg Zm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KLSsJICAgICAgcnBhdGg9IiRycGF0aCRkaXI6Igot KwkgICAgZG9uZQotKwkgICAgZXZhbCAiJHJ1bnBhdGhfdmFyPSckcnBhdGhcJCRydW5wYXRoX3Zh cic7IGV4cG9ydCAkcnVucGF0aF92YXIiCi0rCSAgZmkKLSsJICB0ZXN0IC1uICIkZGVwX3JwYXRo IiAmJiBkZXBsaWJzPSIkZGVwX3JwYXRoICRkZXBsaWJzIgotKwlmaQotKwotKwlzaGxpYnBhdGg9 IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCi0rCXRlc3QgIiRtb2RlIiAhPSByZWxpbmsgJiYgc2hsaWJw YXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgotKwlpZiB0ZXN0IC1uICIkc2hsaWJw YXRoIjsgdGhlbgotKwkgIGV2YWwgIiRzaGxpYnBhdGhfdmFyPSckc2hsaWJwYXRoXCQkc2hsaWJw YXRoX3Zhcic7IGV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKLSsJZmkKLSsKLSsJIyBHZXQgdGhlIHJl YWwgYW5kIGxpbmsgbmFtZXMgb2YgdGhlIGxpYnJhcnkuCi0rCWV2YWwgc2hhcmVkX2V4dD1cIiRz aHJleHRfY21kc1wiCi0rCWV2YWwgbGlicmFyeV9uYW1lcz1cIiRsaWJyYXJ5X25hbWVzX3NwZWNc IgotKwlzZXQgZHVtbXkgJGxpYnJhcnlfbmFtZXMKLSsJc2hpZnQKLSsJcmVhbG5hbWU9IiQxIgot KwlzaGlmdAotKwotKwlpZiB0ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCBz b25hbWU9XCIkc29uYW1lX3NwZWNcIgotKwllbHNlCi0rCSAgc29uYW1lPSIkcmVhbG5hbWUiCi0r CWZpCi0rCWlmIHRlc3QgLXogIiRkbG5hbWUiOyB0aGVuCi0rCSAgZGxuYW1lPSRzb25hbWUKLSsJ ZmkKLSsKLSsJbGliPSIkb3V0cHV0X29iamRpci8kcmVhbG5hbWUiCi0rCWxpbmtuYW1lcz0KLSsJ Zm9yIGxpbmsKLSsJZG8KLSsJICBsaW5rbmFtZXM9IiRsaW5rbmFtZXMgJGxpbmsiCi0rCWRvbmUK LSsKLSsJIyBVc2Ugc3RhbmRhcmQgb2JqZWN0cyBpZiB0aGV5IGFyZSBwaWMKLSsJdGVzdCAteiAi JHBpY19mbGFnIiAmJiBsaWJvYmpzPWAkRUNITyAiWCRsaWJvYmpzIiB8ICRTUDJOTCB8ICRYc2Vk IC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rCXRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9i anM9Ci0rCi0rCWRlbGZpbGVzPQotKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRl c3QgLW4gIiRpbmNsdWRlX2V4cHN5bXMiOyB0aGVuCi0rCSAgJG9wdF9kcnlfcnVuIHx8IGNwICIk ZXhwb3J0X3N5bWJvbHMiICIkb3V0cHV0X29iamRpci8kbGlibmFtZS51ZXhwIgotKwkgIGV4cG9y dF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS51ZXhwIgotKwkgIGRlbGZpbGVzPSIk ZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzIgotKwlmaQotKwotKwlvcmlnX2V4cG9ydF9zeW1ib2xz PQotKwljYXNlICRob3N0X29zIGluCi0rCWN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCi0rCSAg aWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHNf cmVnZXgiOyB0aGVuCi0rCSAgICAjIGV4cG9ydGluZyB1c2luZyB1c2VyIHN1cHBsaWVkIHN5bWZp bGUKLSsJICAgIGlmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiAhPSB4RVhQT1JU UzsgdGhlbgotKwkgICAgICAjIGFuZCBpdCdzIE5PVCBhbHJlYWR5IGEgLmRlZiBmaWxlLiBNdXN0 IGZpZ3VyZSBvdXQKLSsJICAgICAgIyB3aGljaCBvZiB0aGUgZ2l2ZW4gc3ltYm9scyBhcmUgZGF0 YSBzeW1ib2xzIGFuZCB0YWcKLSsJICAgICAgIyB0aGVtIGFzIHN1Y2guIFNvLCB0cmlnZ2VyIHVz ZSBvZiBleHBvcnRfc3ltYm9sc19jbWRzLgotKwkgICAgICAjIGV4cG9ydF9zeW1ib2xzIGdldHMg cmVhc3NpZ25lZCBpbnNpZGUgdGhlICJwcmVwYXJlCi0rCSAgICAgICMgdGhlIGxpc3Qgb2YgZXhw b3J0ZWQgc3ltYm9scyIgaWYgc3RhdGVtZW50LCBzbyB0aGUKLSsJICAgICAgIyBpbmNsdWRlX2V4 cHN5bXMgbG9naWMgc3RpbGwgd29ya3MuCi0rCSAgICAgIG9yaWdfZXhwb3J0X3N5bWJvbHM9IiRl eHBvcnRfc3ltYm9scyIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9Ci0rCSAgICAgIGFsd2F5c19l eHBvcnRfc3ltYm9scz15ZXMKLSsJICAgIGZpCi0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rCi0r CSMgUHJlcGFyZSB0aGUgbGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzCi0rCWlmIHRlc3QgLXogIiRl eHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICBpZiB0ZXN0ICIkYWx3YXlzX2V4cG9ydF9zeW1ib2xz IiA9IHllcyB8fCB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICBm dW5jX3ZlcmJvc2UgImdlbmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIgot KwkgICAgZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKLSsJICAg ICRvcHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICBjbWRzPSRleHBvcnRf c3ltYm9sc19jbWRzCi0rCSAgICBzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJICAgIGZvciBj bWQgaW4gJGNtZHM7IGRvCi0rCSAgICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgICBldmFsIGNt ZD1cIiRjbWRcIgotKwkgICAgICBmdW5jX2xlbiAiICRjbWQiCi0rCSAgICAgIGxlbj0kZnVuY19s ZW5fcmVzdWx0Ci0rCSAgICAgIGlmIHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0 ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgotKwkJZnVuY19zaG93X2V2YWwgIiRjbWQi ICdleGl0ICQ/JwotKwkJc2tpcHBlZF9leHBvcnQ9ZmFsc2UKLSsJICAgICAgZWxzZQotKwkJIyBU aGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGV4ZWN1dGUgaW4gb25lIHN0ZXAuCi0rCQlm dW5jX3ZlcmJvc2UgInVzaW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUgZm9yIGV4cG9ydCBsaXN0 Li4uIgotKwkJc2tpcHBlZF9leHBvcnQ9OgotKwkJIyBCcmVhayBvdXQgZWFybHksIG90aGVyd2lz ZSBza2lwcGVkX2V4cG9ydCBtYXkgYmUKLSsJCSMgc2V0IHRvIGZhbHNlIGJ5IGEgbGF0ZXIgYnV0 IHNob3J0ZXIgY21kLgotKwkJYnJlYWsKLSsJICAgICAgZmkKLSsJICAgIGRvbmUKLSsJICAgIElG Uz0iJHNhdmVfaWZzIgotKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAm JiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hv d19ldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9s cyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicKLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAi JHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCSAgZmkK LSsJZmkKLSsKLSsJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5j bHVkZV9leHBzeW1zIjsgdGhlbgotKwkgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1i b2xzIgotKwkgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5 bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICck RUNITyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFhzZWQgfCAkU1AyTkwgPj4gIiR0bXBfZXhwb3J0 X3N5bWJvbHMiJwotKwlmaQotKwotKwlpZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoi ICYmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkgICMgVGhlIGdpdmVu IGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0Lgot KwkgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyB0 byB0YWcgREFUQSBleHBvcnRzIgotKwkgICMgRklYTUU6ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9mCi0rCSAgIyAncycgY29tbWFuZHMg d2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxkIGJlIGZpbmUKLSsJ ICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRo ZSBudW1iZXIgb2YKLSsJICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkgd291bGQgYmUgbmlj ZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQotKwkgICMgaXNuJ3QgYSBibGVzc2VkIHRvb2wuCi0r CSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0u KlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZmlsdGVyCi0rCSAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgotKwkgIGV4cG9ydF9zeW1ib2xzPSRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLmRlZgotKwkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9z eW1ib2xzCi0rCWZpCi0rCi0rCXRtcF9kZXBsaWJzPQotKwlmb3IgdGVzdF9kZXBsaWIgaW4gJGRl cGxpYnM7IGRvCi0rCSAgY2FzZSAiICRjb252ZW5pZW5jZSAiIGluCi0rCSAgKiIgJHRlc3RfZGVw bGliICIqKSA7OwotKwkgICopCi0rCSAgICB0bXBfZGVwbGlicz0iJHRtcF9kZXBsaWJzICR0ZXN0 X2RlcGxpYiIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rCWRlcGxpYnM9IiR0bXBfZGVw bGlicyIKLSsKLSsJaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwkgIGlmIHRlc3Qg LW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgJiYKLSsJICAgIHRlc3QgIiRjb21waWxlcl9u ZWVkc19vYmplY3QiID0geWVzICYmCi0rCSAgICB0ZXN0IC16ICIkbGlib2JqcyI7IHRoZW4KLSsJ ICAgICMgZXh0cmFjdCB0aGUgYXJjaGl2ZXMsIHNvIHdlIGhhdmUgb2JqZWN0cyB0byBsaXN0Lgot KwkgICAgIyBUT0RPOiBjb3VsZCBvcHRpbWl6ZSB0aGlzIHRvIGp1c3QgZXh0cmFjdCBvbmUgYXJj aGl2ZS4KLSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQotKwkgIGZpCi0rCSAgaWYgdGVz dCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgc2F2ZV9saWJvYmpz PSRsaWJvYmpzCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMgJHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjXCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0r CSAgZWxzZQotKwkgICAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLSsJ ICAgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwkgICAgZnVuY19leHRyYWN0 X2FyY2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgICBsaWJvYmpzPSIkbGlib2JqcyAk ZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAi WCAiICYmIGxpYm9ianM9Ci0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVzdCAiJHRocmVhZF9zYWZl IiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGV2 YWwgZmxhZz1cIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWNcIgotKwkgIGxpbmtlcl9mbGFncz0iJGxp bmtlcl9mbGFncyAkZmxhZyIKLSsJZmkKLSsKLSsJIyBNYWtlIGEgYmFja3VwIG9mIHRoZSB1bmlu c3RhbGxlZCBsaWJyYXJ5IHdoZW4gcmVsaW5raW5nCi0rCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGlu azsgdGhlbgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYg JFJNICR7cmVhbG5hbWV9VSAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VSknIHx8IGV4aXQg JD8KLSsJZmkKLSsKLSsJIyBEbyBlYWNoIG9mIHRoZSBhcmNoaXZlIGNvbW1hbmRzLgotKwlpZiB0 ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIkbW9kdWxlX2NtZHMiIDsgdGhlbgotKwkg IGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1f Y21kcyI7IHRoZW4KLSsJICAgIGV2YWwgdGVzdF9jbWRzPVwiJG1vZHVsZV9leHBzeW1fY21kc1wi Ci0rCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMKLSsJICBlbHNlCi0rCSAgICBldmFsIHRl c3RfY21kcz1cIiRtb2R1bGVfY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfY21kcwotKwkgIGZp Ci0rCWVsc2UKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRh cmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2 ZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRhcmNoaXZlX2V4cHN5bV9jbWRzCi0rCSAgZWxz ZQotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9jbWRzXCIKLSsJICAgIGNtZHM9JGFy Y2hpdmVfY21kcwotKwkgIGZpCi0rCWZpCi0rCi0rCWlmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQi ICE9ICJYOiIgJiYKLSsJICAgZnVuY19sZW4gIiAkdGVzdF9jbWRzIiAmJgotKwkgICBsZW49JGZ1 bmNfbGVuX3Jlc3VsdCAmJgotKwkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwg dGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KLSsJICA6Ci0rCWVsc2UKLSsJICAjIFRo ZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBwaWVj ZXdpc2UKLSsJICAjIG9yLCBpZiB1c2luZyBHTlUgbGQgYW5kIHNraXBwZWRfZXhwb3J0IGlzIG5v dCA6LCB1c2UgYSBsaW5rZXIKLSsJICAjIHNjcmlwdC4KLSsKLSsJICAjIFNhdmUgdGhlIHZhbHVl IG9mICRvdXRwdXQgYW5kICRsaWJvYmpzIGJlY2F1c2Ugd2Ugd2FudCB0bwotKwkgICMgdXNlIHRo ZW0gbGF0ZXIuICBJZiB3ZSBoYXZlIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCB3ZQotKwkgICMg d2FudCB0byB1c2Ugc2F2ZV9saWJvYmpzIGFzIGl0IHdhcyBiZWZvcmUKLSsJICAjIHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjIHdhcyBleHBhbmRlZCwgYmVjYXVzZSB3ZSBjYW4ndAotKwkgICMgYXNz dW1lIHRoZSBsaW5rZXIgdW5kZXJzdGFuZHMgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMuCi0rCSAg IyBUaGlzIG1heSBoYXZlIHRvIGJlIHJldmlzaXRlZCwgaW4gY2FzZSB0b28gbWFueQotKwkgICMg Y29udmVuaWVuY2UgbGlicmFyaWVzIGdldCBsaW5rZWQgaW4gYW5kIGVuZCB1cCBleGNlZWRpbmcK LSsJICAjIHRoZSBzcGVjLgotKwkgIGlmIHRlc3QgLXogIiRjb252ZW5pZW5jZSIgfHwgdGVzdCAt eiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgICAgc2F2ZV9saWJvYmpzPSRs aWJvYmpzCi0rCSAgZmkKLSsJICBzYXZlX291dHB1dD0kb3V0cHV0Ci0rCSAgb3V0cHV0X2xhPWAk RUNITyAiWCRvdXRwdXQiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi0rCi0rCSAgIyBDbGVhciB0 aGUgcmVsb2FkYWJsZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKLSsJICAjIGlu aXRpYWxpemUgayB0byBvbmUuCi0rCSAgdGVzdF9jbWRzPQotKwkgIGNvbmNhdF9jbWRzPQotKwkg IG9iamxpc3Q9Ci0rCSAgbGFzdF9yb2JqPQotKwkgIGs9MQotKwotKwkgIGlmIHRlc3QgLW4gIiRz YXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAi JHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0v JHtvdXRwdXRfbGF9Lmxua3NjcmlwdAotKwkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBHTlUg bGQgc2NyaXB0OiAkb3V0cHV0IgotKwkgICAgJEVDSE8gJ0lOUFVUICgnID4gJG91dHB1dAotKwkg ICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCi0rCSAgICBkbwotKwkgICAgICAkRUNITyAiJG9i aiIgPj4gJG91dHB1dAotKwkgICAgZG9uZQotKwkgICAgJEVDSE8gJyknID4+ICRvdXRwdXQKLSsJ ICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKLSsJICBlbGlmIHRlc3QgLW4gIiRzYXZl X2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiWCRm aWxlX2xpc3Rfc3BlYyIgIT0gWDsgdGhlbgotKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0v JHtvdXRwdXRfbGF9LmxuawotKwkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBsaW5rZXIgaW5w dXQgZmlsZSBsaXN0OiAkb3V0cHV0IgotKwkgICAgOiA+ICRvdXRwdXQKLSsJICAgIHNldCB4ICRz YXZlX2xpYm9ianMKLSsJICAgIHNoaWZ0Ci0rCSAgICBmaXJzdG9iaj0KLSsJICAgIGlmIHRlc3Qg IiRjb21waWxlcl9uZWVkc19vYmplY3QiID0geWVzOyB0aGVuCi0rCSAgICAgIGZpcnN0b2JqPSIk MSAiCi0rCSAgICAgIHNoaWZ0Ci0rCSAgICBmaQotKwkgICAgZm9yIG9iagotKwkgICAgZG8KLSsJ ICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKLSsJICAgIGRvbmUKLSsJICAgIGRlbGZpbGVz PSIkZGVsZmlsZXMgJG91dHB1dCIKLSsJICAgIG91dHB1dD0kZmlyc3RvYmpcIiRmaWxlX2xpc3Rf c3BlYyRvdXRwdXRcIgotKwkgIGVsc2UKLSsJICAgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMi OyB0aGVuCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXMuLi4iCi0rCSAgICAgIG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30u JG9iamV4dAotKwkgICAgICBldmFsIHRlc3RfY21kcz1cIiRyZWxvYWRfY21kc1wiCi0rCSAgICAg IGZ1bmNfbGVuICIgJHRlc3RfY21kcyIKLSsJICAgICAgbGVuMD0kZnVuY19sZW5fcmVzdWx0Ci0r CSAgICAgIGxlbj0kbGVuMAotKwotKwkgICAgICAjIExvb3Agb3ZlciB0aGUgbGlzdCBvZiBvYmpl Y3RzIHRvIGJlIGxpbmtlZC4KLSsJICAgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCi0rCSAg ICAgIGRvCi0rCQlmdW5jX2xlbiAiICRvYmoiCi0rCQlmdW5jX2FyaXRoICRsZW4gKyAkZnVuY19s ZW5fcmVzdWx0Ci0rCQlsZW49JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCQlpZiB0ZXN0ICJYJG9iamxp c3QiID0gWCB8fAotKwkJICAgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCi0r CQkgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAkb2JqIgotKwkJZWxzZQotKwkJICAjIFRoZSBjb21t YW5kICR0ZXN0X2NtZHMgaXMgYWxtb3N0IHRvbyBsb25nLCBhZGQgYQotKwkJICAjIGNvbW1hbmQg dG8gdGhlIHF1ZXVlLgotKwkJICBpZiB0ZXN0ICIkayIgLWVxIDEgOyB0aGVuCi0rCQkgICAgIyBU aGUgZmlyc3QgZmlsZSBkb2Vzbid0IGhhdmUgYSBwcmV2aW91cyBjb21tYW5kIHRvIGFkZC4KLSsJ CSAgICBldmFsIGNvbmNhdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpc IgotKwkJICBlbHNlCi0rCQkgICAgIyBBbGwgc3Vic2VxdWVudCByZWxvYWRhYmxlIG9iamVjdCBm aWxlcyB3aWxsIGxpbmsgaW4KLSsJCSAgICAjIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgotKwkJICAg IGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzfiRyZWxvYWRfY21kcyAkb2JqbGlzdCAk bGFzdF9yb2JqflwkUk0gJGxhc3Rfcm9ialwiCi0rCQkgIGZpCi0rCQkgIGxhc3Rfcm9iaj0kb3V0 cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAotKwkJICBmdW5jX2FyaXRoICRrICsg MQotKwkJICBrPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJICBvdXRwdXQ9JG91dHB1dF9vYmpkaXIv JG91dHB1dF9sYS0ke2t9LiRvYmpleHQKLSsJCSAgb2JqbGlzdD0kb2JqCi0rCQkgIGZ1bmNfbGVu ICIgJGxhc3Rfcm9iaiIKLSsJCSAgZnVuY19hcml0aCAkbGVuMCArICRmdW5jX2xlbl9yZXN1bHQK LSsJCSAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJZmkKLSsJICAgICAgZG9uZQotKwkgICAg ICAjIEhhbmRsZSB0aGUgcmVtYWluaW5nIG9iamVjdHMgYnkgY3JlYXRpbmcgb25lIGxhc3QKLSsJ ICAgICAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJs ZSBvYmplY3QKLSsJICAgICAgIyBmaWxlcyB3aWxsIGxpbmsgaW4gdGhlIGxhc3Qgb25lIGNyZWF0 ZWQuCi0rCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNh dF9jbWRzfgotKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JHJlbG9h ZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgotKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9y b2JqIjsgdGhlbgotKwkgICAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc31+ XCRSTSAkbGFzdF9yb2JqXCIKLSsJICAgICAgZmkKLSsJICAgICAgZGVsZmlsZXM9IiRkZWxmaWxl cyAkb3V0cHV0IgotKwotKwkgICAgZWxzZQotKwkgICAgICBvdXRwdXQ9Ci0rCSAgICBmaQotKwot KwkgICAgaWYgJHtza2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KLSsJICAgICAgZnVuY192ZXJi b3NlICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKLSsJICAgICAg ZXhwb3J0X3N5bWJvbHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmV4cCIKLSsJICAgICAgJG9w dF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAgICAgbGlib2Jqcz0kb3V0cHV0 Ci0rCSAgICAgICMgQXBwZW5kIHRoZSBjb21tYW5kIHRvIGNyZWF0ZSB0aGUgZXhwb3J0IGZpbGUu Ci0rCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9j bWRzfgotKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kcyRleHBvcnRfc3lt Ym9sc19jbWRzXCIKLSsJICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KLSsJCWV2 YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCi0rCSAgICAg IGZpCi0rCSAgICBmaQotKwotKwkgICAgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyIgJiYKLSsJICAg ICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBhIHRlbXBvcmFyeSByZWxvYWRhYmxlIG9iamVjdCBm aWxlOiAkb3V0cHV0IgotKwotKwkgICAgIyBMb29wIHRocm91Z2ggdGhlIGNvbW1hbmRzIGdlbmVy YXRlZCBhYm92ZSBhbmQgZXhlY3V0ZSB0aGVtLgotKwkgICAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 J34nCi0rCSAgICBmb3IgY21kIGluICRjb25jYXRfY21kczsgZG8KLSsJICAgICAgSUZTPSIkc2F2 ZV9pZnMiCi0rCSAgICAgICRvcHRfc2lsZW50IHx8IHsKLSsJCSAgZnVuY19xdW90ZV9mb3JfZXhw YW5kICIkY21kIgotKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9y ZXN1bHQiCi0rCSAgICAgIH0KLSsJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiRjbWQiIHx8 IHsKLSsJCWx0X2V4aXQ9JD8KLSsKLSsJCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFy eSBhbmQgZXhpdAotKwkJaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCi0rCQkgICggY2Qg IiRvdXRwdXRfb2JqZGlyIiAmJiBcCi0rCQkgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKLSsJ CSAgICAkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQotKwkJZmkKLSsKLSsJCWV4aXQg JGx0X2V4aXQKLSsJICAgICAgfQotKwkgICAgZG9uZQotKwkgICAgSUZTPSIkc2F2ZV9pZnMiCi0r Ci0rCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmICR7c2tpcHBlZF9l eHBvcnQtZmFsc2V9OyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRl eHBvcnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9s c31UIicKLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAi JGV4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsgICAgICAgICAgaWYgJHtz a2lwcGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KLSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3lt Ym9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAgICAgdG1wX2V4 cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCi0rCSAgICAgIHRlc3QgLW4gIiRvcmlnX2V4 cG9ydF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xz IgotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1z IiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0r Ci0rCSAgICBpZiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgICAg IyBUaGUgZ2l2ZW4gZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBm aWx0ZXIgaXQuCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBc YCRsaWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkgICAgICAjIEZJWE1FOiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90cyBvZgot KwkgICAgICAjICdzJyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05V IHNlZCBzaG91bGQgYmUgZmluZQotKwkgICAgICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBz Y2FsZXMgc3VwZXJsaW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKLSsJICAgICAgIyBnbG9iYWwg dmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkK LSsJICAgICAgIyBpc24ndCBhIGJsZXNzZWQgdG9vbC4KLSsJICAgICAgJG9wdF9kcnlfcnVuIHx8 ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwn IDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCi0rCSAg ICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmZpbHRlciIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxp Ym5hbWUuZGVmCi0rCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xz Ci0rCSAgICBmaQotKwkgIGZpCi0rCi0rCSAgbGlib2Jqcz0kb3V0cHV0Ci0rCSAgIyBSZXN0b3Jl IHRoZSB2YWx1ZSBvZiBvdXRwdXQuCi0rCSAgb3V0cHV0PSRzYXZlX291dHB1dAotKwotKwkgIGlm IHRlc3QgLW4gIiRjb252ZW5pZW5jZSIgJiYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjIjsgdGhlbgotKwkgICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY1wiCi0rCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQot KwkgIGZpCi0rCSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkgbGlua2luZyBjb21tYW5kcyBhZ2FpbiB0 byByZXNldCB0aGUKLSsJICAjIHZhbHVlIG9mICRsaWJvYmpzIGZvciBwaWVjZXdpc2UgbGlua2lu Zy4KLSsKLSsJICAjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCi0rCSAgaWYgdGVz dCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KLSsJICAg IGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1f Y21kcyI7IHRoZW4KLSsJICAgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCi0rCSAgICBlbHNl Ci0rCSAgICAgIGNtZHM9JG1vZHVsZV9jbWRzCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgIGlm IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2Nt ZHMiOyB0aGVuCi0rCSAgICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKLSsJICAgIGVsc2UK LSsJICAgICAgY21kcz0kYXJjaGl2ZV9jbWRzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rCi0r CWlmIHRlc3QgLW4gIiRkZWxmaWxlcyI7IHRoZW4KLSsJICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0 byByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzIHRvICRjbWRzLgotKwkgIGV2YWwgY21kcz1cIlwkY21k c35cJFJNICRkZWxmaWxlc1wiCi0rCWZpCi0rCi0rCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJl bG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcwotKwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7 IHRoZW4KLSsJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotKwkgIGdl bmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZl cyAkZ2VudG9wICRkbHByZWZpbGVzCi0rCSAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFj dF9hcmNoaXZlc19yZXN1bHQiCi0rCSAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jq cz0KLSsJZmkKLSsKLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCWZvciBjbWQgaW4gJGNt ZHM7IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgZXZhbCBjbWQ9XCIkY21kXCIKLSsJICAk b3B0X3NpbGVudCB8fCB7Ci0rCSAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRjbWQiCi0rCSAg ICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCi0rCSAgfQot KwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7Ci0rCSAgICBsdF9leGl0PSQ/Ci0r Ci0rCSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLSsJICAg IGlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICAgICAoIGNkICIkb3V0cHV0X29i amRpciIgJiYgXAotKwkgICAgICAgICRSTSAiJHtyZWFsbmFtZX1UIiAmJiBcCi0rCQkkTVYgIiR7 cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQotKwkgICAgZmkKLSsKLSsJICAgIGV4aXQgJGx0X2V4 aXQKLSsJICB9Ci0rCWRvbmUKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCi0rCSMgUmVzdG9yZSB0aGUg dW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotKwlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7 IHRoZW4KLSsJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRS TSAke3JlYWxuYW1lfVQgJiYgJE1WICRyZWFsbmFtZSAke3JlYWxuYW1lfVQgJiYgJE1WICR7cmVh bG5hbWV9VSAkcmVhbG5hbWUpJyB8fCBleGl0ICQ/Ci0rCi0rCSAgaWYgdGVzdCAtbiAiJGNvbnZl bmllbmNlIjsgdGhlbgotKwkgICAgaWYgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj IjsgdGhlbgotKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKLSsJICAg IGZpCi0rCSAgZmkKLSsKLSsJICBleGl0ICRFWElUX1NVQ0NFU1MKLSsJZmkKLSsKLSsJIyBDcmVh dGUgbGlua3MgdG8gdGhlIHJlYWwgbGlicmFyeS4KLSsJZm9yIGxpbmtuYW1lIGluICRsaW5rbmFt ZXM7IGRvCi0rCSAgaWYgdGVzdCAiJHJlYWxuYW1lIiAhPSAiJGxpbmtuYW1lIjsgdGhlbgotKwkg ICAgZnVuY19zaG93X2V2YWwgJyhjZCAiJG91dHB1dF9vYmpkaXIiICYmICRSTSAiJGxpbmtuYW1l IiAmJiAkTE5fUyAiJHJlYWxuYW1lIiAiJGxpbmtuYW1lIiknICdleGl0ICQ/JwotKwkgIGZpCi0r CWRvbmUKLSsKLSsJIyBJZiAtbW9kdWxlIG9yIC1leHBvcnQtZHluYW1pYyB3YXMgc3BlY2lmaWVk LCBzZXQgdGhlIGRsbmFtZS4KLSsJaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgfHwgdGVzdCAiJGV4 cG9ydF9keW5hbWljIiA9IHllczsgdGhlbgotKwkgICMgT24gYWxsIGtub3duIG9wZXJhdGluZyBz eXN0ZW1zLCB0aGVzZSBhcmUgaWRlbnRpY2FsLgotKwkgIGRsbmFtZT0iJHNvbmFtZSIKLSsJZmkK LSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG9iaikKLSsgICAgICBpZiB0ZXN0IC1uICIk ZGxmaWxlcyRkbHByZWZpbGVzIiB8fCB0ZXN0ICIkZGxzZWxmIiAhPSBubzsgdGhlbgotKwlmdW5j X3dhcm5pbmcgIlxgLWRsb3BlbicgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKLSsgICAgICBmaQot KwotKyAgICAgIGNhc2UgIiAkZGVwbGlicyIgaW4KLSsgICAgICAqXCAtbCogfCAqXCAtTCopCi0r CWZ1bmNfd2FybmluZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBvYmplY3RzIiA7 OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICB0ZXN0IC1uICIkcnBhdGgiICYmIFwKLSsJZnVuY193 YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKLSsKLSsgICAgICB0ZXN0 IC1uICIkeHJwYXRoIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtUicgaXMgaWdub3JlZCBmb3Ig b2JqZWN0cyIKLSsKLSsgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKLSsJZnVuY193YXJuaW5n ICJcYC12ZXJzaW9uLWluZm8nIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCi0rCi0rICAgICAgdGVz dCAtbiAiJHJlbGVhc2UiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1yZWxlYXNlJyBpcyBpZ25v cmVkIGZvciBvYmplY3RzIgotKwotKyAgICAgIGNhc2UgJG91dHB1dCBpbgotKyAgICAgICoubG8p Ci0rCXRlc3QgLW4gIiRvYmpzJG9sZF9kZXBsaWJzIiAmJiBcCi0rCSAgZnVuY19mYXRhbF9lcnJv ciAiY2Fubm90IGJ1aWxkIGxpYnJhcnkgb2JqZWN0IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9v bCBvYmplY3RzIgotKwotKwlsaWJvYmo9JG91dHB1dAotKwlmdW5jX2xvMm8gIiRsaWJvYmoiCi0r CW9iaj0kZnVuY19sbzJvX3Jlc3VsdAotKwk7OwotKyAgICAgICopCi0rCWxpYm9iaj0KLSsJb2Jq PSIkb3V0cHV0IgotKwk7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICAjIERlbGV0ZSB0aGUgb2xk IG9iamVjdHMuCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb2JqICRsaWJvYmoKLSsKLSsg ICAgICAjIE9iamVjdHMgZnJvbSBjb252ZW5pZW5jZSBsaWJyYXJpZXMuICBUaGlzIGFzc3VtZXMK LSsgICAgICAjIHNpbmdsZS12ZXJzaW9uIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFdoZW5ldmVy IHdlIGNyZWF0ZQotKyAgICAgICMgZGlmZmVyZW50IG9uZXMgZm9yIFBJQy9ub24tUElDLCB0aGlz IHdlJ2xsIGhhdmUgdG8gZHVwbGljYXRlCi0rICAgICAgIyB0aGUgZXh0cmFjdGlvbi4KLSsgICAg ICByZWxvYWRfY29udl9vYmpzPQotKyAgICAgIGdlbnRvcD0KLSsgICAgICAjIHJlbG9hZF9jbWRz IHJ1bnMgJExEIGRpcmVjdGx5LCBzbyBsZXQgdXMgZ2V0IHJpZCBvZgotKyAgICAgICMgLVdsIGZy b20gd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMgYW5kIGhvcGUgd2UgY2FuIGdldCBieSB3aXRoCi0r ICAgICAgIyB0dXJuaW5nIGNvbW1hIGludG8gc3BhY2UuLgotKyAgICAgIHdsPQotKwotKyAgICAg IGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGV2YWwgdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3M9 XCIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgotKwkgIHJlbG9hZF9jb252X29ianM9JHJlbG9h ZF9vYmpzXCBgJEVDSE8gIlgkdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3MiIHwgJFhzZWQgLWUgJ3N8 LHwgfGcnYAotKwllbHNlCi0rCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke29ian14IgotKwkg IGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgotKwotKwkgIGZ1bmNfZXh0cmFjdF9hcmNo aXZlcyAkZ2VudG9wICRjb252ZW5pZW5jZQotKwkgIHJlbG9hZF9jb252X29ianM9IiRyZWxvYWRf b2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJZmkKLSsgICAgICBmaQotKwot KyAgICAgICMgQ3JlYXRlIHRoZSBvbGQtc3R5bGUgb2JqZWN0LgotKyAgICAgIHJlbG9hZF9vYmpz PSIkb2JqcyRvbGRfZGVwbGlicyAiYCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQg LWUgJy9cLicke2xpYmV4dH0kJy9kJyAtZSAnL1wubGliJC9kJyAtZSAiJGxvMm8iIHwgJE5MMlNQ YCIgJHJlbG9hZF9jb252X29ianMiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3Rpbmcg dGVzdAotKwotKyAgICAgIG91dHB1dD0iJG9iaiIKLSsgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAi JHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKLSsKLSsgICAgICAjIEV4aXQgaWYgd2UgYXJlbid0IGRv aW5nIGEgbGlicmFyeSBvYmplY3QgZmlsZS4KLSsgICAgICBpZiB0ZXN0IC16ICIkbGlib2JqIjsg dGhlbgotKwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgotKwkgIGZ1bmNfc2hvd19ldmFsICck e1JNfXIgIiRnZW50b3AiJwotKwlmaQotKwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICBm aQotKwotKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgot KwlpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhlbgotKwkgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIg IiRnZW50b3AiJwotKwlmaQotKwotKwkjIENyZWF0ZSBhbiBpbnZhbGlkIGxpYnRvb2wgb2JqZWN0 IGlmIG5vIFBJQywgc28gdGhhdCB3ZSBkb24ndAotKwkjIGFjY2lkZW50YWxseSBsaW5rIGl0IGlu dG8gYSBwcm9ncmFtLgotKwkjICRzaG93ICJlY2hvIHRpbWVzdGFtcCA+ICRsaWJvYmoiCi0rCSMg JG9wdF9kcnlfcnVuIHx8IGV2YWwgImVjaG8gdGltZXN0YW1wID4gJGxpYm9iaiIgfHwgZXhpdCAk PwotKwlleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4g IiRwaWNfZmxhZyIgfHwgdGVzdCAiJHBpY19tb2RlIiAhPSBkZWZhdWx0OyB0aGVuCi0rCSMgT25s eSBkbyBjb21tYW5kcyBpZiB3ZSByZWFsbHkgaGF2ZSBkaWZmZXJlbnQgUElDIG9iamVjdHMuCi0r CXJlbG9hZF9vYmpzPSIkbGlib2JqcyAkcmVsb2FkX2NvbnZfb2JqcyIKLSsJb3V0cHV0PSIkbGli b2JqIgotKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHJlbG9hZF9jbWRzIiAnZXhpdCAkPycKLSsgICAg ICBmaQotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRnZW50b3AiOyB0aGVuCi0rCWZ1bmNfc2hvd19l dmFsICcke1JNfXIgIiRnZW50b3AiJwotKyAgICAgIGZpCi0rCi0rICAgICAgZXhpdCAkRVhJVF9T VUNDRVNTCi0rICAgICAgOzsKLSsKLSsgICAgcHJvZykKLSsgICAgICBjYXNlICRob3N0IGluCi0r CSpjeWd3aW4qKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXQiCi0rCSAgICAgICAg ICBvdXRwdXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdC5leGU7OwotKyAgICAgIGVzYWMKLSsgICAg ICB0ZXN0IC1uICIkdmluZm8iICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC12ZXJzaW9uLWluZm8n IGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgotKwotKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAm JiBcCi0rCWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3IgcHJvZ3JhbXMi Ci0rCi0rICAgICAgdGVzdCAiJHByZWxvYWQiID0geWVzIFwKLSsgICAgICAgICYmIHRlc3QgIiRk bG9wZW5fc3VwcG9ydCIgPSB1bmtub3duIFwKLSsJJiYgdGVzdCAiJGRsb3Blbl9zZWxmIiA9IHVu a25vd24gXAotKwkmJiB0ZXN0ICIkZGxvcGVuX3NlbGZfc3RhdGljIiA9IHVua25vd24gJiYgXAot KwkgIGZ1bmNfd2FybmluZyAiXGBMVF9JTklUKFtkbG9wZW5dKScgbm90IHVzZWQuIEFzc3VtaW5n IG5vIGRsb3BlbiBzdXBwb3J0LiIKLSsKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgKi0q LXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQotKwkjIE9uIFJoYXBzb2R5IHJlcGxhY2Ug dGhlIEMgbGlicmFyeSBpcyB0aGUgU3lzdGVtIGZyYW1ld29yawotKwljb21waWxlX2RlcGxpYnM9 YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5s dGZyYW1ld29yayAvJ2AKLSsJZmluYWxpemVfZGVwbGlicz1gJEVDSE8gIlggJGZpbmFsaXplX2Rl cGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKLSsJOzsK LSsgICAgICBlc2FjCi0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICotKi1kYXJ3aW4q KQotKwkjIERvbid0IGFsbG93IGxhenkgbGlua2luZywgaXQgYnJlYWtzIEMrKyBnbG9iYWwgY29u c3RydWN0b3JzCi0rCSMgQnV0IGlzIHN1cHBvc2VkbHkgZml4ZWQgb24gMTAuNCBvciBsYXRlciAo eWF5ISkuCi0rCWlmIHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRoZW4KLSsJICBjYXNlICR7TUFD T1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9IGluCi0rCSAgICAxMC5bMDEyM10pCi0rCSAgICAg IGNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCi0r CSAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRf bG9hZCIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwkjIFRpbWUgdG8gY2hhbmdlIGFsbCBv dXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCi0rCWNv bXBpbGVfZGVwbGlicz1gJEVDSE8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncyUg XChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJZmluYWxpemVfZGVw bGlicz1gJEVDSE8gIlggJGZpbmFsaXplX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0q XCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCTs7Ci0rICAgICAgZXNhYwotKwot KwotKyAgICAgICMgbW92ZSBsaWJyYXJ5IHNlYXJjaCBwYXRocyB0aGF0IGNvaW5jaWRlIHdpdGgg cGF0aHMgdG8gbm90IHlldAotKyAgICAgICMgaW5zdGFsbGVkIGxpYnJhcmllcyB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZSBsaWJyYXJ5IHNlYXJjaCBsaXN0Ci0rICAgICAgbmV3X2xpYnM9Ci0rICAg ICAgZm9yIHBhdGggaW4gJG5vdGluc3RfcGF0aDsgZG8KLSsJY2FzZSAiICRuZXdfbGlicyAiIGlu Ci0rCSoiIC1MJHBhdGgvJG9iamRpciAiKikgOzsKLSsJKikKLSsJICBjYXNlICIgJGNvbXBpbGVf ZGVwbGlicyAiIGluCi0rCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQotKwkgICAgbmV3X2xpYnM9 IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMK LSsgICAgICBkb25lCi0rICAgICAgZm9yIGRlcGxpYiBpbiAkY29tcGlsZV9kZXBsaWJzOyBkbwot KwljYXNlICRkZXBsaWIgaW4KLSsJLUwqKQotKwkgIGNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkg ICoiICRkZXBsaWIgIiopIDs7Ci0rCSAgKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7 OwotKwkgIGVzYWMKLSsJICA7OwotKwkqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7 Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgY29tcGlsZV9kZXBsaWJzPSIkbmV3X2xpYnMi Ci0rCi0rCi0rICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRjb21waWxl X2RlcGxpYnMiCi0rICAgICAgZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGZp bmFsaXplX2RlcGxpYnMiCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHJwYXRoJHhycGF0aCI7IHRo ZW4KLSsJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0 aGVtLgotKwlmb3IgbGliZGlyIGluICRycGF0aCAkeHJwYXRoOyBkbwotKwkgICMgVGhpcyBpcyB0 aGUgbWFnaWMgdG8gdXNlIC1ycGF0aC4KLSsJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgot KwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9y cGF0aCAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZG9uZQotKyAgICAgIGZpCi0rCi0rICAgICAg IyBOb3cgaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKLSsgICAgICBycGF0aD0KLSsgICAgICBo YXJkY29kZV9saWJkaXJzPQotKyAgICAgIGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGggJGZp bmFsaXplX3JwYXRoOyBkbwotKwlpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YyI7IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRo ZW4KLSsJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgICBo YXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgotKwkgICAgZWxzZQotKwkgICAgICAjIEp1c3QgYWNj dW11bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCi0rCSAgICAgIGNhc2UgJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGlu Ci0rCSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3IiKikKLSsJCTs7Ci0rCSAgICAgICopCi0rCQloYXJkY29kZV9saWJkaXJz PSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKLSsJ CTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgZXZhbCBmbGFnPVwi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgcnBhdGg9IiRycGF0aCAkZmxhZyIK LSsJICBmaQotKwllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICBjYXNlICIk cGVybV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBwZXJtX3JwYXRo PSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OwotKwkgIGVzYWMKLSsJZmkKLSsJY2FzZSAkaG9zdCBp bgotKwkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICot Y2VnY2MqKQotKwkgIHRlc3RiaW5kaXI9YCR7RUNIT30gIiRsaWJkaXIiIHwgJHtTRUR9IC1lICdz Ki9saWIkKi9iaW4qJ2AKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjokbGli ZGlyOiIqKSA7OwotKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSRsaWJkaXI7OwotKwkgICopIGRsbHNl YXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRsaWJkaXIiOzsKLSsJICBlc2FjCi0rCSAgY2FzZSA6 JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7Ci0rCSAgOjopIGRs bHNlYXJjaHBhdGg9JHRlc3RiaW5kaXI7OwotKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFy Y2hwYXRoOiR0ZXN0YmluZGlyIjs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBk b25lCi0rICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBy cGF0aC4KLSsgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYK LSsJIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwlsaWJkaXI9IiRoYXJkY29k ZV9saWJkaXJzIgotKwlldmFsIHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIK LSsgICAgICBmaQotKyAgICAgIGNvbXBpbGVfcnBhdGg9IiRycGF0aCIKLSsKLSsgICAgICBycGF0 aD0KLSsgICAgICBoYXJkY29kZV9saWJkaXJzPQotKyAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFs aXplX3JwYXRoOyBkbwotKwlpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7 IHRoZW4KLSsJICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4K LSsJICAgIGlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgICBoYXJk Y29kZV9saWJkaXJzPSIkbGliZGlyIgotKwkgICAgZWxzZQotKwkgICAgICAjIEp1c3QgYWNjdW11 bGF0ZSB0aGUgdW5pcXVlIGxpYmRpcnMuCi0rCSAgICAgIGNhc2UgJGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGluCi0r CSAgICAgICoiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IiKikKLSsJCTs7Ci0rCSAgICAgICopCi0rCQloYXJkY29kZV9saWJkaXJzPSIk aGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKLSsJCTs7 Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgZXZhbCBmbGFnPVwiJGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkgICAgcnBhdGg9IiRycGF0aCAkZmxhZyIKLSsJ ICBmaQotKwllbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICBjYXNlICIkZmlu YWxpemVfcGVybV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBmaW5h bGl6ZV9wZXJtX3JwYXRoPSIkZmluYWxpemVfcGVybV9ycGF0aCAkbGliZGlyIiA7OwotKwkgIGVz YWMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgIyBTdWJzdGl0dXRlIHRoZSBoYXJkY29kZWQg bGliZGlycyBpbnRvIHRoZSBycGF0aC4KLSsgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciIgJiYKLSsJIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgot KwlsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgotKwlldmFsIHJwYXRoPVwiICRoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjXCIKLSsgICAgICBmaQotKyAgICAgIGZpbmFsaXplX3JwYXRoPSIkcnBh dGgiCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGxpYm9ianMiICYmIHRlc3QgIiRidWlsZF9vbGRf bGlicyIgPSB5ZXM7IHRoZW4KLSsJIyBUcmFuc2Zvcm0gYWxsIHRoZSBsaWJyYXJ5IG9iamVjdHMg aW50byBzdGFuZGFyZCBvYmplY3RzLgotKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBp bGVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAotKwlmaW5h bGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRYc2Vk IC1lICIkbG8ybyIgfCAkTkwyU1BgCi0rICAgICAgZmkKLSsKLSsgICAgICBmdW5jX2dlbmVyYXRl X2Rsc3ltcyAiJG91dHB1dG5hbWUiICJAUFJPR1JBTUAiICJubyIKLSsKLSsgICAgICAjIHRlbXBs YXRlIHByZWxpbmtpbmcgc3RlcAotKyAgICAgIGlmIHRlc3QgLW4gIiRwcmVsaW5rX2NtZHMiOyB0 aGVuCi0rCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcHJlbGlua19jbWRzIiAnZXhpdCAkPycKLSsgICAg ICBmaQotKwotKyAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPXllcwotKyAgICAgIGNhc2UgJGhvc3Qg aW4KLSsgICAgICAqY3lnd2luKiB8ICptaW5ndyogKQotKyAgICAgICAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVk PW5vCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICAqY2VnY2MpCi0rICAgICAgICAj IERpc2FibGUgd3JhcHBlcnMgZm9yIGNlZ2NjLCB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIGFueXdh eS4KLSsgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCi0rICAgICAgICA7OwotKyAgICAgICop Ci0rICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8gfHwgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5v Ci0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgaWYgdGVzdCAi JHdyYXBwZXJzX3JlcXVpcmVkIiA9IG5vOyB0aGVuCi0rCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZp bGUgc3BlY2lmaWNhdGlvbi4KLSsJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2Nv bW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCi0rCWxpbmtfY29t bWFuZD0iJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgotKwotKwkjIFdlIGhhdmUgbm8g dW5pbnN0YWxsZWQgbGlicmFyeSBkZXBlbmRlbmNpZXMsIHNvIGZpbmFsaXplIHJpZ2h0IG5vdy4K LSsJZXhpdF9zdGF0dXM9MAotKwlmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXRf c3RhdHVzPSQ/JwotKwotKwkjIERlbGV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzLgotKwlpZiB0ZXN0 IC1mICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iOyB0aGVuCi0rCSAg ZnVuY19zaG93X2V2YWwgJyRSTSAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfVMuJHtvYmpl eHR9IicKLSsJZmkKLSsKLSsJZXhpdCAkZXhpdF9zdGF0dXMKLSsgICAgICBmaQotKwotKyAgICAg IGlmIHRlc3QgLW4gIiRjb21waWxlX3NobGlicGF0aCRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVu Ci0rCWNvbXBpbGVfY29tbWFuZD0iJHNobGlicGF0aF92YXI9XCIkY29tcGlsZV9zaGxpYnBhdGgk ZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRjb21waWxlX2NvbW1hbmQiCi0r ICAgICAgZmkKLSsgICAgICBpZiB0ZXN0IC1uICIkZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgot KwlmaW5hbGl6ZV9jb21tYW5kPSIkc2hsaWJwYXRoX3Zhcj1cIiRmaW5hbGl6ZV9zaGxpYnBhdGhc JCRzaGxpYnBhdGhfdmFyXCIgJGZpbmFsaXplX2NvbW1hbmQiCi0rICAgICAgZmkKLSsKLSsgICAg ICBjb21waWxlX3Zhcj0KLSsgICAgICBmaW5hbGl6ZV92YXI9Ci0rICAgICAgaWYgdGVzdCAtbiAi JHJ1bnBhdGhfdmFyIjsgdGhlbgotKwlpZiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KLSsJ ICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgIHJwYXRoPQotKwkgIGZvciBk aXIgaW4gJHBlcm1fcnBhdGg7IGRvCi0rCSAgICBycGF0aD0iJHJwYXRoJGRpcjoiCi0rCSAgZG9u ZQotKwkgIGNvbXBpbGVfdmFyPSIkcnVucGF0aF92YXI9XCIkcnBhdGhcJCRydW5wYXRoX3Zhclwi ICIKLSsJZmkKLSsJaWYgdGVzdCAtbiAiJGZpbmFsaXplX3Blcm1fcnBhdGgiOyB0aGVuCi0rCSAg IyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KLSsJICBycGF0aD0KLSsJICBmb3IgZGly IGluICRmaW5hbGl6ZV9wZXJtX3JwYXRoOyBkbwotKwkgICAgcnBhdGg9IiRycGF0aCRkaXI6Igot KwkgIGRvbmUKLSsJICBmaW5hbGl6ZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBh dGhfdmFyXCIgIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAiJG5vX2luc3Rh bGwiID0geWVzOyB0aGVuCi0rCSMgV2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYSB3cmFwcGVyIHNj cmlwdC4KLSsJbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBp bGVfcnBhdGgiCi0rCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLSsJ bGlua19jb21tYW5kPWAkRUNITyAiWCRsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgJ3MlQE9VVFBV VEAlJyIkb3V0cHV0IiclZydgCi0rCSMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGUuCi0rCSRv cHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dAotKwkjIExpbmsgdGhlIGV4ZWN1dGFibGUgYW5kIGV4 aXQKLSsJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JwotKwlleGl0ICRF WElUX1NVQ0NFU1MKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hY3Rp b24iID0gcmVsaW5rOyB0aGVuCi0rCSMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRl ZAotKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9y cGF0aCIKLSsJcmVsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkZmluYWxpemVfY29tbWFuZCRm aW5hbGl6ZV9ycGF0aCIKLSsKLSsJZnVuY193YXJuaW5nICJ0aGlzIHBsYXRmb3JtIGRvZXMgbm90 IGxpa2UgdW5pbnN0YWxsZWQgc2hhcmVkIGxpYnJhcmllcyIKLSsJZnVuY193YXJuaW5nICJcYCRv dXRwdXQnIHdpbGwgYmUgcmVsaW5rZWQgZHVyaW5nIGluc3RhbGxhdGlvbiIKLSsgICAgICBlbHNl Ci0rCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiICE9IG5vOyB0aGVuCi0rCSAgbGlua19jb21tYW5k PSIkZmluYWxpemVfdmFyJGNvbXBpbGVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKLSsJICBpZiB0 ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRF Q0hPICJYJGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIiB8ICRYc2Vk IC1lICdzJUBPVVRQVVRAJVwkcHJvZ2Rpci9cJGZpbGUlZydgCi0rCSAgZWxzZQotKwkgICAgIyBm YXN0X2luc3RhbGwgaXMgc2V0IHRvIG5lZWRsZXNzCi0rCSAgICByZWxpbmtfY29tbWFuZD0KLSsJ ICBmaQotKwllbHNlCi0rCSAgbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21t YW5kJGNvbXBpbGVfcnBhdGgiCi0rCSAgcmVsaW5rX2NvbW1hbmQ9IiRmaW5hbGl6ZV92YXIkZmlu YWxpemVfY29tbWFuZCRmaW5hbGl6ZV9ycGF0aCIKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAg ICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLSsgICAgICBsaW5rX2Nv bW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRv dXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIiclZydgCi0rCi0rICAgICAgIyBEZWxldGUgdGhlIG9s ZCBvdXRwdXQgZmlsZXMuCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkb3V0cHV0ICRvdXRw dXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2JqZGlyL2x0LSRvdXRwdXRuYW1lCi0rCi0r ICAgICAgZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JwotKwotKyAgICAg ICMgTm93IGNyZWF0ZSB0aGUgd3JhcHBlciBzY3JpcHQuCi0rICAgICAgZnVuY192ZXJib3NlICJj cmVhdGluZyAkb3V0cHV0IgotKwotKyAgICAgICMgUXVvdGUgdGhlIHJlbGluayBjb21tYW5kIGZv ciBzaGlwcGluZy4KLSsgICAgICBpZiB0ZXN0IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCi0r CSMgUHJlc2VydmUgYW55IHZhcmlhYmxlcyB0aGF0IG1heSBhZmZlY3QgY29tcGlsZXIgYmVoYXZp b3IKLSsJZm9yIHZhciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCi0rCSAgaWYg ZXZhbCB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCI7IHRoZW4KLSsJICAgIHJlbGlua19jb21tYW5k PSJ7IHRlc3QgLXogXCJcJHskdmFyK3NldH1cIiB8fCAkbHRfdW5zZXQgJHZhciB8fCB7ICR2YXI9 OyBleHBvcnQgJHZhcjsgfTsgfTsgJHJlbGlua19jb21tYW5kIgotKwkgIGVsaWYgZXZhbCB2YXJf dmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgotKwkgICAgcmVsaW5rX2Nv bW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwkgIGVsc2UKLSsJ ICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFsdWUiCi0rCSAgICByZWxpbmtfY29tbWFu ZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ7IGV4cG9ydCAkdmFyOyAkcmVsaW5r X2NvbW1hbmQiCi0rCSAgZmkKLSsJZG9uZQotKwlyZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAk cmVsaW5rX2NvbW1hbmQpIgotKwlyZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1h bmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgICAgIGZpCi0rCi0rICAgICAg IyBRdW90ZSAkRUNITyBmb3Igc2hpcHBpbmcuCi0rICAgICAgaWYgdGVzdCAiWCRFQ0hPIiA9ICJY JFNIRUxMICRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCi0rCWNhc2UgJHByb2dwYXRo IGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcWVjaG89IiRTSEVMTCAkcHJvZ3BhdGgg LS1mYWxsYmFjay1lY2hvIjs7Ci0rCSopIHFlY2hvPSIkU0hFTEwgYHB3ZGAvJHByb2dwYXRoIC0t ZmFsbGJhY2stZWNobyI7OwotKwllc2FjCi0rCXFlY2hvPWAkRUNITyAiWCRxZWNobyIgfCAkWHNl ZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZWxzZQotKwlxZWNobz1gJEVDSE8gIlgk RUNITyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZmkKLSsKLSsgICAg ICAjIE9ubHkgYWN0dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUuCi0rICAg ICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMg YSBiaW5hcnkgaWYgaXQgaGFzCi0rCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2Zm IGhlcmUuCi0rCWNhc2UgJG91dHB1dCBpbgotKwkgICouZXhlKSBmdW5jX3N0cmlwbmFtZSAnJyAn LmV4ZScgIiRvdXRwdXQiCi0rCSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 IDs7Ci0rCWVzYWMKLSsJIyB0ZXN0IGZvciBjeWd3aW4gYmVjYXVzZSBtdiBmYWlscyB3L28gLmV4 ZSBleHRlbnNpb25zCi0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKikKLSsJICAgIGV4ZWV4 dD0uZXhlCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXRuYW1lIgotKwkg ICAgb3V0cHV0bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rCSAgKikgZXhlZXh0PSA7 OwotKwllc2FjCi0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyogKQotKwkg ICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCi0rCSAgICBvdXRw dXRfbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsJICAgIG91dHB1dF9wYXRoPSRmdW5jX2Rp cm5hbWVfcmVzdWx0Ci0rCSAgICBjd3JhcHBlcnNvdXJjZT0iJG91dHB1dF9wYXRoLyRvYmpkaXIv bHQtJG91dHB1dF9uYW1lLmMiCi0rCSAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRf bmFtZS5leGUiCi0rCSAgICAkUk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcgotKwkgICAgdHJh cCAiJFJNICRjd3JhcHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAy IDE1Ci0rCi0rCSAgICBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjID4gJGN3cmFwcGVyc291cmNl Ci0rCi0rCSAgICAjIFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcgdGhlICRo b3N0IGNvbXBpbGVyLAotKwkgICAgIyBiZWNhdXNlIGl0IGNvbnRhaW5zICRob3N0IHBhdGhzIGFu ZCBmaWxlcy4gSWYgY3Jvc3MtCi0rCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhlIHRhcmdl dCBleGVjdXRhYmxlLCBtdXN0IGJlCi0rCSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9zdCBvciB1 bmRlciBhbiBlbXVsYXRpb24gZW52aXJvbm1lbnQuCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewot KwkgICAgICAkTFRDQyAkTFRDRkxBR1MgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQotKwkg ICAgICAkU1RSSVAgJGN3cmFwcGVyCi0rCSAgICB9Ci0rCi0rCSAgICAjIE5vdywgY3JlYXRlIHRo ZSB3cmFwcGVyIHNjcmlwdCBmb3IgZnVuY19zb3VyY2UgdXNlOgotKwkgICAgZnVuY19sdHdyYXBw ZXJfc2NyaXB0bmFtZSAkY3dyYXBwZXIKLSsJICAgICRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0 bmFtZV9yZXN1bHQKLSsJICAgIHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9y ZXN1bHQ7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCSAgICAkb3B0X2RyeV9ydW4gfHwg ewotKwkgICAgICAjIG5vdGU6IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLCBzbyBk byBub3QgY2htb2QuCi0rCSAgICAgIGlmIHRlc3QgIngkYnVpbGQiID0gIngkaG9zdCIgOyB0aGVu Ci0rCQkkY3dyYXBwZXIgLS1sdC1kdW1wLXNjcmlwdCA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRu YW1lX3Jlc3VsdAotKwkgICAgICBlbHNlCi0rCQlmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRmdW5j X2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgICBmaQotKwkgICAgfQotKwkgIDs7 Ci0rCSAgKiApCi0rCSAgICAkUk0gJG91dHB1dAotKwkgICAgdHJhcCAiJFJNICRvdXRwdXQ7IGV4 aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCi0rCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ ICRvdXRwdXQKLSsJICAgIGNobW9kICt4ICRvdXRwdXQKLSsJICA7OwotKwllc2FjCi0rICAgICAg fQotKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsg ICAgIyBTZWUgaWYgd2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCi0r ICAgIGZvciBvbGRsaWIgaW4gJG9sZGxpYnM7IGRvCi0rCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxk X2xpYnRvb2xfbGlicyIgPSBjb252ZW5pZW5jZTsgdGhlbgotKwlvbGRvYmpzPSIkbGlib2Jqc19z YXZlICRzeW1maWxlb2JqIgotKwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCi0rCWJ1aWxkX2xpYnRv b2xfbGlicz1ubwotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIg PSBtb2R1bGU7IHRoZW4KLSsJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgotKwkgIGJ1aWxkX2xp YnRvb2xfbGlicz1ubwotKwllbHNlCi0rCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGlj X29iamVjdHMiCi0rCSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYgIiRzeW1m aWxlb2JqIjsgdGhlbgotKwkgICAgb2xkb2Jqcz0iJG9sZG9ianMgJHN5bWZpbGVvYmoiCi0rCSAg ZmkKLSsJZmkKLSsJYWRkbGlicz0iJG9sZF9jb252ZW5pZW5jZSIKLSsgICAgICBmaQotKwotKyAg ICAgIGlmIHRlc3QgLW4gIiRhZGRsaWJzIjsgdGhlbgotKwlnZW50b3A9IiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX14IgotKwlnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKLSsKLSsJ ZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMKLSsJb2xkb2Jqcz0iJG9sZG9i anMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCi0rICAgICAgZmkKLSsKLSsgICAgICAj IERvIGVhY2ggY29tbWFuZCBpbiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KLSsgICAgICBpZiB0ZXN0 IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXM7IHRoZW4KLSsJY21kcz0kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwotKyAg ICAgIGVsc2UKLSsKLSsJIyBBZGQgYW55IG9iamVjdHMgZnJvbSBwcmVsb2FkZWQgY29udmVuaWVu Y2UgbGlicmFyaWVzCi0rCWlmIHRlc3QgLW4gIiRkbHByZWZpbGVzIjsgdGhlbgotKwkgIGdlbnRv cD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAgZ2VuZXJhdGVkPSIkZ2VuZXJh dGVkICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGRscHJl ZmlsZXMKLSsJICBvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3Vs dCIKLSsJZmkKLSsKLSsJIyBQT1NJWCBkZW1hbmRzIG5vIHBhdGhzIHRvIGJlIGVuY29kZWQgaW4g YXJjaGl2ZXMuICBXZSBoYXZlCi0rCSMgdG8gYXZvaWQgY3JlYXRpbmcgYXJjaGl2ZXMgd2l0aCBk dXBsaWNhdGUgYmFzZW5hbWVzIGlmIHdlCi0rCSMgbWlnaHQgaGF2ZSB0byBleHRyYWN0IHRoZW0g YWZ0ZXJ3YXJkcywgZS5nLiwgd2hlbiBjcmVhdGluZyBhCi0rCSMgc3RhdGljIGFyY2hpdmUgb3V0 IG9mIGEgY29udmVuaWVuY2UgbGlicmFyeSwgb3Igd2hlbiBsaW5raW5nCi0rCSMgdGhlIGVudGly ZXR5IG9mIGEgbGlidG9vbCBhcmNoaXZlIGludG8gYW5vdGhlciAoY3VycmVudGx5Ci0rCSMgbm90 IHN1cHBvcnRlZCBieSBsaWJ0b29sKS4KLSsJaWYgKGZvciBvYmogaW4gJG9sZG9ianMKLSsJICAg IGRvCi0rCSAgICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCi0rCSAgICAgICRFQ0hPICIkZnVuY19i YXNlbmFtZV9yZXN1bHQiCi0rCSAgICBkb25lIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwg Mj4mMSk7IHRoZW4KLSsJICA6Ci0rCWVsc2UKLSsJICAkRUNITyAiY29weWluZyBzZWxlY3RlZCBv YmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3RzLi4uIgotKwkgIGdlbnRvcD0i JG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVk ICRnZW50b3AiCi0rCSAgZnVuY19ta2Rpcl9wICIkZ2VudG9wIgotKwkgIHNhdmVfb2xkb2Jqcz0k b2xkb2JqcwotKwkgIG9sZG9ianM9Ci0rCSAgY291bnRlcj0xCi0rCSAgZm9yIG9iaiBpbiAkc2F2 ZV9vbGRvYmpzCi0rCSAgZG8KLSsJICAgIGZ1bmNfYmFzZW5hbWUgIiRvYmoiCi0rCSAgICBvYmpi YXNlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICBjYXNlICIgJG9sZG9ianMgIiBpbgot KwkgICAgIiAiKSBvbGRvYmpzPSRvYmogOzsKLSsJICAgICpbXCAvXSIkb2JqYmFzZSAiKikKLSsJ ICAgICAgd2hpbGUgOjsgZG8KLSsJCSMgTWFrZSBzdXJlIHdlIGRvbid0IHBpY2sgYW4gYWx0ZXJu YXRlIG5hbWUgdGhhdCBhbHNvCi0rCQkjIG92ZXJsYXBzLgotKwkJbmV3b2JqPWx0JGNvdW50ZXIt JG9iamJhc2UKLSsJCWZ1bmNfYXJpdGggJGNvdW50ZXIgKyAxCi0rCQljb3VudGVyPSRmdW5jX2Fy aXRoX3Jlc3VsdAotKwkJY2FzZSAiICRvbGRvYmpzICIgaW4KLSsJCSpbXCAvXSIkbmV3b2JqICIq KSA7OwotKwkJKikgaWYgdGVzdCAhIC1mICIkZ2VudG9wLyRuZXdvYmoiOyB0aGVuIGJyZWFrOyBm aSA7OwotKwkJZXNhYwotKwkgICAgICBkb25lCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICJsbiAk b2JqICRnZW50b3AvJG5ld29iaiB8fCBjcCAkb2JqICRnZW50b3AvJG5ld29iaiIKLSsJICAgICAg b2xkb2Jqcz0iJG9sZG9ianMgJGdlbnRvcC8kbmV3b2JqIgotKwkgICAgICA7OwotKwkgICAgKikg b2xkb2Jqcz0iJG9sZG9ianMgJG9iaiIgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lCi0rCWZpCi0r CWV2YWwgY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsKLSsJZnVuY19sZW4gIiAkY21kcyIK LSsJbGVuPSRmdW5jX2xlbl9yZXN1bHQKLSsJaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9s ZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCi0rCSAgY21kcz0kb2xkX2Fy Y2hpdmVfY21kcwotKwllbHNlCi0rCSAgIyB0aGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRv IGxpbmsgaW4gb25lIHN0ZXAsIGxpbmsgaW4gcGFydHMKLSsJICBmdW5jX3ZlcmJvc2UgInVzaW5n IHBpZWNld2lzZSBhcmNoaXZlIGxpbmtpbmcuLi4iCi0rCSAgc2F2ZV9SQU5MSUI9JFJBTkxJQgot KwkgIFJBTkxJQj06Ci0rCSAgb2JqbGlzdD0KLSsJICBjb25jYXRfY21kcz0KLSsJICBzYXZlX29s ZG9ianM9JG9sZG9ianMKLSsJICBvbGRvYmpzPQotKwkgICMgSXMgdGhlcmUgYSBiZXR0ZXIgd2F5 IG9mIGZpbmRpbmcgdGhlIGxhc3Qgb2JqZWN0IGluIHRoZSBsaXN0PwotKwkgIGZvciBvYmogaW4g JHNhdmVfb2xkb2JqcwotKwkgIGRvCi0rCSAgICBsYXN0X29sZG9iaj0kb2JqCi0rCSAgZG9uZQot KwkgIGV2YWwgdGVzdF9jbWRzPVwiJG9sZF9hcmNoaXZlX2NtZHNcIgotKwkgIGZ1bmNfbGVuICIg JHRlc3RfY21kcyIKLSsJICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQKLSsJICBsZW49JGxlbjAKLSsJ ICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgZnVuY19sZW4gIiAkb2Jq IgotKwkgICAgZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAotKwkgICAgbGVuPSRm dW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgZnVuY19hcHBlbmQgb2JqbGlzdCAiICRvYmoiCi0rCSAg ICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiI7IHRoZW4KLSsJICAgICAgOgotKwkg ICAgZWxzZQotKwkgICAgICAjIHRoZSBhYm92ZSBjb21tYW5kIHNob3VsZCBiZSB1c2VkIGJlZm9y ZSBpdCBnZXRzIHRvbyBsb25nCi0rCSAgICAgIG9sZG9ianM9JG9iamxpc3QKLSsJICAgICAgaWYg dGVzdCAiJG9iaiIgPSAiJGxhc3Rfb2xkb2JqIiA7IHRoZW4KLSsJCVJBTkxJQj0kc2F2ZV9SQU5M SUIKLSsJICAgICAgZmkKLSsJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRf Y21kcz0kY29uY2F0X2NtZHN+Ci0rCSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRf Y21kc30kb2xkX2FyY2hpdmVfY21kc1wiCi0rCSAgICAgIG9iamxpc3Q9Ci0rCSAgICAgIGxlbj0k bGVuMAotKwkgICAgZmkKLSsJICBkb25lCi0rCSAgUkFOTElCPSRzYXZlX1JBTkxJQgotKwkgIG9s ZG9ianM9JG9iamxpc3QKLSsJICBpZiB0ZXN0ICJYJG9sZG9ianMiID0gIlgiIDsgdGhlbgotKwkg ICAgZXZhbCBjbWRzPVwiXCRjb25jYXRfY21kc1wiCi0rCSAgZWxzZQotKwkgICAgZXZhbCBjbWRz PVwiXCRjb25jYXRfY21kc35cJG9sZF9hcmNoaXZlX2NtZHNcIgotKwkgIGZpCi0rCWZpCi0rICAg ICAgZmkKLSsgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJGNtZHMiICdleGl0ICQ/JwotKyAgICBk b25lCi0rCi0rICAgIHRlc3QgLW4gIiRnZW5lcmF0ZWQiICYmIFwKLSsgICAgICBmdW5jX3Nob3df ZXZhbCAiJHtSTX1yJGdlbmVyYXRlZCIKLSsKLSsgICAgIyBOb3cgY3JlYXRlIHRoZSBsaWJ0b29s IGFyY2hpdmUuCi0rICAgIGNhc2UgJG91dHB1dCBpbgotKyAgICAqLmxhKQotKyAgICAgIG9sZF9s aWJyYXJ5PQotKyAgICAgIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXMgJiYgb2xkX2xpYnJh cnk9IiRsaWJuYW1lLiRsaWJleHQiCi0rICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0 cHV0IgotKwotKyAgICAgICMgUHJlc2VydmUgYW55IHZhcmlhYmxlcyB0aGF0IG1heSBhZmZlY3Qg Y29tcGlsZXIgYmVoYXZpb3IKLSsgICAgICBmb3IgdmFyIGluICR2YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluazsgZG8KLSsJaWYgZXZhbCB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCI7IHRoZW4KLSsJ ICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0 ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKLSsJ ZWxpZiBldmFsIHZhcl92YWx1ZT1cJCR2YXI7IHRlc3QgLXogIiR2YXJfdmFsdWUiOyB0aGVuCi0r CSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgot KwllbHNlCi0rCSAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHZhcl92YWx1ZSIKLSsJICByZWxpbmtf Y29tbWFuZD0iJHZhcj0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQ7IGV4cG9ydCAkdmFyOyAk cmVsaW5rX2NvbW1hbmQiCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgICMgUXVvdGUgdGhlIGxp bmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCi0rICAgICAgcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdk YDsgJFNIRUxMICRwcm9ncGF0aCAkcHJlc2VydmVfYXJncyAtLW1vZGU9cmVsaW5rICRsaWJ0b29s X2FyZ3MgQGluc3RfcHJlZml4X2RpckApIgotKyAgICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAi WCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAg aWYgdGVzdCAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgPSB5ZXMgOyB0aGVuCi0rCXJlbGlua19jb21t YW5kPQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBPbmx5IGNyZWF0ZSB0aGUgb3V0cHV0IGlmIG5v dCBhIGRyeSBydW4uCi0rICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJZm9yIGluc3RhbGxlZCBp biBubyB5ZXM7IGRvCi0rCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KLSsJICAg IGlmIHRlc3QgLXogIiRpbnN0YWxsX2xpYmRpciI7IHRoZW4KLSsJICAgICAgYnJlYWsKLSsJICAg IGZpCi0rCSAgICBvdXRwdXQ9IiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lImkKLSsJICAgICMg UmVwbGFjZSBhbGwgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMgd2l0aCB0aGUgaW5zdGFs bGVkIG9uZXMKLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0KLSsJICAgIGZvciBkZXBsaWIgaW4g JGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgICAgY2FzZSAkZGVwbGliIGluCi0rCSAgICAgICou bGEpCi0rCQlmdW5jX2Jhc2VuYW1lICIkZGVwbGliIgotKwkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVf cmVzdWx0IgotKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQv XDEvcCcgJGRlcGxpYmAKLSsJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKLSsJCSAgZnVuY19mYXRh bF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0rCQlu ZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGxpYmRpci8kbmFtZSIKLSsJ CTs7Ci0rCSAgICAgICopIG5ld2RlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAk ZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICBkZXBlbmRlbmN5X2xp YnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgICBuZXdkbGZpbGVzPQotKwotKwkgICAgZm9y IGxpYiBpbiAkZGxmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGluCi0rCSAgICAgICoubGEp Ci0rCSAgICAgICAgZnVuY19iYXNlbmFtZSAiJGxpYiIKLSsJCW5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKLSsJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkk L1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCQkgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwkJbmV3ZGxm aWxlcz0iJG5ld2RsZmlsZXMgJGxpYmRpci8kbmFtZSIKLSsJCTs7Ci0rCSAgICAgICopIG5ld2Rs ZmlsZXM9IiRuZXdkbGZpbGVzICRsaWIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJ ICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgotKwkgICAgbmV3ZGxwcmVmaWxlcz0KLSsJICAgIGZv ciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkgICAgICAq LmxhKQotKwkJIyBPbmx5IHBhc3MgcHJlb3BlbmVkIGZpbGVzIHRvIHRoZSBwc2V1ZG8tYXJjaGl2 ZSAoZm9yCi0rCQkjIGV2ZW50dWFsIGxpbmtpbmcgd2l0aCB0aGUgYXBwLiB0aGF0IGxpbmtzIGl0 KSBpZiB3ZQotKwkJIyBkaWRuJ3QgYWxyZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBk aXJlY3RseSBpbnRvCi0rCQkjIHRoZSBsaWJyYXJ5OgotKwkJZnVuY19iYXNlbmFtZSAiJGxpYiIK LSsJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJCWV2YWwgbGliZGlyPWAke1NFRH0g LW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16ICIkbGliZGly IiAmJiBcCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGli dG9vbCBhcmNoaXZlIgotKwkJbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGxpYmRpci8k bmFtZSIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIGRscHJlZmlsZXM9 IiRuZXdkbHByZWZpbGVzIgotKwkgIGVsc2UKLSsJICAgIG5ld2RsZmlsZXM9Ci0rCSAgICBmb3Ig bGliIGluICRkbGZpbGVzOyBkbwotKwkgICAgICBjYXNlICRsaWIgaW4KLSsJCVtcXC9dKiB8IFtB LVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwotKwkJKikgYWJzPWBwd2RgIi8kbGliIiA7Owot KwkgICAgICBlc2FjCi0rCSAgICAgIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRhYnMiCi0rCSAg ICBkb25lCi0rCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKLSsJICAgIG5ld2RscHJlZmlsZXM9 Ci0rCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbwotKwkgICAgICBjYXNlICRsaWIgaW4K LSsJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwotKwkJKikgYWJzPWBw d2RgIi8kbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIG5ld2RscHJlZmlsZXM9IiRuZXdk bHByZWZpbGVzICRhYnMiCi0rCSAgICBkb25lCi0rCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVm aWxlcyIKLSsJICBmaQotKwkgICRSTSAkb3V0cHV0Ci0rCSAgIyBwbGFjZSBkbG5hbWUgaW4gY29y cmVjdCBwb3NpdGlvbiBmb3IgY3lnd2luCi0rCSAgdGRsbmFtZT0kZGxuYW1lCi0rCSAgY2FzZSAk aG9zdCwkb3V0cHV0LCRpbnN0YWxsZWQsJG1vZHVsZSwkZGxuYW1lIGluCi0rCSAgICAqY3lnd2lu KiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5ndyosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqY2VnY2Mq LCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7Ci0rCSAgZXNhYwot KwkgICRFQ0hPID4gJG91dHB1dCAiXAotKyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFy eSBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkgJFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVAp ICRWRVJTSU9OCi0rIwotKyMgUGxlYXNlIERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQg aXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRoZSBsaWJyYXJ5LgotKwotKyMgVGhlIG5hbWUgdGhh dCB3ZSBjYW4gZGxvcGVuKDMpLgotK2RsbmFtZT0nJHRkbG5hbWUnCi0rCi0rIyBOYW1lcyBvZiB0 aGlzIGxpYnJhcnkuCi0rbGlicmFyeV9uYW1lcz0nJGxpYnJhcnlfbmFtZXMnCi0rCi0rIyBUaGUg bmFtZSBvZiB0aGUgc3RhdGljIGFyY2hpdmUuCi0rb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScK LSsKLSsjIExpbmtlciBmbGFncyB0aGF0IGNhbiBub3QgZ28gaW4gZGVwZW5kZW5jeV9saWJzLgot K2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9JyRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncycKLSsK LSsjIExpYnJhcmllcyB0aGF0IHRoaXMgb25lIGRlcGVuZHMgdXBvbi4KLStkZXBlbmRlbmN5X2xp YnM9JyRkZXBlbmRlbmN5X2xpYnMnCi0rCi0rIyBOYW1lcyBvZiBhZGRpdGlvbmFsIHdlYWsgbGli cmFyaWVzIHByb3ZpZGVkIGJ5IHRoaXMgbGlicmFyeQotK3dlYWtfbGlicmFyeV9uYW1lcz0nJHdl YWtfbGlicycKLSsKLSsjIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yICRsaWJuYW1lLgotK2N1cnJl bnQ9JGN1cnJlbnQKLSthZ2U9JGFnZQotK3JldmlzaW9uPSRyZXZpc2lvbgotKwotKyMgSXMgdGhp cyBhbiBhbHJlYWR5IGluc3RhbGxlZCBsaWJyYXJ5PwotK2luc3RhbGxlZD0kaW5zdGFsbGVkCi0r Ci0rIyBTaG91bGQgd2Ugd2FybiBhYm91dCBwb3J0YWJpbGl0eSB3aGVuIGxpbmtpbmcgYWdhaW5z dCAtbW9kdWxlcz8KLStzaG91bGRub3RsaW5rPSRtb2R1bGUKLSsKLSsjIEZpbGVzIHRvIGRsb3Bl bi9kbHByZW9wZW4KLStkbG9wZW49JyRkbGZpbGVzJwotK2RscHJlb3Blbj0nJGRscHJlZmlsZXMn Ci0rCi0rIyBEaXJlY3RvcnkgdGhhdCB0aGlzIGxpYnJhcnkgbmVlZHMgdG8gYmUgaW5zdGFsbGVk IGluOgotK2xpYmRpcj0nJGluc3RhbGxfbGliZGlyJyIKLSsJICBpZiB0ZXN0ICIkaW5zdGFsbGVk IiA9IG5vICYmIHRlc3QgIiRuZWVkX3JlbGluayIgPSB5ZXM7IHRoZW4KLSsJICAgICRFQ0hPID4+ ICRvdXRwdXQgIlwKLStyZWxpbmtfY29tbWFuZD1cIiRyZWxpbmtfY29tbWFuZFwiIgotKwkgIGZp Ci0rCWRvbmUKLSsgICAgICB9Ci0rCi0rICAgICAgIyBEbyBhIHN5bWJvbGljIGxpbmsgc28gdGhh dCB0aGUgbGlidG9vbCBhcmNoaXZlIGNhbiBiZSBmb3VuZCBpbgotKyAgICAgICMgTERfTElCUkFS WV9QQVRIIGJlZm9yZSB0aGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQuCi0rICAgICAgZnVuY19zaG93 X2V2YWwgJyggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiAkUk0gIiRvdXRwdXRuYW1lIiAmJiAkTE5f UyAiLi4vJG91dHB1dG5hbWUiICIkb3V0cHV0bmFtZSIgKScgJ2V4aXQgJD8nCi0rICAgICAgOzsK LSsgICAgZXNhYwotKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSt9Ci0rCi0reyB0ZXN0ICIkbW9k ZSIgPSBsaW5rIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgfSAmJgotKyAgICBmdW5jX21vZGVf bGluayAkezErIiRAIn0KLSsKLSsKLSsjIGZ1bmNfbW9kZV91bmluc3RhbGwgYXJnLi4uCi0rZnVu Y19tb2RlX3VuaW5zdGFsbCAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICBSTT0iJG5vbm9w dCIKLSsgICAgZmlsZXM9Ci0rICAgIHJtZm9yY2U9Ci0rICAgIGV4aXRfc3RhdHVzPTAKLSsKLSsg ICAgIyBUaGlzIHZhcmlhYmxlIHRlbGxzIHdyYXBwZXIgc2NyaXB0cyBqdXN0IHRvIHNldCB2YXJp YWJsZXMgcmF0aGVyCi0rICAgICMgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgotKyAgICBs aWJ0b29sX2luc3RhbGxfbWFnaWM9IiRtYWdpYyIKLSsKLSsgICAgZm9yIGFyZwotKyAgICBkbwot KyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgIC1mKSBSTT0iJFJNICRhcmciOyBybWZvcmNlPXll cyA7OwotKyAgICAgIC0qKSBSTT0iJFJNICRhcmciIDs7Ci0rICAgICAgKikgZmlsZXM9IiRmaWxl cyAkYXJnIiA7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKwotKyAgICB0ZXN0IC16ICIkUk0i ICYmIFwKLSsgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYW4gUk0gcHJv Z3JhbSIKLSsKLSsgICAgcm1kaXJzPQotKwotKyAgICBvcmlnb2JqZGlyPSIkb2JqZGlyIgotKyAg ICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0rICAgICAgZnVuY19kaXJuYW1lICIkZmlsZSIgIiIg Ii4iCi0rICAgICAgZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsgICAgICBpZiB0ZXN0ICJY JGRpciIgPSBYLjsgdGhlbgotKwlvYmpkaXI9IiRvcmlnb2JqZGlyIgotKyAgICAgIGVsc2UKLSsJ b2JqZGlyPSIkZGlyLyRvcmlnb2JqZGlyIgotKyAgICAgIGZpCi0rICAgICAgZnVuY19iYXNlbmFt ZSAiJGZpbGUiCi0rICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAgICAgIHRl c3QgIiRtb2RlIiA9IHVuaW5zdGFsbCAmJiBvYmpkaXI9IiRkaXIiCi0rCi0rICAgICAgIyBSZW1l bWJlciBvYmpkaXIgZm9yIHJlbW92YWwgbGF0ZXIsIGJlaW5nIGNhcmVmdWwgdG8gYXZvaWQgZHVw bGljYXRlcwotKyAgICAgIGlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuOyB0aGVuCi0rCWNhc2UgIiAk cm1kaXJzICIgaW4KLSsJICAqIiAkb2JqZGlyICIqKSA7OwotKwkgICopIHJtZGlycz0iJHJtZGly cyAkb2JqZGlyIiA7OwotKwllc2FjCi0rICAgICAgZmkKLSsKLSsgICAgICAjIERvbid0IGVycm9y IGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QgYW5kIHJtIC1mIHdhcyB1c2VkLgotKyAgICAgIGlm IHsgdGVzdCAtTCAiJGZpbGUiOyB9ID4vZGV2L251bGwgMj4mMSB8fAotKwkgeyB0ZXN0IC1oICIk ZmlsZSI7IH0gPi9kZXYvbnVsbCAyPiYxIHx8Ci0rCSB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KLSsJ OgotKyAgICAgIGVsaWYgdGVzdCAtZCAiJGZpbGUiOyB0aGVuCi0rCWV4aXRfc3RhdHVzPTEKLSsJ Y29udGludWUKLSsgICAgICBlbGlmIHRlc3QgIiRybWZvcmNlIiA9IHllczsgdGhlbgotKwljb250 aW51ZQotKyAgICAgIGZpCi0rCi0rICAgICAgcm1maWxlcz0iJGZpbGUiCi0rCi0rICAgICAgY2Fz ZSAkbmFtZSBpbgotKyAgICAgICoubGEpCi0rCSMgUG9zc2libHkgYSBsaWJ0b29sIGFyY2hpdmUs IHNvIHZlcmlmeSBpdC4KLSsJaWYgZnVuY19sYWxpYl9wICIkZmlsZSI7IHRoZW4KLSsJICBmdW5j X3NvdXJjZSAkZGlyLyRuYW1lCi0rCi0rCSAgIyBEZWxldGUgdGhlIGxpYnRvb2wgbGlicmFyaWVz IGFuZCBzeW1saW5rcy4KLSsJICBmb3IgbiBpbiAkbGlicmFyeV9uYW1lczsgZG8KLSsJICAgIHJt ZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG4iCi0rCSAgZG9uZQotKwkgIHRlc3QgLW4gIiRvbGRf bGlicmFyeSIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kb2xkX2xpYnJhcnkiCi0rCi0r CSAgY2FzZSAiJG1vZGUiIGluCi0rCSAgY2xlYW4pCi0rCSAgICBjYXNlICIgICRsaWJyYXJ5X25h bWVzICIgaW4KLSsJICAgICMgIiAgIiBpbiB0aGUgYmVnaW5uaW5nIGNhdGNoZXMgZW1wdHkgJGRs bmFtZQotKwkgICAgKiIgJGRsbmFtZSAiKikgOzsKLSsJICAgICopIHJtZmlsZXM9IiRybWZpbGVz ICRvYmpkaXIvJGRsbmFtZSIgOzsKLSsJICAgIGVzYWMKLSsJICAgIHRlc3QgLW4gIiRsaWJkaXIi ICYmIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9aSIKLSsJ ICAgIDs7Ci0rCSAgdW5pbnN0YWxsKQotKwkgICAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMi OyB0aGVuCi0rCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0dW5pbnN0YWxsIGNv bW1hbmRzLgotKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3R1bmluc3RhbGxfY21kcyIg J3Rlc3QgIiRybWZvcmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJwotKwkgICAgZmkKLSsKLSsJ ICAgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KLSsJICAgICAgIyBEbyBlYWNoIGNv bW1hbmQgaW4gdGhlIG9sZF9wb3N0dW5pbnN0YWxsIGNvbW1hbmRzLgotKwkgICAgICBmdW5jX2V4 ZWN1dGVfY21kcyAiJG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMiICd0ZXN0ICIkcm1mb3JjZSIgPSB5 ZXMgfHwgZXhpdF9zdGF0dXM9MScKLSsJICAgIGZpCi0rCSAgICAjIEZJWE1FOiBzaG91bGQgcmVp bnN0YWxsIHRoZSBiZXN0IHJlbWFpbmluZyBzaGFyZWQgbGlicmFyeS4KLSsJICAgIDs7Ci0rCSAg ZXNhYwotKwlmaQotKwk7OwotKwotKyAgICAgICoubG8pCi0rCSMgUG9zc2libHkgYSBsaWJ0b29s IG9iamVjdCwgc28gdmVyaWZ5IGl0LgotKwlpZiBmdW5jX2xhbGliX3AgIiRmaWxlIjsgdGhlbgot KwotKwkgICMgUmVhZCB0aGUgLmxvIGZpbGUKLSsJICBmdW5jX3NvdXJjZSAkZGlyLyRuYW1lCi0r Ci0rCSAgIyBBZGQgUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCi0r CSAgaWYgdGVzdCAtbiAiJHBpY19vYmplY3QiICYmCi0rCSAgICAgdGVzdCAiJHBpY19vYmplY3Qi ICE9IG5vbmU7IHRoZW4KLSsJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJHBpY19vYmplY3Qi Ci0rCSAgZmkKLSsKLSsJICAjIEFkZCBub24tUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxl cyB0byByZW1vdmUuCi0rCSAgaWYgdGVzdCAtbiAiJG5vbl9waWNfb2JqZWN0IiAmJgotKwkgICAg IHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgcm1maWxlcz0iJHJt ZmlsZXMgJGRpci8kbm9uX3BpY19vYmplY3QiCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsgICAg ICAqKQotKwlpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbiA7IHRoZW4KLSsJICBub2V4ZW5hbWU9JG5h bWUKLSsJICBjYXNlICRmaWxlIGluCi0rCSAgKi5leGUpCi0rCSAgICBmdW5jX3N0cmlwbmFtZSAn JyAnLmV4ZScgIiRmaWxlIgotKwkgICAgZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAg ICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRuYW1lIgotKwkgICAgbm9leGVuYW1lPSRmdW5j X3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICMgJGZpbGUgd2l0aCAuZXhlIGhhcyBhbHJlYWR5IGJl ZW4gYWRkZWQgdG8gcm1maWxlcywKLSsJICAgICMgYWRkICRmaWxlIHdpdGhvdXQgLmV4ZQotKwkg ICAgcm1maWxlcz0iJHJtZmlsZXMgJGZpbGUiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICAjIERv IGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyBhIGxpYnRvb2wgcHJvZ3JhbS4KLSsJICBpZiBmdW5j X2x0d3JhcHBlcl9wICIkZmlsZSI7IHRoZW4KLSsJICAgIGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1 dGFibGVfcCAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUg IiRmaWxlIgotKwkgICAgICByZWxpbmtfY29tbWFuZD0KLSsJICAgICAgZnVuY19zb3VyY2UgJGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0rCSAgICAgIHJtZmlsZXM9IiRybWZpbGVz ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKLSsJICAgIGVsc2UKLSsJICAgICAg cmVsaW5rX2NvbW1hbmQ9Ci0rCSAgICAgIGZ1bmNfc291cmNlICRkaXIvJG5vZXhlbmFtZQotKwkg ICAgZmkKLSsKLSsJICAgICMgbm90ZSAkbmFtZSBzdGlsbCBjb250YWlucyAuZXhlIGlmIGl0IHdh cyBpbiAkZmlsZSBvcmlnaW5hbGx5Ci0rCSAgICAjIGFzIGRvZXMgdGhlIHZlcnNpb24gb2YgJGZp bGUgdGhhdCB3YXMgYWRkZWQgaW50byAkcm1maWxlcwotKwkgICAgcm1maWxlcz0iJHJtZmlsZXMg JG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKLSsJICAgIGlmIHRlc3Qg IiRmYXN0X2luc3RhbGwiID0geWVzICYmIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCI7IHRoZW4K LSsJICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0kbmFtZSIKLSsJICAgIGZpCi0r CSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCi0rCSAgICAgIHJt ZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJHtub2V4ZW5hbWV9LmMiCi0rCSAgICBmaQotKwkg IGZpCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkUk0g JHJtZmlsZXMiICdleGl0X3N0YXR1cz0xJwotKyAgICBkb25lCi0rICAgIG9iamRpcj0iJG9yaWdv YmpkaXIiCi0rCi0rICAgICMgVHJ5IHRvIHJlbW92ZSB0aGUgJHtvYmpkaXJ9cyBpbiB0aGUgZGly ZWN0b3JpZXMgd2hlcmUgd2UgZGVsZXRlZCBmaWxlcwotKyAgICBmb3IgZGlyIGluICRybWRpcnM7 IGRvCi0rICAgICAgaWYgdGVzdCAtZCAiJGRpciI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgInJt ZGlyICRkaXIgPi9kZXYvbnVsbCAyPiYxIgotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsKLSsgICAg ZXhpdCAkZXhpdF9zdGF0dXMKLSt9Ci0rCi0reyB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgfHwg dGVzdCAiJG1vZGUiID0gY2xlYW47IH0gJiYKLSsgICAgZnVuY19tb2RlX3VuaW5zdGFsbCAkezEr IiRAIn0KLSsKLSt0ZXN0IC16ICIkbW9kZSIgJiYgewotKyAgaGVscD0iJGdlbmVyaWNfaGVscCIK LSsgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIE1PREUiCi0rfQotKwotK3Rl c3QgLXogIiRleGVjX2NtZCIgJiYgXAotKyAgZnVuY19mYXRhbF9oZWxwICJpbnZhbGlkIG9wZXJh dGlvbiBtb2RlIFxgJG1vZGUnIgotKwotK2lmIHRlc3QgLW4gIiRleGVjX2NtZCI7IHRoZW4KLSsg IGV2YWwgZXhlYyAiJGV4ZWNfY21kIgotKyAgZXhpdCAkRVhJVF9GQUlMVVJFCi0rZmkKLSsKLStl eGl0ICRleGl0X3N0YXR1cwotKwotKwotKyMgVGhlIFRBR3MgYmVsb3cgYXJlIGRlZmluZWQgc3Vj aCB0aGF0IHdlIG5ldmVyIGdldCBpbnRvIGEgc2l0dWF0aW9uCi0rIyBpbiB3aGljaCB3ZSBkaXNh YmxlIGJvdGgga2luZHMgb2YgbGlicmFyaWVzLiAgR2l2ZW4gY29uZmxpY3RpbmcKLSsjIGNob2lj ZXMsIHdlIGdvIGZvciBhIHN0YXRpYyBsaWJyYXJ5LCB0aGF0IGlzIHRoZSBtb3N0IHBvcnRhYmxl LAotKyMgc2luY2Ugd2UgY2FuJ3QgdGVsbCB3aGV0aGVyIHNoYXJlZCBsaWJyYXJpZXMgd2VyZSBk aXNhYmxlZCBiZWNhdXNlCi0rIyB0aGUgdXNlciBhc2tlZCBmb3IgdGhhdCBvciBiZWNhdXNlIHRo ZSBwbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQKLSsjIHRoZW0uICBUaGlzIGlzIHBhcnRpY3VsYXJs eSBpbXBvcnRhbnQgb24gQUlYLCBiZWNhdXNlIHdlIGRvbid0Ci0rIyBzdXBwb3J0IGhhdmluZyBi b3RoIHN0YXRpYyBhbmQgc2hhcmVkIGxpYnJhcmllcyBlbmFibGVkIGF0IHRoZSBzYW1lCi0rIyB0 aW1lIG9uIHRoYXQgcGxhdGZvcm0sIHNvIHdlIGRlZmF1bHQgdG8gYSBzaGFyZWQtb25seSBjb25m aWd1cmF0aW9uLgotKyMgSWYgYSBkaXNhYmxlLXNoYXJlZCB0YWcgaXMgZ2l2ZW4sIHdlJ2xsIGZh bGxiYWNrIHRvIGEgc3RhdGljLW9ubHkKLSsjIGNvbmZpZ3VyYXRpb24uICBCdXQgd2UnbGwgbmV2 ZXIgZ28gZnJvbSBzdGF0aWMtb25seSB0byBzaGFyZWQtb25seS4KLSsKLSsjICMjIyBCRUdJTiBM SUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCi0rYnVpbGRfbGlidG9vbF9saWJzPW5v Ci0rYnVpbGRfb2xkX2xpYnM9eWVzCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlz YWJsZS1zaGFyZWQKLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUt c3RhdGljCi0rYnVpbGRfb2xkX2xpYnM9YGNhc2UgJGJ1aWxkX2xpYnRvb2xfbGlicyBpbiB5ZXMp IGVjaG8gbm87OyAqKSBlY2hvIHllczs7IGVzYWNgCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENP TkZJRzogZGlzYWJsZS1zdGF0aWMKLSsKLSsjIExvY2FsIFZhcmlhYmxlczoKLSsjIG1vZGU6c2hl bGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjoyCi0rIyBFbmQ6Ci0rIyB2aTpzdz0yCi0rCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0fm9ic29sZXRlLm00IHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvbHR+b2Jzb2xldGUubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvbHR+b2Jzb2xldGUubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0fm9ic29sZXRlLm00CTIwMDktMDUtMjMg MTA6MDE6NTYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkyIEBACi0rIyBsdH5vYnNvbGV0 ZS5tNCAtLSBhY2xvY2FsIHNhdGlzZnlpbmcgb2Jzb2xldGUgZGVmaW5pdGlvbnMuICAgIC0qLUF1 dG9jb25mLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgU2NvdHQgSmFtZXMgUmVt bmFudCwgMjAwNC4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0Ci0rIyBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA0IGx0 fm9ic29sZXRlLm00Ci0rCi0rIyBUaGVzZSBleGlzdCBlbnRpcmVseSB0byBmb29sIGFjbG9jYWwg d2hlbiBib290c3RyYXBwaW5nIGxpYnRvb2wuCi0rIwotKyMgSW4gdGhlIHBhc3QgbGlidG9vbC5t NCBoYXMgcHJvdmlkZWQgbWFjcm9zIHZpYSBBQ19ERUZVTiAob3IgQVVfREVGVU4pCi0rIyB3aGlj aCBoYXZlIGxhdGVyIGJlZW4gY2hhbmdlZCB0byBtNF9kZWZpbmUgYXMgdGhleSBhcmVuJ3QgcGFy dCBvZiB0aGUKLSsjIGV4cG9ydGVkIEFQSSwgb3IgbW92ZWQgdG8gQXV0b2NvbmYgb3IgQXV0b21h a2Ugd2hlcmUgdGhleSBiZWxvbmcuCi0rIwotKyMgVGhlIHRyb3VibGUgaXMsIGFjbG9jYWwgaXMg YSBiaXQgdGhpY2suICBJdCdsbCBzZWUgdGhlIG9sZCBBQ19ERUZVTgotKyMgaW4gL3Vzci9zaGFy ZS9hY2xvY2FsL2xpYnRvb2wubTQgYW5kIHJlbWVtYmVyIGl0LCB0aGVuIHdoZW4gaXQgc2VlcyB1 cwotKyMgdXNpbmcgYSBtYWNybyB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gb3VyIGxvY2FsIG00L2xp YnRvb2wubTQgaXQnbGwKLSsjIHB1bGwgdGhlIG9sZCBsaWJ0b29sLm00IGluIChpdCBkb2Vzbid0 IHNlZSBvdXIgc2hpbnkgbmV3IG00X2RlZmluZQotKyMgYW5kIGRvZXNuJ3Qga25vdyBhYm91dCBB dXRvY29uZiBtYWNyb3MgYXQgYWxsLikKLSsjCi0rIyBTbyB3ZSBwcm92aWRlIHRoaXMgZmlsZSwg d2hpY2ggaGFzIGEgc2lsbHkgZmlsZW5hbWUgc28gaXQncyBhbHdheXMKLSsjIGluY2x1ZGVkIGFm dGVyIGV2ZXJ5dGhpbmcgZWxzZS4gIFRoaXMgcHJvdmlkZXMgYWNsb2NhbCB3aXRoIHRoZQotKyMg QUNfREVGVU5zIGl0IHdhbnRzLCBidXQgd2hlbiBtNCBwcm9jZXNzZXMgaXQsIGl0IGRvZXNuJ3Qg ZG8gYW55dGhpbmcKLSsjIGJlY2F1c2UgdGhvc2UgbWFjcm9zIGFscmVhZHkgZXhpc3QsIG9yIHdp bGwgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIuCi0rIyBXZSB1c2UgQUNfREVGVU4gb3ZlciBBVV9ERUZV TiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGFjbG9jYWwtMS42LiAKLSsjCi0rIyBBbnl0aW1lIHdl IHdpdGhkcmF3IGFuIEFDX0RFRlVOIG9yIEFVX0RFRlVOLCByZW1lbWJlciB0byBhZGQgaXQgaGVy ZS4KLSsjIFllcywgdGhhdCBtZWFucyBldmVyeSBuYW1lIG9uY2UgdGFrZW4gd2lsbCBuZWVkIHRv IHJlbWFpbiBoZXJlIHVudGlsCi0rIyB3ZSBnaXZlIHVwIGNvbXBhdGliaWxpdHkgd2l0aCB2ZXJz aW9ucyBiZWZvcmUgMS43LCBhdCB3aGljaCBwb2ludAotKyMgd2UgbmVlZCB0byBrZWVwIG9ubHkg dGhvc2UgbmFtZXMgd2hpY2ggd2Ugc3RpbGwgcmVmZXIgdG8uCi0rCi0rIyBUaGlzIGlzIHRvIGhl bHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4K LStBQ19ERUZVTihbTFRPQlNPTEVURV9WRVJTSU9OXSwgW200X2lmKFsxXSldKQotKwotK200X2lm bmRlZihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xJ TktFUl9PUFRJT05dKV0pCi0rbTRfaWZuZGVmKFtBQ19QUk9HX0VHUkVQXSwJCVtBQ19ERUZVTihb QUNfUFJPR19FR1JFUF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNI XSwJW0FDX0RFRlVOKFtfTFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pXSkKLSttNF9pZm5kZWYo W19MVF9BQ19TSEVMTF9JTklUXSwJCVtBQ19ERUZVTihbX0xUX0FDX1NIRUxMX0lOSVRdKV0pCi0r bTRfaWZuZGVmKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSwJW0FDX0RFRlVOKFtfTFRfQUNfU1lT X0xJQlBBVEhfQUlYXSldKQotK200X2lmbmRlZihbX0xUX1BST0dfTFRNQUlOXSwJCVtBQ19ERUZV TihbX0xUX1BST0dfTFRNQUlOXSldKQotK200X2lmbmRlZihbX0xUX0FDX1RBR1ZBUl0sCQlbQUNf REVGVU4oW19MVF9BQ19UQUdWQVJdKV0pCi0rbTRfaWZuZGVmKFtBQ19MVERMX0VOQUJMRV9JTlNU QUxMXSwJW0FDX0RFRlVOKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxMXSldKQotK200X2lmbmRlZihb QUNfTFRETF9QUkVPUEVOXSwJCVtBQ19ERUZVTihbQUNfTFRETF9QUkVPUEVOXSldKQotK200X2lm bmRlZihbX0xUX0FDX1NZU19DT01QSUxFUl0sCVtBQ19ERUZVTihbX0xUX0FDX1NZU19DT01QSUxF Ul0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MT0NLXSwJCVtBQ19ERUZVTihbX0xUX0FDX0xPQ0td KV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19PTERfQVJDSElWRV0sCVtBQ19ERUZVTihb QUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfVFJZX0RM T1BFTl9TRUxGXSwJW0FDX0RFRlVOKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSldKQotK200X2lm bmRlZihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9H X0NDX0NfT10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10s IFtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfSEFSRF9MSU5LX0xPQ0tTXSldKQotK200X2lmbmRl ZihbQUNfTElCVE9PTF9PQkpESVJdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX09CSkRJUl0pXSkK LSttNF9pZm5kZWYoW0FDX0xURExfT0JKRElSXSwJCVtBQ19ERUZVTihbQUNfTFRETF9PQkpESVJd KV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfTERfSEFSRENPREVfTElCUEFUSF0sIFtB Q19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xEX0hBUkRDT0RFX0xJQlBBVEhdKV0pCi0rbTRfaWZu ZGVmKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lT X0xJQl9TVFJJUF0pXSkKLSttNF9pZm5kZWYoW0FDX1BBVEhfTUFHSUNdLAkJW0FDX0RFRlVOKFtB Q19QQVRIX01BR0lDXSldKQotK200X2lmbmRlZihbQUNfUFJPR19MRF9HTlVdLAkJW0FDX0RFRlVO KFtBQ19QUk9HX0xEX0dOVV0pXSkKLSttNF9pZm5kZWYoW0FDX1BST0dfTERfUkVMT0FEX0ZMQUdd LAlbQUNfREVGVU4oW0FDX1BST0dfTERfUkVMT0FEX0ZMQUddKV0pCi0rbTRfaWZuZGVmKFtBQ19E RVBMSUJTX0NIRUNLX01FVEhPRF0sCVtBQ19ERUZVTihbQUNfREVQTElCU19DSEVDS19NRVRIT0Rd KV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfTk9fUlRUSV0sIFtBQ19E RUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVSX05PX1JUVEldKV0pCi0rbTRfaWZuZGVmKFtB Q19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xf U1lTX0dMT0JBTF9TWU1CT0xfUElQRV0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19D T01QSUxFUl9QSUNdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNdKV0p Ci0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTXSwJW0FDX0RFRlVOKFtBQ19M SUJUT09MX1BST0dfTERfU0hMSUJTXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9QT1NUREVQ X1BSRURFUF0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0pXSkKLSttNF9p Zm5kZWYoW0xUX0FDX1BST0dfRUdSRVBdLAkJW0FDX0RFRlVOKFtMVF9BQ19QUk9HX0VHUkVQXSld KQotK200X2lmbmRlZihbTFRfQUNfUFJPR19TRURdLAkJW0FDX0RFRlVOKFtMVF9BQ19QUk9HX1NF RF0pXSkKLSttNF9pZm5kZWYoW19MVF9DQ19CQVNFTkFNRV0sCQlbQUNfREVGVU4oW19MVF9DQ19C QVNFTkFNRV0pXSkKLSttNF9pZm5kZWYoW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0sCVtBQ19E RUZVTihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSldKQotK200X2lmbmRlZihbX0xUX0xJTktF Ul9CT0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0pXSkKLStt NF9pZm5kZWYoW19BQ19QUk9HX0xJQlRPT0xdLAkJW0FDX0RFRlVOKFtfQUNfUFJPR19MSUJUT09M XSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9TRVRVUF0sCQlbQUNfREVGVU4oW0FDX0xJQlRP T0xfU0VUVVBdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfQ0hFQ0tfRExGQ05dLAkJW0FDX0RFRlVO KFtfTFRfQUNfQ0hFQ0tfRExGQ05dKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19EWU5B TUlDX0xJTktFUl0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdKV0p Ci0rbTRfaWZuZGVmKFtfTFRfQUNfVEFHQ09ORklHXSwJCVtBQ19ERUZVTihbX0xUX0FDX1RBR0NP TkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwJW0FDX0RFRlVO KFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NY WF0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NYWF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19M QU5HX0Y3N10sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0Y3N10pXSkKLSttNF9pZm5kZWYoW19M VF9BQ19MQU5HX0dDSl0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl0pXSkKLSttNF9pZm5k ZWYoW0FDX0xJQlRPT0xfUkNdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1JDXSldKQotK200X2lm bmRlZihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xB TkdfQ19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DX0NPTkZJR10sCVtBQ19E RUZVTihbX0xUX0FDX0xBTkdfQ19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xB TkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddKV0p Ci0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRfQUNf TEFOR19DWFhfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0Y3N19DT05G SUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSldKQotK200X2lmbmRl ZihbX0xUX0FDX0xBTkdfRjc3X0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3X0NP TkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19HQ0pfQ09ORklHXSwJW0FDX0RF RlVOKFtBQ19MSUJUT09MX0xBTkdfR0NKX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19M QU5HX0dDSl9DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0dDSl9DT05GSUddKV0pCi0r bTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfUkNfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJU T09MX0xBTkdfUkNfQ09ORklHXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfUkNfQ09ORklH XSwJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19SQ19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtBQ19M SUJUT09MX0NPTkZJR10sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09ORklHXSldKQotK200X2lm bmRlZihbX0xUX0FDX0ZJTEVfTFRETExfQ10sCVtBQ19ERUZVTihbX0xUX0FDX0ZJTEVfTFRETExf Q10pXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHRvcHRpb25zLm00IHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRvcHRpb25zLm00Ci0tLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2x0b3B0aW9ucy5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRvcHRpb25zLm00CTIwMDktMDUtMjMg MTA6MDE6NTUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDM2OCBAQAotKyMgSGVscGVyIGZ1 bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9j b25mIC0qLQotKyMKLSsjICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1 Z2hhbiwgMjAwNAotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDYgbHRv cHRpb25zLm00Ci0rCi0rIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3Jv cywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KLStBQ19ERUZVTihbTFRPUFRJT05TX1ZFUlNJ T05dLCBbbTRfaWYoWzFdKV0pCi0rCi0rCi0rIyBfTFRfTUFOR0xFX09QVElPTihNQUNSTy1OQU1F LCBPUFRJT04tTkFNRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotK200X2RlZmluZShbX0xUX01BTkdMRV9PUFRJT05dLAotK1tbX0xUX09QVElPTl9dbTRf YnBhdHN1YnN0KCQxX18kMiwgW1teYS16QS1aMC05X11dLCBbX10pXSkKLSsKLSsKLSsjIF9MVF9T RVRfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgb3B0aW9uIE9QVElPTi1OQU1FIGZvciBtYWNy byBNQUNSTy1OQU1FLCBhbmQgaWYgdGhlcmUgaXMgYQotKyMgbWF0Y2hpbmcgaGFuZGxlciBkZWZp bmVkLCBkaXNwYXRjaCB0byBpdC4gIE90aGVyIE9QVElPTi1OQU1FcyBhcmUKLSsjIHNhdmVkIGFz IGEgZmxhZy4KLSttNF9kZWZpbmUoW19MVF9TRVRfT1BUSU9OXSwKLStbbTRfZGVmaW5lKF9MVF9N QU5HTEVfT1BUSU9OKFskMV0sIFskMl0pKWRubAotK200X2lmZGVmKF9MVF9NQU5HTEVfREVGVU4o WyQxXSwgWyQyXSksCi0rICAgICAgICBfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAotKyAg ICBbbTRfd2FybmluZyhbVW5rbm93biAkMSBvcHRpb24gYCQyJ10pXSlbXWRubAotK10pCi0rCi0r Ci0rIyBfTFRfSUZfT1BUSU9OKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FLCBJRi1TRVQsIFtJRi1O T1QtU0VUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgRXhlY3V0ZSBJRi1TRVQgaWYgT1BUSU9OIGlzIHNldCwgSUYt Tk9ULVNFVCBvdGhlcndpc2UuCi0rbTRfZGVmaW5lKFtfTFRfSUZfT1BUSU9OXSwKLStbbTRfaWZk ZWYoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSksIFskM10sIFskNF0pXSkKLSsKLSsKLSsj IF9MVF9VTkxFU1NfT1BUSU9OUyhNQUNSTy1OQU1FLCBPUFRJT04tTElTVCwgSUYtTk9ULVNFVCkK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIEV4ZWN1dGUgSUYtTk9ULVNFVCB1bmxlc3MgYWxsIG9wdGlvbnMgaW4gT1BUSU9OLUxJ U1QgZm9yIE1BQ1JPLU5BTUUKLSsjIGFyZSBzZXQuCi0rbTRfZGVmaW5lKFtfTFRfVU5MRVNTX09Q VElPTlNdLAotK1ttNF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRfc3BsaXQobTRfbm9ybWFsaXpl KFskMl0pKSwKLSsJICAgIFttNF9pZmRlZihfTFRfTUFOR0xFX09QVElPTihbJDFdLCBfTFRfT3B0 aW9uKSwKLSsJCSAgICAgIFttNF9kZWZpbmUoWyQwX2ZvdW5kXSldKV0pW11kbmwKLSttNF9pZmRl ZihbJDBfZm91bmRdLCBbbTRfdW5kZWZpbmUoWyQwX2ZvdW5kXSldLCBbJDMKLStdKVtdZG5sCi0r XSkKLSsKLSsKLSsjIF9MVF9TRVRfT1BUSU9OUyhNQUNSTy1OQU1FLCBPUFRJT04tTElTVCkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE9QVElPTi1MSVNU IGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgTGlidG9vbCBvcHRpb25zIGFzc29jaWF0ZWQK LSsjIHdpdGggTUFDUk8tTkFNRS4gIElmIGFueSBPUFRJT04gaGFzIGEgbWF0Y2hpbmcgaGFuZGxl ciBkZWNsYXJlZCB3aXRoCi0rIyBMVF9PUFRJT05fREVGSU5FLCBkaXNwYXRjaCB0byB0aGF0IG1h Y3JvOyBvdGhlcndpc2UgY29tcGxhaW4gYWJvdXQKLSsjIHRoZSB1bmtub3duIG9wdGlvbiBhbmQg ZXhpdC4KLSttNF9kZWZ1bihbX0xUX1NFVF9PUFRJT05TXSwKLStbIyBTZXQgb3B0aW9ucwotK200 X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdChtNF9ub3JtYWxpemUoWyQyXSkpLAotKyAg ICBbX0xUX1NFVF9PUFRJT04oWyQxXSwgX0xUX09wdGlvbildKQotKwotK200X2lmKFskMV0sW0xU X0lOSVRdLFsKLSsgIGRubAotKyAgZG5sIFNpbXBseSBzZXQgc29tZSBkZWZhdWx0IHZhbHVlcyAo aS5lIG9mZikgaWYgYm9vbGVhbiBvcHRpb25zIHdlcmUgbm90Ci0rICBkbmwgc3BlY2lmaWVkOgot KyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW2Rsb3Blbl0sIFtlbmFibGVfZGxvcGVu PW5vCi0rICBdKQotKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwgW3dpbjMyLWRsbF0s IFtlbmFibGVfd2luMzJfZGxsPW5vCi0rICBdKQotKyAgZG5sCi0rICBkbmwgSWYgbm8gcmVmZXJl bmNlIHdhcyBtYWRlIHRvIHZhcmlvdXMgcGFpcnMgb2Ygb3Bwb3Npbmcgb3B0aW9ucywgdGhlbgot KyAgZG5sIHdlIHJ1biB0aGUgZGVmYXVsdCBtb2RlIGhhbmRsZXIgZm9yIHRoZSBwYWlyLiAgRm9y IGV4YW1wbGUsIGlmIG5laXRoZXIKLSsgIGRubCBgc2hhcmVkJyBub3IgYGRpc2FibGUtc2hhcmVk JyB3YXMgcGFzc2VkLCB3ZSBlbmFibGUgYnVpbGRpbmcgb2Ygc2hhcmVkCi0rICBkbmwgYXJjaGl2 ZXMgYnkgZGVmYXVsdDoKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtzaGFyZWQg ZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRURdKQotKyAgX0xUX1VOTEVTU19PUFRJ T05TKFtMVF9JTklUXSwgW3N0YXRpYyBkaXNhYmxlLXN0YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJ Q10pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbcGljLW9ubHkgbm8tcGljXSwg W19MVF9XSVRIX1BJQ10pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbZmFzdC1p bnN0YWxsIGRpc2FibGUtZmFzdC1pbnN0YWxsXSwKLSsgIAkJICAgW19MVF9FTkFCTEVfRkFTVF9J TlNUQUxMXSkKLSsgIF0pCi0rXSkjIF9MVF9TRVRfT1BUSU9OUwotKwotKwotKyMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIE1hY3JvcyB0byBoYW5kbGUgTFRfSU5J VCBvcHRpb25zLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwot KwotKyMgX0xUX01BTkdMRV9ERUZVTihNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfTUFO R0xFX0RFRlVOXSwKLStbW19MVF9PUFRJT05fREVGVU5fXW00X2JwYXRzdWJzdChtNF90b3VwcGVy KFskMV9fJDJdKSwgW1teQS1aMC05X11dLCBbX10pXSkKLSsKLSsKLSsjIExUX09QVElPTl9ERUZJ TkUoTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUsIENPREUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbTFRfT1BUSU9OX0RFRklO RV0sCi0rW200X2RlZmluZShfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLCBbJDNdKVtdZG5s Ci0rXSkjIExUX09QVElPTl9ERUZJTkUKLSsKLSsKLSsjIGRsb3BlbgotKyMgLS0tLS0tCi0rTFRf T1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkbG9wZW5dLCBbZW5hYmxlX2Rsb3Blbj15ZXMKLStd KQotKwotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl0sCi0rW19MVF9TRVRfT1BUSU9OKFtM VF9JTklUXSwgW2Rsb3Blbl0pCi0rQUNfRElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6IFJlbW92 ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91Ci0r cHV0IHRoZSBgZGxvcGVuJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0p Ci0rXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5s IEFDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BFTl0sIFtdKQotKwotKwotKyMgd2luMzItZGxsCi0r IyAtLS0tLS0tLS0KLSsjIERlY2xhcmUgcGFja2FnZSBzdXBwb3J0IGZvciBidWlsZGluZyB3aW4z MiBkbGwncy4KLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3dpbjMyLWRsbF0sCi0rW2Vu YWJsZV93aW4zMl9kbGw9eWVzCi0rCi0rY2FzZSAkaG9zdCBpbgotKyotKi1jeWd3aW4qIHwgKi0q LW1pbmd3KiB8ICotKi1wdzMyKiB8ICotY2VnY2MqKQotKyAgQUNfQ0hFQ0tfVE9PTChBUywgYXMs IGZhbHNlKQotKyAgQUNfQ0hFQ0tfVE9PTChETExUT09MLCBkbGx0b29sLCBmYWxzZSkKLSsgIEFD X0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCi0rICA7OwotK2VzYWMKLSsKLSt0 ZXN0IC16ICIkQVMiICYmIEFTPWFzCi0rX0xUX0RFQ0woW10sIFtBU10sICAgICAgWzBdLCBbQXNz ZW1ibGVyIHByb2dyYW1dKWRubAotKwotK3Rlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRs bHRvb2wKLStfTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMF0sIFtETEwgY3JlYXRpb24gcHJvZ3Jh bV0pZG5sCi0rCi0rdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAotK19MVF9E RUNMKFtdLCBbT0JKRFVNUF0sIFswXSwgW09iamVjdCBkdW1wZXIgcHJvZ3JhbV0pZG5sCi0rXSkj IHdpbjMyLWRsbAotKwotK0FVX0RFRlVOKFtBQ19MSUJUT09MX1dJTjMyX0RMTF0sCi0rW0FDX1JF UVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStfTFRfU0VUX09QVElPTihbTFRfSU5JVF0s IFt3aW4zMi1kbGxdKQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCi0rWyQwOiBSZW1vdmUgdGhp cyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQotK3B1dCB0 aGUgYHdpbjMyLWRsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQot K10pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBB Q19ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLCBbXSkKLSsKLSsKLSsjIF9MVF9FTkFCTEVf U0hBUkVEKFtERUZBVUxUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGlt cGxlbWVudCB0aGUgLS1lbmFibGUtc2hhcmVkIGZsYWcsIGFuZCBzdXBwb3J0cyB0aGUgYHNoYXJl ZCcgYW5kCi0rIyBgZGlzYWJsZS1zaGFyZWQnIExUX0lOSVQgb3B0aW9ucy4KLSsjIERFRkFVTFQg aXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVz Jy4KLSttNF9kZWZpbmUoW19MVF9FTkFCTEVfU0hBUkVEXSwKLStbbTRfZGVmaW5lKFtfTFRfRU5B QkxFX1NIQVJFRF9ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAotK0FDX0FS R19FTkFCTEUoW3NoYXJlZF0sCi0rICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtc2hhcmVk QDw6QD1QS0dTQDo+QF0sCi0rCVtidWlsZCBzaGFyZWQgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1f TFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUW0A6PkBdKV0sCi0rICAgIFtwPSR7UEFDS0FHRS1kZWZh dWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc2hhcmVkPXll cyA7OwotKyAgICBubykgZW5hYmxlX3NoYXJlZD1ubyA7OwotKyAgICAqKQotKyAgICAgIGVuYWJs ZV9zaGFyZWQ9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVz ZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5h YmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgk cCI7IHRoZW4KLSsJICBlbmFibGVfc2hhcmVkPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjXSwKLSsgICAgW2VuYWJs ZV9zaGFyZWQ9XV9MVF9FTkFCTEVfU0hBUkVEX0RFRkFVTFQpCi0rCi0rICAgIF9MVF9ERUNMKFti dWlsZF9saWJ0b29sX2xpYnNdLCBbZW5hYmxlX3NoYXJlZF0sIFswXSwKLSsJW1doZXRoZXIgb3Ig bm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotK10pIyBfTFRfRU5BQkxFX1NIQVJFRAot KwotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hB UkVEKFt5ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNhYmxlLXNoYXJl ZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbbm9dKV0pCi0rCi0rIyBPbGQgbmFtZXM6Ci0rQUNfREVG VU4oW0FDX0VOQUJMRV9TSEFSRURdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lm KFskMV0sIFtub10sIFtkaXNhYmxlLV0pW3NoYXJlZF0pCi0rXSkKLSsKLStBQ19ERUZVTihbQUNf RElTQUJMRV9TSEFSRURdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLXNo YXJlZF0pCi0rXSkKLSsKLStBVV9ERUZVTihbQU1fRU5BQkxFX1NIQVJFRF0sIFtBQ19FTkFCTEVf U0hBUkVEKCRAKV0pCi0rQVVfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVEXSwgW0FDX0RJU0FCTEVf U0hBUkVEKCRAKV0pCi0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgotK2RubCBBQ19ERUZVTihbQU1fRU5BQkxFX1NIQVJFRF0sIFtdKQotK2RubCBBQ19ERUZVTihb QU1fRElTQUJMRV9TSEFSRURdLCBbXSkKLSsKLSsKLSsKLSsjIF9MVF9FTkFCTEVfU1RBVElDKFtE RUZBVUxUXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxlbWVudCB0 aGUgLS1lbmFibGUtc3RhdGljIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgc3RhdGljJyBhbmQKLSsj IGBkaXNhYmxlLXN0YXRpYycgTFRfSU5JVCBvcHRpb25zLgotKyMgREVGQVVMVCBpcyBlaXRoZXIg YHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIGB5ZXMnLgotK200X2Rl ZmluZShbX0xUX0VOQUJMRV9TVEFUSUNdLAotK1ttNF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElD X0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywgeWVzKV0pZG5sCi0rQUNfQVJHX0VOQUJMRShb c3RhdGljXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNAPDpAPVBLR1NA Oj5AXSwKLSsJW2J1aWxkIHN0YXRpYyBsaWJyYXJpZXMgQDw6QGRlZmF1bHQ9XV9MVF9FTkFCTEVf U1RBVElDX0RFRkFVTFRbQDo+QF0pXSwKLSsgICAgW3A9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAg IGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zdGF0aWM9eWVzIDs7Ci0rICAg IG5vKSBlbmFibGVfc3RhdGljPW5vIDs7Ci0rICAgICopCi0rICAgICBlbmFibGVfc3RhdGljPW5v Ci0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBj b21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIk e0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8K LSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0r CSAgZW5hYmxlX3N0YXRpYz15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRf c2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhY10sCi0rICAgIFtlbmFibGVfc3RhdGljPV1f TFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUKQotKwotKyAgICBfTFRfREVDTChbYnVpbGRfb2xkX2xp YnNdLCBbZW5hYmxlX3N0YXRpY10sIFswXSwKLSsJW1doZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHN0 YXRpYyBsaWJyYXJpZXNdKQotK10pIyBfTFRfRU5BQkxFX1NUQVRJQwotKwotK0xUX09QVElPTl9E RUZJTkUoW0xUX0lOSVRdLCBbc3RhdGljXSwgW19MVF9FTkFCTEVfU1RBVElDKFt5ZXNdKV0pCi0r TFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNhYmxlLXN0YXRpY10sIFtfTFRfRU5BQkxF X1NUQVRJQyhbbm9dKV0pCi0rCi0rIyBPbGQgbmFtZXM6Ci0rQUNfREVGVU4oW0FDX0VOQUJMRV9T VEFUSUNdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtk aXNhYmxlLV0pW3N0YXRpY10pCi0rXSkKLSsKLStBQ19ERUZVTihbQUNfRElTQUJMRV9TVEFUSUNd LAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkaXNhYmxlLXN0YXRpY10pCi0rXSkKLSsK LStBVV9ERUZVTihbQU1fRU5BQkxFX1NUQVRJQ10sIFtBQ19FTkFCTEVfU1RBVElDKCRAKV0pCi0r QVVfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW0FDX0RJU0FCTEVfU1RBVElDKCRAKV0pCi0r Ci0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19ERUZV TihbQU1fRU5BQkxFX1NUQVRJQ10sIFtdKQotK2RubCBBQ19ERUZVTihbQU1fRElTQUJMRV9TVEFU SUNdLCBbXSkKLSsKLSsKLSsKLSsjIF9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFtERUZBVUxUXSkK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxlbWVudCB0aGUg LS1lbmFibGUtZmFzdC1pbnN0YWxsIGZsYWcsIGFuZCBzdXBwb3J0IHRoZSBgZmFzdC1pbnN0YWxs JwotKyMgYW5kIGBkaXNhYmxlLWZhc3QtaW5zdGFsbCcgTFRfSU5JVCBvcHRpb25zLgotKyMgREVG QVVMVCBpcyBlaXRoZXIgYHllcycgb3IgYG5vJy4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRv IGB5ZXMnLgotK200X2RlZmluZShbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTExdLAotK1ttNF9kZWZp bmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRdLCBbbTRfaWYoJDEsIG5vLCBubywg eWVzKV0pZG5sCi0rQUNfQVJHX0VOQUJMRShbZmFzdC1pbnN0YWxsXSwKLSsgICAgW0FTX0hFTFBf U1RSSU5HKFstLWVuYWJsZS1mYXN0LWluc3RhbGxAPDpAPVBLR1NAOj5AXSwKLSsgICAgW29wdGlt aXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9GQVNUX0lO U1RBTExfREVGQVVMVFtAOj5AXSldLAotKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAg Y2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMgOzsK LSsgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKLSsgICAgKikKLSsgICAgICBlbmFi bGVfZmFzdF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3Qu ICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVf aWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cg aW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtn IiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15ZXMKLSsJZmkKLSsgICAg ICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhY10s Ci0rICAgIFtlbmFibGVfZmFzdF9pbnN0YWxsPV1fTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZB VUxUKQotKwotK19MVF9ERUNMKFtmYXN0X2luc3RhbGxdLCBbZW5hYmxlX2Zhc3RfaW5zdGFsbF0s IFswXSwKLSsJIFtXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRp b25dKWRubAotK10pIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTAotKwotK0xUX09QVElPTl9ERUZJ TkUoW0xUX0lOSVRdLCBbZmFzdC1pbnN0YWxsXSwgW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMKFt5 ZXNdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtkaXNhYmxlLWZhc3QtaW5zdGFs bF0sIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbbm9dKV0pCi0rCi0rIyBPbGQgbmFtZXM6Ci0r QVVfREVGVU4oW0FDX0VOQUJMRV9GQVNUX0lOU1RBTExdLAotK1tfTFRfU0VUX09QVElPTihbTFRf SU5JVF0sIG00X2lmKFskMV0sIFtub10sIFtkaXNhYmxlLV0pW2Zhc3QtaW5zdGFsbF0pCi0rQUNf RElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBj YWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4geW91IHB1dAotK3RoZSBgZmFzdC1pbnN0YWxsJyBv cHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCi0rXSkKLSsKLStBVV9ERUZV TihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdLAotK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0s IFtkaXNhYmxlLWZhc3QtaW5zdGFsbF0pCi0rQUNfRElBR05PU0UoW29ic29sZXRlXSwKLStbJDA6 IFJlbW92ZSB0aGlzIHdhcm5pbmcgYW5kIHRoZSBjYWxsIHRvIF9MVF9TRVRfT1BUSU9OIHdoZW4g eW91IHB1dAotK3RoZSBgZGlzYWJsZS1mYXN0LWluc3RhbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQn cyBmaXJzdCBwYXJhbWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0VOQUJMRV9GQVNUX0lOU1RBTExdLCBb XSkKLStkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwgW10pCi0rCi0rCi0r IyBfTFRfV0lUSF9QSUMoW01PREVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGltcGxl bWVudCB0aGUgLS13aXRoLXBpYyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHBpYy1vbmx5JyBhbmQg YG5vLXBpYycKLSsjIExUX0lOSVQgb3B0aW9ucy4KLSsjIE1PREUgaXMgZWl0aGVyIGB5ZXMnIG9y IGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgYm90aCcuCi0rbTRfZGVmaW5lKFtf TFRfV0lUSF9QSUNdLAotK1tBQ19BUkdfV0lUSChbcGljXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5H KFstLXdpdGgtcGljXSwKLSsJW3RyeSB0byB1c2Ugb25seSBQSUMvbm9uLVBJQyBvYmplY3RzIEA8 OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKLSsgICAgW3BpY19tb2RlPSIkd2l0aHZhbCJdLAot KyAgICBbcGljX21vZGU9ZGVmYXVsdF0pCi0rCi0rdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNf bW9kZT1tNF9kZWZhdWx0KFskMV0sIFtkZWZhdWx0XSkKLSsKLStfTFRfREVDTChbXSwgW3BpY19t b2RlXSwgWzBdLCBbV2hhdCB0eXBlIG9mIG9iamVjdHMgdG8gYnVpbGRdKWRubAotK10pIyBfTFRf V0lUSF9QSUMKLSsKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3BpYy1vbmx5XSwgW19M VF9XSVRIX1BJQyhbeWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbbm8tcGlj XSwgW19MVF9XSVRIX1BJQyhbbm9dKV0pCi0rCi0rIyBPbGQgbmFtZToKLStBVV9ERUZVTihbQUNf TElCVE9PTF9QSUNNT0RFXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbcGljLW9ubHld KQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCi0rWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFu ZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdQotK3B1dCB0aGUgYHBpYy1vbmx5 JyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCi0rXSkKLSsKLStkbmwg YWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19M SUJUT09MX1BJQ01PREVdLCBbXSkKLSsKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIExU RExfSU5JVCBPcHRpb25zICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsKLSttNF9kZWZp bmUoW19MVERMX01PREVdLCBbXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbbm9u cmVjdXJzaXZlXSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW25vbnJlY3Vyc2l2ZV0p XSkKLStMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbcmVjdXJzaXZlXSwKLSsJCSBbbTRf ZGVmaW5lKFtfTFRETF9NT0RFXSwgW3JlY3Vyc2l2ZV0pXSkKLStMVF9PUFRJT05fREVGSU5FKFtM VERMX0lOSVRdLCBbc3VicHJvamVjdF0sCi0rCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtz dWJwcm9qZWN0XSldKQotKwotK200X2RlZmluZShbX0xURExfVFlQRV0sIFtdKQotK0xUX09QVElP Tl9ERUZJTkUoW0xURExfSU5JVF0sIFtpbnN0YWxsYWJsZV0sCi0rCQkgW200X2RlZmluZShbX0xU RExfVFlQRV0sIFtpbnN0YWxsYWJsZV0pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRd LCBbY29udmVuaWVuY2VdLAotKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbY29udmVuaWVu Y2VdKV0pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0c3VnYXIubTQgc29j aS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1Z2FyLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2sv Y29uZmlnL2x0c3VnYXIubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0c3VnYXIubTQJMjAwOS0wNS0yMyAxMDowMTo1 Ni4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTIzIEBACi0rIyBsdHN1Z2FyLm00IC0tIGxp YnRvb2wgbTQgYmFzZSBsYXllci4gICAgICAgICAgICAgICAgICAgICAgICAgLSotQXV0b2NvbmYt Ki0KLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAw NAotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDYgbHRzdWdhci5tNAot KwotKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNh bid0IHNlZSBtNF9kZWZpbmUuCi0rQUNfREVGVU4oW0xUU1VHQVJfVkVSU0lPTl0sIFttNF9pZihb MC4xXSldKQotKwotKwotKyMgbHRfam9pbihTRVAsIEFSRzEsIFtBUkcyLi4uXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBQcm9kdWNlIEFSRzFTRVBBUkcyLi4uU0VQQVJH biwgb21pdHRpbmcgW10gYXJndW1lbnRzIGFuZCB0aGVpcgotKyMgYXNzb2NpYXRlZCBzZXBhcmF0 b3IuCi0rIyBOZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gbTRfam9pbiBmcm9tIEF1dG9jb25m IDIuNjIsIHNpbmNlIGFsbCBlYXJsaWVyCi0rIyB2ZXJzaW9ucyBpbiBtNHN1Z2FyIGhhZCBidWdz LgotK200X2RlZmluZShbbHRfam9pbl0sCi0rW200X2lmKFskI10sIFsxXSwgW10sCi0rICAgICAg IFskI10sIFsyXSwgW1skMl1dLAotKyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQyXV9d KSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpXSldKQotK200X2RlZmluZShbX2x0X2pv aW5dLAotK1ttNF9pZihbJCMkMl0sIFsyXSwgW10sCi0rICAgICAgIFttNF9pZihbJDJdLCBbXSwg W10sIFtbJDEkMl1dKSQwKFskMV0sIG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpXSldKQotKwotKwot KyMgbHRfY2FyKExJU1QpCi0rIyBsdF9jZHIoTElTVCkKLSsjIC0tLS0tLS0tLS0tLQotKyMgTWFu aXB1bGF0ZSBtNCBsaXN0cy4KLSsjIFRoZXNlIG1hY3JvcyBhcmUgbmVjZXNzYXJ5IGFzIGxvbmcg YXMgd2lsbCBzdGlsbCBuZWVkIHRvIHN1cHBvcnQKLSsjIEF1dG9jb25mLTIuNTkgd2hpY2ggcXVv dGVzIGRpZmZlcmVudGx5LgotK200X2RlZmluZShbbHRfY2FyXSwgW1skMV1dKQotK200X2RlZmlu ZShbbHRfY2RyXSwKLStbbTRfaWYoWyQjXSwgMCwgW200X2ZhdGFsKFskMDogY2Fubm90IGJlIGNh bGxlZCB3aXRob3V0IGFyZ3VtZW50c10pXSwKLSsgICAgICAgWyQjXSwgMSwgW10sCi0rICAgICAg IFttNF9kcXVvdGUobTRfc2hpZnQoJEApKV0pXSkKLSttNF9kZWZpbmUoW2x0X3VucXVvdGVdLCAk MSkKLSsKLSsKLSsjIGx0X2FwcGVuZChNQUNSTy1OQU1FLCBTVFJJTkcsIFtTRVBBUkFUT1JdKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBSZWRlZmlu ZSBNQUNSTy1OQU1FIHRvIGhvbGQgaXRzIGZvcm1lciBjb250ZW50IHBsdXMgYFNFUEFSQVRPUidg U1RSSU5HJy4KLSsjIE5vdGUgdGhhdCBuZWl0aGVyIFNFUEFSQVRPUiBub3IgU1RSSU5HIGFyZSBl eHBhbmRlZDsgdGhleSBhcmUgYXBwZW5kZWQKLSsjIHRvIE1BQ1JPLU5BTUUgYXMgaXMgKGxlYXZp bmcgdGhlIGV4cGFuc2lvbiBmb3Igd2hlbiBNQUNSTy1OQU1FIGlzIGludm9rZWQpLgotKyMgTm8g U0VQQVJBVE9SIGlzIG91dHB1dCBpZiBNQUNSTy1OQU1FIHdhcyBwcmV2aW91c2x5IHVuZGVmaW5l ZCAoZGlmZmVyZW50Ci0rIyB0aGFuIGRlZmluZWQgYW5kIGVtcHR5KS4KLSsjCi0rIyBUaGlzIG1h Y3JvIGlzIG5lZWRlZCB1bnRpbCB3ZSBjYW4gcmVseSBvbiBBdXRvY29uZiAyLjYyLCBzaW5jZSBl YXJsaWVyCi0rIyB2ZXJzaW9ucyBvZiBtNHN1Z2FyIG1pc3Rha2VubHkgZXhwYW5kZWQgU0VQQVJB VE9SIGJ1dCBub3QgU1RSSU5HLgotK200X2RlZmluZShbbHRfYXBwZW5kXSwKLStbbTRfZGVmaW5l KFskMV0sCi0rCSAgIG00X2lmZGVmKFskMV0sIFttNF9kZWZuKFskMV0pWyQzXV0pWyQyXSldKQot KwotKwotKwotKyMgbHRfY29tYmluZShTRVAsIFBSRUZJWC1MSVNULCBJTkZJWCwgU1VGRklYMSwg W1NVRkZJWDIuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUHJvZHVjZSBhIFNFUCBkZWxpbWl0ZWQgbGlzdCBvZiBh bGwgcGFpcmVkIGNvbWJpbmF0aW9ucyBvZiBlbGVtZW50cyBvZgotKyMgUFJFRklYLUxJU1Qgd2l0 aCBTVUZGSVgxIHRocm91Z2ggU1VGRklYbi4gIEVhY2ggZWxlbWVudCBvZiB0aGUgbGlzdAotKyMg aGFzIHRoZSBmb3JtIFBSRUZJWG1JTkZJWFNVRkZJWG4uCi0rIyBOZWVkZWQgdW50aWwgd2UgY2Fu IHJlbHkgb24gbTRfY29tYmluZSBhZGRlZCBpbiBBdXRvY29uZiAyLjYyLgotK200X2RlZmluZShb bHRfY29tYmluZV0sCi0rW200X2lmKG00X2V2YWwoWyQjID4gM10pLCBbMV0sCi0rICAgICAgIFtt NF9wdXNoZGVmKFtfTHRfc2VwXSwgW200X2RlZmluZShbX0x0X3NlcF0sIG00X2RlZm4oW2x0X2Nh cl0pKV0pXV1kbmwKLStbW200X2ZvcmVhY2goW19MdF9wcmVmaXhdLCBbJDJdLAotKwkgICAgIFtt NF9mb3JlYWNoKFtfTHRfc3VmZml4XSwKLSsJCV1tNF9kcXVvdGUobTRfZHF1b3RlKG00X3NoaWZ0 KG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpKSlbLAotKwlbX0x0X3NlcChbJDFdKVtdbTRfZGVmbihb X0x0X3ByZWZpeF0pWyQzXW00X2RlZm4oW19MdF9zdWZmaXhdKV0pXSldKV0pCi0rCi0rCi0rIyBs dF9pZl9hcHBlbmRfdW5pcShNQUNSTy1OQU1FLCBWQVJOQU1FLCBbU0VQQVJBVE9SXSwgW1VOSVFd LCBbTk9ULVVOSVFdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIElmZiBNQUNSTy1OQU1FIGRvZXMg bm90IHlldCBjb250YWluIFZBUk5BTUUsIHRoZW4gYXBwZW5kIGl0IChkZWxpbWl0ZWQKLSsjIGJ5 IFNFUEFSQVRPUiBpZiBzdXBwbGllZCkgYW5kIGV4cGFuZCBVTklRLCBlbHNlIE5PVC1VTklRLgot K200X2RlZmluZShbbHRfaWZfYXBwZW5kX3VuaXFdLAotK1ttNF9pZmRlZihbJDFdLAotKwkgIFtt NF9pZihtNF9pbmRleChbJDNdbTRfZGVmbihbJDFdKVskM10sIFskMyQyJDNdKSwgWy0xXSwKLSsJ CSBbbHRfYXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdLAotKwkJIFskNV0pXSwKLSsJICBbbHRf YXBwZW5kKFskMV0sIFskMl0sIFskM10pJDRdKV0pCi0rCi0rCi0rIyBsdF9kaWN0X2FkZChESUNU LCBLRVksIFZBTFVFKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZp bmUoW2x0X2RpY3RfYWRkXSwKLStbbTRfZGVmaW5lKFskMSgkMildLCBbJDNdKV0pCi0rCi0rCi0r IyBsdF9kaWN0X2FkZF9zdWJrZXkoRElDVCwgS0VZLCBTVUJLRVksIFZBTFVFKQotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2Rp Y3RfYWRkX3N1YmtleV0sCi0rW200X2RlZmluZShbJDEoJDI6JDMpXSwgWyQ0XSldKQotKwotKwot KyMgbHRfZGljdF9mZXRjaChESUNULCBLRVksIFtTVUJLRVldKQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGljdF9mZXRjaF0sCi0rW200X2lm dmFsKFskM10sCi0rCW00X2lmZGVmKFskMSgkMjokMyldLCBbbTRfZGVmbihbJDEoJDI6JDMpXSld KSwKLSsgICAgbTRfaWZkZWYoWyQxKCQyKV0sIFttNF9kZWZuKFskMSgkMildKV0pKV0pCi0rCi0r Ci0rIyBsdF9pZl9kaWN0X2ZldGNoKERJQ1QsIEtFWSwgW1NVQktFWV0sIFZBTFVFLCBJRi1UUlVF LCBbSUYtRkFMU0VdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2lmX2RpY3RfZmV0Y2hd LAotK1ttNF9pZihsdF9kaWN0X2ZldGNoKFskMV0sIFskMl0sIFskM10pLCBbJDRdLAotKwlbJDVd LAotKyAgICBbJDZdKV0pCi0rCi0rCi0rIyBsdF9kaWN0X2ZpbHRlcihESUNULCBbU1VCS0VZXSwg VkFMVUUsIFtTRVBBUkFUT1JdLCBLRVksIFsuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0 X2RpY3RfZmlsdGVyXSwKLStbbTRfaWYoWyQ1XSwgW10sIFtdLAotKyAgW2x0X2pvaW4obTRfcXVv dGUobTRfZGVmYXVsdChbJDRdLCBbWywgXV0pKSwKLSsgICAgICAgICAgIGx0X3VucXVvdGUobTRf c3BsaXQobTRfbm9ybWFsaXplKG00X2ZvcmVhY2goX0x0X2tleSwgbHRfY2FyKFttNF9zaGlmdG4o NCwgJEApXSksCi0rCQkgICAgICBbbHRfaWZfZGljdF9mZXRjaChbJDFdLCBfTHRfa2V5LCBbJDJd LCBbJDNdLCBbX0x0X2tleSBdKV0pKSkpKV0pW11kbmwKLStdKQotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZy9sdHZlcnNpb24ubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9s dHZlcnNpb24ubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR2ZXJzaW9uLm00CTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L2NvbmZpZy9sdHZlcnNpb24ubTQJMjAwOS0wNS0yMyAxMDowMTo1Ni4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsMjMgQEAKLSsjIGx0dmVyc2lvbi5tNCAtLSB2ZXJzaW9uIG51bWJlcnMJCQkt Ki0gQXV0b2NvbmYgLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgU2NvdHQgSmFtZXMgUmVtbmFudCwg MjAwNAotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uIGdpdmVzCi0rIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKLSsjIG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgR2VuZXJhdGVkIGZyb20gbHR2 ZXJzaW9uLmluLgotKwotKyMgc2VyaWFsIDMwMTIgbHR2ZXJzaW9uLm00Ci0rIyBUaGlzIGZpbGUg aXMgcGFydCBvZiBHTlUgTGlidG9vbAotKwotK200X2RlZmluZShbTFRfUEFDS0FHRV9WRVJTSU9O XSwgWzIuMi42XSkKLSttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfUkVWSVNJT05dLCBbMS4zMDEyXSkK LSsKLStBQ19ERUZVTihbTFRWRVJTSU9OX1ZFUlNJT05dLAotK1ttYWNyb192ZXJzaW9uPScyLjIu NicKLSttYWNyb19yZXZpc2lvbj0nMS4zMDEyJwotK19MVF9ERUNMKCwgbWFjcm9fdmVyc2lvbiwg MCwgW1doaWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNlZD9dKQotK19MVF9ERUNMKCwg bWFjcm9fcmV2aXNpb24sIDApCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25m aWcvbWlzc2luZyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvbWlzc2luZwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbWlzc2luZwkyMDA5LTA1LTIzIDEw OjAyOjAxLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzNjcgQEAKLSsjISAvYmluL3NoCi0r IyBDb21tb24gc3R1YiBmb3IgYSBmZXcgbWlzc2luZyBHTlUgcHJvZ3JhbXMgd2hpbGUgaW5zdGFs bGluZy4KLSsKLStzY3JpcHR2ZXJzaW9uPTIwMDYtMDUtMTAuMjMKLSsKLSsjIENvcHlyaWdodCAo QykgMTk5NiwgMTk5NywgMTk5OSwgMjAwMCwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNgot KyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIE9yaWdpbmFsbHkgYnkgRnJh bixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51bW9udHJlYWwuY2E+LCAxOTk2LgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0rIyBhbnkgbGF0ZXIgdmVy c2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsj IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv biwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24g dG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUg dGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmln dXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQg dW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRo ZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLStpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCi0rICBl Y2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCi0rICBleGl0 IDEKLStmaQotKwotK3J1bj06Ci0rc2VkX291dHB1dD0ncy8uKiAtLW91dHB1dFsgPV1cKFteIF0q XCkuKi9cMS9wJwotK3NlZF9taW51c289J3MvLiogLW8gXChbXiBdKlwpLiovXDEvcCcKLSsKLSsj IEluIHRoZSBjYXNlcyB3aGVyZSB0aGlzIG1hdHRlcnMsIGBtaXNzaW5nJyBpcyBiZWluZyBydW4g aW4gdGhlCi0rIyBzcmNkaXIgYWxyZWFkeS4KLStpZiB0ZXN0IC1mIGNvbmZpZ3VyZS5hYzsgdGhl bgotKyAgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5hYwotK2Vsc2UKLSsgIGNvbmZpZ3VyZV9hYz1j b25maWd1cmUuaW4KLStmaQotKwotK21zZz0ibWlzc2luZyBvbiB5b3VyIHN5c3RlbSIKLSsKLStj YXNlICQxIGluCi0rLS1ydW4pCi0rICAjIFRyeSB0byBydW4gcmVxdWVzdGVkIHByb2dyYW0sIGFu ZCBqdXN0IGV4aXQgaWYgaXQgc3VjY2VlZHMuCi0rICBydW49Ci0rICBzaGlmdAotKyAgIiRAIiAm JiBleGl0IDAKLSsgICMgRXhpdCBjb2RlIDYzIG1lYW5zIHZlcnNpb24gbWlzbWF0Y2guICBUaGlz IG9mdGVuIGhhcHBlbnMKLSsgICMgd2hlbiB0aGUgdXNlciB0cnkgdG8gdXNlIGFuIGFuY2llbnQg dmVyc2lvbiBvZiBhIHRvb2wgb24KLSsgICMgYSBmaWxlIHRoYXQgcmVxdWlyZXMgYSBtaW5pbXVt IHZlcnNpb24uICBJbiB0aGlzIGNhc2Ugd2UKLSsgICMgd2Ugc2hvdWxkIHByb2NlZWQgaGFzIGlm IHRoZSBwcm9ncmFtIGhhZCBiZWVuIGFic2VudCwgb3IKLSsgICMgaWYgLS1ydW4gaGFkbid0IGJl ZW4gcGFzc2VkLgotKyAgaWYgdGVzdCAkPyA9IDYzOyB0aGVuCi0rICAgIHJ1bj06Ci0rICAgIG1z Zz0icHJvYmFibHkgdG9vIG9sZCIKLSsgIGZpCi0rICA7OwotKwotKyAgLWh8LS1ofC0taGV8LS1o ZWx8LS1oZWxwKQotKyAgICBlY2hvICJcCi0rJDAgW09QVElPTl0uLi4gUFJPR1JBTSBbQVJHVU1F TlRdLi4uCi0rCi0rSGFuZGxlIFxgUFJPR1JBTSBbQVJHVU1FTlRdLi4uJyBmb3Igd2hlbiBQUk9H UkFNIGlzIG1pc3NpbmcsIG9yIHJldHVybiBhbgotK2Vycm9yIHN0YXR1cyBpZiB0aGVyZSBpcyBu byBrbm93biBoYW5kbGluZyBmb3IgUFJPR1JBTS4KLSsKLStPcHRpb25zOgotKyAgLWgsIC0taGVs cCAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Ci0rICAtdiwgLS12ZXJzaW9uICAgb3V0 cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsgIC0tcnVuICAgICAgICAgICB0cnkg dG8gcnVuIHRoZSBnaXZlbiBjb21tYW5kLCBhbmQgZW11bGF0ZSBpdCBpZiBpdCBmYWlscwotKwot K1N1cHBvcnRlZCBQUk9HUkFNIHZhbHVlczoKLSsgIGFjbG9jYWwgICAgICB0b3VjaCBmaWxlIFxg YWNsb2NhbC5tNCcKLSsgIGF1dG9jb25mICAgICB0b3VjaCBmaWxlIFxgY29uZmlndXJlJwotKyAg YXV0b2hlYWRlciAgIHRvdWNoIGZpbGUgXGBjb25maWcuaC5pbicKLSsgIGF1dG9tNHRlICAgICB0 b3VjaCB0aGUgb3V0cHV0IGZpbGUsIG9yIGNyZWF0ZSBhIHN0dWIgb25lCi0rICBhdXRvbWFrZSAg ICAgdG91Y2ggYWxsIFxgTWFrZWZpbGUuaW4nIGZpbGVzCi0rICBiaXNvbiAgICAgICAgY3JlYXRl IFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCi0rICBmbGV4 ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAu YwotKyAgaGVscDJtYW4gICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZQotKyAgbGV4ICAgICAgICAg IGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKLSsgIG1h a2VpbmZvICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIHRhciAgICAgICAgICB0cnkgdGFy LCBnbnV0YXIsIGd0YXIsIHRoZW4gdGFyIHdpdGhvdXQgbm9uLXBvcnRhYmxlIGZsYWdzCi0rICB5 YWNjICAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0 aW5nIC5bY2hdCi0rCi0rU2VuZCBidWcgcmVwb3J0cyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+ LiIKLSsgICAgZXhpdCAkPwotKyAgICA7OwotKwotKyAgLXZ8LS12fC0tdmV8LS12ZXJ8LS12ZXJz fC0tdmVyc2l8LS12ZXJzaW98LS12ZXJzaW9uKQotKyAgICBlY2hvICJtaXNzaW5nICRzY3JpcHR2 ZXJzaW9uIChHTlUgQXV0b21ha2UpIgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtKikK LSsgICAgZWNobyAxPiYyICIkMDogVW5rbm93biBcYCQxJyBvcHRpb24iCi0rICAgIGVjaG8gMT4m MiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiIKLSsgICAgZXhpdCAxCi0r ICAgIDs7Ci0rCi0rZXNhYwotKwotKyMgTm93IGV4aXQgaWYgd2UgaGF2ZSBpdCwgYnV0IGl0IGZh aWxlZC4gIEFsc28gZXhpdCBub3cgaWYgd2UKLSsjIGRvbid0IGhhdmUgaXQgYW5kIC0tdmVyc2lv biB3YXMgcGFzc2VkIChtb3N0IGxpa2VseSB0byBkZXRlY3QKLSsjIHRoZSBwcm9ncmFtKS4KLStj YXNlICQxIGluCi0rICBsZXh8eWFjYykKLSsgICAgIyBOb3QgR05VIHByb2dyYW1zLCB0aGV5IGRv bid0IGhhdmUgLS12ZXJzaW9uLgotKyAgICA7OwotKwotKyAgdGFyKQotKyAgICBpZiB0ZXN0IC1u ICIkcnVuIjsgdGhlbgotKyAgICAgICBlY2hvIDE+JjIgIkVSUk9SOiBcYHRhcicgcmVxdWlyZXMg LS1ydW4iCi0rICAgICAgIGV4aXQgMQotKyAgICBlbGlmIHRlc3QgIngkMiIgPSAieC0tdmVyc2lv biIgfHwgdGVzdCAieCQyIiA9ICJ4LS1oZWxwIjsgdGhlbgotKyAgICAgICBleGl0IDEKLSsgICAg ZmkKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZl cnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAgIyBXZSBoYXZlIGl0LCBidXQg aXQgZmFpbGVkLgotKyAgICAgICBleGl0IDEKLSsgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZl cnNpb24iIHx8IHRlc3QgIngkMiIgPSAieC0taGVscCI7IHRoZW4KLSsgICAgICAgIyBDb3VsZCBu b3QgcnVuIC0tdmVyc2lvbiBvciAtLWhlbHAuICBUaGlzIGlzIHByb2JhYmx5IHNvbWVvbmUKLSsg ICAgICAgIyBydW5uaW5nIGAkVE9PTCAtLXZlcnNpb24nIG9yIGAkVE9PTCAtLWhlbHAnIHRvIGNo ZWNrIHdoZXRoZXIKLSsgICAgICAgIyAkVE9PTCBleGlzdHMgYW5kIG5vdCBrbm93aW5nICRUT09M IHVzZXMgbWlzc2luZy4KLSsgICAgICAgZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0rZXNhYwot KwotKyMgSWYgaXQgZG9lcyBub3QgZXhpc3QsIG9yIGZhaWxzIHRvIHJ1biAocG9zc2libHkgYW4g b3V0ZGF0ZWQgdmVyc2lvbiksCi0rIyB0cnkgdG8gZW11bGF0ZSBpdC4KLStjYXNlICQxIGluCi0r ICBhY2xvY2FsKikKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMgJG1zZy4g IFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNp bmNsdWRlLm00JyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAotKyAgICAg ICAgIHRvIGluc3RhbGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLiAgR3Jh YiB0aGVtIGZyb20KLSsgICAgICAgICBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHRvdWNo IGFjbG9jYWwubTQKLSsgICAgOzsKLSsKLSsgIGF1dG9jb25mKQotKyAgICBlY2hvIDE+JjIgIlwK LStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsg ICAgICAgICB5b3UgbW9kaWZpZWQgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQg dG8gaW5zdGFsbCB0aGUKLSsgICAgICAgICBcYEF1dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2th Z2VzLiAgR3JhYiB0aGVtIGZyb20gYW55IEdOVQotKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCi0r ICAgIHRvdWNoIGNvbmZpZ3VyZQotKyAgICA7OwotKwotKyAgYXV0b2hlYWRlcikKLSsgICAgZWNo byAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVk IGl0IGlmCi0rICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25maWcuaCcgb3IgXGAke2NvbmZp Z3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKLSsgICAgICAgICB0byBpbnN0YWxsIHRoZSBcYEF1 dG9jb25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtCi0rICAgICAgICAgZnJv bSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIGZpbGVzPWBzZWQgLW4gJ3MvXlsgXSpBW0NN XV9DT05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2NvbmZpZ3VyZV9hY31gCi0rICAg IHRlc3QgLXogIiRmaWxlcyIgJiYgZmlsZXM9ImNvbmZpZy5oIgotKyAgICB0b3VjaF9maWxlcz0K LSsgICAgZm9yIGYgaW4gJGZpbGVzOyBkbwotKyAgICAgIGNhc2UgJGYgaW4KLSsgICAgICAqOiop IHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAotKwkJCQkgICAgICAgc2Vk IC1lICdzL15bXjpdKjovLycgLWUgJ3MvOi4qLy8nYDs7Ci0rICAgICAgKikgdG91Y2hfZmlsZXM9 IiR0b3VjaF9maWxlcyAkZi5pbiI7OwotKyAgICAgIGVzYWMKLSsgICAgZG9uZQotKyAgICB0b3Vj aCAkdG91Y2hfZmlsZXMKLSsgICAgOzsKLSsKLSsgIGF1dG9tYWtlKikKLSsgICAgZWNobyAxPiYy ICJcCi0rV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlm Ci0rICAgICAgICAgeW91IG1vZGlmaWVkIFxgTWFrZWZpbGUuYW0nLCBcYGFjaW5jbHVkZS5tNCcg b3IgXGAke2NvbmZpZ3VyZV9hY30nLgotKyAgICAgICAgIFlvdSBtaWdodCB3YW50IHRvIGluc3Rh bGwgdGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLgotKyAgICAgICAgIEdyYWIg dGhlbSBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKLSsgICAgZmluZCAuIC10eXBlIGYgLW5h bWUgTWFrZWZpbGUuYW0gLXByaW50IHwKLSsJICAgc2VkICdzL1wuYW0kLy5pbi8nIHwKLSsJICAg d2hpbGUgcmVhZCBmOyBkbyB0b3VjaCAiJGYiOyBkb25lCi0rICAgIDs7Ci0rCi0rICBhdXRvbTR0 ZSkKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBidXQgaXMg JG1zZy4KLSsgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhv dXQgaGF2aW5nIHRoZQotKyAgICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGlu ZyB0aGVtLgotKyAgICAgICAgIFlvdSBjYW4gZ2V0IFxgJDEnIGFzIHBhcnQgb2YgXGBBdXRvY29u ZicgZnJvbSBhbnkgR05VCi0rICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKLSsKLSsgICAgZmlsZT1g ZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCi0rICAgIHRlc3QgLXogIiRmaWxlIiAm JiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNvImAKLSsgICAgaWYgdGVzdCAt ZiAiJGZpbGUiOyB0aGVuCi0rCXRvdWNoICRmaWxlCi0rICAgIGVsc2UKLSsJdGVzdCAteiAiJGZp bGUiIHx8IGV4ZWMgPiRmaWxlCi0rCWVjaG8gIiMhIC9iaW4vc2giCi0rCWVjaG8gIiMgQ3JlYXRl ZCBieSBHTlUgQXV0b21ha2UgbWlzc2luZyBhcyBhIHJlcGxhY2VtZW50IG9mIgotKwllY2hvICIj ICAkICRAIgotKwllY2hvICJleGl0IDAiCi0rCWNobW9kICt4ICRmaWxlCi0rCWV4aXQgMQotKyAg ICBmaQotKyAgICA7OwotKwotKyAgYmlzb258eWFjYykKLSsgICAgZWNobyAxPiYyICJcCi0rV0FS TklORzogXGAkMScgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCi0rICAgICAgICAg eW91IG1vZGlmaWVkIGEgXGAueScgZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBCaXNvbicgcGFj a2FnZQotKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2Ug ZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEJpc29uJyBmcm9tIGFueSBHTlUgYXJj aGl2ZSBzaXRlLiIKLSsgICAgcm0gLWYgeS50YWIuYyB5LnRhYi5oCi0rICAgIGlmIHRlc3QgJCMg LW5lIDE7IHRoZW4KLSsgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7JCN9IgotKwljYXNlICRMQVNU QVJHIGluCi0rCSoueSkKLSsJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95 JC9jLydgCi0rCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3Ag IiRTUkNGSUxFIiB5LnRhYi5jCi0rCSAgICBmaQotKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RB UkciIHwgc2VkICdzL3kkL2gvJ2AKLSsJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgot KwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmgKLSsJICAgIGZpCi0rCSAgOzsKLSsJZXNh YwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuaDsgdGhlbgotKwllY2hvID55LnRh Yi5oCi0rICAgIGZpCi0rICAgIGlmIHRlc3QgISAtZiB5LnRhYi5jOyB0aGVuCi0rCWVjaG8gJ21h aW4oKSB7IHJldHVybiAwOyB9JyA+eS50YWIuYwotKyAgICBmaQotKyAgICA7OwotKwotKyAgbGV4 fGZsZXgpCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ug c2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZp bGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgRmxleCcgcGFja2FnZQotKyAgICAgICAgIGluIG9yZGVy IGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsg ICAgICAgICBcYEZsZXgnIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICBybSAtZiBs ZXgueXkuYwotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAgICBldmFsIExBU1RB Ukc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLmwpCi0rCSAgICBTUkNGSUxFPWBl Y2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8nYAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJ TEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4Lnl5LmMKLSsJICAgIGZpCi0r CSAgOzsKLSsJZXNhYwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4K LSsJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0nID5sZXgueXkuYwotKyAgICBmaQotKyAgICA7 OwotKwotKyAgaGVscDJtYW4pCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlz ICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKwkgeW91IG1vZGlmaWVkIGEgZGVw ZW5kZW5jeSBvZiBhIG1hbnVhbCBwYWdlLiAgWW91IG1heSBuZWVkIHRoZQotKwkgXGBIZWxwMm1h bicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlCi0rCSBl ZmZlY3QuICBZb3UgY2FuIGdldCBcYEhlbHAybWFuJyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRl LiIKLSsKLSsgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCi0rICAg IHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWludXNv ImAKLSsgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCi0rCXRvdWNoICRmaWxlCi0rICAgIGVs c2UKLSsJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxlCi0rCWVjaG8gIi5hYiBoZWxwMm1h biBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCi0rCWV4aXQgMQotKyAgICBmaQot KyAgICA7OwotKwotKyAgbWFrZWluZm8pCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxg JDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBt b2RpZmllZCBhIFxgLnRleGknIG9yIFxgLnRleGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxl Ci0rICAgICAgICAgaW5kaXJlY3RseSBhZmZlY3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFs LiAgVGhlIHNwdXJpb3VzCi0rICAgICAgICAgY2FsbCBtaWdodCBhbHNvIGJlIHRoZSBjb25zZXF1 ZW5jZSBvZiB1c2luZyBhIGJ1Z2d5IFxgbWFrZScgKEFJWCwKLSsgICAgICAgICBEVSwgSVJJWCku ICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKLSsg ICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFja2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdO VSBhcmNoaXZlIHNpdGUuIgotKyAgICAjIFRoZSBmaWxlIHRvIHRvdWNoIGlzIHRoYXQgc3BlY2lm aWVkIHdpdGggLW8gLi4uCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRw dXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIk c2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLXogIiRmaWxlIjsgdGhlbgotKyAgICAgICMgLi4u IG9yIGl0IGlzIHRoZSBvbmUgc3BlY2lmaWVkIHdpdGggQHNldGZpbGVuYW1lIC4uLgotKyAgICAg IGluZmlsZT1gZWNobyAiJCoiIHwgc2VkICdzLy4qIFwoW14gXSpcKSAqJC9cMS8nYAotKyAgICAg IGZpbGU9YHNlZCAtbiAnCi0rCS9eQHNldGZpbGVuYW1lL3sKLSsJICBzLy4qIFwoW14gXSpcKSAq JC9cMS8KLSsJICBwCi0rCSAgcQotKwl9JyAkaW5maWxlYAotKyAgICAgICMgLi4uIG9yIGl0IGlz IGRlcml2ZWQgZnJvbSB0aGUgc291cmNlIG5hbWUgKGRpci9mLnRleGkgYmVjb21lcyBmLmluZm8p Ci0rICAgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiRpbmZpbGUiIHwgc2VkICdz LC4qLywsO3MsLlteLl0qJCwsJ2AuaW5mbwotKyAgICBmaQotKyAgICAjIElmIHRoZSBmaWxlIGRv ZXMgbm90IGV4aXN0LCB0aGUgdXNlciByZWFsbHkgbmVlZHMgbWFrZWluZm87Ci0rICAgICMgbGV0 J3MgZmFpbCB3aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nLgotKyAgICB0ZXN0IC1mICRmaWxlIHx8 IGV4aXQgMQotKyAgICB0b3VjaCAkZmlsZQotKyAgICA7OwotKwotKyAgdGFyKQotKyAgICBzaGlm dAotKwotKyAgICAjIFdlIGhhdmUgYWxyZWFkeSB0cmllZCB0YXIgaW4gdGhlIGdlbmVyaWMgcGFy dC4KLSsgICAgIyBMb29rIGZvciBnbnV0YXIvZ3RhciBiZWZvcmUgaW52b2NhdGlvbiB0byBhdm9p ZCB1Z2x5IGVycm9yCi0rICAgICMgbWVzc2FnZXMuCi0rICAgIGlmIChnbnV0YXIgLS12ZXJzaW9u ID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAgIGdudXRhciAiJEAiICYmIGV4aXQgMAot KyAgICBmaQotKyAgICBpZiAoZ3RhciAtLXZlcnNpb24gPiAvZGV2L251bGwgMj4mMSk7IHRoZW4K LSsgICAgICAgZ3RhciAiJEAiICYmIGV4aXQgMAotKyAgICBmaQotKyAgICBmaXJzdGFyZz0iJDEi Ci0rICAgIGlmIHNoaWZ0OyB0aGVuCi0rCWNhc2UgJGZpcnN0YXJnIGluCi0rCSpvKikKLSsJICAg IGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2VkIHMvby8vYAotKwkgICAgdGFyICIkZmly c3RhcmciICIkQCIgJiYgZXhpdCAwCi0rCSAgICA7OwotKwllc2FjCi0rCWNhc2UgJGZpcnN0YXJn IGluCi0rCSpoKikKLSsJICAgIGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2VkIHMvaC8v YAotKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCi0rCSAgICA7OwotKwllc2Fj Ci0rICAgIGZpCi0rCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IEkgY2FuJ3Qgc2VlbSB0 byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLgotKyAgICAg ICAgIFlvdSBtYXkgd2FudCB0byBpbnN0YWxsIEdOVSB0YXIgb3IgRnJlZSBwYXh1dGlscywgb3Ig Y2hlY2sgdGhlCi0rICAgICAgICAgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4iCi0rICAgIGV4aXQg MQotKyAgICA7OwotKwotKyAgKikKLSsgICAgZWNobyAxPiYyICJcCi0rV0FSTklORzogXGAkMScg aXMgbmVlZGVkLCBhbmQgaXMgJG1zZy4KLSsgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmll ZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQotKyAgICAgICAgIHByb3BlciB0b29scyBm b3IgZnVydGhlciBoYW5kbGluZyB0aGVtLiAgQ2hlY2sgdGhlIFxgUkVBRE1FJyBmaWxlLAotKyAg ICAgICAgIGl0IG9mdGVuIHRlbGxzIHlvdSBhYm91dCB0aGUgbmVlZGVkIHByZXJlcXVpc2l0ZXMg Zm9yIGluc3RhbGxpbmcKLSsgICAgICAgICB0aGlzIHBhY2thZ2UuICBZb3UgbWF5IGFsc28gcGVl ayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2FzZQotKyAgICAgICAgIHNvbWUgb3RoZXIg cGFja2FnZSB3b3VsZCBjb250YWluIHRoaXMgbWlzc2luZyBcYCQxJyBwcm9ncmFtLiIKLSsgICAg ZXhpdCAxCi0rICAgIDs7Ci0rZXNhYwotKwotK2V4aXQgMAotKwotKyMgTG9jYWwgdmFyaWFibGVz OgotKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQotKyMg dGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgotKyMgdGltZS1zdGFtcC1mb3JtYXQ6 ICIlOnktJTAybS0lMDJkLiUwMkgiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiQiCi0rIyBFbmQ6Ci1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWd1cmUKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUJMjAwOS0wNS0yMyAxMzoz NzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlndXJlCTIw MDktMDUtMjMgMTA6MDI6MDAuMDAwMDAwMDAwICswMjAwCi1AQCAtMSw3MiArMSwyMjE1MCBAQAot LSMhL2Jpbi9zaAotKyMhIC9iaW4vc2gKLSsjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVu ZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0rIyBHZW5lcmF0ZWQgYnkgR05V IEF1dG9jb25mIDIuNjMgZm9yIFNPQ0kgMy4wLjAuCi0rIwotKyMgUmVwb3J0IGJ1Z3MgdG8gPG1z b2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4uCi0rIwotKyMgQ29weXJpZ2h0IChDKSAyMDA0 LTIwMDkgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLSsj Ci0rIyBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5 OTksIDIwMDAsIDIwMDEsCi0rIyAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy MDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBjb25maWd1cmUgc2Ny aXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdp dmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBp dC4KLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9u LiAgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSAKLS1pZiBbICQjIC1ndCAwIF0K LS10aGVuCi0tICAgIGlmIFsgJDEgPSAiLWhlbHAiIC1vICQxID0gIi0taGVscCIgXQotLSAgICB0 aGVuCi0tICAgICAgICBlY2hvICdSZWNvZ25pemVkIGNvbmZpZ3VyZSBvcHRpb25zOicKLS0gICAg ICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ0luc3RhbGxhdGlvbiBvcHRpb25zOicKLS0gICAg ICAgIGVjaG8gJy0taW5jbHVkZS1wcmVmaXg9L3NvbWUvcGF0aCAgICAgIC0gcGF0aCB0byBpbnN0 YWxsIFNPQ0kgaGVhZGVyIGZpbGVzJwotLSAgICAgICAgZWNobyAnLS1saWItcHJlZml4PS9zb21l L3BhdGggICAgICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBsaWJyYXJpZXMnCi0tICAgICAg ICBlY2hvICcnCi0tICAgICAgICBlY2hvICdNeVNRTCBvcHRpb25zOicKLS0gICAgICAgIGVjaG8g Jy0tbXlzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcg bXlzcWwuaCcKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtbGliPS9zb21lL3BhdGggICAgICAgICAg IC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlibXlzcWxjbGllbnQuW2F8c29dJwotLSAgICAgICAg ZWNobyAnJwotLSAgICAgICAgZWNobyAnT3JhY2xlIG9wdGlvbnMgKGlmIE9SQUNMRV9IT01FIHZh cmlhYmxlIGlzIG5vdCBzZXQpOicKLS0gICAgICAgIGVjaG8gJy0tb3JhY2xlLWluY2x1ZGU9L3Nv bWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgb2NpLmgnCi0tICAgICAgICBlY2hv ICctLW9yYWNsZS1saWI9L3NvbWUvcGF0aCAgICAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5n IGxpYmNsbnRzaC5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdQb3N0 Z3JlU1FMIG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWluY2x1ZGU9L3Nv bWUvcGF0aCAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS9saWJwcS1mcy5oJwotLSAgICAg ICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWxpYj0vc29tZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29u dGFpbmluZyBsaWJwcS5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdU ZXN0IHByb2dyYW1zIGNvbXBpbGF0aW9uIG9wdGlvbnMgKG5vdCBuZWVkZWQgZm9yIGxpYnJhcnkg YnVpbGQpOicKLS0gICAgICAgIGVjaG8gJy0tYm9vc3QtaW5jbHVkZT0vc29tZS9wYXRoICAgICAg IC0gcm9vdCBpbmNsdWRlIGRpcmVjdG9yeSBvZiBCb29zdCcKLS0gICAgICAgIGVjaG8gJy0tYm9v c3QtbGliPS9zb21lL3BhdGggICAgICAgICAgIC0gcm9vdCBsaWIgZGlyZWN0b3J5IG9mIEJvb3N0 JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZXhpdAotLSAgICBmaQotKyMgQmUgbW9yZSBC b3VybmUgY29tcGF0aWJsZQotK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mg c2gKLStpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSsgIGVtdWxhdGUgc2gKLSsgIE5VTExDTUQ9OgotKyAgIyBQcmUt NC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNo Ci0rICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgot KyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRvcHQgTk9fR0xPQl9TVUJTVAot K2Vsc2UKLSsgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbgotKyAgKnBvc2l4Kikgc2V0 IC1vIHBvc2l4IDs7Ci0rZXNhYwotKwotK2ZpCi0rCi0rCi0rCi0rCi0rIyBQQVRIIG5lZWRzIENS Ci0rIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgotK2FzX2NyX2xldHRl cnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwotK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdI SUpLTE1OT1BRUlNUVVZXWFlaJwotK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3Jf TEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKLSthc19jcl9hbG51bT0kYXNfY3Jf TGV0dGVycyRhc19jcl9kaWdpdHMKLSsKLSthc19ubD0nCi0rJwotK2V4cG9ydCBhc19ubAotKyMg UHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9wcmludGYu Ci0rYXNfZWNobz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XCcKLSthc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8KLSth c19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwot K2lmICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNfZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9u dWxsOyB0aGVuCi0rICBhc19lY2hvPSdwcmludGYgJXNcbicKLSsgIGFzX2VjaG9fbj0ncHJpbnRm ICVzJwotK2Vsc2UKLSsgIGlmIHRlc3QgIlhgKC91c3IvdWNiL2VjaG8gLW4gLW4gJGFzX2VjaG8p IDI+L2Rldi9udWxsYCIgPSAiWC1uICRhc19lY2hvIjsgdGhlbgotKyAgICBhc19lY2hvX2JvZHk9 J2V2YWwgL3Vzci91Y2IvZWNobyAtbiAiJDEkYXNfbmwiJwotKyAgICBhc19lY2hvX249Jy91c3Iv dWNiL2VjaG8gLW4nCi0rICBlbHNlCi0rICAgIGFzX2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEi IDogIlhcXCguKlxcKSInCi0rICAgIGFzX2VjaG9fbl9ib2R5PSdldmFsCi0rICAgICAgYXJnPSQx OwotKyAgICAgIGNhc2UgJGFyZyBpbgotKyAgICAgICoiJGFzX25sIiopCi0rCWV4cHIgIlgkYXJn IiA6ICJYXFwoLipcXCkkYXNfbmwiOwotKwlhcmc9YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxc KC4qXFwpImA7OwotKyAgICAgIGVzYWM7Ci0rICAgICAgZXhwciAiWCRhcmciIDogIlhcXCguKlxc KSIgfCB0ciAtZCAiJGFzX25sIgotKyAgICAnCi0rICAgIGV4cG9ydCBhc19lY2hvX25fYm9keQot KyAgICBhc19lY2hvX249J3NoIC1jICRhc19lY2hvX25fYm9keSBhc19lY2hvJwotKyAgZmkKLSsg IGV4cG9ydCBhc19lY2hvX2JvZHkKLSsgIGFzX2VjaG89J3NoIC1jICRhc19lY2hvX2JvZHkgYXNf ZWNobycKLStmaQotKwotKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgotK2lmIHRlc3QgIiR7 UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCi0rICBQQVRIX1NFUEFSQVRPUj06Ci0r ICAoUEFUSD0nL2JpbjsvYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4m MSAmJiB7Ci0rICAgIChQQVRIPScvYmluOi9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9k ZXYvbnVsbCAyPiYxIHx8Ci0rICAgICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0rICB9Ci0rZmkKLSsK LSsjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KLStpZiAoIChNQUlMPTYwOyB1bnNldCBN QUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFzX3Vuc2V0PXVuc2V0Ci0r ZWxzZQotKyAgYXNfdW5zZXQ9ZmFsc2UKLStmaQotKwotKwotKyMgSUZTCi0rIyBXZSBuZWVkIHNw YWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4gIFF1b3Rpbmcg aXMKLSsjIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5nIGFib3V0IHNw YWNlLXRhYi4KLSsjIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZTIHVuc2V0 LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKLSsjIHNwbGl0dGluZyBieSBzZXR0aW5nIElGUyB0byBl bXB0eSB2YWx1ZS4pCi0rSUZTPSIgIiIJJGFzX25sIgotKwotKyMgRmluZCB3aG8gd2UgYXJlLiAg TG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCi0r Y2FzZSAkMCBpbgotKyAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwotKyAgKikgYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwot KyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsg IHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgICAgIDs7Ci0rZXNhYwotKyMgV2UgZGlkIG5v dCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFO RCcKLSsjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4K LStpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCi0rICBhc19teXNlbGY9JDAKLStmaQot K2lmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KLSsgICRhc19lY2hvICIkYXNfbXlzZWxm OiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIGZpbGUg bmFtZSIgPiYyCi0rICB7IChleGl0IDEpOyBleGl0IDE7IH0KLStmaQotKwotKyMgV29yayBhcm91 bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgotK2ZvciBhc192YXIgaW4gRU5WIE1BSUwgTUFJ TFBBVEgKLStkbyAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNfdW5z ZXQgJGFzX3ZhcgotK2RvbmUKLStQUzE9JyQgJwotK1BTMj0nPiAnCi0rUFM0PScrICcKLSsKLSsj IE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMKLStleHBvcnQgTENfQUxMCi0rTEFOR1VBR0U9Qwot K2V4cG9ydCBMQU5HVUFHRQotKwotKyMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgotK2lmIGV4 cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAx IDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsg IGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+ JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSsgIGFzX2Jh c2VuYW1lPWJhc2VuYW1lCi0rZWxzZQotKyAgYXNfYmFzZW5hbWU9ZmFsc2UKLStmaQotKwotKwot KyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KLSthc19tZT1gJGFzX2Jhc2VuYW1lIC0tICIkMCIg fHwKLSskYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAotKwkgWCIk MCIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVs bCB8fAotKyRhc19lY2hvIFgvIiQwIiB8Ci0rICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwv KiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwvXChcL1wvXCkkL3sK LSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcL1woXC9cKS4qL3sKLSsJICAg IHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsKLSsjIENEUEFUSC4K LSskYXNfdW5zZXQgQ0RQQVRICi0rCi0rCi0raWYgdGVzdCAieCRDT05GSUdfU0hFTEwiID0geDsg dGhlbgotKyAgaWYgKGV2YWwgIjoiKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfaGF2ZV9yZXF1 aXJlZD15ZXMKLStlbHNlCi0rICBhc19oYXZlX3JlcXVpcmVkPW5vCi0rZmkKLSsKLSsgIGlmIHRl c3QgJGFzX2hhdmVfcmVxdWlyZWQgPSB5ZXMgJiYJIChldmFsICI6Ci0rKGFzX2Z1bmNfcmV0dXJu ICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0rYXNfZnVuY19zdWNjZXNzICgpIHsKLSsgIGFzX2Z1 bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19mYWlsdXJlICgpIHsKLSsgIGFzX2Z1bmNfcmV0dXJu IDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7Ci0rICByZXR1cm4gMAotK30KLSthc19m dW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJldHVybiAxCi0rfQotKwotK2V4aXRjb2RlPTAKLStp ZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBl Y2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCi0rZmkKLSsKLStpZiBhc19mdW5jX2ZhaWx1cmU7 IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19mYWlsdXJlIHN1Y2NlZWRlZC4K LStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBl eGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgZmFpbGVkLgotK2ZpCi0rCi0r aWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19m dW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmICggc2V0IHg7IGFzX2Z1bmNf cmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBcIlwkMVwiICk7IHRoZW4KLSsgIDoKLStlbHNlCi0r ICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZl ZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29kZSA9IDApIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsg fQotKwotKygKLSsgIGFzX2xpbmVub18xPVwkTElORU5PCi0rICBhc19saW5lbm9fMj1cJExJTkVO TwotKyAgdGVzdCBcInhcJGFzX2xpbmVub18xXCIgIT0gXCJ4XCRhc19saW5lbm9fMlwiICYmCi0r ICB0ZXN0IFwieFxgZXhwciBcJGFzX2xpbmVub18xICsgMVxgXCIgPSBcInhcJGFzX2xpbmVub18y XCIpIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKyIpIDI+IC9kZXYvbnVsbDsgdGhlbgotKyAg OgotK2Vsc2UKLSsgIGFzX2NhbmRpZGF0ZV9zaGVsbHM9Ci0rICAgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1Iv dXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBjYXNlICRhc19kaXIgaW4KLSsJIC8q KQotKwkgICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCi0rCSAgICAgYXNfY2Fu ZGlkYXRlX3NoZWxscz0iJGFzX2NhbmRpZGF0ZV9zaGVsbHMgJGFzX2Rpci8kYXNfYmFzZSIKLSsJ ICAgZG9uZTs7Ci0rICAgICAgIGVzYWMKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKwot KyAgICAgIGZvciBhc19zaGVsbCBpbiAkYXNfY2FuZGlkYXRlX3NoZWxscyAkU0hFTEw7IGRvCi0r CSAjIFRyeSBvbmx5IHNoZWxscyB0aGF0IGV4aXN0LCB0byBzYXZlIHNldmVyYWwgZm9ya3MuCi0r CSBpZiB7IHRlc3QgLWYgIiRhc19zaGVsbCIgfHwgdGVzdCAtZiAiJGFzX3NoZWxsLmV4ZSI7IH0g JiYKLSsJCXsgKCIkYXNfc2hlbGwiKSAyPiAvZGV2L251bGwgPDxcX0FTRU9GCi0raWYgdGVzdCAt biAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuCi0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBv ZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250 cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICck ezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNl IGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7Owot K2VzYWMKLSsKLStmaQotKwotKwotKzoKLStfQVNFT0YKLSt9OyB0aGVuCi0rICBDT05GSUdfU0hF TEw9JGFzX3NoZWxsCi0rCSAgICAgICBhc19oYXZlX3JlcXVpcmVkPXllcwotKwkgICAgICAgaWYg eyAiJGFzX3NoZWxsIiAyPiAvZGV2L251bGwgPDxcX0FTRU9GCi0raWYgdGVzdCAtbiAiJHtaU0hf VkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBl bXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8g d29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBv dXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0n PSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1v KSAyPi9kZXYvbnVsbGAgaW4KLSsgICpwb3NpeCopIHNldCAtbyBwb3NpeCA7OwotK2VzYWMKLSsK LStmaQotKwotKwotKzoKLSsoYXNfZnVuY19yZXR1cm4gKCkgewotKyAgKGV4aXQgJDEpCi0rfQot K2FzX2Z1bmNfc3VjY2VzcyAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAwCi0rfQotK2FzX2Z1bmNf ZmFpbHVyZSAoKSB7Ci0rICBhc19mdW5jX3JldHVybiAxCi0rfQotK2FzX2Z1bmNfcmV0X3N1Y2Nl c3MgKCkgewotKyAgcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19yZXRfZmFpbHVyZSAoKSB7Ci0rICBy ZXR1cm4gMQotK30KLSsKLStleGl0Y29kZT0wCi0raWYgYXNfZnVuY19zdWNjZXNzOyB0aGVuCi0r ICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5jX3N1Y2Nlc3MgZmFpbGVk LgotK2ZpCi0rCi0raWYgYXNfZnVuY19mYWlsdXJlOyB0aGVuCi0rICBleGl0Y29kZT0xCi0rICBl Y2hvIGFzX2Z1bmNfZmFpbHVyZSBzdWNjZWVkZWQuCi0rZmkKLSsKLStpZiBhc19mdW5jX3JldF9z dWNjZXNzOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBhc19mdW5j X3JldF9zdWNjZXNzIGZhaWxlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X2ZhaWx1cmU7IHRo ZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19yZXRfZmFpbHVyZSBzdWNjZWVkZWQu Ci0rZmkKLSsKLStpZiAoIHNldCB4OyBhc19mdW5jX3JldF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0g IiQxIiApOyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgZXhpdGNvZGU9MQotKyAgZWNobyBwb3NpdGlv bmFsIHBhcmFtZXRlcnMgd2VyZSBub3Qgc2F2ZWQuCi0rZmkKLSsKLSt0ZXN0ICRleGl0Y29kZSA9 IDApIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotKwotKygKLSsgIGFzX2xpbmVub18xPSRMSU5F Tk8KLSsgIGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4 JGFzX2xpbmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4 JGFzX2xpbmVub18yIikgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rCi0rX0FTRU9GCi0rfTsg dGhlbgotKyAgYnJlYWsKLStmaQotKwotK2ZpCi0rCi0rICAgICAgZG9uZQotKwotKyAgICAgIGlm IHRlc3QgIngkQ09ORklHX1NIRUxMIiAhPSB4OyB0aGVuCi0rICBmb3IgYXNfdmFyIGluIEJBU0hf RU5WIEVOVgotKwlkbyAoJGFzX3Vuc2V0ICRhc192YXIpID4vZGV2L251bGwgMj4mMSAmJiAkYXNf dW5zZXQgJGFzX3ZhcgotKwlkb25lCi0rCWV4cG9ydCBDT05GSUdfU0hFTEwKLSsJZXhlYyAiJENP TkZJR19TSEVMTCIgIiRhc19teXNlbGYiICR7MSsiJEAifQotK2ZpCi0rCi0rCi0rICAgIGlmIHRl c3QgJGFzX2hhdmVfcmVxdWlyZWQgPSBubzsgdGhlbgotKyAgZWNobyBUaGlzIHNjcmlwdCByZXF1 aXJlcyBhIHNoZWxsIG1vcmUgbW9kZXJuIHRoYW4gYWxsIHRoZQotKyAgICAgIGVjaG8gc2hlbGxz IHRoYXQgSSBmb3VuZCBvbiB5b3VyIHN5c3RlbS4gIFBsZWFzZSBpbnN0YWxsIGEKLSsgICAgICBl Y2hvIG1vZGVybiBzaGVsbCwgb3IgbWFudWFsbHkgcnVuIHRoZSBzY3JpcHQgdW5kZXIgc3VjaCBh Ci0rICAgICAgZWNobyBzaGVsbCBpZiB5b3UgZG8gaGF2ZSBvbmUuCi0rICAgICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9Ci0rZmkKLSsKLSsKLStmaQotKwotK2ZpCi0rCi0rCi0rCi0rKGV2YWwgImFz X2Z1bmNfcmV0dXJuICgpIHsKLSsgIChleGl0IFwkMSkKLSt9Ci0rYXNfZnVuY19zdWNjZXNzICgp IHsKLSsgIGFzX2Z1bmNfcmV0dXJuIDAKLSt9Ci0rYXNfZnVuY19mYWlsdXJlICgpIHsKLSsgIGFz X2Z1bmNfcmV0dXJuIDEKLSt9Ci0rYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7Ci0rICByZXR1cm4g MAotK30KLSthc19mdW5jX3JldF9mYWlsdXJlICgpIHsKLSsgIHJldHVybiAxCi0rfQotKwotK2V4 aXRjb2RlPTAKLStpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBleGl0 Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCi0rZmkKLSsKLStpZiBhc19m dW5jX2ZhaWx1cmU7IHRoZW4KLSsgIGV4aXRjb2RlPTEKLSsgIGVjaG8gYXNfZnVuY19mYWlsdXJl IHN1Y2NlZWRlZC4KLStmaQotKwotK2lmIGFzX2Z1bmNfcmV0X3N1Y2Nlc3M7IHRoZW4KLSsgIDoK LStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgZmFpbGVk LgotK2ZpCi0rCi0raWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgotKyAgZXhpdGNvZGU9MQot KyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4KLStmaQotKwotK2lmICggc2V0 IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSBcIlwkMVwiICk7IHRoZW4KLSsg IDoKLStlbHNlCi0rICBleGl0Y29kZT0xCi0rICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3 ZXJlIG5vdCBzYXZlZC4KLStmaQotKwotK3Rlc3QgXCRleGl0Y29kZSA9IDAiKSB8fCB7Ci0rICBl Y2hvIE5vIHNoZWxsIGZvdW5kIHRoYXQgc3VwcG9ydHMgc2hlbGwgZnVuY3Rpb25zLgotKyAgZWNo byBQbGVhc2UgdGVsbCBidWctYXV0b2NvbmZAZ251Lm9yZyBhYm91dCB5b3VyIHN5c3RlbSwKLSsg IGVjaG8gaW5jbHVkaW5nIGFueSBlcnJvciBwb3NzaWJseSBvdXRwdXQgYmVmb3JlIHRoaXMgbWVz c2FnZS4KLSsgIGVjaG8gVGhpcyBjYW4gaGVscCB1cyBpbXByb3ZlIGZ1dHVyZSBhdXRvY29uZiB2 ZXJzaW9ucy4KLSsgIGVjaG8gQ29uZmlndXJhdGlvbiB3aWxsIG5vdyBwcm9jZWVkIHdpdGhvdXQg c2hlbGwgZnVuY3Rpb25zLgotK30KLSsKLSsKLSsKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8KLSsg IGFzX2xpbmVub18yPSRMSU5FTk8KLSsgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xp bmVub18yIiAmJgotKyAgdGVzdCAieGBleHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xp bmVub18yIiB8fCB7Ci0rCi0rICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAk YXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCi0rICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0 aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCi0rICAjIGxpbmUtbnVt YmVyIGxpbmUgYWZ0ZXIgZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87IHRoZSBzZWNvbmQgJ3NlZCcK LSsgICMgZG9lcyB0aGUgcmVhbCB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8g cGFpciBlYWNoCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgd2l0aCB0aGUgbGluZSBjb250YWluaW5n ICRMSU5FTk8sIGFuZCBhcHBlbmRzCi0rICAjIHRyYWlsaW5nICctJyBkdXJpbmcgc3Vic3RpdHV0 aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsCi0rICAjIGNhc2UgYXQgbGluZSBl bmQuCi0rICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVn Z2VydCB3cm90ZSB0aGUKLSsgICMgc2NyaXB0cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZyb20g UGFvbG8gQm9uemluaS4gIEJsYW1lIExlZQotKyAgIyBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZv ciBzZWQncyBzeW50YXguICA6LSkKLSsgIHNlZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJTkVO Ty89Ci0rICAnIDwkYXNfbXlzZWxmIHwKLSsgICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVOTy4q LyYtLwotKyAgICAgIHQgbGluZW5vCi0rICAgICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAgICBO Ci0rICAgICAgOmxvb3AKLSsgICAgICBzL1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipc blwpXCguKlwpL1wyXDFcMi8KLSsgICAgICB0IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsgICAg JyA+JGFzX21lLmxpbmVubyAmJgotKyAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0rICAg IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsg cmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KLSsKLSsgICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5n IGFsbCBzb3J0IG9mIHByb2JsZW1zCi0rICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0 aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKLSsgICMgb3JpZ2luYWwgYW5kIHNvIG9u LiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaXRpdmUgdG8gdGhpcykuCi0rICAuICIuLyRh c19tZS5saW5lbm8iCi0rICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFu ZC4KLSsgIGV4aXQKLSt9Ci0rCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0 ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1lPWRp cm5hbWUKLStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLStFQ0hPX0M9IEVDSE9f Tj0gRUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4KLSstbiopCi0rICBjYXNlIGBlY2hvICd4 XGMnYCBpbgotKyAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBjaGFy YWN0ZXIuCi0rICAqKSAgIEVDSE9fQz0nXGMnOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049 Jy1uJzs7Ci0rZXNhYwotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0r ICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFz X2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK3JtIC1mIGNvbmYk JCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0r ICBybSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRp cgotKyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYk JC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQk IDI+L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQg dGhlcmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZp bGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBo YXMgbm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsg ICAgIyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAg bG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29u ZiQkLmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmls ZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAg ICBhc19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkK LStybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5m aWxlCi0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4v ZGV2L251bGw7IHRoZW4KLSsgIGFzX21rZGlyX3A9OgotK2Vsc2UKLSsgIHRlc3QgLWQgLi8tcCAm JiBybWRpciAuLy1wCi0rICBhc19ta2Rpcl9wPWZhbHNlCi0rZmkKLSsKLStpZiB0ZXN0IC14IC8g Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc190ZXN0X3g9J3Rlc3QgLXgnCi0rZWxzZQotKyAg aWYgbHMgLWRMIC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGFzX2xzX0xfb3B0aW9uPUwK LSsgIGVsc2UKLSsgICAgYXNfbHNfTF9vcHRpb249Ci0rICBmaQotKyAgYXNfdGVzdF94PScKLSsg ICAgZXZhbCBzaCAtYyAnXCcnCi0rICAgICAgaWYgdGVzdCAtZCAiJDEiOyB0aGVuCi0rCXRlc3Qg LWQgIiQxLy4iOwotKyAgICAgIGVsc2UKLSsJY2FzZSAkMSBpbgotKwktKilzZXQgIi4vJDEiOzsK LSsJZXNhYzsKLSsJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlvbicgIiQxIiAyPi9kZXYvbnVs bGAgaW4KLSsJPz8/W3N4XSopOjs7KilmYWxzZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAn Ci0rZmkKLSthc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24g dG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwg c2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVt XSVfJWcnIgotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxp ZCB2YXJpYWJsZSBuYW1lLgotK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNf Y3JfYWxudW1dJV8lZyciCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5n IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9 Ci0rCi0rY2FzZSBYJGx0X0VDSE8gaW4KLStYKi0tZmFsbGJhY2stZWNobykKLSsgICMgUmVtb3Zl IG9uZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1aXJlZCBmb3IgTWFrZSkuCi0r ICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFwkXFwkMCwnJDAnLCdgCi0rICA7 OwotK2VzYWMKLSsKLStFQ0hPPSR7bHRfRUNITy1lY2hvfQotK2lmIHRlc3QgIlgkMSIgPSBYLS1u by1yZWV4ZWM7IHRoZW4KLSsgICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNv bnRpbnVlLgotKyAgc2hpZnQKLStlbGlmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0 aGVuCi0rICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVy Ci0rICA6Ci0rZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hc dCcgOyB0aGVuCi0rICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCi0rICA6Ci0rZWxzZQotKyAgIyBS ZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotKyAgZXhlYyAkU0hFTEwgIiQwIiAtLW5v LXJlZXhlYyAkezErIiRAIn0KLStmaQotKwotK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1l Y2hvOyB0aGVuCi0rICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobwotKyAgc2hpZnQKLSsgIGNhdCA8 PF9MVF9FT0YKLSskKgotK19MVF9FT0YKLSsgIGV4aXQgMAotIGZpCi0gCi0tbWtkaXIgLXAgYnVp bGQvdW5peC9sb2NhbAotLXBhdGg9ImJ1aWxkL3VuaXgvbG9jYWwvcGFyYW1ldGVycyIKLS1ybSAt ZiAkcGF0aAotLXRvdWNoICRwYXRoCi0tZm9yIHBhcmFtIGluICQqCi0tZG8KLS0gICAgICAgIGVj aG8gJHBhcmFtID4+ICRwYXRoCi0tZG9uZQotLQotLXByaW50ZiAnVHJ5aW5nIHRvIGZpbmQgdGhl IFRjbCBpbnRlcnByZXRlci4uLiAnCi0tdGNsX2ZvdW5kPTAKLS0KLS1mb3IgcGF0aCBpbiAiL3Vz ci9iaW4vdGNsc2giIFwKLS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjUiIFwK LS0gICAgICAgICAgICAiL3Vzci9sb2NhbC9iaW4vdGNsc2g4LjQiIFwKLS0gICAgICAgICAgICAi L3Vzci9sb2NhbC9iaW4vdGNsc2g4LjMiOyBkbwotLSAgICBpZiBbIC14ICRwYXRoIF0KLS0gICAg dGhlbgotLSAgICAgICAgZWNobyAkcGF0aCA+IGJ1aWxkL3VuaXgvbG9jYWwvdGNsCi0tICAgICAg ICBlY2hvICRwYXRoCi0tICAgICAgICB0Y2xfZm91bmQ9MQotKyMgVGhlIEhQLVVYIGtzaCBhbmQg UE9TSVggc2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBD RFBBVEggaXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBD RFBBVEgKLSsKLStpZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KLSsgIGlmIHRlc3QgIlgke2Vj aG9fdGVzdF9zdHJpbmcrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICAjIGZpbmQgYSBzdHJpbmcg YXMgbGFyZ2UgYXMgcG9zc2libGUsIGFzIGxvbmcgYXMgdGhlIHNoZWxsIGNhbiBjb3BlIHdpdGgg aXQKLSsgICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiJDAiJyAnc2VkIDIwcSAiJDAiJyAnc2VkIDEw cSAiJDAiJyAnc2VkIDJxICIkMCInICdlY2hvIHRlc3QnOyBkbwotKyAgICAgICMgZXhwZWN0ZWQg c2l6ZXM6IGxlc3MgdGhhbiAyS2IsIDFLYiwgNTEyIGJ5dGVzLCAxNiBieXRlcywgLi4uCi0rICAg ICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgOyB9IDI+L2Rldi9udWxsICYmCi0r CSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAy Pi9kZXYvbnVsbAotKyAgICAgIHRoZW4KLSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAg ZG9uZQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxs YCIgPSAnWFx0JyAmJgotKyAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9f dGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotKyAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rp bmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgIDoKLSsgIGVsc2UK LSsgICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1bHQgZWNobyBw cm9ncmFtcyB1bnF1b3RlCi0rICAgICMgYmFja3NsYXNoZXMuICBUaGlzIG1ha2VzIGl0IGltcG9z c2libGUgdG8gcXVvdGUgYmFja3NsYXNoZXMgdXNpbmcKLSsgICAgIyAgIGVjaG8gIiRzb21ldGhp bmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSsgICAgIwotKyAgICAjIFNvLCBmaXJzdCB3ZSBsb29r IGZvciBhIHdvcmtpbmcgZWNobyBpbiB0aGUgdXNlcidzIFBBVEguCi0rCi0rICAgIGx0X3NhdmVf aWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgICBmb3IgZGlyIGluICRQQVRIIC91 c3IvdWNiOyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIGlmICh0ZXN0IC1m ICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCi0rICAgICAgICAg dGVzdCAiWGAoJGRpci9lY2hvICdcdCcpIDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKyAgICAg ICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGlyL2VjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikg Mj4vZGV2L251bGxgICYmCi0rICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9 ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rICAgICAgICBFQ0hPPSIkZGlyL2VjaG8iCi0g ICAgICAgICBicmVhawotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rCi0rICAgIGlmIHRlc3QgIlgkRUNITyIgPSBYZWNobzsgdGhlbgotKyAgICAgICMgV2Ug ZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJuYXRpdmVzLgotKyAg ICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAm JgotKyAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgcHJpbnQgLXIgIiRlY2hvX3Rlc3Rf c3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGlu Z19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSsgICAgICAgICMgVGhpcyBz aGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRoYXQgZG9lcyB0aGUgdHJpY2suCi0rICAgICAg ICBFQ0hPPSdwcmludCAtcicKLSsgICAgICBlbGlmIHsgdGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0 IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgotKwkgICB0ZXN0ICJYJENPTkZJR19TSEVMTCIg IT0gWC9iaW4va3NoOyB0aGVuCi0rICAgICAgICAjIElmIHdlIGhhdmUga3NoLCB0cnkgcnVubmlu ZyBjb25maWd1cmUgYWdhaW4gd2l0aCBpdC4KLSsgICAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVM TD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotKyAgICAgICAgZXhwb3J0IE9SSUdJTkFMX0NPTkZJ R19TSEVMTAotKyAgICAgICAgQ09ORklHX1NIRUxMPS9iaW4va3NoCi0rICAgICAgICBleHBvcnQg Q09ORklHX1NIRUxMCi0rICAgICAgICBleGVjICRDT05GSUdfU0hFTEwgIiQwIiAtLW5vLXJlZXhl YyAkezErIiRAIn0KLSsgICAgICBlbHNlCi0rICAgICAgICAjIFRyeSB1c2luZyBwcmludGYuCi0r ICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSsgICAgICAgIGlmIHRlc3QgIlhgeyAkRUNITyAn XHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotKwkgICBlY2hvX3Rlc3Rpbmdfc3RyaW5n PWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0rCSAgIHRl c3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgot KwkgICMgQ29vbCwgcHJpbnRmIHdvcmtzCi0rCSAgOgotKyAgICAgICAgZWxpZiBlY2hvX3Rlc3Rp bmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAn XHQnKSAyPi9kZXYvbnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmci ID0gJ1hcdCcgJiYKLSsJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJ R19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYv bnVsbGAgJiYKLSsJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190 ZXN0X3N0cmluZyI7IHRoZW4KLSsJICBDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVM TAotKwkgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsJICBTSEVMTD0iJENPTkZJR19TSEVMTCIKLSsJ ICBleHBvcnQgU0hFTEwKLSsJICBFQ0hPPSIkQ09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNo byIKLSsgICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQw IiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRl Y2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0rCSAgICAgZWNob190ZXN0aW5nX3N0cmlu Zz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5n IikgMj4vZGV2L251bGxgICYmCi0rCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9 ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0rCSAgRUNITz0iJENPTkZJR19TSEVMTCAkMCAt LWZhbGxiYWNrLWVjaG8iCi0rICAgICAgICBlbHNlCi0rCSAgIyBtYXliZSB3aXRoIGEgc21hbGxl ciBzdHJpbmcuLi4KLSsJICBwcmV2PToKLSsKLSsJICBmb3IgY21kIGluICdlY2hvIHRlc3QnICdz ZWQgMnEgIiQwIicgJ3NlZCAxMHEgIiQwIicgJ3NlZCAyMHEgIiQwIicgJ3NlZCA1MHEgIiQwIic7 IGRvCi0rCSAgICBpZiB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWGBldmFsICRjbWRg IjsgfSAyPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkgICAgICBicmVhawotKwkgICAgZmkKLSsJ ICAgIHByZXY9IiRjbWQiCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgIiRwcmV2IiAhPSAnc2Vk IDUwcSAiJDAiJzsgdGhlbgotKwkgICAgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKLSsJ ICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCi0rCSAgICBleGVjICR7T1JJR0lOQUxfQ09ORklH X1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiJDAiICR7MSsiJEAifQotKwkgIGVsc2UK LSsJICAgICMgT29wcy4gIFdlIGxvc3QgY29tcGxldGVseSwgc28ganVzdCBzdGljayB3aXRoIGVj aG8uCi0rCSAgICBFQ0hPPWVjaG8KLSsJICBmaQotKyAgICAgICAgZmkKLSsgICAgICBmaQotICAg ICBmaQotKyAgZmkKLStmaQotKwotKyMgQ29weSBlY2hvIGFuZCBxdW90ZSB0aGUgY29weSBzdWl0 YWJseSBmb3IgcGFzc2luZyB0byBsaWJ0b29sIGZyb20KLSsjIHRoZSBNYWtlZmlsZSwgaW5zdGVh ZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KLStsdF9FQ0hP PSRFQ0hPCi0raWYgdGVzdCAiWCRsdF9FQ0hPIiA9ICJYJENPTkZJR19TSEVMTCAkMCAtLWZhbGxi YWNrLWVjaG8iOyB0aGVuCi0rICAgbHRfRUNITz0iJENPTkZJR19TSEVMTCBcXFwkXCQwIC0tZmFs bGJhY2stZWNobyIKLStmaQotKwotKwotKwotKwotK2V4ZWMgNzwmMCA8L2Rldi9udWxsIDY+JjEK LSsKLSsjIE5hbWUgb2YgdGhlIGhvc3QuCi0rIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNW UjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKLSsjIHNvIHVuYW1lIGdl dHMgcnVuIHRvby4KLSthY19ob3N0bmFtZT1gKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYv bnVsbCB8IHNlZCAxcWAKLSsKLSsjCi0rIyBJbml0aWFsaXphdGlvbnMuCi0rIwotK2FjX2RlZmF1 bHRfcHJlZml4PS91c3IvbG9jYWwKLSthY19jbGVhbl9maWxlcz0KLSthY19jb25maWdfbGlib2Jq X2Rpcj0uCi0rTElCT0JKUz0KLStjcm9zc19jb21waWxpbmc9bm8KLStzdWJkaXJzPQotK01GTEFH Uz0KLStNQUtFRkxBR1M9Ci0rU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSsKLSsjIElk ZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KLStQQUNLQUdFX05BTUU9J1NPQ0knCi0rUEFDS0FHRV9U QVJOQU1FPSdzb2NpJwotK1BBQ0tBR0VfVkVSU0lPTj0nMy4wLjAnCi0rUEFDS0FHRV9TVFJJTkc9 J1NPQ0kgMy4wLjAnCi0rUEFDS0FHRV9CVUdSRVBPUlQ9J21zb2JjemFrQHVzZXJzLnNvdXJjZWZv cmdlLm5ldCcKLSsKLSthY191bmlxdWVfZmlsZT0ic29jaS9jb3JlL2Vycm9yLmNwcCIKLSsjIEZh Y3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3QgdGVzdHMuCi0rYWNfaW5jbHVkZXNfZGVm YXVsdD0iXAotKyNpbmNsdWRlIDxzdGRpby5oPgotKyNpZmRlZiBIQVZFX1NZU19UWVBFU19ICi0r IyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9TWVNfU1RBVF9I Ci0rIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgotKyNlbmRpZgotKyNpZmRlZiBTVERDX0hFQURFUlMK LSsjIGluY2x1ZGUgPHN0ZGxpYi5oPgotKyMgaW5jbHVkZSA8c3RkZGVmLmg+Ci0rI2Vsc2UKLSsj IGlmZGVmIEhBVkVfU1RETElCX0gKLSsjICBpbmNsdWRlIDxzdGRsaWIuaD4KLSsjIGVuZGlmCi0r I2VuZGlmCi0rI2lmZGVmIEhBVkVfU1RSSU5HX0gKLSsjIGlmICFkZWZpbmVkIFNURENfSEVBREVS UyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKLSsjICBpbmNsdWRlIDxtZW1vcnkuaD4KLSsjIGVu ZGlmCi0rIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9TVFJJTkdT X0gKLSsjIGluY2x1ZGUgPHN0cmluZ3MuaD4KLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9JTlRUWVBF U19ICi0rIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1NURElO VF9ICi0rIyBpbmNsdWRlIDxzdGRpbnQuaD4KLSsjZW5kaWYKLSsjaWZkZWYgSEFWRV9VTklTVERf SAotKyMgaW5jbHVkZSA8dW5pc3RkLmg+Ci0rI2VuZGlmIgotKwotK2FjX3N1YnN0X3ZhcnM9J0xU TElCT0JKUwotK0xJQk9CSlMKLStSVU5fVEVTVFNfRkFMU0UKLStSVU5fVEVTVFNfVFJVRQotK3Nl ZF9vawotK2RpZmZfb2sKLStIVE1MX0RPQ19GQUxTRQotK0hUTUxfRE9DX1RSVUUKLStQRVJMCi0r Z3Nfb2sKLStkdmlwc19vawotK2xhdGV4X29rCi0rZG94eWdlbl9vawotK0lORk9fRE9DX0ZBTFNF Ci0rSU5GT19ET0NfVFJVRQotK1BPU1RHUkVTUUxfRElSUwotK0hBVkVfUE9TVEdSRVNRTF9GQUxT RQotK0hBVkVfUE9TVEdSRVNRTF9UUlVFCi0rUE9TVEdSRVNRTF9MREZMQUdTCi0rUE9TVEdSRVNR TF9DRkxBR1MKLStQT1NUR1JFU1FMX1ZFUlNJT04KLStQR19DT05GSUcKLStPUkFDTEVfRElSUwot K0hBVkVfT1JBQ0xFX0ZBTFNFCi0rSEFWRV9PUkFDTEVfVFJVRQotK09SQUNMRV9PQ0lfTERGTEFH UwotK09SQUNMRV9PQ0lfQ0ZMQUdTCi0rT1JBQ0xFX09DSV9WRVJTSU9OCi0rTVlTUUxfRElSUwot K0hBVkVfTVlTUUxfRkFMU0UKLStIQVZFX01ZU1FMX1RSVUUKLStNWVNRTF9MREZMQUdTCi0rTVlT UUxfQ0ZMQUdTCi0rTVlTUUxfVkVSU0lPTgotK01ZU1FMX0NPTkZJRwotK0JPT1NUX1ZFUlNJT04K LStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQgotK0JPT1NUX1JFR0VYX0xJQgotK0JPT1NU X0RBVEVfVElNRV9MSUIKLStCT09TVF9TSUdOQUxTX0xJQgotK0JPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQgotK0JPT1NUX1NFUklBTElaQVRJT05fTElCCi0rQk9PU1RfSU9TVFJFQU1TX0xJQgotK0JP T1NUX1RIUkVBRF9MSUIKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCCi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIKLStCT09TVF9MSUJTCi0rQk9PU1RfQ0ZMQUdTCi0rU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVECi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFCi0rU09D SV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVECi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQotK1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRURfVFJVRQotK1NPQ0lfSEVBREVSU19CVVJJRUQKLStTT0NJX0hFQURFUlNfQlVSSUVE X0ZBTFNFCi0rU09DSV9IRUFERVJTX0JVUklFRF9UUlVFCi0rQ1BQCi0rT1RPT0w2NAotK09UT09M Ci0rTElQTwotK05NRURJVAotK0RTWU1VVElMCi0rbHRfRUNITwotK1JBTkxJQgotK0FSCi0rT0JK RFVNUAotK0xOX1MKLStOTQotK2FjX2N0X0RVTVBCSU4KLStEVU1QQklOCi0rTEQKLStGR1JFUAot K0VHUkVQCi0rR1JFUAotK1NFRAotK2FtX19mYXN0ZGVwQ0NfRkFMU0UKLSthbV9fZmFzdGRlcEND X1RSVUUKLStDQ0RFUE1PREUKLSthY19jdF9DQwotK0NGTEFHUwotK0NDCi0rTElCVE9PTAotK0NY WENQUAotK2FtX19mYXN0ZGVwQ1hYX0ZBTFNFCi0rYW1fX2Zhc3RkZXBDWFhfVFJVRQotK0NYWERF UE1PREUKLStBTURFUEJBQ0tTTEFTSAotK0FNREVQX0ZBTFNFCi0rQU1ERVBfVFJVRQotK2FtX19x dW90ZQotK2FtX19pbmNsdWRlCi0rREVQRElSCi0rT0JKRVhUCi0rRVhFRVhUCi0rYWNfY3RfQ1hY Ci0rQ1BQRkxBR1MKLStMREZMQUdTCi0rQ1hYRkxBR1MKLStDWFgKLStob3N0X29zCi0raG9zdF92 ZW5kb3IKLStob3N0X2NwdQotK2hvc3QKLStidWlsZF9vcwotK2J1aWxkX3ZlbmRvcgotK2J1aWxk X2NwdQotK2J1aWxkCi0rVVBMT0FEX0NPTU1BTkQKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTgot K1JQTV9SRUxFQVNFCi0rSEFWRV9DUFBVTklUX0ZBTFNFCi0rSEFWRV9DUFBVTklUX1RSVUUKLStD UFBVTklUX1ZFUlNJT04KLStDUFBVTklUX0xJQlMKLStDUFBVTklUX0NGTEFHUwotK0NQUFVOSVRf Q09ORklHCi0rYW1fX3VudGFyCi0rYW1fX3RhcgotK0FNVEFSCi0rYW1fX2xlYWRpbmdfZG90Ci0r U0VUX01BS0UKLStBV0sKLStta2Rpcl9wCi0rTUtESVJfUAotK0lOU1RBTExfU1RSSVBfUFJPR1JB TQotK1NUUklQCi0raW5zdGFsbF9zaAotK01BS0VJTkZPCi0rQVVUT0hFQURFUgotK0FVVE9NQUtF Ci0rQVVUT0NPTkYKLStBQ0xPQ0FMCi0rVkVSU0lPTgotK1BBQ0tBR0UKLStDWUdQQVRIX1cKLSth bV9faXNyYwotK0lOU1RBTExfREFUQQotK0lOU1RBTExfU0NSSVBUCi0rSU5TVEFMTF9QUk9HUkFN Ci0rdGFyZ2V0X2FsaWFzCi0raG9zdF9hbGlhcwotK2J1aWxkX2FsaWFzCi0rTElCUwotK0VDSE9f VAotK0VDSE9fTgotK0VDSE9fQwotK0RFRlMKLSttYW5kaXIKLStsb2NhbGVkaXIKLStsaWJkaXIK LStwc2RpcgotK3BkZmRpcgotK2R2aWRpcgotK2h0bWxkaXIKLStpbmZvZGlyCi0rZG9jZGlyCi0r b2xkaW5jbHVkZWRpcgotK2luY2x1ZGVkaXIKLStsb2NhbHN0YXRlZGlyCi0rc2hhcmVkc3RhdGVk aXIKLStzeXNjb25mZGlyCi0rZGF0YWRpcgotK2RhdGFyb290ZGlyCi0rbGliZXhlY2RpcgotK3Ni aW5kaXIKLStiaW5kaXIKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lCi0rcHJlZml4Ci0rZXhlY19w cmVmaXgKLStQQUNLQUdFX0JVR1JFUE9SVAotK1BBQ0tBR0VfU1RSSU5HCi0rUEFDS0FHRV9WRVJT SU9OCi0rUEFDS0FHRV9UQVJOQU1FCi0rUEFDS0FHRV9OQU1FCi0rUEFUSF9TRVBBUkFUT1IKLStT SEVMTCcKLSthY19zdWJzdF9maWxlcz0nJwotK2FjX3VzZXJfb3B0cz0nCi0rZW5hYmxlX29wdGlv bl9jaGVja2luZwotK3dpdGhfY3BwdW5pdF9wcmVmaXgKLSt3aXRoX2NwcHVuaXRfZXhlY19wcmVm aXgKLStlbmFibGVfc2hhcmVkCi0rZW5hYmxlX3N0YXRpYwotK2VuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nCi0rd2l0aF9waWMKLStlbmFibGVfZmFzdF9pbnN0YWxsCi0rd2l0aF9nbnVfbGQKLStl bmFibGVfbGlidG9vbF9sb2NrCi0rZW5hYmxlX2V4Y2VwdGlvbnMKLStlbmFibGVfaW5mb19kb2MK LStlbmFibGVfaHRtbF9kb2MKLSt3aXRoX2RvY2RpcgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnMK LStlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzCi0rd2l0aF9ib29zdAotK2VuYWJsZV9iYWNrZW5kX215c3FsCi0rd2l0aF9teXNx bAotK2VuYWJsZV9iYWNrZW5kX29yYWNsZQotK3dpdGhfb3JhY2xlCi0rd2l0aF9vcmFjbGVfaW5j bHVkZQotK3dpdGhfb3JhY2xlX2xpYgotK2VuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwKLSt3aXRo X3Bvc3RncmVzcWwKLSsnCi0rICAgICAgYWNfcHJlY2lvdXNfdmFycz0nYnVpbGRfYWxpYXMKLSto b3N0X2FsaWFzCi0rdGFyZ2V0X2FsaWFzCi0rQ1hYCi0rQ1hYRkxBR1MKLStMREZMQUdTCi0rTElC UwotK0NQUEZMQUdTCi0rQ0NDCi0rQ1hYQ1BQCi0rQ0MKLStDRkxBR1MKLStDUFAnCi0rCi0rCi0r IyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgotK2FjX2luaXRfaGVs cD0KLSthY19pbml0X3ZlcnNpb249ZmFsc2UKLSthY191bnJlY29nbml6ZWRfb3B0cz0KLSthY191 bnJlY29nbml6ZWRfc2VwPQotKyMgVGhlIHZhcmlhYmxlcyBoYXZlIHRoZSBzYW1lIG5hbWVzIGFz IHRoZSBvcHRpb25zLCB3aXRoCi0rIyBkYXNoZXMgY2hhbmdlZCB0byB1bmRlcmxpbmVzLgotK2Nh Y2hlX2ZpbGU9L2Rldi9udWxsCi0rZXhlY19wcmVmaXg9Tk9ORQotK25vX2NyZWF0ZT0KLStub19y ZWN1cnNpb249Ci0rcHJlZml4PU5PTkUKLStwcm9ncmFtX3ByZWZpeD1OT05FCi0rcHJvZ3JhbV9z dWZmaXg9Tk9ORQotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9cyx4LHgsCi0rc2lsZW50PQotK3Np dGU9Ci0rc3JjZGlyPQotK3ZlcmJvc2U9Ci0reF9pbmNsdWRlcz1OT05FCi0reF9saWJyYXJpZXM9 Tk9ORQotKwotKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgotKyMgVGhlc2UgYXJl IGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2UgaW5zdGFsbCBleGVjX3ByZWZpeD0v Zm9vIgotKyMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJh c2VkIG9uIGV4ZWNfcHJlZml4Ci0rIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgot KyMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNhdXNlIHNoLCBwZXJsLCBldGMuIGFs c28gYWNjZXB0IHRoZW0uCi0rIyAoVGhlIGxpc3QgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBhcyB0 aGUgR05VIENvZGluZyBTdGFuZGFyZHMuKQotK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJwot K3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCi0rbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZp eH0vbGliZXhlYycKLStkYXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwotK2RhdGFkaXI9JyR7 ZGF0YXJvb3RkaXJ9JwotK3N5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCi0rc2hhcmVkc3RhdGVk aXI9JyR7cHJlZml4fS9jb20nCi0rbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKLStpbmNs dWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKLStvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUn Ci0rZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9JwotK2luZm9k aXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCi0raHRtbGRpcj0nJHtkb2NkaXJ9JwotK2R2aWRpcj0n JHtkb2NkaXJ9JwotK3BkZmRpcj0nJHtkb2NkaXJ9JwotK3BzZGlyPScke2RvY2Rpcn0nCi0rbGli ZGlyPScke2V4ZWNfcHJlZml4fS9saWInCi0rbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9sb2Nh bGUnCi0rbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCi0rCi0rYWNfcHJldj0KLSthY19kYXNo ZGFzaD0KLStmb3IgYWNfb3B0aW9uCi0rZG8KLSsgICMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBu ZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgotKyAgaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0 aGVuCi0rICAgIGV2YWwgJGFjX3ByZXY9XCRhY19vcHRpb24KLSsgICAgYWNfcHJldj0KLSsgICAg Y29udGludWUKLSsgIGZpCi0rCi0rICBjYXNlICRhY19vcHRpb24gaW4KLSsgICo9KikJYWNfb3B0 YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKLSsgICopCWFjX29w dGFyZz15ZXMgOzsKLSsgIGVzYWMKLSsKLSsgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVz IGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0rCi0rICBjYXNl ICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KLSsgIC0tKQotKyAgICBhY19kYXNoZGFzaD15ZXMg OzsKLSsKLSsgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8 IC0tYmkpCi0rICAgIGFjX3ByZXY9YmluZGlyIDs7Ci0rICAtYmluZGlyPSogfCAtLWJpbmRpcj0q IHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQotKyAgICBiaW5kaXI9 JGFjX29wdGFyZyA7OwotKwotKyAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwg LS1idSkKLSsgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OwotKyAgLWJ1aWxkPSogfCAtLWJ1aWxk PSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCi0rICAgIGJ1aWxkX2FsaWFzPSRhY19v cHRhcmcgOzsKLSsKLSsgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWwg fCAtLWNhY2hlLWZpIFwKLSsgIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1j YWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKLSsg IC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAtLWNhY2hl LWZpPSogXAotKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNh Y2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSsgICAgY2FjaGVfZmlsZT0kYWNfb3B0 YXJnIDs7Ci0rCi0rICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotKyAgICBjYWNoZV9maWxlPWNvbmZp Zy5jYWNoZSA7OwotKwotKyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0 YWQpCi0rICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotKyAgLWRhdGFkaXI9KiB8IC0tZGF0YWRpcj0q IHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKLSsgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7Ci0r Ci0rICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpIHwgLS1kYXRh cm9vdGQgfCAtLWRhdGFyb290IFwKLSsgIHwgLS1kYXRhcm9vIHwgLS1kYXRhcm8gfCAtLWRhdGFy KQotKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7Ci0rICAtZGF0YXJvb3RkaXI9KiB8IC0tZGF0 YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9vdGQ9KiBcCi0rICB8IC0tZGF0 YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikKLSsgICAgZGF0 YXJvb3RkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQot KyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1cKC4qXCkn YAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUg bmFtZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1d IiA+L2Rldi9udWxsICYmCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxp ZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0Ci0rICAgIGFjX3VzZXJvcHQ9 YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKLSsgICAgY2FzZSAk YWNfdXNlcl9vcHRzIGluCi0rICAgICAgKiIKLSsiZW5hYmxlXyRhY191c2Vyb3B0IgotKyIqKSA7 OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMk YWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5y ZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIGVuYWJsZV8kYWNfdXNl cm9wdD1ubyA7OwotKwotKyAgLWRvY2RpciB8IC0tZG9jZGlyIHwgLS1kb2NkaSB8IC0tZG9jIHwg LS1kbykKLSsgICAgYWNfcHJldj1kb2NkaXIgOzsKLSsgIC1kb2NkaXI9KiB8IC0tZG9jZGlyPSog fCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQotKyAgICBkb2NkaXI9JGFjX29wdGFyZyA7 OwotKwotKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZpIHwg LS1kdikKLSsgICAgYWNfcHJldj1kdmlkaXIgOzsKLSsgIC1kdmlkaXI9KiB8IC0tZHZpZGlyPSog fCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2PSopCi0rICAgIGR2aWRpcj0k YWNfb3B0YXJnIDs7Ci0rCi0rICAtZW5hYmxlLSogfCAtLWVuYWJsZS0qKQotKyAgICBhY191c2Vy b3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCi0rICAgICMg UmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsg ICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251 bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUg bmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAg ICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8g IiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29w dHMgaW4KLSsgICAgICAqIgotKyJlbmFibGVfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAgICAg KikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29n bml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXplZF9z ZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRhY19v cHRhcmcgOzsKLSsKLSsgIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJl Zml4IHwgLS1leGVjLXByZWZpIFwKLSsgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1l eGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKLSsgIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4 KQotKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7Ci0rICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhl Y19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKLSsgIHwgLS1l eGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0t ZXhlYy09KiBcCi0rICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKLSsgICAgZXhlY19w cmVmaXg9JGFjX29wdGFyZyA7OwotKwotKyAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSsg ICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCi0rICAgIHdpdGhfZ2FzPXllcyA7OwotKwot KyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKLSsgICAgYWNfaW5pdF9oZWxw PWxvbmcgOzsKLSsgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwg LWhyKikKLSsgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OwotKyAgLWhlbHA9cyogfCAtLWhl bHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQotKyAgICBhY19pbml0X2hlbHA9c2hv cnQgOzsKLSsKLSsgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3MgfCAtLWhvKQotKyAgICBhY19wcmV2 PWhvc3RfYWxpYXMgOzsKLSsgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSop Ci0rICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLWh0bWxkaXIgfCAtLWh0bWxk aXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAtLWh0bSB8IC0taHQpCi0rICAgIGFj X3ByZXY9aHRtbGRpciA7OwotKyAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9 KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCi0rICB8IC0taHQ9KikKLSsgICAg aHRtbGRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8 IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVkZSBcCi0rICB8IC0taW5jbHVkIHwg LS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQotKyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKLSsg IC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1 ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0rICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWlu Y2w9KiB8IC0taW5jPSopCi0rICAgIGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWlu Zm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikK LSsgICAgYWNfcHJldj1pbmZvZGlyIDs7Ci0rICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAt LWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAtLWluZj0qKQotKyAgICBpbmZvZGly PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1saWJkaXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxp YmQpCi0rICAgIGFjX3ByZXY9bGliZGlyIDs7Ci0rICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwg LS1saWJkaT0qIHwgLS1saWJkPSopCi0rICAgIGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAt bGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0t bGliZXhlYyBcCi0rICB8IC0tbGliZXhlIHwgLS1saWJleCB8IC0tbGliZSkKLSsgICAgYWNfcHJl dj1saWJleGVjZGlyIDs7Ci0rICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxp YmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSogXAotKyAgfCAtLWxpYmV4ZT0q IHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0rICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxlZCB8 IC0tbG9jYWxlKQotKyAgICBhY19wcmV2PWxvY2FsZWRpciA7OwotKyAgLWxvY2FsZWRpcj0qIHwg LS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikK LSsgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1sb2NhbHN0YXRlZGlyIHwgLS1s b2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKLSsgIHwgLS1s b2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1sb2Nh bHMpCi0rICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7OwotKyAgLWxvY2Fsc3RhdGVkaXI9KiB8 IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBc Ci0rICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0t bG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKLSsgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7 Ci0rCi0rICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAt LW1hIHwgLS1tKQotKyAgICBhY19wcmV2PW1hbmRpciA7OwotKyAgLW1hbmRpcj0qIHwgLS1tYW5k aXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQot KyAgICBtYW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikKLSsg ICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KLSsgICAgd2l0aF9mcD1ubyA7OwotKwot KyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0t bm8tY3JlIFwKLSsgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQotKyAgICBub19jcmVhdGU9eWVz IDs7Ci0rCi0rICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lv IHwgLS1uby1yZWN1cnNpIFwKLSsgIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1y ZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQotKyAgICBub19yZWN1cnNpb249eWVz IDs7Ci0rCi0rICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVk ZWRpIHwgLS1vbGRpbmNsdWRlZCBcCi0rICB8IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwg LS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwKLSsgIHwgLS1vbGRpbiB8IC0tb2xk aSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKLSsgICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7Ci0r ICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0q IHwgLS1vbGRpbmNsdWRlZD0qIFwKLSsgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0q IHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKLSsgIHwgLS1vbGRp bj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCi0rICAgIG9sZGluY2x1 ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8 IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0tcCkKLSsgICAgYWNfcHJldj1wcmVmaXggOzsKLSsg IC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSog fCAtLXByPSogfCAtLXA9KikKLSsgICAgcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9n cmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dy YW0tcHJlZiBcCi0rICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0t cCkKLSsgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7OwotKyAgLXByb2dyYW0tcHJlZml4PSog fCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCi0rICB8IC0tcHJvZ3Jh bS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1w PSopCi0rICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXN1 ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0tc3Vm ZiBcCi0rICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKLSsg ICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OwotKyAgLXByb2dyYW0tc3VmZml4PSogfCAtLXBy b2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1zdWZm PSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCi0r ICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXRyYW5zZm9y bS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3Jt IHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dy YW0tdHJhbnNmIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAotKyAg fCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJvZ3JhbS10KQotKyAgICBhY19wcmV2 PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSog fCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0t bmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNm b3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNm b3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSog fCAtLXByb2dyYW0tdHJhbnNmPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3Jh bS10cmFuPSogXAotKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dy YW0tdD0qKQotKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLSsKLSsg IC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQpCi0r ICAgIGFjX3ByZXY9cGRmZGlyIDs7Ci0rICAtcGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZk aT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQotKyAgICBwZGZkaXI9JGFjX29wdGFy ZyA7OwotKwotKyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKLSsg ICAgYWNfcHJldj1wc2RpciA7OwotKyAgLXBzZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9KiB8 IC0tcHNkPSogfCAtLXBzPSopCi0rICAgIHBzZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1xIHwg LXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICB8IC1z aWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSsgICAgc2lsZW50 PXllcyA7OwotKwotKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQg fCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCi0rICAgIGFjX3ByZXY9c2JpbmRpciA7OwotKyAgLXNi aW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0q IFwKLSsgIHwgLS1zYmk9KiB8IC0tc2I9KikKLSsgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7Ci0r Ci0rICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRp IFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwg LS1zaGFyZWRzdGEgXAotKyAgfCAtLXNoYXJlZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQgfCAt LXNoYXJlIHwgLS1zaGFyIFwKLSsgIHwgLS1zaGEgfCAtLXNoKQotKyAgICBhY19wcmV2PXNoYXJl ZHN0YXRlZGlyIDs7Ci0rICAtc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9KiB8 IC0tc2hhcmVkc3RhdGVkaT0qIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3Rh dGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9KiBcCi0rICB8IC0tc2hhcmVkc3Q9 KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKLSsg IHwgLS1zaGE9KiB8IC0tc2g9KikKLSsgICAgc2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKLSsgICAgYWNfcHJldj1zaXRlIDs7Ci0rICAt c2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQotKyAgICBzaXRlPSRhY19vcHRhcmcgOzsKLSsK LSsgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3Ip Ci0rICAgIGFjX3ByZXY9c3JjZGlyIDs7Ci0rICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1z cmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0qKQotKyAgICBzcmNkaXI9JGFjX29w dGFyZyA7OwotKwotKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8 IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAotKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5 c2MgfCAtLXN5cyB8IC0tc3kpCi0rICAgIGFjX3ByZXY9c3lzY29uZmRpciA7OwotKyAgLXN5c2Nv bmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8 IC0tc3lzY29uZj0qIFwKLSsgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwg LS1zeXM9KiB8IC0tc3k9KikKLSsgICAgc3lzY29uZmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAt dGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10 KQotKyAgICBhY19wcmV2PXRhcmdldF9hbGlhcyA7OwotKyAgLXRhcmdldD0qIHwgLS10YXJnZXQ9 KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotKyAg ICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OwotKwotKyAgLXYgfCAtdmVyYm9zZSB8IC0tdmVy Ym9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikKLSsgICAgdmVyYm9zZT15ZXMgOzsK LSsKLSsgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJz IHwgLVYpCi0rICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Ci0rCi0rICAtd2l0aC0qIHwgLS13aXRo LSopCi0rICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149 XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJp YWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9h bG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp bnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNl cm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBj YXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0IgotKyIq KSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29w dHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5y ZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3VzZXJv cHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKLSsgICAg YWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AKLSsg ICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVz LgotKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9k ZXYvbnVsbCAmJgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgcGFj a2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 Ci0rICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBhY191c2Vyb3B0PWAkYXNf ZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0rICAgIGNhc2UgJGFjX3Vz ZXJfb3B0cyBpbgotKyAgICAgICoiCi0rIndpdGhfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAg ICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJl Y29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWciCi0rCSBhY191bnJlY29nbml6 ZWRfc2VwPScsICc7OwotKyAgICBlc2FjCi0rICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1ubyA7 OwotKwotKyAgLS14KQotKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLXguCi0rICAgIHdpdGhf eD15ZXMgOzsKLSsKLSsgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGUg fCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKLSsgIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14 LWluIHwgLS14LWkpCi0rICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OwotKyAgLXgtaW5jbHVkZXM9 KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0teC1pbmNsdWQ9KiB8IC0teC1p bmNsdT0qIFwKLSsgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9 KikKLSsgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAteC1saWJyYXJpZXMgfCAt LXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotKyAgfCAtLXgtbGli cmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCi0r ICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKLSsgIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJh cmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSsgIHwgLS14LWxpYnJh cj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAt LXgtbD0qKQotKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtKikgeyAkYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJGFjX29wdGlvbgotK1Ry eSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KLSsgICAgOzsKLSsKLSsgICo9KikKLSsgICAgYWNfZW52dmFyPWBleHBy ICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0 IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfZW52 dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxlIG5hbWU6ICRhY19lbnZ2YXIiID4m MgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICBldmFsICRhY19lbnZ2YXI9XCRh Y19vcHRhcmcKLSsgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKLSsKLSsgICopCi0rICAgICMgRklY TUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KLSsgICAgJGFzX2VjaG8gIiRh c19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIg PiYyCi0rICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlteLS5fJGFzX2NyX2FsbnVtXSIgPi9k ZXYvbnVsbCAmJgotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9z dCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKLSsgICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259 ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQotKyAg ICA7OwotKwotKyAgZXNhYwotIGRvbmUKLSAKLS1pZiBbICR0Y2xfZm91bmQgLWVxIDAgXQotLXRo ZW4KLS0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCi0tICAgICAgICBlY2hvICdJcyB0aGUgVGNs IGluc3RhbGxlZD8nCi0tICAgICAgICBleGl0Ci0raWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVu Ci0rICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCi0rICB7ICRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iID4m MgotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0rCi0raWYgdGVzdCAtbiAiJGFj X3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgotKyAgY2FzZSAkZW5hYmxlX29wdGlvbl9jaGVja2lu ZyBpbgotKyAgICBubykgOzsKLSsgICAgZmF0YWwpIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMgotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYy IDs7Ci0rICBlc2FjCi0rZmkKLSsKLSsjIENoZWNrIGFsbCBkaXJlY3RvcnkgYXJndW1lbnRzIGZv ciBjb25zaXN0ZW5jeS4KLStmb3IgYWNfdmFyIGluCWV4ZWNfcHJlZml4IHByZWZpeCBiaW5kaXIg c2JpbmRpciBsaWJleGVjZGlyIGRhdGFyb290ZGlyIFwKLSsJCWRhdGFkaXIgc3lzY29uZmRpciBz aGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVkaXIgXAotKwkJb2xkaW5jbHVkZWRp ciBkb2NkaXIgaW5mb2RpciBodG1sZGlyIGR2aWRpciBwZGZkaXIgcHNkaXIgXAotKwkJbGliZGly IGxvY2FsZWRpciBtYW5kaXIKLStkbwotKyAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAjIFJl bW92ZSB0cmFpbGluZyBzbGFzaGVzLgotKyAgY2FzZSAkYWNfdmFsIGluCi0rICAgICovICkKLSsg ICAgICBhY192YWw9YGV4cHIgIlgkYWNfdmFsIiA6ICdYXCguKlteL11cKScgXHwgIlgkYWNfdmFs IiA6ICdYXCguKlwpJ2AKLSsgICAgICBldmFsICRhY192YXI9XCRhY192YWw7OwotKyAgZXNhYwot KyAgIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWVzLgotKyAgY2FzZSAk YWNfdmFsIGluCi0rICAgIFtcXC8kXSogfCA/OltcXC9dKiApICBjb250aW51ZTs7Ci0rICAgIE5P TkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkgY29udGludWU7OyBlc2FjOzsKLSsg IGVzYWMKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRl IGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgotKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQotK2RvbmUKLSsKLSsjIFRoZXJlIG1pZ2h0IGJlIHBlb3BsZSB3aG8g ZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBgJGhvc3QnCi0rIyB1c2VkIHRvIGhv bGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCi0rIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUg ZGF5LgotK2J1aWxkPSRidWlsZF9hbGlhcwotK2hvc3Q9JGhvc3RfYWxpYXMKLSt0YXJnZXQ9JHRh cmdldF9hbGlhcwotKwotKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KLStpZiB0ZXN0ICJ4 JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KLSsgIGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiID0geDsg dGhlbgotKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKLSsgICAgJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNl IC0taG9zdC4KLSsgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNyb3Nz IGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKLSsgIGVsaWYgdGVzdCAieCRidWlsZF9h bGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KLSsgICAgY3Jvc3NfY29tcGlsaW5nPXllcwot KyAgZmkKLStmaQotKwotK2FjX3Rvb2xfcHJlZml4PQotK3Rlc3QgLW4gIiRob3N0X2FsaWFzIiAm JiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KLSsKLSt0ZXN0ICIkc2lsZW50IiA9IHllcyAm JiBleGVjIDY+L2Rldi9udWxsCi0rCi0rCi0rYWNfcHdkPWBwd2RgICYmIHRlc3QgLW4gIiRhY19w d2QiICYmCi0rYWNfbHNfZGk9YGxzIC1kaSAuYCAmJgotK2FjX3B3ZF9sc19kaT1gY2QgIiRhY19w d2QiICYmIGxzIC1kaSAuYCB8fAotKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogd29ya2lu ZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiID4mMgotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotK3Rlc3QgIlgkYWNfbHNfZGkiID0gIlgkYWNfcHdkX2xzX2RpIiB8fAotKyAg eyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcHdkIGRvZXMgbm90IHJlcG9ydCBuYW1lIG9mIHdv cmtpbmcgZGlyZWN0b3J5IiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsK LSsjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQu Ci0raWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KLSsgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9eWVz Ci0rICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQsIHRoZW4gdGhl IHBhcmVudCBkaXJlY3RvcnkuCi0rICBhY19jb25mZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX215 c2VsZiIgfHwKLSskYXNfZXhwciBYIiRhc19teXNlbGYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVte L10qLyokJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSBY IiRhc19teXNlbGYiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhc19teXNlbGYiIDogJ1hcKC9c KScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFzX215c2VsZiIgfAotKyAgICBz ZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAg fQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBz Ly4qLy4vOyBxJ2AKLSsgIHNyY2Rpcj0kYWNfY29uZmRpcgotKyAgaWYgdGVzdCAhIC1yICIkc3Jj ZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KLSsgICAgc3JjZGlyPS4uCi0rICBmaQotK2Vsc2UK LSsgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KLStmaQotK2lmIHRlc3QgISAtciAiJHNyY2Rpci8k YWNfdW5pcXVlX2ZpbGUiOyB0aGVuCi0rICB0ZXN0ICIkYWNfc3JjZGlyX2RlZmF1bHRlZCIgPSB5 ZXMgJiYgc3JjZGlyPSIkYWNfY29uZmRpciBvciAuLiIKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlxdWVfZmlsZSkgaW4gJHNyY2RpciIg PiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSthY19tc2c9InNvdXJjZXMg YXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRvZXMgbm90IHdvcmsiCi0rYWNfYWJz X2NvbmZkaXI9YCgKLSsJY2QgIiRzcmNkaXIiICYmIHRlc3QgLXIgIi4vJGFjX3VuaXF1ZV9maWxl IiB8fCB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfbXNnIiA+JjIKLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KLSsJcHdkKWAKLSsjIFdoZW4gYnVpbGRpbmcgaW4gcGxhY2UsIHNl dCBzcmNkaXI9LgotK2lmIHRlc3QgIiRhY19hYnNfY29uZmRpciIgPSAiJGFjX3B3ZCI7IHRoZW4K LSsgIHNyY2Rpcj0uCi0rZmkKLSsjIFJlbW92ZSB1bm5lY2Vzc2FyeSB0cmFpbGluZyBzbGFzaGVz IGZyb20gc3JjZGlyLgotKyMgRG91YmxlIHNsYXNoZXMgaW4gZmlsZSBuYW1lcyBpbiBvYmplY3Qg ZmlsZSBkZWJ1Z2dpbmcgaW5mbwotKyMgbWVzcyB1cCBNLXggZ2RiIGluIEVtYWNzLgotK2Nhc2Ug JHNyY2RpciBpbgotKyovKSBzcmNkaXI9YGV4cHIgIlgkc3JjZGlyIiA6ICdYXCguKlteL11cKScg XHwgIlgkc3JjZGlyIiA6ICdYXCguKlwpJ2A7OwotK2VzYWMKLStmb3IgYWNfdmFyIGluICRhY19w cmVjaW91c192YXJzOyBkbwotKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zh cn0rc2V0fQotKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9Ci0rICBl dmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFyfStzZXR9Ci0rICBldmFsIGFj X2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWU9XCQke2FjX3Zhcn0KLStkb25lCi0rCi0rIwotKyMgUmVw b3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KLSsjCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAi bG9uZyI7IHRoZW4KLSsgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMg dG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgotKyAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9v IGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgotKyAgY2F0IDw8X0FDRU9G Ci0rXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgU09DSSAzLjAuMCB0byBhZGFwdCB0byBtYW55IGtp bmRzIG9mIHN5c3RlbXMuCi0rCi0rVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtWQVI9VkFMVUVdLi4u Ci0rCi0rVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4u LiksIHNwZWNpZnkgdGhlbSBhcwotK1ZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3IgZGVzY3JpcHRp b25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCi0rCi0rRGVmYXVsdHMgZm9yIHRo ZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCi0rCi0rQ29uZmlndXJhdGlvbjoK LSsgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0Ci0r ICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhp cyBwYWNrYWdlCi0rICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBo ZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKLSsgIC1WLCAtLXZlcnNpb24gICAgICAg ICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAotKyAgLXEsIC0tcXVpZXQs IC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCi0rICAgICAg LS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRd Ci0rICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29u ZmlnLmNhY2hlJwotKyAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRw dXQgZmlsZXMKLSsgICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4g RElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQotKwotK0luc3RhbGxhdGlvbiBkaXJlY3Rvcmll czoKLSsgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVw ZW5kZW50IGZpbGVzIGluIFBSRUZJWAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19k ZWZhdWx0X3ByZWZpeF0KLSsgIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0 ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBbUFJFRklYXQotKwotK0J5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3Rh bGwgYWxsIHRoZSBmaWxlcyBpbgotK1xgJGFjX2RlZmF1bHRfcHJlZml4L2JpbicsIFxgJGFjX2Rl ZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5Ci0rYW4gaW5zdGFsbGF0aW9u IHByZWZpeCBvdGhlciB0aGFuIFxgJGFjX2RlZmF1bHRfcHJlZml4JyB1c2luZyBcYC0tcHJlZml4 JywKLStmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgotKwotK0ZvciBiZXR0ZXIgY29u dHJvbCwgdXNlIHRoZSBvcHRpb25zIGJlbG93LgotKwotK0ZpbmUgdHVuaW5nIG9mIHRoZSBpbnN0 YWxsYXRpb24gZGlyZWN0b3JpZXM6Ci0rICAtLWJpbmRpcj1ESVIgICAgICAgICAgICB1c2VyIGV4 ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KLSsgIC0tc2JpbmRpcj1ESVIgICAgICAgICAgIHN5c3Rl bSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQotKyAgLS1saWJleGVjZGlyPURJUiAg ICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9saWJleGVjXQotKyAgLS1zeXNjb25m ZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNd Ci0rICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRl cGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQotKyAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICAgbW9k aWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFyXQotKyAgLS1saWJkaXI9RElS ICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KLSsgIC0taW5j bHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KLSsgIC0t b2xkaW5jbHVkZWRpcj1ESVIgICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNyL2lu Y2x1ZGVdCi0rICAtLWRhdGFyb290ZGlyPURJUiAgICAgICByZWFkLW9ubHkgYXJjaC4taW5kZXBl bmRlbnQgZGF0YSByb290IFtQUkVGSVgvc2hhcmVdCi0rICAtLWRhdGFkaXI9RElSICAgICAgICAg ICByZWFkLW9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSXQot KyAgLS1pbmZvZGlyPURJUiAgICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJ Ui9pbmZvXQotKyAgLS1sb2NhbGVkaXI9RElSICAgICAgICAgbG9jYWxlLWRlcGVuZGVudCBkYXRh IFtEQVRBUk9PVERJUi9sb2NhbGVdCi0rICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4gZG9j dW1lbnRhdGlvbiBbREFUQVJPT1RESVIvbWFuXQotKyAgLS1kb2NkaXI9RElSICAgICAgICAgICAg ZG9jdW1lbnRhdGlvbiByb290IFtEQVRBUk9PVERJUi9kb2Mvc29jaV0KLSsgIC0taHRtbGRpcj1E SVIgICAgICAgICAgIGh0bWwgZG9jdW1lbnRhdGlvbiBbRE9DRElSXQotKyAgLS1kdmlkaXI9RElS ICAgICAgICAgICAgZHZpIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KLSsgIC0tcGRmZGlyPURJUiAg ICAgICAgICAgIHBkZiBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rICAtLXBzZGlyPURJUiAgICAg ICAgICAgICBwcyBkb2N1bWVudGF0aW9uIFtET0NESVJdCi0rX0FDRU9GCi0rCi0rICBjYXQgPDxc X0FDRU9GCi0rCi0rUHJvZ3JhbSBuYW1lczoKLSsgIC0tcHJvZ3JhbS1wcmVmaXg9UFJFRklYICAg ICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsgIC0t cHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBwZW5kIFNVRkZJWCB0byBpbnN0YWxs ZWQgcHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0gICBy dW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKLSsKLStTeXN0ZW0gdHlw ZXM6Ci0rICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJVSUxE IFtndWVzc2VkXQotKyAgLS1ob3N0PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0byBidWlsZCBw cm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCi0rX0FDRU9GCi0rZmkKLSsKLStpZiB0ZXN0 IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgotKyAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0rICAg ICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgU09DSSAzLjAuMDoi OzsKLSsgICBlc2FjCi0rICBjYXQgPDxcX0FDRU9GCi0rCi0rT3B0aW9uYWwgRmVhdHVyZXM6Ci0r ICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5hYmxl Ly0td2l0aCBvcHRpb25zCi0rICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVk ZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCi0rICAtLWVuYWJsZS1GRUFU VVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCi0rICAtLWVuYWJsZS1zaGFyZWRb PVBLR1NdICBidWlsZCBzaGFyZWQgbGlicmFyaWVzIFtkZWZhdWx0PW5vXQotKyAgLS1lbmFibGUt c3RhdGljWz1QS0dTXSAgYnVpbGQgc3RhdGljIGxpYnJhcmllcyBbZGVmYXVsdD15ZXNdCi0rICAt LWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0r ICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVu ZGVuY3kgZXh0cmFjdG9ycwotKyAgLS1lbmFibGUtZmFzdC1pbnN0YWxsWz1QS0dTXQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uIFtkZWZh dWx0PXllc10KLSsgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tpbmcgKG1pZ2h0 IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKLSsgIC0tZW5hYmxlLWV4Y2VwdGlvbnMgICAgIGVuYWJs ZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbQotKyAgLS1kaXNhYmxlLWluZm8tZG9jICAg ICAgZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlvbgotKyAgLS1kaXNhYmxlLWh0bWwt ZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbgotKyAgLS1lbmFibGUt YnVycmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIGhlYWRl ciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZQotKyAgLS1lbmFibGUtbXlzcWwtYnVy cmllZC1oZWFkZXJzCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIE15U1FMIGhl YWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3R1cmUKLSsgIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVycmllZC1oZWFkZXJzCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIFBvc3RHcmVTUUwgaGVhZGVyIGZpbGVzIGZyb20g YSBkaXJlY3RvcnkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQotKyAgLS1l bmFibGUtYmFja2VuZC1teXNxbCAgYnVpbGQtaW4gTXlTUUwgYmFja2VuZCBzdXBwb3J0IFtkZWZh dWx0PW5vXQotKyAgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgYnVpbGQtaW4gT1JBQ0xFIGJhY2tl bmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KLSsgIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5kIHN1 cHBvcnQgW2RlZmF1bHQ9bm9dCi0rCi0rT3B0aW9uYWwgUGFja2FnZXM6Ci0rICAtLXdpdGgtUEFD S0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KLSsgIC0td2l0aG91dC1QQUNLQUdF ICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKLSsg IC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0 YWxsZWQgKG9wdGlvbmFsKQotKyAgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVmaXg9UEZYICBFeGVj IHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCi0rICAtLXdpdGgt cGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBbZGVm YXVsdD11c2UKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdGhdCi0rICAtLXdpdGgtZ251 LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGlsZXIgdXNlcyBHTlUgbGQgW2RlZmF1bHQ9 bm9dCi0rICAtLXdpdGgtZG9jZGlyPURJUiAgICAgICBzZXQgZG9jdW1lbnRhdGlvbiBkaXJlY3Rv cnkgdG8gRElSCi0rICAtLXdpdGgtYm9vc3Q9RElSICAgICAgICB1c2UgYm9vc3QgKGRlZmF1bHQg aXMgTk8pICwgc3BlY2lmeSB0aGUgcm9vdAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGly ZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCkKLSsgIC0td2l0aC1teXNxbD1bQVJH XSAgICAgIHVzZSBNeVNRTCBjbGllbnQgbGlicmFyeSBbZGVmYXVsdD15ZXNdLCBvcHRpb25hbGx5 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHBhdGggdG8gbXlzcWxfY29uZmln Ci0rICAtLXdpdGgtb3JhY2xlPVtESVJdICAgICB1c2UgT3JhY2xlIE9DSSBBUEkgZnJvbSBnaXZl biBwYXRoIHRvIE9yYWNsZSBob21lCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rv cnkKLSsgIC0td2l0aC1vcmFjbGUtaW5jbHVkZT1bRElSXQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGhlYWRlcnMgZnJvbSBnaXZlbiBwYXRoCi0rICAtLXdp dGgtb3JhY2xlLWxpYj1bRElSXSB1c2UgT3JhY2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2 ZW4gcGF0aAotKyAgLS13aXRoLXBvc3RncmVzcWw9W0FSR10gdXNlIFBvc3RncmVTUUwgbGlicmFy eSBbZGVmYXVsdD15ZXNdLCBvcHRpb25hbGx5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBz cGVjaWZ5IHBhdGggdG8gcGdfY29uZmlnCi0rCi0rU29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVu dCB2YXJpYWJsZXM6Ci0rICBDWFggICAgICAgICBDKysgY29tcGlsZXIgY29tbWFuZAotKyAgQ1hY RkxBR1MgICAgQysrIGNvbXBpbGVyIGZsYWdzCi0rICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3Ms IGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGluIGEKLSsgICAgICAgICAg ICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8bGliIGRpcj4KLSsgIExJQlMgICAgICAgIGxpYnJh cmllcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIsIGUuZy4gLWw8bGlicmFyeT4KLSsgIENQUEZMQUdT ICAgIEMvQysrL09iamVjdGl2ZSBDIHByZXByb2Nlc3NvciBmbGFncywgZS5nLiAtSTxpbmNsdWRl IGRpcj4gaWYKLSsgICAgICAgICAgICAgIHlvdSBoYXZlIGhlYWRlcnMgaW4gYSBub25zdGFuZGFy ZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgotKyAgQ1hYQ1BQICAgICAgQysrIHByZXByb2Nlc3Nv cgotKyAgQ0MgICAgICAgICAgQyBjb21waWxlciBjb21tYW5kCi0rICBDRkxBR1MgICAgICBDIGNv bXBpbGVyIGZsYWdzCi0rICBDUFAgICAgICAgICBDIHByZXByb2Nlc3NvcgotKwotK1VzZSB0aGVz ZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBv ciB0byBoZWxwCi0raXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3Rh bmRhcmQgbmFtZXMvbG9jYXRpb25zLgotKwotK1JlcG9ydCBidWdzIHRvIDxtc29iY3pha0B1c2Vy cy5zb3VyY2Vmb3JnZS5uZXQ+LgotK19BQ0VPRgotK2FjX3N0YXR1cz0kPwotK2ZpCi0rCi0raWYg dGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgotKyAgIyBJZiB0aGVyZSBh cmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4KLSsgIGZvciBhY19kaXIg aW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9IHg6ICYmIGNvbnRpbnVl Ci0rICAgIHRlc3QgLWQgIiRhY19kaXIiIHx8Ci0rICAgICAgeyBjZCAiJHNyY2RpciIgJiYgYWNf cHdkPWBwd2RgICYmIHNyY2Rpcj0uICYmIHRlc3QgLWQgIiRhY19kaXIiOyB9IHx8Ci0rICAgICAg Y29udGludWUKLSsgICAgYWNfYnVpbGRkaXI9LgotKwotK2Nhc2UgIiRhY19kaXIiIGluCi0rLikg YWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9 IDs7Ci0rKikKLSsgIGFjX2Rpcl9zdWZmaXg9L2AkYXNfZWNobyAiJGFjX2RpciIgfCBzZWQgJ3N8 XlwuW1xcL118fCdgCi0rICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9z dWZmaXguCi0rICBhY190b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNobyAiJGFjX2Rpcl9zdWZmaXgi IHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AKLSsgIGNhc2UgJGFjX3RvcF9idWlsZGRp cl9zdWIgaW4KLSsgICIiKSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZp eD0gOzsKLSsgICopICBhY190b3BfYnVpbGRfcHJlZml4PSRhY190b3BfYnVpbGRkaXJfc3ViLyA7 OwotKyAgZXNhYyA7OwotK2VzYWMKLSthY19hYnNfdG9wX2J1aWxkZGlyPSRhY19wd2QKLSthY19h YnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4Ci0rIyBmb3IgYmFja3dhcmQgY29tcGF0 aWJpbGl0eToKLSthY190b3BfYnVpbGRkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgKLSsKLStjYXNl ICRzcmNkaXIgaW4KLSsgIC4pICAjIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KLSsgICAgYWNf c3JjZGlyPS4KLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyX3N1YgotKyAgICBh Y19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7Ci0rICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFi c29sdXRlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7Ci0rICAg IGFjX3RvcF9zcmNkaXI9JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7 Ci0rICAqKSAjIFJlbGF0aXZlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3By ZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVp bGRfcHJlZml4JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIg OzsKLStlc2FjCi0rYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9zcmNkaXIkYWNfZGlyX3N1ZmZp eAotKwotKyAgICBjZCAiJGFjX2RpciIgfHwgeyBhY19zdGF0dXM9JD87IGNvbnRpbnVlOyB9Ci0r ICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQgY29uZmlndXJlLgotKyAgICBpZiB0ZXN0IC1mICIkYWNf c3JjZGlyL2NvbmZpZ3VyZS5nbnUiOyB0aGVuCi0rICAgICAgZWNobyAmJgotKyAgICAgICRTSEVM TCAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IiAtLWhlbHA9cmVjdXJzaXZlCi0rICAgIGVsaWYg dGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rICAgICAgZWNobyAmJgotKyAg ICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUiIC0taGVscD1yZWN1cnNpdmUKLSsgICAg ZWxzZQotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24g aW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCi0rICAgIGZpIHx8IGFjX3N0YXR1cz0kPwot KyAgICBjZCAiJGFjX3B3ZCIgfHwgeyBhY19zdGF0dXM9JD87IGJyZWFrOyB9Ci0rICBkb25lCi0r ZmkKLSsKLSt0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0ICRhY19zdGF0dXMKLStpZiAk YWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0rICBjYXQgPDxcX0FDRU9GCi0rU09DSSBjb25maWd1cmUg My4wLjAKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMKLSsKLStDb3B5cmlnaHQgKEMp IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0r MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLStUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotK2dpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KLSsKLStDb3B5cmlnaHQgKEMpIDIw MDQtMjAwOSBNYWNpZWogU29iY3phayA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pgot K19BQ0VPRgotKyAgZXhpdAotIGZpCi0rY2F0ID5jb25maWcubG9nIDw8X0FDRU9GCi0rVGhpcyBm aWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKLSty dW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBt aXN0YWtlLgotKwotK0l0IHdhcyBjcmVhdGVkIGJ5IFNPQ0kgJGFzX21lIDMuMC4wLCB3aGljaCB3 YXMKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJbnZvY2F0aW9uIGNvbW1hbmQg bGluZSB3YXMKLSsKLSsgICQgJDAgJEAKLSsKLStfQUNFT0YKLStleGVjIDU+PmNvbmZpZy5sb2cK LSt7Ci0rY2F0IDw8X0FTVU5BTUUKLSsjIyAtLS0tLS0tLS0gIyMKLSsjIyBQbGF0Zm9ybS4gIyMK LSsjIyAtLS0tLS0tLS0gIyMKLSsKLStob3N0bmFtZSA9IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4p IDI+L2Rldi9udWxsIHwgc2VkIDFxYAotK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251 bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwg fHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwg ZWNobyB1bmtub3duYAotK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNo byB1bmtub3duYAotKwotKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotKy9iaW4vdW5hbWUgLVggICAgID0gYCgvYmlu L3VuYW1lIC1YKSAyPi9kZXYvbnVsbCAgICAgfHwgZWNobyB1bmtub3duYAotKwotKy9iaW4vYXJj aCAgICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGwgICAgICAgICAgICAgIHx8 IGVjaG8gdW5rbm93bmAKLSsvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNo IC1rKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCi0rL3Vzci9jb252ZXgvZ2V0 c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGwgfHwgZWNobyB1 bmtub3duYAotKy91c3IvYmluL2hvc3RpbmZvICAgICAgPSBgKC91c3IvYmluL2hvc3RpbmZvKSAy Pi9kZXYvbnVsbCAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL21hY2hpbmUgICAgICAgICAg ID0gYCgvYmluL21hY2hpbmUpIDI+L2Rldi9udWxsICAgICAgICAgICB8fCBlY2hvIHVua25vd25g Ci0rL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251 bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9i aW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsKLStf QVNVTkFNRQotKwotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICAkYXNfZWNobyAiUEFUSDogJGFzX2RpciIKLStkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotK30gPiY1Ci0rCi0rY2F0ID4mNSA8PF9BQ0VPRgotKwotKwot KyMjIC0tLS0tLS0tLS0tICMjCi0rIyMgQ29yZSB0ZXN0cy4gIyMKLSsjIyAtLS0tLS0tLS0tLSAj IwotKwotK19BQ0VPRgotKwotKwotKyMgS2VlcCBhIHRyYWNlIG9mIHRoZSBjb21tYW5kIGxpbmUu Ci0rIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8g bm90IHBpbGUgdXAuCi0rIyBTdHJpcCBvdXQgLS1zaWxlbnQgYmVjYXVzZSB3ZSBkb24ndCB3YW50 IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJlIHJ1bnMuCi0rIyBBbHNvIHF1b3RlIGFueSBhcmdzIGNv bnRhaW5pbmcgc2hlbGwgbWV0YS1jaGFyYWN0ZXJzLgotKyMgTWFrZSB0d28gcGFzc2VzIHRvIGFs bG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgotK2FjX2NvbmZp Z3VyZV9hcmdzPQotK2FjX2NvbmZpZ3VyZV9hcmdzMD0KLSthY19jb25maWd1cmVfYXJnczE9Ci0r YWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKLStmb3IgYWNfcGFzcyBpbiAxIDIKLStkbwotKyAgZm9y IGFjX2FyZwotKyAgZG8KLSsgICAgY2FzZSAkYWNfYXJnIGluCi0rICAgIC1uby1jcmVhdGUgfCAt LW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikgY29udGludWUgOzsKLSsgICAg LXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKLSsg ICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCi0rICAg ICAgY29udGludWUgOzsKLSsgICAgKlwnKikKLSsgICAgICBhY19hcmc9YCRhc19lY2hvICIkYWNf YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICBlc2FjCi0rICAgIGNhc2Ug JGFjX3Bhc3MgaW4KLSsgICAgMSkgYWNfY29uZmlndXJlX2FyZ3MwPSIkYWNfY29uZmlndXJlX2Fy Z3MwICckYWNfYXJnJyIgOzsKLSsgICAgMikKLSsgICAgICBhY19jb25maWd1cmVfYXJnczE9IiRh Y19jb25maWd1cmVfYXJnczEgJyRhY19hcmcnIgotKyAgICAgIGlmIHRlc3QgJGFjX211c3Rfa2Vl cF9uZXh0ID0gdHJ1ZTsgdGhlbgotKwlhY19tdXN0X2tlZXBfbmV4dD1mYWxzZSAjIEdvdCB2YWx1 ZSwgYmFjayB0byBub3JtYWwuCi0rICAgICAgZWxzZQotKwljYXNlICRhY19hcmcgaW4KLSsJICAq PSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qIFwKLSsJ ICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1nKiB8IC1uZnAgfCAtLW5mKiBc Ci0rCSAgfCAtcSB8IC1xdWlldCB8IC0tcSogfCAtc2lsZW50IHwgLS1zaWwqIHwgLXYgfCAtdmVy YiogXAotKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0q IHwgLS14KQotKwkgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdzMCAiIGluCi0rCSAgICAgICIk YWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNfYXJnJyAiKiApIGNvbnRpbnVlIDs7Ci0rCSAgICBl c2FjCi0rCSAgICA7OwotKwkgIC0qICkgYWNfbXVzdF9rZWVwX25leHQ9dHJ1ZSA7OwotKwllc2Fj Ci0rICAgICAgZmkKLSsgICAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdz ICckYWNfYXJnJyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rZG9uZQotKyRhc191 bnNldCBhY19jb25maWd1cmVfYXJnczAgfHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczArc2V0 fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MwPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9h cmdzMDsgfQotKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczEgfHwgdGVzdCAiJHthY19jb25m aWd1cmVfYXJnczErc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MxPTsgZXhwb3J0 IGFjX2NvbmZpZ3VyZV9hcmdzMTsgfQotKwotKyMgV2hlbiBpbnRlcnJ1cHRlZCBvciBleGl0J2Qs IGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVzLCBhbmQgY29tcGxldGUKLSsjIGNvbmZpZy5sb2cuICBX ZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1b3RlcyBpbiB0aGVyZQotKyMg d291bGQgY2F1c2UgcHJvYmxlbXMgb3IgbG9vayB1Z2x5LgotKyMgV0FSTklORzogVXNlICdcJycg dG8gcmVwcmVzZW50IGFuIGFwb3N0cm9waGUgd2l0aGluIHRoZSB0cmFwLgotKyMgV0FSTklORzog RG8gbm90IHN0YXJ0IHRoZSB0cmFwIGNvZGUgd2l0aCBhIG5ld2xpbmUsIGR1ZSB0byBhIEZyZWVC U0QgNC4wIGJ1Zy4KLSt0cmFwICdleGl0X3N0YXR1cz0kPwotKyAgIyBTYXZlIGludG8gY29uZmln LmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCi0rICB7 Ci0rICAgIGVjaG8KLSsKLSsgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0g IyMKLSsjIyBDYWNoZSB2YXJpYWJsZXMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotK19B U0JPWAotKyAgICBlY2hvCi0rICAgICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUg Y2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCi0rKAotKyAgZm9yIGFjX3ZhciBp biBgKHNldCkgMj4mMSB8IHNlZCAtbiAnXCcncy9eXChbYS16QS1aX11bYS16QS1aMC05X10qXCk9 LiovXDEvcCdcJydgOyBkbwotKyAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAgY2FzZSAk YWNfdmFsIGluICMoCi0rICAgICoke2FzX25sfSopCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMo Ci0rICAgICAgKl9jdl8qKSB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogY2Fj aGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5l IiA+JjI7fSA7OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRhY192YXIgaW4gIygKLSsgICAg ICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCi0rICAgICAgQkFTSF9BUkdWIHwgQkFTSF9TT1VSQ0Up IGV2YWwgJGFjX3Zhcj0gOzsgIygKLSsgICAgICAqKSAkYXNfdW5zZXQgJGFjX3ZhciA7OwotKyAg ICAgIGVzYWMgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKyAgKHNldCkgMj4mMSB8Ci0rICAgIGNh c2UgJGFzX25sYChhY19zcGFjZT0nXCcnICdcJyc7IHNldCkgMj4mMWAgaW4gIygKLSsgICAgKiR7 YXNfbmx9YWNfc3BhY2U9XCAqKQotKyAgICAgIHNlZCAtbiBcCi0rCSJzLydcJycvJ1wnJ1xcXFwn XCcnJ1wnJy9nOwotKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1d KlxcKT1cXCguKlxcKS9cXDE9J1wnJ1xcMidcJycvcCIKLSsgICAgICA7OyAjKAotKyAgICAqKQot KyAgICAgIHNlZCAtbiAiL15bXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSo9L3Ai Ci0rICAgICAgOzsKLSsgICAgZXNhYyB8Ci0rICAgIHNvcnQKLSspCi0rICAgIGVjaG8KLSsKLSsg ICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgT3V0cHV0IHZh cmlhYmxlcy4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICBlY2hv Ci0rICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X3ZhcnMKLSsgICAgZG8KLSsgICAgICBldmFs IGFjX3ZhbD1cJCRhY192YXIKLSsgICAgICBjYXNlICRhY192YWwgaW4KLSsgICAgICAqXCdcJycq KSBhY192YWw9YCRhc19lY2hvICIkYWNfdmFsIiB8IHNlZCAicy8nXCcnLydcJydcXFxcXFxcXCdc JycnXCcnL2ciYDs7Ci0rICAgICAgZXNhYwotKyAgICAgICRhc19lY2hvICIkYWNfdmFyPSdcJyck YWNfdmFsJ1wnJyIKLSsgICAgZG9uZSB8IHNvcnQKLSsgICAgZWNobwotKwotKyAgICBpZiB0ZXN0 IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCi0rICAgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBGaWxlIHN1YnN0aXR1dGlvbnMuICMjCi0rIyMgLS0t LS0tLS0tLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICAgIGVjaG8KLSsgICAgICBmb3IgYWNf dmFyIGluICRhY19zdWJzdF9maWxlcwotKyAgICAgIGRvCi0rCWV2YWwgYWNfdmFsPVwkJGFjX3Zh cgotKwljYXNlICRhY192YWwgaW4KLSsJKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3Zh bCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OwotKwllc2FjCi0rCSRh c19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKLSsgICAgICBkb25lIHwgc29ydAotKyAg ICAgIGVjaG8KLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCi0r ICAgICAgY2F0IDw8XF9BU0JPWAotKyMjIC0tLS0tLS0tLS0tICMjCi0rIyMgY29uZmRlZnMuaC4g IyMKLSsjIyAtLS0tLS0tLS0tLSAjIwotK19BU0JPWAotKyAgICAgIGVjaG8KLSsgICAgICBjYXQg Y29uZmRlZnMuaAotKyAgICAgIGVjaG8KLSsgICAgZmkKLSsgICAgdGVzdCAiJGFjX3NpZ25hbCIg IT0gMCAmJgotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25h bCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTogZXhpdCAkZXhpdF9zdGF0dXMiCi0rICB9ID4mNQot KyAgcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qICYmCi0rICAgIHJtIC1mIC1yIGNv bmZ0ZXN0KiBjb25mZGVmcyogY29uZiQkKiAkYWNfY2xlYW5fZmlsZXMgJiYKLSsgICAgZXhpdCAk ZXhpdF9zdGF0dXMKLSsnIDAKLStmb3IgYWNfc2lnbmFsIGluIDEgMiAxMyAxNTsgZG8KLSsgIHRy YXAgJ2FjX3NpZ25hbD0nJGFjX3NpZ25hbCc7IHsgKGV4aXQgMSk7IGV4aXQgMTsgfScgJGFjX3Np Z25hbAotK2RvbmUKLSthY19zaWduYWw9MAotKwotKyMgY29uZmRlZnMuaCBhdm9pZHMgT1MgY29t bWFuZCBsaW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBleGNlZWQuCi0rcm0gLWYgLXIg Y29uZnRlc3QqIGNvbmZkZWZzLmgKLSsKLSsjIFByZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlh Ymxlcy4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX05B TUUgIiRQQUNLQUdFX05BTUUiCi0rX0FDRU9GCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9B Q0VPRgotKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIkUEFDS0FHRV9UQVJOQU1FIgotK19BQ0VP RgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIKLStfQUNFT0YKLSsKLSsKLStjYXQgPj5jb25mZGVmcy5o IDw8X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgotK19B Q0VPRgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICIkUEFDS0FHRV9CVUdSRVBPUlQiCi0rX0FDRU9GCi0rCi0rCi0rIyBMZXQgdGhl IHNpdGUgZmlsZSBzZWxlY3QgYW4gYWx0ZXJuYXRlIGNhY2hlIGZpbGUgaWYgaXQgd2FudHMgdG8u Ci0rIyBQcmVmZXIgYW4gZXhwbGljaXRseSBzZWxlY3RlZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkg c2VsZWN0ZWQgb25lcy4KLSthY19zaXRlX2ZpbGUxPU5PTkUKLSthY19zaXRlX2ZpbGUyPU5PTkUK LStpZiB0ZXN0IC1uICIkQ09ORklHX1NJVEUiOyB0aGVuCi0rICBhY19zaXRlX2ZpbGUxPSRDT05G SUdfU0lURQotK2VsaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05FOyB0aGVuCi0rICBhY19zaXRl X2ZpbGUxPSRwcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKLSsgIGFjX3NpdGVfZmlsZTI9JHByZWZp eC9ldGMvY29uZmlnLnNpdGUKLStlbHNlCi0rICBhY19zaXRlX2ZpbGUxPSRhY19kZWZhdWx0X3By ZWZpeC9zaGFyZS9jb25maWcuc2l0ZQotKyAgYWNfc2l0ZV9maWxlMj0kYWNfZGVmYXVsdF9wcmVm aXgvZXRjL2NvbmZpZy5zaXRlCi0rZmkKLStmb3IgYWNfc2l0ZV9maWxlIGluICIkYWNfc2l0ZV9m aWxlMSIgIiRhY19zaXRlX2ZpbGUyIgotK2RvCi0rICB0ZXN0ICJ4JGFjX3NpdGVfZmlsZSIgPSB4 Tk9ORSAmJiBjb250aW51ZQotKyAgaWYgdGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KLSsg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3Np dGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNf c2l0ZV9maWxlIiA+JjY7fQotKyAgICBzZWQgJ3MvXi98IC8nICIkYWNfc2l0ZV9maWxlIiA+JjUK LSsgICAgLiAiJGFjX3NpdGVfZmlsZSIKLSsgIGZpCi0rZG9uZQotKwotK2lmIHRlc3QgLXIgIiRj YWNoZV9maWxlIjsgdGhlbgotKyAgIyBTb21lIHZlcnNpb25zIG9mIGJhc2ggd2lsbCBmYWlsIHRv IHNvdXJjZSAvZGV2L251bGwgKHNwZWNpYWwKLSsgICMgZmlsZXMgYWN0dWFsbHkpLCBzbyB3ZSBh dm9pZCBkb2luZyB0aGF0LgotKyAgaWYgdGVzdCAtZiAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0rICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQot KyAgICBjYXNlICRjYWNoZV9maWxlIGluCi0rICAgICAgW1xcL10qIHwgPzpbXFwvXSogKSAuICIk Y2FjaGVfZmlsZSI7OwotKyAgICAgICopICAgICAgICAgICAgICAgICAgICAgIC4gIi4vJGNhY2hl X2ZpbGUiOzsKLSsgICAgZXNhYwotKyAgZmkKLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQotKyAgPiRjYWNoZV9maWxlCi0r ZmkKLSsKLSsjIENoZWNrIHRoYXQgdGhlIHByZWNpb3VzIHZhcmlhYmxlcyBzYXZlZCBpbiB0aGUg Y2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1lCi0rIyB2YWx1ZS4KLSthY19jYWNoZV9jb3JydXB0ZWQ9 ZmFsc2UKLStmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbwotKyAgZXZhbCBhY19v bGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9zZXQKLSsgIGV2YWwgYWNfbmV3X3NldD1cJGFj X2Vudl8ke2FjX3Zhcn1fc2V0Ci0rICBldmFsIGFjX29sZF92YWw9XCRhY19jdl9lbnZfJHthY192 YXJ9X3ZhbHVlCi0rICBldmFsIGFjX25ld192YWw9XCRhY19lbnZfJHthY192YXJ9X3ZhbHVlCi0r ICBjYXNlICRhY19vbGRfc2V0LCRhY19uZXdfc2V0IGluCi0rICAgIHNldCwpCi0rICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAk YWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlv dXMgcnVuIiA+JjI7fQotKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7Ci0rICAgICxzZXQp Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdh cyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0r ICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKLSsgICAgLCk7OwotKyAgICAqKQotKyAgICAg IGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KLSsJIyBkaWZm ZXJlbmNlcyBpbiB3aGl0ZXNwYWNlIGRvIG5vdCBsZWFkIHRvIGZhaWx1cmUuCi0rCWFjX29sZF92 YWxfdz1gZWNobyB4ICRhY19vbGRfdmFsYAotKwlhY19uZXdfdmFsX3c9YGVjaG8geCAkYWNfbmV3 X3ZhbGAKLSsJaWYgdGVzdCAiJGFjX29sZF92YWxfdyIgIT0gIiRhY19uZXdfdmFsX3ciOyB0aGVu Ci0rCSAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIGhhcyBj aGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiYy O30KLSsJICBhY19jYWNoZV9jb3JydXB0ZWQ9OgotKwllbHNlCi0rCSAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRh Y192YXInIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiB3 YXJuaW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0 aGUgcHJldmlvdXMgcnVuOiIgPiYyO30KLSsJICBldmFsICRhY192YXI9XCRhY19vbGRfdmFsCi0r CWZpCi0rCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiAgIGZvcm1lciB2YWx1ZTogIFxgJGFj X29sZF92YWwnIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiAgIGZvcm1lciB2YWx1ZTogIFxgJGFj X29sZF92YWwnIiA+JjI7fQotKwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogICBjdXJyZW50 IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogICBjdXJyZW50 IHZhbHVlOiBcYCRhY19uZXdfdmFsJyIgPiYyO30KLSsgICAgICBmaTs7Ci0rICBlc2FjCi0rICAj IFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMuCi0rICBpZiB0ZXN0ICIk YWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4KLSsgICAgY2FzZSAkYWNfbmV3X3ZhbCBpbgotKyAgICAq XCcqKSBhY19hcmc9JGFjX3Zhcj1gJGFzX2VjaG8gIiRhY19uZXdfdmFsIiB8IHNlZCAicy8nLydc XFxcXFxcXCcnL2ciYCA7OwotKyAgICAqKSBhY19hcmc9JGFjX3Zhcj0kYWNfbmV3X3ZhbCA7Owot KyAgICBlc2FjCi0rICAgIGNhc2UgIiAkYWNfY29uZmlndXJlX2FyZ3MgIiBpbgotKyAgICAgICoi ICckYWNfYXJnJyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9mIHF1b3RlcyBlbnN1cmVzIGFj Y3VyYWN5LgotKyAgICAgICopIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3Mg JyRhY19hcmcnIiA7OwotKyAgICBlc2FjCi0rICBmaQotK2RvbmUKLStpZiAkYWNfY2FjaGVfY29y cnVwdGVkOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxg JGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoi ID4mMjt9Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNoYW5nZXMgaW4g dGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNl IHRoZSBidWlsZCIgPiYyO30KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFy dCBvdmVyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xl YW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiYyO30KLSsgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2FjX2V4dD1j Ci0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0r YWNfY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBzb2NpL2NvbmZpZy5oIgotKwot KwotK2FjX2F1eF9kaXI9Ci0rZm9yIGFjX2RpciBpbiBjb25maWcgIiRzcmNkaXIiL2NvbmZpZzsg ZG8KLSsgIGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC1zaCI7IHRoZW4KLSsgICAgYWNfYXV4 X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwtc2gg LWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC5zaCI7IHRo ZW4KLSsgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhf ZGlyL2luc3RhbGwuc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIv c2h0b29sIjsgdGhlbgotKyAgICBhY19hdXhfZGlyPSRhY19kaXIKLSsgICAgYWNfaW5zdGFsbF9z aD0iJGFjX2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCi0rICAgIGJyZWFrCi0rICBmaQotK2Rv bmUKLStpZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2gg aW4gY29uZmlnIFwiJHNyY2RpclwiL2NvbmZpZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiBjb25maWcgXCIkc3Jj ZGlyXCIvY29uZmlnIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0r Ci0rIyBUaGVzZSB0aHJlZSB2YXJpYWJsZXMgYXJlIHVuZG9jdW1lbnRlZCBhbmQgdW5zdXBwb3J0 ZWQsCi0rIyBhbmQgYXJlIGludGVuZGVkIHRvIGJlIHdpdGhkcmF3biBpbiBhIGZ1dHVyZSBBdXRv Y29uZiByZWxlYXNlLgotKyMgVGhleSBjYW4gY2F1c2Ugc2VyaW91cyBwcm9ibGVtcyBpZiBhIGJ1 aWxkZXIncyBzb3VyY2UgdHJlZSBpcyBpbiBhIGRpcmVjdG9yeQotKyMgd2hvc2UgZnVsbCBuYW1l IGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVycy4KLSthY19jb25maWdfZ3Vlc3M9IiRTSEVMTCAk YWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCi0r YWNfY29uZmlnX3N1Yj0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICAjIFBsZWFzZSBk b24ndCB1c2UgdGhpcyB2YXIuCi0rYWNfY29uZmlndXJlPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29u ZmlndXJlIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotKwotKwotK2FtX19hcGlfdmVy c2lvbj0nMS4xMCcKLSsKLSsjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZl ciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSsjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBh bm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKLSsjIGluY29tcGF0aWJsZSB2ZXJzaW9u czoKLSsjIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFsbAotKyMgU3VuT1MgL3Vz ci9ldGMvaW5zdGFsbAotKyMgSVJJWCAvc2Jpbi9pbnN0YWxsCi0rIyBBSVggL2Jpbi9pbnN0YWxs Ci0rIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxv cHB5IGRpc2NzCi0rIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdv cmsgd2l0aG91dCBhIC1nIGZsYWcKLSsjIEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGlj aCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSsjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwg d2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCi0rIyBPUy8y J3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFu dGljCi0rIyAuL2luc3RhbGwsIHdoaWNoIGNhbiBiZSBlcnJvbmVvdXNseSBjcmVhdGVkIGJ5IG1h a2UgZnJvbSAuL2luc3RhbGwuc2guCi0rIyBSZWplY3QgaW5zdGFsbCBwcm9ncmFtcyB0aGF0IGNh bm5vdCBpbnN0YWxsIG11bHRpcGxlIGZpbGVzLgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi0raWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4g JFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hl cyBpbiBQQVRIIGVsZW1lbnRzLgotK2Nhc2UgJGFzX2Rpci8gaW4KLSsgIC4vIHwgLi8vIHwgL2ND LyogfCBcCi0rICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwg L3Vzci9hZnN3cy9iaW4vKiB8IFwKLSsgID86XFwvb3MyXFwvaW5zdGFsbFxcLyogfCA/OlxcL09T MlxcL0lOU1RBTExcXC8qIHwgXAotKyAgL3Vzci91Y2IvKiApIDs7Ci0rICAqKQotKyAgICAjIE9T RjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotKyAg ICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZm IGFzIHJvb3QKLSsgICAgIyBieSBkZWZhdWx0LgotKyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFs bCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCWlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJv ZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKwkgICAgZ3Jl cCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsg dGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGlu ZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwg JiYKLSsJICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlw dCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAg IHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgotKwkgICAgZWNo byBvbmUgPiBjb25mdGVzdC5vbmUKLSsJICAgIGVjaG8gdHdvID4gY29uZnRlc3QudHdvCi0rCSAg ICBta2RpciBjb25mdGVzdC5kaXIKLSsJICAgIGlmICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdkYC9jb25mdGVzdC5kaXIiICYm Ci0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3QgLXMgY29uZnRlc3QudHdvICYm Ci0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm9uZSAmJgotKwkgICAgICB0 ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50d28KLSsJICAgIHRoZW4KLSsJICAgICAgYWNf Y3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgotKwkgICAg ICBicmVhayAzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBkb25l Ci0rICAgIDs7Ci0rZXNhYwotKwotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rcm0gLXJm IGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCi0rCi0rZmkKLSsgIGlmIHRl c3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0rICAgIElOU1RBTEw9 JGFjX2N2X3BhdGhfaW5zdGFsbAotKyAgZWxzZQotKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVz ZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCi0rICAgICMgdmFsdWUgZm9y IElOU1RBTEwgd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0aGF0IHdpbGwKLSsg ICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3Rv cnkgaXMKLSsgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1l LgotKyAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCi0rICBmaQotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RBTEwiID4mNQotKyRhc19lY2hvICIkSU5TVEFM TCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9TNCBzaCBtaXNoYW5kbGVz IGJyYWNlcyBpbiAke3Zhci12YWx9LgotKyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFj ZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi0rdGVzdCAteiAiJElOU1RBTExfUFJP R1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwotKwotK3Rlc3QgLXogIiRJTlNU QUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAi JElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKLSsKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9u bWVudCBpcyBzYW5lIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVu dmlyb25tZW50IGlzIHNhbmUuLi4gIiA+JjY7IH0KLSsjIEp1c3QgaW4gY2FzZQotK3NsZWVwIDEK LStlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKLSsjIERvIGBzZXQnIGluIGEgc3Vic2hl bGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCi0rIyBhcmd1bWVudHMu ICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCi0rIyBz eW1saW5rOyBzb21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBv ZiBzeW1saW5rcwotKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhlIHN5 bWxpbmsncyBjb250YWluaW5nCi0rIyBkaXJlY3RvcnkpLgotK2lmICgKLSsgICBzZXQgWCBgbHMg LUx0ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUgMj4gL2Rldi9udWxsYAotKyAgIGlm IHRlc3QgIiQqIiA9ICJYIjsgdGhlbgotKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCi0rICAgICAg c2V0IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsg ICBybSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJCoiICE9ICJYICRzcmNkaXIvY29u ZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKLSsgICAgICAmJiB0ZXN0ICIkKiIgIT0gIlggY29uZnRl c3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KLSsKLSsgICAgICAjIElmIG5laXRoZXIg bWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCi0rICAg ICAgIyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMgYmFzaCBhbmQgaXQgaW5oZXJp dHMgYQotKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhp cyBoYXMgYWN0dWFsbHkKLSsgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBu b3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCi0rICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBu b3QgYSBicm9rZW4KLSthbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogbHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlz IG5vdCBhIGJyb2tlbgotK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnQiID4mMjt9Ci0rICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAgZmkKLSsKLSsgICB0ZXN0ICIkMiIgPSBjb25mdGVz dC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgotKyAgIDoKLStlbHNlCi0rICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRl ciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQotK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRo YW4gZGlzdHJpYnV0ZWQgZmlsZXMhCi0rQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQotK3Rlc3QgIiRw cm9ncmFtX3ByZWZpeCIgIT0gTk9ORSAmJgotKyAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZe JiRwcm9ncmFtX3ByZWZpeCY7JHByb2dyYW1fdHJhbnNmb3JtX25hbWUiCi0rIyBVc2UgYSBkb3Vi bGUgJCBzbyBtYWtlIGlnbm9yZXMgaXQuCi0rdGVzdCAiJHByb2dyYW1fc3VmZml4IiAhPSBOT05F ICYmCi0rICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzJlwkJiRwcm9ncmFtX3N1ZmZpeCY7JHBy b2dyYW1fdHJhbnNmb3JtX25hbWUiCi0rIyBEb3VibGUgYW55IFwgb3IgJC4KLSsjIEJ5IGRlZmF1 bHQgd2FzIGBzLHgseCcsIHJlbW92ZSBpdCBpZiB1c2VsZXNzLgotK2FjX3NjcmlwdD0ncy9bXFwk XS8mJi9nO3MvO3MseCx4LCQvLycKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPWAkYXNfZWNobyAi JHByb2dyYW1fdHJhbnNmb3JtX25hbWUiIHwgc2VkICIkYWNfc2NyaXB0ImAKLSsKLSsjIGV4cGFu ZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi0rYW1fYXV4X2Rpcj1gY2QgJGFjX2F1 eF9kaXIgJiYgcHdkYAotKwotK3Rlc3QgeCIke01JU1NJTkcrc2V0fSIgPSB4c2V0IHx8IE1JU1NJ Tkc9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgotKyMgVXNlIGV2YWwgdG8gZXhwYW5k ICRTSEVMTAotK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCi0rICBhbV9taXNz aW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotK2Vsc2UKLSsgIGFtX21pc3NpbmdfcnVuPQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlz IHRvbyBvbGQgb3IgbWlzc2luZyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogXGBt aXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjI7fQotK2ZpCi0rCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGly IC1wIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAt cC4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRNS0RJUl9QIjsgdGhlbgotKyAgaWYgdGVzdCAi JHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL29wdC9zZncvYmluCi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfcHJvZyBpbiBta2RpciBnbWtkaXI7IGRvCi0rCSBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsJICAgeyB0ZXN0IC1mICIkYXNfZGly LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFj X2V4ZWNfZXh0IjsgfSB8fCBjb250aW51ZQotKwkgICBjYXNlIGAiJGFzX2Rpci8kYWNfcHJvZyRh Y19leGVjX2V4dCIgLS12ZXJzaW9uIDI+JjFgIGluICMoCi0rCSAgICAgJ21rZGlyIChHTlUgY29y ZXV0aWxzKSAnKiB8IFwKLSsJICAgICAnbWtkaXIgKGNvcmV1dGlscykgJyogfCBcCi0rCSAgICAg J21rZGlyIChmaWxldXRpbHMpICc0LjEqKQotKwkgICAgICAgYWNfY3ZfcGF0aF9ta2Rpcj0kYXNf ZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0Ci0rCSAgICAgICBicmVhayAzOzsKLSsJICAgZXNhYwot KwkgZG9uZQotKyAgICAgICBkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQot KwotKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0OyB0aGVuCi0rICAg IE1LRElSX1A9IiRhY19jdl9wYXRoX21rZGlyIC1wIgotKyAgZWxzZQotKyAgICAjIEFzIGEgbGFz dCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCi0rICAg ICMgdmFsdWUgZm9yIE1LRElSX1Agd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwgYmVjYXVzZSB0 aGF0IHdpbGwKLSsgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYg dGhhdCBkaXJlY3RvcnkgaXMKLSsgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSBy ZWxhdGl2ZSBuYW1lLgotKyAgICB0ZXN0IC1kIC4vLS12ZXJzaW9uICYmIHJtZGlyIC4vLS12ZXJz aW9uCi0rICAgIE1LRElSX1A9IiRhY19pbnN0YWxsX3NoIC1kIgotKyAgZmkKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNS0RJUl9QIiA+JjUKLSskYXNfZWNobyAi JE1LRElSX1AiID4mNjsgfQotKwotK21rZGlyX3A9IiRNS0RJUl9QIgotK2Nhc2UgJG1rZGlyX3Ag aW4KLSsgIFtcXC8kXSogfCA/OltcXC9dKikgOzsKLSsgICovKikgbWtkaXJfcD0iXCQodG9wX2J1 aWxkZGlyKS8kbWtkaXJfcCIgOzsKLStlc2FjCi0rCi0rZm9yIGFjX3Byb2cgaW4gZ2F3ayBtYXdr IG5hd2sgYXdrCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ci LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNf cHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJEFXSyI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfQVdLPSIkQVdLIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0 aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgot K2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAt eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rZmkKLStmaQotK0FXSz0kYWNfY3ZfcHJvZ19BV0sKLStpZiB0ZXN0IC1uICIkQVdLIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEFXSyIgPiY1Ci0rJGFz X2VjaG8gIiRBV0siID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICB0 ZXN0IC1uICIkQVdLIiAmJiBicmVhawotK2RvbmUKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4u LiAiID4mNjsgfQotK3NldCB4ICR7TUFLRS1tYWtlfQotK2FjX21ha2U9YCRhc19lY2hvICIkMiIg fCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAotK2lmIHsgYXNfdmFyPWFjX2N2 X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwi ID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCi0rU0hFTEwgPSAvYmluL3NoCi0rYWxsOgot KwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUlJwotK19BQ0VPRgotKyMgR05VIG1ha2Ugc29t ZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJpbmcuLi4iLCB3aGljaCB3b3VsZCBjb25mdXNl IHVzLgotK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBp bgotKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQotKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2Fj X21ha2V9X3NldD15ZXM7OwotKyAgKikKLSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19t YWtlfV9zZXQ9bm87OwotK2VzYWMKLStybSAtZiBjb25mdGVzdC5tYWtlCi0rZmkKLStpZiBldmFs IHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQgPSB5ZXM7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInll cyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgIFNFVF9NQUtF PSJNQUtFPSR7TUFLRS1tYWtlfSIKLStmaQotKwotK3JtIC1yZiAudHN0IDI+L2Rldi9udWxsCi0r bWtkaXIgLnRzdCAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgotKyAgYW1fX2xl YWRpbmdfZG90PS4KLStlbHNlCi0rICBhbV9fbGVhZGluZ19kb3Q9XwotK2ZpCi0rcm1kaXIgLnRz dCAyPi9kZXYvbnVsbAotKwotK2lmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAiICE9ICJgcHdk YCI7IHRoZW4KLSsgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hlbiAkKHNyY2RpcikgIT0gLiwg c28gdGhhdCBtYWtlJ3Mgb3V0cHV0Ci0rICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVk ICItSS4iCi0rICBhbV9faXNyYz0nIC1JJChzcmNkaXIpJwotKyAgIyB0ZXN0IHRvIHNlZSBpZiBz cmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCi0rICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0 YXR1czsgdGhlbgotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogc291 cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIg dGhlcmUgZmlyc3QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBzb3VyY2UgZGlyZWN0 b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwibWFrZSBkaXN0Y2xlYW5cIiB0aGVyZSBmaXJz dCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsgIGZpCi0rZmkKLSsKLSsj IHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKLStpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsg dGhlbgotKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0 aGVuCi0rICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKLSsgIGVsc2UKLSsgICAgQ1lHUEFUSF9X PWVjaG8KLSsgIGZpCi0rZmkKLSsKLSsKLSsjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBh Y2thZ2UuCi0rIFBBQ0tBR0U9J3NvY2knCi0rIFZFUlNJT049JzMuMC4wJwotKwotKwotK2NhdCA+ PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0UgIiRQQUNLQUdFIgotK19BQ0VP RgotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFZFUlNJT04gIiRW RVJTSU9OIgotK19BQ0VPRgotKwotKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KLSsKLStB Q0xPQ0FMPSR7QUNMT0NBTC0iJHthbV9taXNzaW5nX3J1bn1hY2xvY2FsLSR7YW1fX2FwaV92ZXJz aW9ufSJ9Ci0rCi0rCi0rQVVUT0NPTkY9JHtBVVRPQ09ORi0iJHthbV9taXNzaW5nX3J1bn1hdXRv Y29uZiJ9Ci0rCi0rCi0rQVVUT01BS0U9JHtBVVRPTUFLRS0iJHthbV9taXNzaW5nX3J1bn1hdXRv bWFrZS0ke2FtX19hcGlfdmVyc2lvbn0ifQotKwotKwotK0FVVE9IRUFERVI9JHtBVVRPSEVBREVS LSIke2FtX21pc3NpbmdfcnVufWF1dG9oZWFkZXIifQotKwotKwotK01BS0VJTkZPPSR7TUFLRUlO Rk8tIiR7YW1fbWlzc2luZ19ydW59bWFrZWluZm8ifQotKwotK2luc3RhbGxfc2g9JHtpbnN0YWxs X3NoLSJcJChTSEVMTCkgJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCJ9Ci0rCi0rIyBJbnN0YWxsZWQg YmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2Vy Ci0rIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVyIGBzdHJpcCcgbWlnaHQgbm90 IGJlIHRoZSByaWdodAotKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJv bm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKLSsjIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52 aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgotK2lmIHRlc3QgIiRj cm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVm aXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVm aXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX1NU UklQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfU1RSSVA9IiRT VFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJv Z19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2Zp Ci0rU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKLStpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQotKyRhc19l Y2hvICIkU1RSSVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkK LStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4KLSsgIGFjX2N0X1NUUklQPSRT VFJJUAotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0i c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X1NUUklQPSRhY19jdl9wcm9n X2FjX2N0X1NUUklQCi0raWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NUUklQIiA+JjUKLSskYXNfZWNo byAiJGFjX2N0X1NUUklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAg aWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCi0rICAgIFNUUklQPSI6IgotKyAgZWxz ZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMg bm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQi ID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBTVFJJUD0kYWNfY3Rf U1RSSVAKLSsgIGZpCi0rZWxzZQotKyAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgotK2ZpCi0r Ci0rZmkKLStJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgotKwot KyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIg aXMgYmFkIG9uCi0rIyBzb21lIHBsYXRmb3Jtcy4KLSsjIEFsd2F5cyBkZWZpbmUgQU1UQVIgZm9y IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCi0rCi0rQU1UQVI9JHtBTVRBUi0iJHthbV9taXNzaW5n X3J1bn10YXIifQotKwotK2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1f X3VudGFyPScke0FNVEFSfSB4ZiAtJwotKwotKwotKwotKwotKwotKwotKwotKwotKyMgQ2hlY2sg d2hldGhlciAtLXdpdGgtY3BwdW5pdC1wcmVmaXggd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0 aF9jcHB1bml0X3ByZWZpeCtzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9jcHB1 bml0X3ByZWZpeDsgY3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIKLStlbHNlCi0rICBj cHB1bml0X2NvbmZpZ19wcmVmaXg9IiIKLStmaQotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdp dGgtY3BwdW5pdC1leGVjLXByZWZpeCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2NwcHVu aXRfZXhlY19wcmVmaXgrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5p dF9leGVjX3ByZWZpeDsgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIgotK2Vs c2UKLSsgIGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIiCi0rZmkKLSsKLSsKLSsgIGlmIHRl c3QgeCRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5p dF9jb25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5p dF9jb25maWdfZXhlY19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3Nl dH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKyAgaWYg dGVzdCB4JGNwcHVuaXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9j b25maWdfYXJncz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmln X3ByZWZpeCIKLSsgICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsg dGhlbgotKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4v Y3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKwotKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJjcHB1bml0LWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNwcHVuaXQtY29uZmlnOyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9wYXRoX0NQUFVOSVRfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJENQUFVOSVRfQ09ORklHIGluCi0rICBbXFwv XSogfCA/OltcXC9dKikKLSsgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRDUFBVTklUX0NP TkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7 OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wYXRoX0NQUFVO SVRfQ09ORklHIiAmJiBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSJubyIKLSsgIDs7Ci0rZXNh YwotK2ZpCi0rQ1BQVU5JVF9DT05GSUc9JGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUcKLStpZiB0 ZXN0IC1uICIkQ1BQVU5JVF9DT05GSUciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkQ1BQVU5JVF9DT05GSUciID4mNQotKyRhc19lY2hvICIkQ1BQVU5JVF9D T05GSUciID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBjcHB1bml0 X3ZlcnNpb25fbWluPTEuMTAKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyBmb3IgQ3BwdW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4iID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92 ZXJzaW9uX21pbi4uLiAiID4mNjsgfQotKyAgbm9fY3BwdW5pdD0iIgotKyAgaWYgdGVzdCAiJENQ UFVOSVRfQ09ORklHIiA9ICJubyIgOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICBub19jcHB1 bml0PXllcwotKyAgZWxzZQotKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0t Y2ZsYWdzYAotKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCi0rICAg IENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgY3Bw dW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKLSsgICAgY3Bw dW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKLSsgICAgY3Bw dW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDMvJ2AKLSsKLSsgICAg Y3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAg ICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKLSsgICAg aWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3Bw dW5pdF9tYWpvcl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0X21pbm9yX21pbj1gZWNo byAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwp LlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMi8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21p bm9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pbm9yX21pbj0wCi0rICAg IGZpCi0rCi0rICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWlu IHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwp L1wzLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9fbWlufSIgPSAieCIgOyB0aGVu Ci0rICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKLSsgICAgZmkKLSsKLSsgICAgY3BwdW5pdF92 ZXJzaW9uX3Byb3Blcj1gZXhwciBcCi0rICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw+ ICRjcHB1bml0X21ham9yX21pbiBcfCBcCi0rICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9u IFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAgICAgICAkY3BwdW5pdF9taW5vcl92ZXJz aW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCi0rICAgICAgICAkY3BwdW5pdF9tYWpvcl92 ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAgICAgICAkY3BwdW5pdF9taW5v cl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCi0rICAgICAgICAkY3BwdW5pdF9t aWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAotKwotKyAgICBpZiB0ZXN0ICIk Y3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCi0rICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9t aW5vcl92ZXJzaW9uLiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNQotKyRhc19lY2hvICIkY3Bw dW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9f dmVyc2lvbiIgPiY2OyB9Ci0rICAgIGVsc2UKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICBub19j cHB1bml0PXllcwotKyAgICBmaQotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIngkbm9fY3BwdW5pdCIg PSB4IDsgdGhlbgotKyAgICAgOgotKyAgZWxzZQotKyAgICAgQ1BQVU5JVF9DRkxBR1M9IiIKLSsg ICAgIENQUFVOSVRfTElCUz0iIgotKyAgICAgOgotKyAgZmkKLSsKLSsKLSsKLSsKLSsKLSsgaWYg dGVzdCAieCRDUFBVTklUX0xJQlMiICE9IHg7IHRoZW4KLSsgIEhBVkVfQ1BQVU5JVF9UUlVFPQot KyAgSEFWRV9DUFBVTklUX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhBVkVfQ1BQVU5JVF9UUlVFPScj JwotKyAgSEFWRV9DUFBVTklUX0ZBTFNFPQotK2ZpCi0rCi0rCi0rIyBSUE0gcmVsZWFzZSBudW1i ZXIKLStSUE1fUkVMRUFTRT0iMTMiCi0rCi0rCi0rIyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5n Ci0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6MDowIgotKyMgICAgICAgICAgICAgICAgICAg ICAgICB8IHwgfAotKyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0tLSsKLSsjICAgICAg ICAgICAgICAgICB8ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAgICAgICAgY3VycmVudDpyZXZp c2lvbjphZ2UKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAg ICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBi ZWVuIGFkZGVkOwotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHNldCB0byB6 ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAg fCAgICAgICAgcmVtb3ZlZCBvciBjaGFuZ2VkCi0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAg Ky0gaW5jcmVtZW50IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2VkOwotKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQgaXMgaW5jcmVtZW50ZWQKLSsj ICAgICAgICAgICAgICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRk ZWQsIHJlbW92ZWQKLSsjICAgICAgICAgICAgICAgICAgICBvciBjaGFuZ2VkCi0rCi0rCi0rIyBV cGxvYWQgY29tbWFuZCBmb3IgU291cmNlRm9yZ2UKLStVUExPQURfQ09NTUFORD0ibmNmdHBwdXQg LXYgdXBsb2FkLnNvdXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCi0rCi0rCi0rIyBDaGVjayBmb3Ig aG9zdCBhbmQgZGlzYWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGluIFdpbmRvd3MKLSsj IE1ha2Ugc3VyZSB3ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCi0rJFNIRUxMICIkYWNfYXV4X2Rpci9j b25maWcuc3ViIiBzdW40ID4vZGV2L251bGwgMj4mMSB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5z dWIiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRTSEVMTCAkYWNf YXV4X2Rpci9jb25maWcuc3ViIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQot KwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlw ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2FjX2N2X2J1aWxkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2J1aWxkX2FsaWFzPSRidWlsZF9hbGlh cwotK3Rlc3QgIngkYWNfYnVpbGRfYWxpYXMiID0geCAmJgotKyAgYWNfYnVpbGRfYWxpYXM9YCRT SEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzImAKLSt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFz IiA9IHggJiYKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3Qg Z3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBv bmUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rYWNfY3ZfYnVpbGQ9YCRT SEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxkX2FsaWFzYCB8fAotKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRTSEVMTCAkYWNfYXV4X2Rpci9jb25m aWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVk IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKLSskYXNfZWNobyAi JGFjX2N2X2J1aWxkIiA+JjY7IH0KLStjYXNlICRhY19jdl9idWlsZCBpbgotKyotKi0qKSA7Owot KyopIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9m IGNhbm9uaWNhbCBidWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQg dmFsdWUgb2YgY2Fub25pY2FsIGJ1aWxkIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfTs7Ci0rZXNhYwotK2J1aWxkPSRhY19jdl9idWlsZAotK2FjX3NhdmVfSUZTPSRJRlM7IElG Uz0nLScKLStzZXQgeCAkYWNfY3ZfYnVpbGQKLStzaGlmdAotK2J1aWxkX2NwdT0kMQotK2J1aWxk X3ZlbmRvcj0kMgotK3NoaWZ0OyBzaGlmdAotKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0 ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3JlYXRlICQqLAotKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxs czoKLStidWlsZF9vcz0kKgotK0lGUz0kYWNfc2F2ZV9JRlMKLStjYXNlICRidWlsZF9vcyBpbiAq XCAqKSBidWlsZF9vcz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYwot KwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5c3RlbSB0 eXBlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgIngkaG9zdF9hbGlhcyIgPSB4 OyB0aGVuCi0rICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAotK2Vsc2UKLSsgIGFjX2N2X2hvc3Q9 YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJGhvc3RfYWxpYXNgIHx8Ci0rICAgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29u ZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mMjt9 Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLSsKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKLSskYXNfZWNobyAiJGFj X2N2X2hvc3QiID4mNjsgfQotK2Nhc2UgJGFjX2N2X2hvc3QgaW4KLSsqLSotKikgOzsKLSsqKSB7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5v bmljYWwgaG9zdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFsdWUg b2YgY2Fub25pY2FsIGhvc3QiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsK LStlc2FjCi0raG9zdD0kYWNfY3ZfaG9zdAotK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKLStz ZXQgeCAkYWNfY3ZfaG9zdAotK3NoaWZ0Ci0raG9zdF9jcHU9JDEKLStob3N0X3ZlbmRvcj0kMgot K3NoaWZ0OyBzaGlmdAotKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgSUZTIGlz IHVzZWQgdG8gY3JlYXRlICQqLAotKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKLStob3N0X29z PSQqCi0rSUZTPSRhY19zYXZlX0lGUwotK2Nhc2UgJGhvc3Rfb3MgaW4gKlwgKikgaG9zdF9vcz1g ZWNobyAiJGhvc3Rfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCi0rCi0rCi0rY2FzZSAkaG9z dCBpbgotKyAgKi0qLW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3 aW4qIHwgKi0qLXdpbmRvd3MqKQotKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVk IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgIGVuYWJsZXZhbD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAg Y2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKLSsgICAg bm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfc2hhcmVkPW5v Ci0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBj b21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIk e0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8K LSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0r CSAgZW5hYmxlX3NoYXJlZD15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRf c2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9zaGFyZWQ9 bm8KLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICAjIENoZWNrIHdoZXRoZXIg LS1lbmFibGUtc3RhdGljIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0Ut ZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRp Yz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVu YWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdl IHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9 IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAk ZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0g IlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsg ICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAg ZW5hYmxlX3N0YXRpYz15ZXMKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICA7 OwotKyAgKikKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4u Ci0raWYgdGVzdCAiJHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2 YWw9JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJs ZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVf c2hhcmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgICMg TG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qg c2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhf U0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0 X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9z aGFyZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgot KyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVfc2hhcmVkPXllcwotK2ZpCi0r Ci0rCi0rCi0rCi0rCi0rCi0rICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zdGF0aWMgd2Fz IGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbgotKyAg ZW5hYmxldmFsPSRlbmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQotKyAgICBjYXNl ICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OwotKyAgICBubykg ZW5hYmxlX3N0YXRpYz1ubyA7OwotKyAgICAqKQotKyAgICAgZW5hYmxlX3N0YXRpYz1ubwotKyAg ICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9u IGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9 JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlG Uz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVu YWJsZV9zdGF0aWM9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVf aWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVfc3RhdGljPW5vCi0r ZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgOzsKLStlc2FjCi0rCi0rIyBDaGVja3MgZm9yIHBy b2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgotK2FjX2V4dD1jcHAKLSthY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotK2lmIHRl c3QgLXogIiRDWFgiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgotKyAgICBDWFg9 JENDQwotKyAgZWxzZQotKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0r ICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBL Q0MgUkNDIHhsQ19yIHhsQwotKyAgZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgotKyAgYWNfY3Zf cHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UK LSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAg IGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LStmaQotK2ZpCi0rQ1hYPSRhY19jdl9wcm9nX0NYWAotK2lmIHRlc3QgLW4gIiRDWFgiOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKLSskYXNf ZWNobyAiJENYWCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgICAg dGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiRDWFgi OyB0aGVuCi0rICBhY19jdF9DWFg9JENYWAotKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAg YUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKLStkbwotKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHth Y19jdl9wcm9nX2FjX2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgotKyAg YWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S Ci0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKLSsgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAotK2lm IHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3RfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19jdF9DWFgi ICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhlbgot KyAgICBDWFg9ImcrKyIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190 b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZp eGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2Vz YWMKLSsgICAgQ1hYPSRhY19jdF9DWFgKLSsgIGZpCi0rZmkKLSsKLSsgIGZpCi0rZmkKLSsjIFBy b3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCi0rJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQotK3Nl dCBYICRhY19jb21waWxlCi0rYWNfY29tcGlsZXI9JDIKLSt7IChhY190cnk9IiRhY19jb21waWxl ciAtLXZlcnNpb24gPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBp bGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKLStjYXNlICIoKCRhY190cnki IGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8K LSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAo ZXhpdCAkYWNfc3RhdHVzKTsgfQotK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKLStj YXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1Ci0r ICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKwotK2NhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLSthY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVh bl9maWxlcwotK2FjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgYS5vdXQgYS5vdXQuZFNZ TSBhLmV4ZSBiLm91dCIKLSsjIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRob3V0IC1v IGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCi0rIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2UgYnJv a2VuIGNvbXBpbGVycywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgotKyMgb2YgZXhlZXh0 LgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVy IGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KLSthY19s aW5rX2RlZmF1bHQ9YCRhc19lY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFte IF0qLy8nYAotKwotKyMgVGhlIHBvc3NpYmxlIG91dHB1dCBmaWxlczoKLSthY19maWxlcz0iYS5v dXQgY29uZnRlc3QuZXhlIGNvbmZ0ZXN0IGEuZXhlIGFfb3V0LmV4ZSBiLm91dCBjb25mdGVzdC4q IgotKwotK2FjX3JtZmlsZXM9Ci0rZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzCi0rZG8KLSsgIGNh c2UgJGFjX2ZpbGUgaW4KLSsgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwg Ki5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNIHwg Ki5vIHwgKi5vYmogKSA7OwotKyAgICAqICkgYWNfcm1maWxlcz0iJGFjX3JtZmlsZXMgJGFjX2Zp bGUiOzsKLSsgIGVzYWMKLStkb25lCi0rcm0gLWYgJGFjX3JtZmlsZXMKLSsKLStpZiB7IChhY190 cnk9IiRhY19saW5rX2RlZmF1bHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf bGlua19kZWZhdWx0IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IHRoZW4KLSsgICMgQXV0b2NvbmYtMi4xMyBjb3VsZCBzZXQgdGhlIGFjX2N2X2V4ZWV4dCB2YXJp YWJsZSB0byBgbm8nLgotKyMgU28gaWdub3JlIGEgdmFsdWUgb2YgYG5vJywgb3RoZXJ3aXNlIHRo aXMgd291bGQgbGVhZCB0byBgRVhFRVhUID0gbm8nCi0rIyBpbiBhIE1ha2VmaWxlLiAgV2Ugc2hv dWxkIG5vdCBvdmVycmlkZSBhY19jdl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKLSsjIHNvIHRo YXQgdGhlIHVzZXIgY2FuIHNob3J0LWNpcmN1aXQgdGhpcyB0ZXN0IGZvciBjb21waWxlcnMgdW5r bm93biB0bwotKyMgQXV0b2NvbmYuCi0rZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcnCi0rZG8K LSsgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQotKyAgY2FzZSAkYWNfZmlsZSBpbgot KyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8 ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApCi0r CTs7Ci0rICAgIFthYl0ub3V0ICkKLSsJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVjdXRhYmxl LCBidXQgZXhlZXh0PScnIGlzIG1vc3QKLSsJIyBjZXJ0YWlubHkgcmlnaHQuCi0rCWJyZWFrOzsK LSsgICAgKi4qICkKLSsgICAgICAgIGlmIHRlc3QgIiR7YWNfY3ZfZXhlZXh0K3NldH0iID0gc2V0 ICYmIHRlc3QgIiRhY19jdl9leGVleHQiICE9IG5vOwotKwl0aGVuIDo7IGVsc2UKLSsJICAgYWNf Y3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0rCWZpCi0rCSMg V2Ugc2V0IGFjX2N2X2V4ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxhdGVyIHRlc3QgZm9yIGl0IGlz IG5vdAotKwkjIHNhZmU6IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90IGFkZCB0aGUgc3VmZml4IGlm IGdpdmVuIGFuIGAtbycKLSsJIyBhcmd1bWVudCwgc28gd2UgbWF5IG5lZWQgdG8ga25vdyBpdCBh dCB0aGF0IHBvaW50IGFscmVhZHkuCi0rCSMgRXZlbiBpZiB0aGlzIHNlY3Rpb24gbG9va3MgY3J1 ZnR5OiBpdCBoYXMgdGhlIGFkdmFudGFnZSBvZgotKwkjIGFjdHVhbGx5IHdvcmtpbmcuCi0rCWJy ZWFrOzsKLSsgICAgKiApCi0rCWJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rdGVzdCAiJGFjX2N2 X2V4ZWV4dCIgPSBubyAmJiBhY19jdl9leGVleHQ9Ci0rCi0rZWxzZQotKyAgYWNfZmlsZT0nJwot K2ZpCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4m NQotKyRhc19lY2hvICIkYWNfZmlsZSIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJGFjX2ZpbGUiOyB0 aGVuCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0reyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IEMrKyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCi0rU2VlIFxg Y29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBDKysgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcwotK1NlZSBcYGNvbmZp Zy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAgIHsgKGV4aXQgNzcpOyBleGl0IDc3 OyB9OyB9OyB9Ci0rZmkKLSsKLSthY19leGVleHQ9JGFjX2N2X2V4ZWV4dAotKwotKyMgQ2hlY2sg dGhhdCB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5v dCwgZWl0aGVyCi0rIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxl LgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysg Y29tcGlsZXIgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMr KyBjb21waWxlciB3b3Jrcy4uLiAiID4mNjsgfQotKyMgRklYTUU6IFRoZXNlIGNyb3NzIGNvbXBp bGVyIGhhY2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKLSsjIElmIG5vdCBj cm9zcyBjb21waWxpbmcsIGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBhIHNpbXBsZSBwcm9ncmFtLgot K2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgotKyAgaWYgeyBhY190cnk9 Jy4vJGFjX2ZpbGUnCi0rICB7IChjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY190cnki KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotKyAg ICBjcm9zc19jb21waWxpbmc9bm8KLSsgIGVsc2UKLSsgICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBp bGluZyIgPSBtYXliZTsgdGhlbgotKwljcm9zc19jb21waWxpbmc9eWVzCi0rICAgIGVsc2UKLSsJ eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBpbGVkIHBy b2dyYW1zLgotK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgot K1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCi0rSWYgeW91IG1l YW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi0rU2VlIFxgY29uZmlnLmxvZycg Zm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9 Ci0rICAgIGZpCi0rICBmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsKLStybSAtZiAtciBhLm91dCBh Lm91dC5kU1lNIGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAotK2FjX2NsZWFuX2Zp bGVzPSRhY19jbGVhbl9maWxlc19zYXZlCi0rIyBDaGVjayB0aGF0IHRoZSBjb21waWxlciBwcm9k dWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKLSsjIHRoZSBjb21w aWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uICIg PiY2OyB9Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBp bGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVz IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4u ICIgPiY2OyB9Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGlu Ci0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQot KyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IHRoZW4KLSsgICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBh cmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQotKyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScu ICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAotKyMgd29yayBw cm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3 aXRoCi0rIyBgcm0nLgotK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25m dGVzdC4qOyBkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCi0rICBjYXNlICRh Y19maWxlIGluCi0rICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRi IHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8 ICoub2JqICkgOzsKLSsgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAn W14uXSpcKFwuLipcKSdgCi0rCSAgYnJlYWs7OwotKyAgICAqICkgYnJlYWs7OwotKyAgZXNhYwot K2RvbmUKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4g XGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNv bXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluawotK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29t cGlsZSBhbmQgbGluawotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotK2ZpCi0rCi0rcm0gLWYgY29uZnRl c3QkYWNfY3ZfZXhlZXh0Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X2V4ZWV4dCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9leGVleHQiID4mNjsgfQotKwotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19leHQKLStFWEVFWFQ9JGFjX2N2X2V4ZWV4dAotK2FjX2V4ZWV4dD0k RVhFRVhUCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXgg b2Ygb2JqZWN0IGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9m IG9iamVjdCBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0K3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC5vIGNvbmZ0ZXN0Lm9iagotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgk YWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5vIGNv bmZ0ZXN0Lm9iaiBjb25mdGVzdC4qOyBkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRp bnVlOwotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50 ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYg fCAqLmRTWU0gKSA7OwotKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcu KlwuXCguKlwpJ2AKLSsgICAgICAgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStlbHNlCi0rICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0reyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4g XGAkYWNfcHdkJzoiID4mMjt9Ci0reyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCi0r U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3Qg Y29tcGlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuJGFj X2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X29iamV4 dCIgPiY2OyB9Ci0rT0JKRVhUPSRhY19jdl9vYmpleHQKLSthY19vYmpleHQ9JE9CSkVYVAotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0 aGUgR05VIEMrKyBjb21waWxlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3 ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X2N4eF9jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18KLSsg ICAgICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNF T0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY29tcGlsZXJfZ251PXllcwotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY29tcGlsZXJfZ251PW5vCi0rZmkK LSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLSthY19jdl9jeHhfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKLSsKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGls ZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQot K2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgotKyAgR1hYPXllcwotK2Vsc2UK LSsgIEdYWD0KLStmaQotK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9Ci0rYWNfc2F2 ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9n X2N4eF9nK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKLSsg ICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCi0rICAgYWNfY3ZfcHJvZ19jeHhfZz1ubwotKyAgIENY WEZMQUdTPSItZyIKLSsgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCi0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlDWFhGTEFHUz0iIgotKyAgICAgIGNh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VP RgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAo KQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4 dDsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNf Y3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotKwkgQ1hYRkxBR1M9Ii1n IgotKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQK LSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAg YWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UKLSsgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkK LSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLSsgICBhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFn Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19j eHhfZyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9wcm9nX2N4eF9nIiA+JjY7IH0KLStpZiB0ZXN0 ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBzZXQ7IHRoZW4KLSsgIENYWEZMQUdTPSRhY19zYXZlX0NY WEZMQUdTCi0rZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0geWVzOyB0aGVuCi0rICBpZiB0 ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBDWFhGTEFHUz0iLWcgLU8yIgotKyAgZWxzZQot KyAgICBDWFhGTEFHUz0iLWciCi0rICBmaQotK2Vsc2UKLSsgIGlmIHRlc3QgIiRHWFgiID0geWVz OyB0aGVuCi0rICAgIENYWEZMQUdTPSItTzIiCi0rICBlbHNlCi0rICAgIENYWEZMQUdTPQotKyAg ZmkKLStmaQotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxl PSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29t cGlsZXJfZ251Ci0rREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgotKwotK2FjX2NvbmZp Z19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKLSsKLSsKLSthbV9tYWtl PSR7TUFLRS1tYWtlfQotK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKLSthbV9fZG9pdDoKLSsJQGVj aG8gZG9uZQotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElmIHdlIGRvbid0IGZpbmQgYW4g aW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkg JGFtX21ha2UiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRl IHVzZWQgYnkgJGFtX21ha2UuLi4gIiA+JjY7IH0KLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVv dGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVk ZS4KLStlY2hvICJpbmNsdWRlIGNvbmZpbmMiID4gY29uZm1mCi0rIyBXZSBncmVwIG91dCBgRW50 ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JwotKyMgbWVzc2FnZXMgd2hp Y2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KLSsjIEluIHBhcnRpY3Vs YXIgd2UgZG9uJ3QgbG9vayBhdCBgXm1ha2U6JyBiZWNhdXNlIEdOVSBtYWtlIG1pZ2h0Ci0rIyBi ZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hp Y2gKLSsjIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KLStp ZiB0ZXN0ICJgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbCB8IGdyZXAgLXYgJ2lu ZyBkaXJlY3RvcnknYCIgPSAiZG9uZSI7IHRoZW4KLSsgICBhbV9faW5jbHVkZT1pbmNsdWRlCi0r ICAgYW1fX3F1b3RlPQotKyAgIF9hbV9yZXN1bHQ9R05VCi0rZmkKLSsjIE5vdyB0cnkgQlNEIG1h a2Ugc3R5bGUgaW5jbHVkZS4KLStpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCi0r ICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgotKyAgIGlmIHRlc3QgImAkYW1f bWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KLSsgICAgICBh bV9faW5jbHVkZT0uaW5jbHVkZQotKyAgICAgIGFtX19xdW90ZT0iXCIiCi0rICAgICAgX2FtX3Jl c3VsdD1CU0QKLSsgICBmaQotK2ZpCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJF9hbV9yZXN1bHQiID4mNQotKyRhc19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2OyB9 Ci0rcm0gLWYgY29uZmluYyBjb25mbWYKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZGVw ZW5kZW5jeS10cmFja2luZyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfZGVwZW5kZW5j eV90cmFja2luZytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfZGVwZW5k ZW5jeV90cmFja2luZzsKLStmaQotKwotK2lmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJh Y2tpbmciICE9IHhubzsgdGhlbgotKyAgYW1fZGVwY29tcD0iJGFjX2F1eF9kaXIvZGVwY29tcCIK LSsgIEFNREVQQkFDS1NMQVNIPSdcJwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVu Y3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgotKyAgQU1ERVBfVFJVRT0KLSsgIEFNREVQX0ZBTFNF PScjJwotK2Vsc2UKLSsgIEFNREVQX1RSVUU9JyMnCi0rICBBTURFUF9GQUxTRT0KLStmaQotKwot KwotKwotK2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD0KLSsKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgot KyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ug d2UgY2FuIGVuZCB1cAotKyAgIyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93 IGFib3V0IGFuZCBuZXZlciByZW1vdmUuICBGb3IKLSsgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9y dGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCi0rICAjIG1ha2luZyBh IGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0 cHV0Ci0rICAjIGluIEQnLgotKyAgbWtkaXIgY29uZnRlc3QuZGlyCi0rICAjIENvcHkgZGVwY29t cCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQot KyAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KLSsgIGNwICIkYW1fZGVwY29tcCIgY29u ZnRlc3QuZGlyCi0rICBjZCBjb25mdGVzdC5kaXIKLSsgICMgV2Ugd2lsbCBidWlsZCBvYmplY3Rz IGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3RvcnkgYmVjYXVzZQotKyAgIyBpdCBoZWxw cyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UK LSsgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVu ZGVuY2llcyBhcyBhCi0rICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0aW9uLCBidXQgSUNDIHdp bGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KLSsgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdo aWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAotKyAgIyBkaXJlY3RvcnkuCi0r ICBta2RpciBzdWIKLSsKLSsgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1u b25lCi0rICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgotKyAgICAgYW1f Y29tcGlsZXJfbGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJyA8IC4v ZGVwY29tcGAKLSsgIGZpCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8K LSsgICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNv bWUgY29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMg b24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBh IGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgotKyAgICAjCi0rICAgICMg V2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29t cGlsZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0 aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdp dGggdGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgZm9y IGkgaW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGkn LmgiJyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRp LmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0rICAgICAgIyBTb2xhcmlzIDgn cyB7L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSsgICAgZG9u ZQotKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8k e2FtX19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgbm9z aWRlZWZmZWN0KQotKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBi eSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotKyAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhw bGljaXRseSByZXF1ZXN0ZWQKLSsgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3Ry YWNraW5nIiA9IHh5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAgICBlbHNlCi0rCWJyZWFrCi0r ICAgICAgZmkKLSsgICAgICA7OwotKyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0rICAg ICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2ht c3Rkb3V0IgotKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBj b21waWxlciBkb2VzIG5vdCBwcm9wZXJseQotKyAgICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2Ug bmVlZCB0byBkZXRlY3QgdGhpcy4KLSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCi0rICAgICAg IHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwK LSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3Qu VFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgLW8gc3ViL2NvbmZ0ZXN0 LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5jIFwKLSsgICAgICAgICA+L2Rldi9udWxsIDI+Y29u ZnRlc3QuZXJyICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBv ID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29u ZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdGVzdC4k e09CSkVYVC1vfSBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAk e01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAj IGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3Vl IHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3 ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRp b24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1Q LCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1h bmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWly ZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMg ICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0r ICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAg ICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlw ZT0kZGVwbW9kZQotKyAgICAgICAgYnJlYWsKLSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQot KwotKyAgY2QgLi4KLSsgIHJtIC1yZiBjb25mdGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DWFhf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxl cl90eXBlIiA+JjUKLSskYXNfZWNobyAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZSIgPiY2OyB9Ci0rQ1hYREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DWFhfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGUKLSsKLSsgaWYKLSsgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJh Y2tpbmciICE9IHhubyBcCi0rICAmJiB0ZXN0ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KLSsgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9Ci0rICBhbV9f ZmFzdGRlcENYWF9GQUxTRT0nIycKLStlbHNlCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPScjJwot KyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9Ci0rZmkKLSsKLSsKLSthY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXBy b2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHBy ZXByb2Nlc3Nvci4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCi0rICBp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVz ZSBDWFhDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKLSsgICAgZm9yIENYWENQUCBpbiAiJENYWCAt RSIgIi9saWIvY3BwIgotKyAgICBkbwotKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3Ig YWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRl ciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdp dGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4g dG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRz Lmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBO ZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAot KyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRj aCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAq LwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGlu Y2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXggZXJyb3IKLStfQUNFT0YK LStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190 cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3By ZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51 ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMg T0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBo ZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4K LStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mg b24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJl YWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9u ZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBj b2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0r aWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIGJyZWFrCi0rZmkKLSsKLSsgICAgZG9uZQotKyAg ICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rCi0rZmkKLSsgIENYWENQUD0kYWNfY3ZfcHJv Z19DWFhDUFAKLStlbHNlCi0rICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKLSskYXNfZWNobyAi JENYWENQUCIgPiY2OyB9Ci0rYWNfcHJlcHJvY19vaz1mYWxzZQotK2ZvciBhY19jeHhfcHJlcHJv Y193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBj b21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBhIGZyZXNoIGNy b3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+ IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2 ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1 bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0rICAjIG5vdCBqdXN0 IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4K LSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lmZGVmIF9f U1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8YXNzZXJ0 Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIHsgKGFjX3Ry eT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1 cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJt IC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVz KTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2Zs YWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwot KyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZmkKLSsKLSty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIyBPSywgd29ya3Mgb24g c2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKLSsgICMg Y2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgotK2lm IHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIg aW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJv Y193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9OyB0aGVuCi0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlu cHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAg IyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rCi0r cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNl IG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBw ZWQuCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJv Y19vazsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiBDKysgcHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBjaGVjawotK1NlZSBc YGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogQysrIHByZXByb2Nlc3NvciBcIiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStT ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH07IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rQ1hYRkxBR1M9IiRzYXZlX0NYWEZMQUdT IgotKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFt IChmYXN0ZXIpLAotKyMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQg YXZvaWQgdGhlIGJyb2tlbiBvcgotKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgotKyMgU3lzViAv ZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCi0rIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxs Ci0rIyBJUklYIC9zYmluL2luc3RhbGwKLSsjIEFJWCAvYmluL2luc3RhbGwKLSsjIEFtaWdhT1Mg L0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKLSsj IEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEg LWcgZmxhZwotKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMg bm9uZXhpc3RlbnQgYXJncwotKyMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0 byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSsjIE9TLzIncyBzeXN0ZW0gaW5z dGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKLSsjIC4vaW5z dGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5z dGFsbC5zaC4KLSsjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1zIHRoYXQgY2Fubm90IGluc3RhbGwg bXVsdGlwbGUgZmlsZXMuCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkSU5T VEFMTCI7IHRoZW4KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0r ICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAg IyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxl bWVudHMuCi0rY2FzZSAkYXNfZGlyLyBpbgotKyAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKLSsgIC9l dGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jp bi8qIHwgXAotKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxc LyogfCBcCi0rICAvdXNyL3VjYi8qICkgOzsKLSsgICopCi0rICAgICMgT1NGMSBhbmQgU0NPIE9E VCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCi0rICAgICMgRG9uJ3QgdXNl IGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAotKyAg ICAjIGJ5IGRlZmF1bHQuCi0rICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5z dGFsbDsgZG8KLSsgICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KLSsJaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgot KwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCi0rCSAgICBncmVwIGRzcG1zZyAiJGFz X2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgICAj IEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24u Ci0rCSAgICA6Ci0rCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKwkgICAgZ3Jl cCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsg dGhlbgotKwkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkgSFAg cHdwbHVzLS1kb24ndCB1c2UuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgcm0gLXJmIGNvbmZ0 ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCi0rCSAgICBlY2hvIG9uZSA+IGNvbmZ0 ZXN0Lm9uZQotKwkgICAgZWNobyB0d28gPiBjb25mdGVzdC50d28KLSsJICAgIG1rZGlyIGNvbmZ0 ZXN0LmRpcgotKwkgICAgaWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC1jIGNvbmZ0 ZXN0Lm9uZSBjb25mdGVzdC50d28gImBwd2RgL2NvbmZ0ZXN0LmRpciIgJiYKLSsJICAgICAgdGVz dCAtcyBjb25mdGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVzdC50d28gJiYKLSsJICAgICAgdGVz dCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3Qub25lICYmCi0rCSAgICAgIHRlc3QgLXMgY29uZnRl c3QuZGlyL2NvbmZ0ZXN0LnR3bwotKwkgICAgdGhlbgotKwkgICAgICBhY19jdl9wYXRoX2luc3Rh bGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCi0rCSAgICAgIGJyZWFrIDMKLSsJ ICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsgICAgICBkb25lCi0rICAgIGRvbmUKLSsgICAgOzsKLStl c2FjCi0rCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStybSAtcmYgY29uZnRlc3Qub25l IGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKLSsKLStmaQotKyAgaWYgdGVzdCAiJHthY19jdl9w YXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9p bnN0YWxsCi0rICBlbHNlCi0rICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNo ZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKLSsgICAgIyB2YWx1ZSBmb3IgSU5TVEFMTCB3aXRo aW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAotKyAgICAjIGJyZWFrIG90 aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotKyAgICAj IHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCi0rICAgIElOU1RB TEw9JGFjX2luc3RhbGxfc2gKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1Ci0rJGFzX2VjaG8gIiRJTlNUQUxMIiA+JjY7IH0KLSsK LSsjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGluICR7 dmFyLXZhbH0uCi0rIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhlIHZh cmlhYmxlIHN1YnN0aXR1dGlvbi4KLSt0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNU QUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0rCi0rdGVzdCAteiAiJElOU1RBTExfU0NSSVBUIiAm JiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKLSsKLSt0ZXN0IC16ICIkSU5TVEFMTF9EQVRB IiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JwotKwotK2Nhc2UgYHB3ZGAgaW4K LSsgICpcICogfCAqXAkqKQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklO RzogTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIFxgcHdkXGAi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IExpYnRvb2wgZG9lcyBub3QgY29wZSB3 ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBcYHB3ZFxgIiA+JjI7fSA7OwotK2VzYWMKLSsKLSsKLSsK LSttYWNyb192ZXJzaW9uPScyLjIuNicKLSttYWNyb19yZXZpc2lvbj0nMS4zMDEyJwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRt YWluLnNoIgotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251Ci0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm aXh9Z2NjOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCi0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7 IHRoZW4KLSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhl IHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStm b3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1nY2MiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJEND IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUK LSskYXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwot K2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCi0rICBhY19jdF9DQz0kQ0MK LSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19j dl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3Ig YXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRh c19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2Zp Ci0rZmkKLSthY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotK2lmIHRlc3QgLW4gIiRhY19j dF9DQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19j dF9DQyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0geDsgdGhlbgotKyAgICBDQz0i IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGlu Ci0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBDQz0k YWNfY3RfQ0MKLSsgIGZpCi0rZWxzZQotKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgotK2ZpCi0rCi0r aWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgICAgICAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9w cmVmaXgiOyB0aGVuCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29s X3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0 IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rv b2xfcHJlZml4fWNjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStDQz0kYWNfY3ZfcHJvZ19D QwotK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsKLSsgIGZpCi0rZmkKLStpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCi0r ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3By b2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rICBhY19wcm9nX3JlamVj dGVkPW5vCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgotKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3Vj Yi9jYyI7IHRoZW4KLSsgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKLSsgICAgICAgY29udGlu dWUKLSsgICAgIGZpCi0rICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2lm IHRlc3QgJGFjX3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSsgICMgV2UgZm91bmQgYSBib2dv biBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KLSsgIHNldCBkdW1t eSAkYWNfY3ZfcHJvZ19DQwotKyAgc2hpZnQKLSsgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAg ICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KLSsg ICAgIyBIb3dldmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxs IGJlIGNob3NlbgotKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFt ZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KLSsgICAgc2hpZnQKLSsgICAgYWNfY3ZfcHJvZ19D Qz0iJGFzX2Rpci8kYWNfd29yZCR7MSsnICd9JEAiCi0rICBmaQotK2ZpCi0rZmkKLStmaQotK0ND PSRhY19jdl9wcm9nX0NDCi0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+JjY7IH0K LStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0r JGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJENDIjsg dGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3By b2cgaW4gY2wuZXhlCi0rICBkbwotKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KLStzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19D Qz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2Zp Ci0rQ0M9JGFjX2N2X3Byb2dfQ0MKLStpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQotKyRhc19lY2hvICIkQ0MiID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRDQyIg JiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgIGFjX2N0 X0NDPSRDQwotKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCi0rZG8KLSsgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19h Y19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX2Fj X2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vs c2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0r ICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgotKyAgICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBi cmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLSthY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotK2lmIHRlc3QgLW4gIiRhY19jdF9D QyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9D QyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9 Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsKLStkb25lCi0rCi0r ICBpZiB0ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KLSsgICAgQ0M9IiIKLSsgIGVsc2UKLSsg ICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7 fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgQ0M9JGFjX2N0X0NDCi0rICBm aQotK2ZpCi0rCi0rZmkKLSsKLSsKLSt0ZXN0IC16ICIkQ0MiICYmIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK3sgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICi0r U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICi0rU2Vl IFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsg ZXhpdCAxOyB9OyB9OyB9Ci0rCi0rIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhl IGNvbXBpbGVyLgotKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMgY29t cGlsZXIgdmVyc2lvbiIgPiY1Ci0rc2V0IFggJGFjX2NvbXBpbGUKLSthY19jb21waWxlcj0kMgot K3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIpIDI+JjUKLSsgIGFjX3N0 YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLXYg PiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC12ID4mNSIp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0reyAoYWNfdHJ5PSIk YWNfY29tcGlsZXIgLVYgPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGVyIC1WID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJl IHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rI2lmbmRlZiBfX0dOVUNfXwot KyAgICAgICBjaG9rZSBtZQotKyNlbmRpZgotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21w aWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0 ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJy ID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9m bGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY29tcGlsZXJfZ251PXllcwotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY29tcGlsZXJfZ251PW5vCi0rZmkK LSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLSthY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9n bnUiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNjsgfQotK2lmIHRl c3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgotKyAgR0NDPXllcwotK2Vsc2UKLSsgIEdD Qz0KLStmaQotK2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KLSthY19zYXZlX0NGTEFHUz0k Q0ZMQUdTCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJEND IGFjY2VwdHMgLWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2Vw dHMgLWcuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19zYXZl X2Nfd2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKLSsgICBhY19jX3dlcnJvcl9mbGFnPXll cwotKyAgIGFjX2N2X3Byb2dfY2NfZz1ubwotKyAgIENGTEFHUz0iLWciCi0rICAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewot KwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgot KyAgYWNfY3ZfcHJvZ19jY19nPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK LSsKLSsJQ0ZMQUdTPSIiCi0rICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgOgotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9m bGFnCi0rCSBDRkxBR1M9Ii1nIgotKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRl c3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jY19nPXllcwot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2Zp Ci0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBhY19jX3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nf d2Vycm9yX2ZsYWcKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19jdl9wcm9nX2NjX2ciID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19nIiA+JjY7IH0K LStpZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0rICBDRkxBR1M9JGFjX3Nh dmVfQ0ZMQUdTCi0rZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KLSsgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIENGTEFHUz0iLWcgLU8yIgotKyAgZWxzZQot KyAgICBDRkxBR1M9Ii1nIgotKyAgZmkKLStlbHNlCi0rICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgotKyAgICBDRkxBR1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAgQ0ZMQUdTPQotKyAgZmkKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0 byBhY2NlcHQgSVNPIEM4OSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRDQyBvcHRp b24gdG8gYWNjZXB0IElTTyBDODkuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2df Y2NfYzg5K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCi0rYWNfc2F2ZV9DQz0kQ0MKLStjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRhcmcuaD4K LSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0rI2luY2x1ZGUg PHN5cy9zdGF0Lmg+Ci0rLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4g ZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwotK3N0cnVjdCBidWYgeyBpbnQgeDsgfTsK LStGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOwot K3N0YXRpYyBjaGFyICplIChwLCBpKQotKyAgICAgY2hhciAqKnA7Ci0rICAgICBpbnQgaTsKLSt7 Ci0rICByZXR1cm4gcFtpXTsKLSt9Ci0rc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFy ICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQotK3sKLSsgIGNoYXIgKnM7Ci0rICB2YV9saXN0IHY7 Ci0rICB2YV9zdGFydCAodixwKTsKLSsgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7Ci0rICB2 YV9lbmQgKHYpOwotKyAgcmV0dXJuIHM7Ci0rfQotKwotKy8qIE9TRiA0LjAgQ29tcGFxIGNjIGlz IHNvbWUgc29ydCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCi0rICAgZnVuY3Rp b24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29u c3RhbnRzLgotKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwg aW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAotKyAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcg aW5kdWNlcyBhbiBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKLSsgICBwcm9wZXIg QU5TSSBtb2RlLiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwg Zm9yIGFuCi0rICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRl ICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCi0rICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1z dGQuICAqLwotK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07Ci0rCi0r LyogSUJNIEMgNiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBs YWNlcyBtYWNybyBwYXJhbWV0ZXJzCi0rICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBj b25zdGFudHMuICAqLwotKyNkZWZpbmUgRk9PKHgpICd4JwotK2ludCB4bGM2X2NjX2FycmF5W0ZP TyhhKSA9PSAneCcgPyAxIDogLTFdOwotKwotK2ludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwot K3N0cnVjdCBzMSB7aW50ICgqZikgKGludCBhKTt9OwotK3N0cnVjdCBzMiB7aW50ICgqZikgKGRv dWJsZSBhKTt9OwotK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVj dCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwotK2ludCBhcmdjOwotK2No YXIgKiphcmd2OwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9 IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwotKyAgOwotKyAgcmV0dXJu IDA7Ci0rfQotK19BQ0VPRgotK2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4dGM4OSAtcWxh bmdsdmw9YW5zaSAtc3RkIFwKLSsJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VY VEVOU0lPTlNfXyIKLStkbwotKyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCi0rICBybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v YmpleHQ7IHRoZW4KLSsgIGFjX2N2X3Byb2dfY2NfYzg5PSRhY19hcmcKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0Ci0rICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAi eG5vIiAmJiBicmVhawotK2RvbmUKLStybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci0rQ0M9JGFjX3Nh dmVfQ0MKLSsKLStmaQotKyMgQUNfQ0FDSEVfVkFMCi0rY2FzZSAieCRhY19jdl9wcm9nX2NjX2M4 OSIgaW4KLSsgIHgpCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5v bmUgbmVlZGVkIiA+JjUKLSskYXNfZWNobyAibm9uZSBuZWVkZWQiID4mNjsgfSA7OwotKyAgeG5v KQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB1bnN1cHBvcnRlZCIg PiY1Ci0rJGFzX2VjaG8gInVuc3VwcG9ydGVkIiA+JjY7IH0gOzsKLSsgICopCi0rICAgIENDPSIk Q0MgJGFjX2N2X3Byb2dfY2NfYzg5IgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19j Y19jODkiID4mNjsgfSA7OwotK2VzYWMKLSsKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFH UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29t cGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotK2RlcGNjPSIkQ0MiICAgYW1fY29t cGlsZXJfbGlzdD0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVw ZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVu ZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthbV9jdl9DQ19k ZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYg dGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRv IHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1ha2luZyBi b2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZv cgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRl c3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVj YXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBta2RpciBj b25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lz ZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0 b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRp cgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRp cmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVw ZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElD QyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lkZSBlZmZl Y3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgot KyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0 aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1fY3ZfQ0Nf ZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVy X2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypc KFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCi0rICBmaQotKyAgZm9yIGRlcG1v ZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0rICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBt YW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwotKyAgICAjIGxpa2UgdG8g d3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCi0r ICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVz ZWQgYnkgdGhpcy4KLSsgICAgIwotKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmls ZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQotKyAgICAjIG92ZXJ3cml0ZSBz b21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgotKyAg ICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KLSsgICAg OiA+IHN1Yi9jb25mdGVzdC5jCi0rICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwotKyAgICAg IGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAg ICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3Qx Lmggd2l0aAotKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCi0rICAgICAgdG91 Y2ggc3ViL2NvbmZ0c3QkaS5oCi0rICAgIGRvbmUKLSsgICAgZWNobyAiJHthbV9faW5jbHVkZX0g JHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgotKwotKyAg ICBjYXNlICRkZXBtb2RlIGluCi0rICAgIG5vc2lkZWVmZmVjdCkKLSsgICAgICAjIGFmdGVyIHRo aXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKLSsg ICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCi0rICAgICAgaWYg dGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCi0rCWNvbnRp bnVlCi0rICAgICAgZWxzZQotKwlicmVhawotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgbm9u ZSkgYnJlYWsgOzsKLSsgICAgZXNhYwotKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1v JyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKLSsgICAgIyBtb2RlLiAgSXQgdHVy bnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKLSsg ICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuCi0rICAgIGlm IGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0 PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0rICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0 LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCi0rICAgICAgICRTSEVMTCAuL2RlcGNv bXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBc Ci0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAgICBncmVwIHN1 Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAg IGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYK LSsgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpFWFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtub3du IG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwotKyAgICAgICMgb3IgcmVtYXJr cyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdl Ci0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0 ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWluIHRo dXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcgb3B0 aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAgIyBUaGUgZGlhZ25vc2lzIGNo YW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJrOiBv cHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBvcHRp b24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25m dGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCi0rICAgICAgICBhbV9jdl9D Q19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotKyAgICAgICAgYnJlYWsKLSsg ICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4KLSsgIHJtIC1yZiBjb25mdGVz dC5kaXIKLStlbHNlCi0rICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25l Ci0rZmkKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhbV9j dl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci0rJGFzX2VjaG8gIiRhbV9jdl9D Q19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY2OyB9Ci0rQ0NERVBNT0RFPWRlcG1vZGU9 JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCi0rCi0rIGlmCi0rICB0ZXN0ICJ4 JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2 X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KLSsgIGFtX19mYXN0 ZGVwQ0NfVFJVRT0KLSsgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zh c3RkZXBDQ19UUlVFPScjJwotKyAgYW1fX2Zhc3RkZXBDQ19GQUxTRT0KLStmaQotKwotKwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5v dCB0cnVuY2F0ZSBvdXRwdXQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIHNlZCB0 aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNf Y3ZfcGF0aF9TRUQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgICAgICAgICAgIGFjX3NjcmlwdD1zL2FhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhL2JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYi8KLSsgICAg IGZvciBhY19pIGluIDEgMiAzIDQgNSA2IDc7IGRvCi0rICAgICAgIGFjX3NjcmlwdD0iJGFjX3Nj cmlwdCRhc19ubCRhY19zY3JpcHQiCi0rICAgICBkb25lCi0rICAgICBlY2hvICIkYWNfc2NyaXB0 IiAyPi9kZXYvbnVsbCB8IHNlZCA5OXEgPmNvbmZ0ZXN0LnNlZAotKyAgICAgJGFzX3Vuc2V0IGFj X3NjcmlwdCB8fCBhY19zY3JpcHQ9Ci0rICAgICBpZiB0ZXN0IC16ICIkU0VEIjsgdGhlbgotKyAg YWNfcGF0aF9TRURfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0 aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0rICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFj X3Byb2cgaW4gc2VkIGdzZWQ7IGRvCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl Y3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAgIGFjX3BhdGhfU0VEPSIkYXNfZGlyLyRhY19w cm9nJGFjX2V4ZWNfZXh0IgotKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfU0VEIiAmJiAkYXNf dGVzdF94ICIkYWNfcGF0aF9TRUQiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFj X3BhdGhfU0VEIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCi0rICAjIENoZWNrIGZvciBH TlUgJGFjX3BhdGhfU0VECi0rY2FzZSBgIiRhY19wYXRoX1NFRCIgLS12ZXJzaW9uIDI+JjFgIGlu Ci0rKkdOVSopCi0rICBhY19jdl9wYXRoX1NFRD0iJGFjX3BhdGhfU0VEIiBhY19wYXRoX1NFRF9m b3VuZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4i Y29uZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAi Y29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29u ZnRlc3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNf ZWNobyAnJyA+PiAiY29uZnRlc3QubmwiCi0rICAgICIkYWNfcGF0aF9TRUQiIC1mIGNvbmZ0ZXN0 LnNlZCA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFr Ci0rICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEg fHwgYnJlYWsKLSsgICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKLSsgICAgaWYgdGVz dCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9TRURfbWF4LTB9OyB0aGVuCi0rICAgICAgIyBCZXN0 IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCi0r ICAgICAgYWNfY3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIKLSsgICAgICBhY19wYXRoX1NFRF9t YXg9JGFjX2NvdW50Ci0rICAgIGZpCi0rICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNl ZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFr Ci0rICBkb25lCi0rICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3Qubmwg Y29uZnRlc3Qub3V0OzsKLStlc2FjCi0rCi0rICAgICAgJGFjX3BhdGhfU0VEX2ZvdW5kICYmIGJy ZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rICBp ZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9TRUQiOyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIHNlZCBjb3VsZCBiZSBmb3VuZCBpbiBc JFBBVEgiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIHNlZCBj b3VsZCBiZSBmb3VuZCBpbiBcJFBBVEgiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfU0VEPSRTRUQKLStmaQotKwotK2ZpCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BhdGhfU0VEIiA+JjUK LSskYXNfZWNobyAiJGFjX2N2X3BhdGhfU0VEIiA+JjY7IH0KLSsgU0VEPSIkYWNfY3ZfcGF0aF9T RUQiCi0rICBybSAtZiBjb25mdGVzdC5zZWQKLSsKLSt0ZXN0IC16ICIkU0VEIiAmJiBTRUQ9c2Vk Ci0rWHNlZD0iJFNFRCAtZSAxcy9eWC8vIgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhh bmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBn cmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAiID4mNjsgfQotK2lmIHRlc3Qg IiR7YWNfY3ZfcGF0aF9HUkVQK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRHUkVQIjsgdGhlbgotKyAgYWNfcGF0 aF9HUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5k IHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNy L3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfcHJvZyBpbiBncmVwIGdncmVwOyBkbwotKyAgICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgICAgICBh Y19wYXRoX0dSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0 IC1mICIkYWNfcGF0aF9HUkVQIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9HUkVQIjsgfSB8fCBj b250aW51ZQotKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0dSRVAgYW5kIHNlbGVjdCBpdCBpZiBp dCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9HUkVQCi0rY2FzZSBgIiRh Y19wYXRoX0dSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgotKypHTlUqKQotKyAgYWNfY3ZfcGF0aF9H UkVQPSIkYWNfcGF0aF9HUkVQIiBhY19wYXRoX0dSRVBfZm91bmQ9Ojs7Ci0rKikKLSsgIGFjX2Nv dW50PTAKLSsgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgotKyAgd2hpbGUg OgotKyAgZG8KLSsgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0 LnRtcCIKLSsgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgotKyAgICBjcCAiY29u ZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKLSsgICAgJGFzX2VjaG8gJ0dSRVAnID4+ICJjb25mdGVz dC5ubCIKLSsgICAgIiRhY19wYXRoX0dSRVAiIC1lICdHUkVQJCcgLWUgJy0oY2Fubm90IG1hdGNo KS0nIDwgImNvbmZ0ZXN0Lm5sIiA+ImNvbmZ0ZXN0Lm91dCIgMj4vZGV2L251bGwgfHwgYnJlYWsK LSsgICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8 fCBicmVhawotKyAgICBhY19jb3VudD1gZXhwciAkYWNfY291bnQgKyAxYAotKyAgICBpZiB0ZXN0 ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0dSRVBfbWF4LTB9OyB0aGVuCi0rICAgICAgIyBCZXN0 IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCi0r ICAgICAgYWNfY3ZfcGF0aF9HUkVQPSIkYWNfcGF0aF9HUkVQIgotKyAgICAgIGFjX3BhdGhfR1JF UF9tYXg9JGFjX2NvdW50Ci0rICAgIGZpCi0rICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0 IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJy ZWFrCi0rICBkb25lCi0rICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3Qu bmwgY29uZnRlc3Qub3V0OzsKLStlc2FjCi0rCi0rICAgICAgJGFjX3BhdGhfR1JFUF9mb3VuZCAm JiBicmVhayAzCi0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfR1JFUCI7IHRoZW4KLSsgICAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG5vIGFjY2VwdGFibGUgZ3JlcCBjb3VsZCBiZSBmb3Vu ZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgk UEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX0dSRVA9JEdSRVAKLStmaQotKwot K2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BhdGhfR1JF UCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9wYXRoX0dSRVAiID4mNjsgfQotKyBHUkVQPSIkYWNf Y3ZfcGF0aF9HUkVQIgotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgZWdyZXAiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9FR1JFUCtzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiBlY2hvIGEgfCAkR1JFUCAt RSAnKGF8YiknID4vZGV2L251bGwgMj4mMQotKyAgIHRoZW4gYWNfY3ZfcGF0aF9FR1JFUD0iJEdS RVAgLUUiCi0rICAgZWxzZQotKyAgICAgaWYgdGVzdCAteiAiJEVHUkVQIjsgdGhlbgotKyAgYWNf cGF0aF9FR1JFUF9mb3VuZD1mYWxzZQotKyAgIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRo IGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKLSsgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9S L3Vzci94cGc0L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX3Byb2cgaW4gZWdyZXA7IGRvCi0rICAgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAgIGFj X3BhdGhfRUdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0ZXN0 IC1mICIkYWNfcGF0aF9FR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfRUdSRVAiOyB9IHx8 IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfRUdSRVAgYW5kIHNlbGVjdCBpdCBp ZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9FR1JFUAotK2Nhc2Ug YCIkYWNfcGF0aF9FR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSopCi0rICBhY19jdl9w YXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIgYWNfcGF0aF9FR1JFUF9mb3VuZD06OzsKLSsqKQot KyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCi0r ICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4i Y29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCi0rICAg IGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNfZWNobyAnRUdSRVAnID4+ ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX0VHUkVQIiAnRUdSRVAkJyA8ICJjb25mdGVz dC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCi0rICAgIGRpZmYgImNv bmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKLSsgICAg YWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKLSsgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0 ICR7YWNfcGF0aF9FR1JFUF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwg c2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAgICBhY19jdl9w YXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIKLSsgICAgICBhY19wYXRoX0VHUkVQX21heD0kYWNf Y291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9y ZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRv bmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVz dC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9FR1JFUF9mb3VuZCAmJiBicmVhayAz Ci0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVz dCAteiAiJGFjX2N2X3BhdGhfRUdSRVAiOyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQ QVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IG5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9T RVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX0VHUkVQPSRFR1JFUAotK2ZpCi0rCi0rICAg ZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wYXRo X0VHUkVQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfRUdSRVAiID4mNjsgfQotKyBFR1JF UD0iJGFjX2N2X3BhdGhfRUdSRVAiCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciBmZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZncmVw Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wYXRoX0ZHUkVQK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIGVjaG8gJ2Fi KmMnIHwgJEdSRVAgLUYgJ2FiKmMnID4vZGV2L251bGwgMj4mMQotKyAgIHRoZW4gYWNfY3ZfcGF0 aF9GR1JFUD0iJEdSRVAgLUYiCi0rICAgZWxzZQotKyAgICAgaWYgdGVzdCAteiAiJEZHUkVQIjsg dGhlbgotKyAgYWNfcGF0aF9GR1JFUF9mb3VuZD1mYWxzZQotKyAgIyBMb29wIHRocm91Z2ggdGhl IHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QKLSsgIGFzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRIJFBB VEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX3Byb2cgaW4gZmdyZXA7IGRv Ci0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgICAgIGFjX3BhdGhfRkdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0r ICAgICAgeyB0ZXN0IC1mICIkYWNfcGF0aF9GR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhf RkdSRVAiOyB9IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfRkdSRVAgYW5k IHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9G R1JFUAotK2Nhc2UgYCIkYWNfcGF0aF9GR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSop Ci0rICBhY19jdl9wYXRoX0ZHUkVQPSIkYWNfcGF0aF9GR1JFUCIgYWNfcGF0aF9GR1JFUF9mb3Vu ZD06OzsKLSsqKQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29u ZnRlc3QuaW4iCi0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29u ZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRl c3QuaW4iCi0rICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNfZWNo byAnRkdSRVAnID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX0ZHUkVQIiBGR1JFUCA8 ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCi0rICAg IGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJl YWsKLSsgICAgYWNfY291bnQ9YGV4cHIgJGFjX2NvdW50ICsgMWAKLSsgICAgaWYgdGVzdCAkYWNf Y291bnQgLWd0ICR7YWNfcGF0aF9GR1JFUF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25l IHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAg ICBhY19jdl9wYXRoX0ZHUkVQPSIkYWNfcGF0aF9GR1JFUCIKLSsgICAgICBhY19wYXRoX0ZHUkVQ X21heD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQg c2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJl YWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5u bCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0aF9GR1JFUF9mb3VuZCAm JiBicmVhayAzCi0rICAgIGRvbmUKLSsgIGRvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfRkdSRVAiOyB0aGVuCi0rICAgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIGZncmVwIGNvdWxkIGJlIGZv dW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogZXJyb3I6IG5vIGFjY2VwdGFibGUgZmdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBB VEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotKyAgZmkKLStlbHNlCi0rICBhY19jdl9wYXRoX0ZHUkVQPSRGR1JFUAotK2Zp Ci0rCi0rICAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19jdl9wYXRoX0ZHUkVQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfRkdSRVAiID4mNjsg fQotKyBGR1JFUD0iJGFjX2N2X3BhdGhfRkdSRVAiCi0rCi0rCi0rdGVzdCAteiAiJEdSRVAiICYm IEdSRVA9Z3JlcAotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251LWxkIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRo X2dudV9sZDsgdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzCi0rZWxzZQot KyAgd2l0aF9nbnVfbGQ9bm8KLStmaQotKwotK2FjX3Byb2c9bGQKLStpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBh IHBhdGguCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxkIHVz ZWQgYnkgJENDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbGQgdXNlZCBieSAkQ0Mu Li4gIiA+JjY7IH0KLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1taW5ndyopCi0rICAgICMgZ2Nj IGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWluZ3cKLSsg ICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUn YCA7OwotKyAgKikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1 YCA7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAgICAjIEFjY2VwdCBhYnNvbHV0 ZSBwYXRocy4KLSsgICAgW1xcL10qIHwgPzpbXFwvXSopCi0rICAgICAgcmVfZGlyZWx0PScvW14v XVteL10qL1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAot KyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAg ICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251 bGwgMj4mMTsgZG8KLSsJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVs dCUvJSJgCi0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9n IgotKyAgICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdl IGFyZW4ndCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsgICAgOzsKLSsgICopCi0rICAg ICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFU SC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7OwotKyAgZXNhYwotK2VsaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBH TlUgbGQuLi4gIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBu b24tR05VIGxkLi4uICIgPiY2OyB9Ci0rZmkKLStpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTEQrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAteiAiJExEIjsgdGhlbgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbwotKyAgICBJRlM9IiRsdF9zYXZl X2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAt ZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVl eHQiOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKLSsgICAg ICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0aGVyIHVz ZSAtLXZlcnNpb24sCi0rICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRzIG9mIEdO VSBsZCBvbmx5IGFjY2VwdCAtdi4KLSsgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2FzIHRoZSBH TlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KLSsgICAgICBjYXNlIGAiJGx0X2N2X3BhdGhf TEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsgICAgICAqR05VKiB8ICond2l0aCBCRkQnKikK LSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhawotKwk7OwotKyAgICAgICopCi0r CXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCi0rCTs7Ci0rICAgICAgZXNhYwot KyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rZWxzZQotKyAgbHRfY3Zf cGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0 aC4KLStmaQotK2ZpCi0rCi0rTEQ9IiRsdF9jdl9wYXRoX0xEIgotK2lmIHRlc3QgLW4gIiRMRCI7 IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMRCIgPiY1Ci0r JGFzX2VjaG8gIiRMRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSt0ZXN0IC16 ICIkTEQiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRh YmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IG5v IGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiB0aGUg bGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhl IGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3By b2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVu dGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KLStjYXNlIGAkTEQgLXYgMj4mMSA8L2Rl di9udWxsYCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9 eWVzCi0rICA7OwotKyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD1ubwotKyAgOzsKLStlc2FjCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19nbnVf bGQiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsgfQotK3dpdGhfZ251 X2xkPSRsdF9jdl9wcm9nX2dudV9sZAotKwotKwotKwotKwotKwotKwotKwotKwotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21wYXRpYmxl IG5hbWUgbGlzdGVyIChubSkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBCU0QtIG9y IE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 bHRfY3ZfcGF0aF9OTStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTk0iOyB0aGVuCi0rICAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KLSsgIGx0X2N2X3BhdGhfTk09IiROTSIKLStlbHNlCi0rICBs dF9ubV90b19jaGVjaz0iJHthY190b29sX3ByZWZpeH1ubSIKLSsgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCIgJiYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KLSsgICAgbHRfbm1f dG9fY2hlY2s9IiRsdF9ubV90b19jaGVjayBubSIKLSsgIGZpCi0rICBmb3IgbHRfdG1wX25tIGlu ICRsdF9ubV90b19jaGVjazsgZG8KLSsgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhf U0VQQVJBVE9SCi0rICAgIGZvciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNy L2Njcy9iaW4gL3Vzci91Y2IgL2JpbjsgZG8KLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsg ICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICAgIHRtcF9ubT0iJGFjX2Rp ci8kbHRfdG1wX25tIgotKyAgICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0 bXBfbm0kYWNfZXhlZXh0IiA7IHRoZW4KLSsJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2Vw dHMgYSBCU0QtY29tcGF0IGZsYWcuCi0rCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBm YWxzZSBwb3NpdGl2ZXMgb24gSFAtVVgsIHdoaWNoIHNheXM6Ci0rCSMgICBubTogdW5rbm93biBv cHRpb24gIkIiIGlnbm9yZWQKLSsJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVs bCBpcyBhbiBpbnZhbGlkIG9iamVjdCBmaWxlCi0rCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251 bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgotKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9y IG9iamVjdCB0eXBlJyopCi0rCSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKLSsJICBicmVh awotKwkgIDs7Ci0rCSopCi0rCSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwg c2VkICcxcSdgIGluCi0rCSAgKi9kZXYvbnVsbCopCi0rCSAgICBsdF9jdl9wYXRoX05NPSIkdG1w X25tIC1wIgotKwkgICAgYnJlYWsKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGx0X2N2X3BhdGhf Tk09JHtsdF9jdl9wYXRoX05NPSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0 Ci0rCSAgICBjb250aW51ZSAjIHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1 cHBvcnRzIEJTRCBmbGFncwotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAg ICAgIGZpCi0rICAgIGRvbmUKLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICBkb25lCi0rICA6 ICR7bHRfY3ZfcGF0aF9OTT1ub30KLStmaQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X3BhdGhfTk0iID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcGF0aF9O TSIgPiY2OyB9Ci0raWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9ICJubyI7IHRoZW4KLSsgIE5N PSIkbHRfY3ZfcGF0aF9OTSIKLStlbHNlCi0rICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0 aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KLSsgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgIGZvciBhY19wcm9nIGluICJkdW1wYmluIC1zeW1ib2xzIiAi bGluayAtZHVtcCAtc3ltYm9scyIKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19EVU1QQklOK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiREVU1QQklOIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19EVU1QQklOPSIkRFVNUEJJTiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19EVU1QQklOPSIkYWNfdG9vbF9wcmVmaXgk YWNfcHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9u ZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rRFVNUEJJTj0kYWNfY3ZfcHJvZ19E VU1QQklOCi0raWYgdGVzdCAtbiAiJERVTVBCSU4iOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkRFVNUEJJTiIgPiY1Ci0rJGFzX2VjaG8gIiREVU1QQklOIiA+ JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkRFVN UEJJTiIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiREVU1QQklOIjsgdGhl bgotKyAgYWNfY3RfRFVNUEJJTj0kRFVNUEJJTgotKyAgZm9yIGFjX3Byb2cgaW4gImR1bXBiaW4g LXN5bWJvbHMiICJsaW5rIC1kdW1wIC1zeW1ib2xzIgotK2RvCi0rICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNf Y3RfRFVNUEJJTitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJTiI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfYWNfY3RfRFVNUEJJTj0iJGFjX2N0X0RVTVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTj0iJGFjX3Byb2ci Ci0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0RVTVBCSU49JGFjX2N2X3Byb2dfYWNf Y3RfRFVNUEJJTgotK2lmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0RVTVBCSU4iID4mNQotKyRhc19l Y2hvICIkYWNfY3RfRFVNUEJJTiIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsK LSsKLSsgIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIiAmJiBicmVhawotK2RvbmUKLSsKLSsgIGlm IHRlc3QgIngkYWNfY3RfRFVNUEJJTiIgPSB4OyB0aGVuCi0rICAgIERVTVBCSU49IjoiCi0rICBl bHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6 KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29s cyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERVTVBCSU49JGFj X2N0X0RVTVBCSU4KLSsgIGZpCi0rZmkKLSsKLSsKLSsgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAi OiI7IHRoZW4KLSsgICAgTk09IiREVU1QQklOIgotKyAgZmkKLStmaQotK3Rlc3QgLXogIiROTSIg JiYgTk09bm0KLSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgkTk0pIGludGVyZmFjZS4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7bHRfY3Zfbm1faW50ZXJmYWNlK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X25tX2ludGVyZmFjZT0iQlNE IG5tIgotKyAgZWNobyAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBjb25mdGVzdC4kYWNfZXh0 Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTU1NDogJGFjX2NvbXBpbGVcIiIgPiY1KQotKyAg KGV2YWwgIiRhY19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTU1NzogJE5NIFxcXCJjb25mdGVzdC4kYWNf b2JqZXh0XFxcIlwiIiA+JjUpCi0rICAoZXZhbCAiJE5NIFwiY29uZnRlc3QuJGFjX29iamV4dFwi IiAyPmNvbmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dCkKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1 Ci0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTU2MDogb3V0cHV0XCIiID4mNSkKLSsgIGNhdCBj b25mdGVzdC5vdXQgPiY1Ci0rICBpZiAkR1JFUCAnRXh0ZXJuYWwuKnNvbWVfdmFyaWFibGUnIGNv bmZ0ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9jdl9ubV9pbnRlcmZhY2U9Ik1T IGR1bXBiaW4iCi0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QqCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3Zfbm1faW50ZXJmYWNlIiA+JjUKLSskYXNfZWNo byAiJGx0X2N2X25tX2ludGVyZmFjZSIgPiY2OyB9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4gIiA+JjY7IH0KLStMTl9TPSRhc19sbl9zCi0r aWYgdGVzdCAiJExOX1MiID0gImxuIC1zIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubywgdXNpbmcgJExOX1MiID4m NQotKyRhc19lY2hvICJubywgdXNpbmcgJExOX1MiID4mNjsgfQotK2ZpCi0rCi0rIyBmaW5kIHRo ZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxp bmUgYXJndW1lbnRzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB0aGUgbWF4aW11bSBsZW5n dGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRf Y3Zfc3lzX21heF9jbWRfbGVuK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgICAgaT0wCi0rICB0ZXN0c3RyaW5nPSJBQkNEIgotKwotKyAg Y2FzZSAkYnVpbGRfb3MgaW4KLSsgIG1zZG9zZGpncHAqKQotKyAgICAjIE9uIERKR1BQLCB0aGlz IHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVtcyBpbiBsaWJjCi0r ICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEg YnVmZmVyIG92ZXJydW4KLSsgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24pLiAgRXZlbiBpZiBp dCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKLSsgICAgIyBjaGVjayB3b3VsZCBiZSBs YXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4 ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKLSsgICAgOzsKLSsKLSsgIGdudSopCi0rICAgICMg VW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBp cwotKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50 cy4KLSsgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2 ZXIKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOwotKyAgICA7OwotKwotKyAgY3lnd2lu KiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgIyBPbiBXaW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dz IHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKLSsgICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMg dGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KLSsgICAgIyBXb3JzZSwgc2luY2Ug OXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKLSsgICAgIyB5b3UgZW5k IHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0aCBwYXRpZW5jZQot KyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBtYXggbGluZSBsZW5n dGggb2YgMjU2aykuCi0rICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50OiB1c2UgdGhlIG1p bmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQotKyAgICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVk IHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIGFtaWdhb3MqKQotKyAgICAjIE9uIEFtaWdhT1Mgd2l0 aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCi0rICAgICMgU28gd2Ug anVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCi0rICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgbmV0YnNkKiB8IGZyZWVi c2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKLSsgICAgIyBUaGlzIGhhcyBi ZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIuCi0rICAg IGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRf bGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsaWYgdGVzdCAteCAvdXNy L3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvdXNyL3Ni aW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbHNlCi0rICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCi0rICAgIGZpCi0r ICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1g ZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCi0rICAgIDs7Ci0rCi0rICBp bnRlcml4KikKLSsgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0 IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj0xOTY2MDgKLSsgICAgOzsKLSsKLSsgIG9zZiopCi0rICAgICMgRHIuIEhhbnMgRWtrZWhhcmQg UGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZpZ3VyZQot KyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEg b24gVHJ1NjQuIEl0IGlzIG5vdAotKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBhbmljcyBz byBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgotKyAgICAjIEZpcnN0IHNldCBhIHJlYXNvbmFi bGUgZGVmYXVsdC4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0Ci0rICAgICMKLSsg ICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KLSsgICAgICBjYXNlIGAvc2Jpbi9z eXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgotKyAgICAgICAgKjEq KSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICAg IDs7Ci0rICBzY28zLjJ2NSopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0MDAKLSsg ICAgOzsKLSsgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKLSsgICAga2FyZ21heD1g Z3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAotKyAgICBpZiB0 ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGVj aG8gJGthcmdtYXggfCBzZWQgJ3MvLipbCSBdLy8nYAotKyAgICBlbHNlCi0rICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTMyNzY4Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19NQVgpIDI+IC9kZXYvbnVsbGAKLSsgICAg aWYgdGVzdCAtbiAiJGx0X2N2X3N5c19tYXhfY21kX2xlbiI7IHRoZW4KLSsgICAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAotKyAgICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNg Ci0rICAgIGVsc2UKLSsgICAgICAjIE1ha2UgdGVzdHN0cmluZyBhIGxpdHRsZSBiaWdnZXIgYmVm b3JlIHdlIGRvIGFueXRoaW5nIHdpdGggaXQuCi0rICAgICAgIyBhIDFLIHN0cmluZyBzaG91bGQg YmUgYSByZWFzb25hYmxlIHN0YXJ0LgotKyAgICAgIGZvciBpIGluIDEgMiAzIDQgNSA2IDcgOCA7 IGRvCi0rICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKLSsgICAgICBk b25lCi0rICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0KLSsgICAg ICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1 cCBjb21wdXRpbmcgYQotKyAgICAgICMgbWF4aW11bSBsZW5ndGggdGhhdCBpcyBvbmx5IGhhbGYg b2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0Ci0rICAgICAgIyB3ZSBjYW4ndCB0ZWxs LgotKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMICQwIC0tZmFsbGJhY2stZWNobyAiWCR0 ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCi0rCSAgICAgICAgID0gIlhYJHRl c3RzdHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVsbCAyPiYxICYmCi0rCSAgICAgIHRlc3Qg JGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAotKyAgICAgIGRvCi0rICAgICAgICBp PWBleHByICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmlu ZwotKyAgICAgIGRvbmUKLSsgICAgICAjIE9ubHkgY2hlY2sgdGhlIHN0cmluZyBsZW5ndGggb3V0 c2lkZSB0aGUgbG9vcC4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgIlgkdGVz dHN0cmluZyIgOiAiLioiIDI+JjFgCi0rICAgICAgdGVzdHN0cmluZz0KLSsgICAgICAjIEFkZCBh IHNpZ25pZmljYW50IHNhZmV0eSBmYWN0b3IgYmVjYXVzZSBDKysgY29tcGlsZXJzIGNhbiB0YWNr IG9uCi0rICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgYmVm b3JlIHBhc3NpbmcgdGhlbSB0byB0aGUKLSsgICAgICAjIGxpbmtlci4gIEl0IGFwcGVhcnMgYXMg dGhvdWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAotKyAgICBmaQotKyAgICA7Owot KyAgZXNhYwotKwotK2ZpCi0rCi0raWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3N5c19t YXhfY21kX2xlbiIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUiID4m NQotKyRhc19lY2hvICJub25lIiA+JjY7IH0KLStmaQotK21heF9jbWRfbGVuPSRsdF9jdl9zeXNf bWF4X2NtZF9sZW4KLSsKLSsKLSsKLSsKLSsKLSsKLSs6ICR7Q1A9ImNwIC1mIn0KLSs6ICR7TVY9 Im12IC1mIn0KLSs6ICR7Uk09InJtIC1mIn0KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3Ry dWN0cyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJz dGFuZHMgc29tZSBYU0kgY29uc3RydWN0cy4uLiAiID4mNjsgfQotKyMgVHJ5IHNvbWUgWFNJIGZl YXR1cmVzCi0reHNpX3NoZWxsPW5vCi0rKCBfbHRfZHVtbXk9ImEvYi9jIgotKyAgdGVzdCAiJHtf bHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sIiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0s IFwKLSsgICAgICA9IGMsYS9iLCwgXAotKyAgICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAt ZXEgMiBcCi0rICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwg Mj4mMSBcCi0rICAmJiB4c2lfc2hlbGw9eWVzCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJHhzaV9zaGVsbCIgPiY1Ci0rJGFzX2VjaG8gIiR4c2lfc2hlbGwiID4mNjsgfQot KwotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBz aGVsbCB1bmRlcnN0YW5kcyBcIis9XCIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIFwiKz1cIi4uLiAiID4mNjsgfQotK2x0X3NoZWxsX2Fw cGVuZD1ubwotKyggZm9vPWJhcjsgc2V0IGZvbyBiYXo7IGV2YWwgIiQxKz1cJDIiICYmIHRlc3Qg IiRmb28iID0gYmFyYmF6ICkgXAotKyAgICA+L2Rldi9udWxsIDI+JjEgXAotKyAgJiYgbHRfc2hl bGxfYXBwZW5kPXllcwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9z aGVsbF9hcHBlbmQiID4mNQotKyRhc19lY2hvICIkbHRfc2hlbGxfYXBwZW5kIiA+JjY7IH0KLSsK LSsKLStpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsgIGx0X3Vuc2V0PXVuc2V0Ci0rZWxzZQotKyAgbHRfdW5zZXQ9ZmFsc2UKLStmaQot KwotKwotKwotKwotKwotKyMgdGVzdCBFQkNESUMgb3IgQVNDSUkKLStjYXNlIGBlY2hvIFh8dHIg WCAnXDEwMSdgIGluCi0rIEEpICMgQVNDSUkgYmFzZWQgc3lzdGVtCi0rICAgICMgXG4gaXMgbm90 IGludGVycHJldGVkIGNvcnJlY3RseSBieSBTb2xhcmlzIDggL3Vzci91Y2IvdHIKLSsgIGx0X1NQ Mk5MPSd0ciBcMDQwIFwwMTInCi0rICBsdF9OTDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCi0r ICA7OwotKyAqKSAjIEVCQ0RJQyBiYXNlZCBzeXN0ZW0KLSsgIGx0X1NQMk5MPSd0ciBcMTAwIFxu JwotKyAgbHRfTkwyU1A9J3RyIFxyXG4gXDEwMFwxMDAnCi0rICA7OwotK2VzYWMKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcyIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcy4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7bHRfY3ZfbGRfcmVsb2FkX2ZsYWcrc2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfbGRfcmVsb2FkX2Zs YWc9Jy1yJwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X2xkX3JlbG9hZF9mbGFnIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2xkX3JlbG9hZF9mbGFnIiA+ JjY7IH0KLStyZWxvYWRfZmxhZz0kbHRfY3ZfbGRfcmVsb2FkX2ZsYWcKLStjYXNlICRyZWxvYWRf ZmxhZyBpbgotKyIiIHwgIiAiKikgOzsKLSsqKSByZWxvYWRfZmxhZz0iICRyZWxvYWRfZmxhZyIg OzsKLStlc2FjCi0rcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9h ZF9vYmpzJwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCi0rICAgICAgcmVsb2FkX2NtZHM9JyRMVENDICRMVENGTEFHUyAtbm9z dGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKyAgICBlbHNlCi0rICAgICAg cmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwotKyAg ICBmaQotKyAgICA7OwotK2VzYWMKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9b2JqZHVtcDsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19PQkpEVU1QK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRPQkpEVU1QIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19PQkpEVU1QPSIkT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19PQkpEVU1QPSIke2FjX3Rvb2xfcHJlZml4 fW9iamR1bXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2Rv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09CSkRVTVA9JGFjX2N2X3Byb2df T0JKRFVNUAotK2lmIHRlc3QgLW4gIiRPQkpEVU1QIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJE9CSkRVTVAiID4mNQotKyRhc19lY2hvICIkT0JKRFVNUCIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXog IiRhY19jdl9wcm9nX09CSkRVTVAiOyB0aGVuCi0rICBhY19jdF9PQkpEVU1QPSRPQkpEVU1QCi0r ICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm9iamR1bXAiLCBzbyBpdCBjYW4gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBvYmpkdW1wOyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAi JHthY19jdl9wcm9nX2FjX2N0X09CSkRVTVArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X09CSkRVTVAi OyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X09CSkRVTVA9IiRhY19jdF9PQkpEVU1QIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRh c19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X09C SkRVTVA9Im9iamR1bXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X09CSkRVTVA9 JGFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUAotK2lmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X09CSkRV TVAiID4mNQotKyRhc19lY2hvICIkYWNfY3RfT0JKRFVNUCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT0JKRFVNUCIgPSB4OyB0aGVuCi0r ICAgIE9CSkRVTVA9ImZhbHNlIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6 JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7 Ci0rZXNhYwotKyAgICBPQkpEVU1QPSRhY19jdF9PQkpEVU1QCi0rICBmaQotK2Vsc2UKLSsgIE9C SkRVTVA9IiRhY19jdl9wcm9nX09CSkRVTVAiCi0rZmkKLSsKLSt0ZXN0IC16ICIkT0JKRFVNUCIg JiYgT0JKRFVNUD1vYmpkdW1wCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxp YnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBl bmRlbnQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKLStsdF9jdl9m aWxlX21hZ2ljX3Rlc3RfZmlsZT0KLStsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93 bicKLSsjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3Jt cyB0aGF0IHN1cHBvcnQKLSsjIGludGVybGlicmFyeSBkZXBlbmRlbmNpZXMuCi0rIyAnbm9uZScg LS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCi0rIyBgdW5rbm93bicgLS0gc2FtZSBhcyBu b25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0IGtub3cuCi0rIyAncGFzc19h bGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8gY2hlY2tzLgotKyMgJ3Rlc3Rf Y29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3JhbS4KLSsjICdmaWxlX21hZ2lj IFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRo Ci0rIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBl eHRlbmRlZCByZWdleC4KLSsjIElmIHlvdSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlv dXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKLSsjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxs ICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMgb25lLgotKwotK2Nhc2UgJGhv c3Rfb3MgaW4KLSthaXhbNC05XSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAotKyAgOzsKLSsKLStiZW9zKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCi0rICA7OwotKwotK2JzZGlbNDVdKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0 fGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvdXNyL2Jpbi9maWxlIC1M JwotKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3NobGliL2xpYmMuc28KLSsgIDs7Ci0r Ci0rY3lnd2luKikKLSsgICMgZnVuY193aW4zMl9saWJpZCBpcyBhIHNoZWxsIGZ1bmN0aW9uIGRl ZmluZWQgaW4gbHRtYWluLnNoCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyBeeDg2IGFyY2hpdmUgaW1wb3J0fF54ODYgRExMJwotKyAgbHRfY3ZfZmlsZV9tYWdpY19j bWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICA7OwotKwotK21pbmd3KiB8IHB3MzIqKQotKyAgIyBC YXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBi eQotKyAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIg dGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCi0rICAjIHVubGVzcyB3ZSBmaW5kICdmaWxlJywgZm9y IGV4YW1wbGUgYmVjYXVzZSB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nLgotKyAgaWYgKCBmaWxlIC8g KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmls ZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hp dGVjdHVyZTogaTM4Nik/JwotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9CSkRVTVAgLWYn Ci0rICBmaQotKyAgOzsKLSsKLStjZWdjYykKLSsgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBiYXNl ZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZS1hcm0tLipsaXR0bGUoLiphcmNoaXRlY3R1cmU6 IGFybSk/JwotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJwotKyAgOzsKLSsK LStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKLSsgIDs7Ci0rCi0rZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgIGkqODYgKQotKyAgICAgICMgTm90IHN1cmUgd2hldGhlciB0 aGUgcHJlc2VuY2Ugb2YgT3BlbkJTRCBoZXJlIHdhcyBhIG1pc3Rha2UuCi0rICAgICAgIyBMZXQn cyBhY2NlcHQgYm90aCBvZiB0aGVtIHVudGlsIHRoaXMgaXMgY2xlYXJlZCB1cC4KLSsgICAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoRnJlZUJTRHxPcGVuQlNEfERy YWdvbkZseSkvaVszLTldODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFnZWQgc2hhcmVkIGxpYnJhcnkn Ci0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAgICAgIGx0X2N2 X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28uKmAKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCi0rICBmaQotKyAgOzsKLSsKLStnbnUqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0raHB1eDEwLjIwKiB8IGhwdXgxMSopCi0rICBsdF9j dl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAg aWE2NCopCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAt OV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2JqZWN0IGZpbGUgLSBJQTY0Jwot KyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9ocHV4MzIvbGliYy5zbwot KyAgICA7OwotKyAgaHBwYSo2NCopCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdm aWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRi1bMC05XVswLTldKSBzaGFyZWQgb2JqZWN0 IGZpbGUgLSBQQS1SSVNDIFswLTldLlswLTldJwotKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3Rf ZmlsZT0vdXNyL2xpYi9wYTIwXzY0L2xpYmMuc2wKLSsgICAgOzsKLSsgICopCi0rICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfFBBLVJJ U0NbMC05XS5bMC05XSkgc2hhcmVkIGxpYnJhcnknCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVz dF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0raW50 ZXJpeFszLTldKikKLSsgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0 J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvfFwuYSkkJwotKyAgOzsKLSsKLStpcml4 NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkTEQgaW4KLSsgICotMzJ8KiItMzIg IikgbGlibWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7Owot KyAgKi02NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OwotKyAgKikgbGlibWFnaWM9bmV2ZXIt bWF0Y2g7OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK LSsgIDs7Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1n bnUpCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStu ZXRic2QqKQotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4g L2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9w YXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xfcGljXC5hKSQnCi0rICBlbHNl Ci0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9d KyhcLnNvfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK25ld29zNiopCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtNTF1T QiAoZXhlY3V0YWJsZXxkeW5hbWljIGxpYiknCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNy L2Jpbi9maWxlCi0rICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJubHMu c28KLSsgIDs7Ci0rCi0rKm50byogfCAqcW54KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK29wZW5ic2QqKQotKyAgaWYgdGVzdCAteiAiYGVjaG8g X19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRo b3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBsdF9jdl9kZXBsaWJz X2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0rXC5bMC05 XSt8XC5zb3xfcGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xfcGljXC5h KSQnCi0rICBmaQotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStyZG9zKikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc3lzdjUqIHwg c2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3Miop Ci0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2 NCB8IHN5c3Y0LjMqKQotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgIG1vdG9yb2xhKQotKyAg ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSot Yml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYikgTVswLTldWzAtOV0qIFZlcnNp b24gWzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGli L2xpYmMuc28qYAotKyAgICA7OwotKyAgbmNyKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgc2VxdWVudCkKLSsgICAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9Jy9iaW4vZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVf bWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTE1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBs aWIgKScKLSsgICAgOzsKLSsgIHNuaSkKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9Jy9iaW4v ZmlsZScKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9ImZpbGVfbWFnaWMgRUxGIFsw LTldWzAtOV0qLWJpdCBbTE1dU0IgZHluYW1pYyBsaWIiCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNf dGVzdF9maWxlPS9saWIvbGliYy5zbwotKyAgICA7OwotKyAgc2llbWVucykKLSsgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgICAgOzsKLSsgIHBjKQotKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAgZXNhYwotKyAgOzsK LSsKLSt0cGYqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7 Ci0rZXNhYwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kIiA+JjY7IH0KLStmaWxlX21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9tYWdpY19j bWQKLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKLSt0 ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVu a25vd24KLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7 YWNfdG9vbF9wcmVmaXh9YXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdz LgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWFyOyBhY193b3JkPSQyCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9w cm9nX0FSK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfQVI9IiRBUiIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19BUj0i JHthY190b29sX3ByZWZpeH1hciIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkK LStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rQVI9JGFjX2N2 X3Byb2dfQVIKLStpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkQVIiID4mNQotKyRhc19lY2hvICIkQVIiID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19B UiI7IHRoZW4KLSsgIGFjX2N0X0FSPSRBUgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICJhciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 IGFyOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0FSK3NldH0iID0gc2V0OyB0aGVu Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRh Y19jdF9BUiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQVI9IiRhY19jdF9BUiIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAt ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9BUj0i YXIiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotK2RvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0FSPSRhY19jdl9wcm9nX2FjX2N0 X0FSCi0raWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0FSIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0FSIiA+ JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9B UiIgPSB4OyB0aGVuCi0rICAgIEFSPSJmYWxzZSIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3Nf Y29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2Fy bmVkPXllcyA7OwotK2VzYWMKLSsgICAgQVI9JGFjX2N0X0FSCi0rICBmaQotK2Vsc2UKLSsgIEFS PSIkYWNfY3ZfcHJvZ19BUiIKLStmaQotKwotK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKLSt0ZXN0 IC16ICIkQVJfRkxBR1MiICYmIEFSX0ZMQUdTPWNydQotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFj dCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1zdHJpcCIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9 c3RyaXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJFNU UklQIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19TVFJJUD0iJFNUUklQIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX1NUUklQPSIke2FjX3Rvb2xfcHJl Zml4fXN0cmlwIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStTVFJJUD0kYWNfY3ZfcHJvZ19T VFJJUAotK2lmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRTVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRTVFJJUCIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9w cm9nX1NUUklQIjsgdGhlbgotKyAgYWNfY3RfU1RSSVA9JFNUUklQCi0rICAjIEV4dHJhY3QgdGhl IGZpcnN0IHdvcmQgb2YgInN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg YXJncy4KLStzZXQgZHVtbXkgc3RyaXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3Rf U1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19h Y19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSJzdHJpcCIKLSsgICAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK LSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsK LStmaQotK2ZpCi0rYWNfY3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNfY3RfU1RSSVAKLStpZiB0ZXN0 IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQotKyRhc19lY2hvICIkYWNfY3RfU1RSSVAiID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X1NUUklQ IiA9IHg7IHRoZW4KLSsgICAgU1RSSVA9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2Nv bXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5l ZD15ZXMgOzsKLStlc2FjCi0rICAgIFNUUklQPSRhY19jdF9TVFJJUAotKyAgZmkKLStlbHNlCi0r ICBTVFJJUD0iJGFjX2N2X3Byb2dfU1RSSVAiCi0rZmkKLSsKLSt0ZXN0IC16ICIkU1RSSVAiICYm IFNUUklQPToKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgi OyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9 cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVt bXkgJHthY190b29sX3ByZWZpeH1yYW5saWI7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfUkFO TElCK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBhY19jdl9wcm9nX1JBTkxJQj0i JFJBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K LSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rl c3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3Zf cHJvZ19SQU5MSUI9IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIgotKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAg ICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2Zp Ci0rZmkKLStSQU5MSUI9JGFjX2N2X3Byb2dfUkFOTElCCi0raWYgdGVzdCAtbiAiJFJBTkxJQiI7 IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRSQU5MSUIiID4m NQotKyRhc19lY2hvICIkUkFOTElCIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQot KwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsgdGhlbgotKyAgYWNf Y3RfUkFOTElCPSRSQU5MSUIKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicmFubGli Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgcmFu bGliOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1JBTkxJQitzZXR9IiA9IHNldDsg dGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1u ICIkYWNfY3RfUkFOTElCIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9IiRhY19j dF9SQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAot K2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIK LSsgIGZpCi0rZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2Fj X2N0X1JBTkxJQj0kYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIKLStpZiB0ZXN0IC1uICIkYWNfY3Rf UkFOTElCIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N0X1JBTkxJQiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9SQU5MSUIiID4mNjsgfQotK2Vsc2UK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X1JBTkxJQiIgPSB4OyB0 aGVuCi0rICAgIFJBTkxJQj0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5n OiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxl dCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7 OwotK2VzYWMKLSsgICAgUkFOTElCPSRhY19jdF9SQU5MSUIKLSsgIGZpCi0rZWxzZQotKyAgUkFO TElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi0rZmkKLSsKLSt0ZXN0IC16ICIkUkFOTElCIiAmJiBS QU5MSUI9OgotKwotKwotKwotKwotKwotKwotKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0 ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJf RkxBR1MgJG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQg JG9sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQotKwotK2lmIHRlc3QgLW4gIiRSQU5M SUIiOyB0aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBvcGVuYnNkKikKLSsgICAgb2xkX3Bv c3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxp YiIKLSsgICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3Rp bnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rICAgIDs7Ci0rICBlc2FjCi0rICBvbGRf YXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLStmaQot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyMgSWYgbm8gQyBj b21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0r IyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xU Q0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9n cmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rCi0rIyBDaGVjayBm b3IgY29tbWFuZCB0byBncmFiIHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1i b2wgZnJvbSBubS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgY29tbWFu ZCB0byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9iamVjdCIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgY29tbWFuZCB0byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVy IG9iamVjdC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rCi0rIyBUaGVzZSBhcmUgc2FuZSBkZWZhdWx0cyB0aGF0IHdvcmsgb24gYXQgbGVhc3Qg YSBmZXcgb2xkIHN5c3RlbXMuCi0rIyBbVGhleSBjb21lIGZyb20gVWx0cml4LiAgV2hhdCBjb3Vs ZCBiZSBvbGRlciB0aGFuIFVsdHJpeD8hISA7KV0KLSsKLSsjIENoYXJhY3RlciBjbGFzcyBkZXNj cmliaW5nIE5NIGdsb2JhbCBzeW1ib2wgY29kZXMuCi0rc3ltY29kZT0nW0JDREVHUlNUXScKLSsK LSsjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5 IGZyb20gQy4KLStzeW1wYXQ9J1woW19BLVphLXpdW19BLVphLXowLTldKlwpJwotKwotKyMgRGVm aW5lIHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeCop Ci0rICBzeW1jb2RlPSdbQkNEVF0nCi0rICA7OwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8 IGNlZ2NjKikKLSsgIHN5bWNvZGU9J1tBQkNER0lTVFddJwotKyAgOzsKLStocHV4KikKLSsgIGlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgIHN5bWNvZGU9J1tBQkNERUdSU1Rd JwotKyAgZmkKLSsgIDs7Ci0raXJpeCogfCBub25zdG9wdXgqKQotKyAgc3ltY29kZT0nW0JDREVH UlNUXScKLSsgIDs7Ci0rb3NmKikKLSsgIHN5bWNvZGU9J1tCQ0RFR1FSU1RdJwotKyAgOzsKLStz b2xhcmlzKikKLSsgIHN5bWNvZGU9J1tCRFJUXScKLSsgIDs7Ci0rc2NvMy4ydjUqKQotKyAgc3lt Y29kZT0nW0RUXScKLSsgIDs7Ci0rc3lzdjQuMnV3MiopCi0rICBzeW1jb2RlPSdbRFRdJwotKyAg OzsKLStzeXN2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqKQotKyAgc3ltY29k ZT0nW0FCRFRdJwotKyAgOzsKLStzeXN2NCkKLSsgIHN5bWNvZGU9J1tERk5TVFVdJwotKyAgOzsK LStlc2FjCi0rCi0rIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4gdXNlIGl0cyBzdGFuZGFy ZCBzeW1ib2wgY29kZXMuCi0rY2FzZSBgJE5NIC1WIDI+JjFgIGluCi0rKkdOVSogfCAqJ3dpdGgg QkZEJyopCi0rICBzeW1jb2RlPSdbQUJDREdJUlNUV10nIDs7Ci0rZXNhYwotKwotKyMgVHJhbnNm b3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24u Ci0rIyBTb21lIHN5c3RlbXMgKGVzcC4gb24gaWE2NCkgbGluayBkYXRhIGFuZCBjb2RlIHN5bWJv bHMgZGlmZmVyZW50bHksCi0rIyBzbyB1c2UgdGhpcyBnZW5lcmFsIGFwcHJvYWNoLgotK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9l eHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hh ciBcMTsvcCciCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8g c3ltYm9sIG5hbWUgYW5kIHN5bWJvbCBhZGRyZXNzCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf dG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFteIF0qXCkgJC8gIHtcXFwiXDFc XFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwp JC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJv bF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwp ICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBd KlwpIFwobGliW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRz eW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9 LC9wJyIKLSsKLSsjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KLStvcHRfY3I9Ci0r Y2FzZSAkYnVpbGRfb3MgaW4KLSttaW5ndyopCi0rICBvcHRfY3I9YCRFQ0hPICd4XHswLDFcfScg fCB0ciB4ICdcMDE1J2AgIyBvcHRpb24gY3IgaW4gcmVnZXhwCi0rICA7OwotK2VzYWMKLSsKLSsj IFRyeSB3aXRob3V0IGEgcHJlZml4IHVuZGVyc2NvcmUsIHRoZW4gd2l0aCBpdC4KLStmb3IgYWNf c3ltcHJmeCBpbiAiIiAiXyI7IGRvCi0rCi0rICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQs IGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgotKyAgc3lteGZy bT0iXFwxICRhY19zeW1wcmZ4XFwyIFxcMiIKLSsKLSsgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBp ZGVudGlmaWVycy4KLSsgIGlmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBi aW4iOyB0aGVuCi0rICAgICMgRmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQgc2F5IFQgZm9yIGFueSBu b24tc3RhdGljIGZ1bmN0aW9uCi0rICAgICMgYW5kIEQgZm9yIGFueSBnbG9iYWwgdmFyaWFibGUu Ci0rICAgICMgQWxzbyBmaW5kIEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1ib2xzIGZyb20gTVNWQysr LAotKyAgICAjIHdoaWNoIHN0YXJ0IHdpdGggQCBvciA/LgotKyAgICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlPSIkQVdLICciXAotKyIgICAgIHtsYXN0X3NlY3Rpb249c2VjdGlvbjsgc2Vj dGlvbj1cJCAzfTsiXAotKyIgICAgIC9TZWN0aW9uIGxlbmd0aCAuKiNyZWxvY3MuKihwaWNrIGFu eSkve2hpZGVbbGFzdF9zZWN0aW9uXT0xfTsiXAotKyIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwv e25leHR9OyJcCi0rIiAgICAgLyAwKyBVTkRFRiAve25leHR9OyAvIFVOREVGIFwoW158XVwpKigp L3tuZXh0fTsiXAotKyIgICAgIHtpZihoaWRlW3NlY3Rpb25dKSBuZXh0fTsiXAotKyIgICAgIHtm PTB9OyBcJCAwfi9cKFwpLipcfC97Zj0xfTsge3ByaW50ZiBmID8gXCJUIFwiIDogXCJEIFwifTsi XAotKyIgICAgIHtzcGxpdChcJCAwLCBhLCAvXHx8XHIvKTsgc3BsaXQoYVsyXSwgcyl9OyJcCi0r IiAgICAgc1sxXX4vXltAP10ve3ByaW50IHNbMV0sIHNbMV07IG5leHR9OyJcCi0rIiAgICAgc1sx XX5wcmZ4IHtzcGxpdChzWzFdLHQsXCJAXCIpOyBwcmludCB0WzFdLCBzdWJzdHIodFsxXSxsZW5n dGgocHJmeCkpfSJcCi0rIiAgICAgJyBwcmZ4PV4kYWNfc3ltcHJmeCIKLSsgIGVsc2UKLSsgICAg bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKlsJIF1cKCRzeW1j b2RlJHN5bWNvZGUqXClbCSBdWwkgXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZy bS9wJyIKLSsgIGZpCi0rCi0rICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNv cnJlY3RseS4KLSsgIHBpcGVfd29ya3M9bm8KLSsKLSsgIHJtIC1mIGNvbmZ0ZXN0KgotKyAgY2F0 ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRl cm4gIkMiIHsKLSsjZW5kaWYKLStjaGFyIG5tX3Rlc3RfdmFyOwotK3ZvaWQgbm1fdGVzdF9mdW5j KHZvaWQpOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpe30KLSsjaWZkZWYgX19jcGx1c3BsdXMK LSt9Ci0rI2VuZGlmCi0raW50IG1haW4oKXtubV90ZXN0X3Zhcj0nYSc7bm1fdGVzdF9mdW5jKCk7 cmV0dXJuKDApO30KLStfTFRfRU9GCi0rCi0rICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElO RU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0r ICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgICAjIE5vdyB0cnkg dG8gZ3JhYiB0aGUgc3ltYm9scy4KLSsgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAgaWYgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAk bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3RcIiIpID4mNQotKyAgKGV2YWwg JE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUg XD4gJG5saXN0KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0 ZXN0IC1zICIkbmxpc3QiOyB0aGVuCi0rICAgICAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlp bmcgdGhlIG91dHB1dC4KLSsgICAgICBpZiBzb3J0ICIkbmxpc3QiIHwgdW5pcSA+ICIkbmxpc3Qi VDsgdGhlbgotKwltdiAtZiAiJG5saXN0IlQgIiRubGlzdCIKLSsgICAgICBlbHNlCi0rCXJtIC1m ICIkbmxpc3QiVAotKyAgICAgIGZpCi0rCi0rICAgICAgIyBNYWtlIHN1cmUgdGhhdCB3ZSBzbmFn Z2VkIGFsbCB0aGUgc3ltYm9scyB3ZSBuZWVkLgotKyAgICAgIGlmICRHUkVQICcgbm1fdGVzdF92 YXIkJyAiJG5saXN0IiA+L2Rldi9udWxsOyB0aGVuCi0rCWlmICRHUkVQICcgbm1fdGVzdF9mdW5j JCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwkgIGNhdCA8PF9MVF9FT0YgPiBjb25mdGVz dC4kYWNfZXh0Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB7Ci0rI2VuZGlmCi0r Ci0rX0xUX0VPRgotKwkgICMgTm93IGdlbmVyYXRlIHRoZSBzeW1ib2wgZmlsZS4KLSsJICBldmFs ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiIHwgJEdSRVAg LXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0JwotKwotKwkgIGNhdCA8PF9MVF9FT0YgPj4gY29u ZnRlc3QuJGFjX2V4dAotKwotKy8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFu ZCBzeW1ib2xzLiAgKi8KLStjb25zdCBzdHJ1Y3QgewotKyAgY29uc3QgY2hhciAqbmFtZTsKLSsg IHZvaWQgICAgICAgKmFkZHJlc3M7Ci0rfQotK2x0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5 bWJvbHNbXSA9Ci0rewotKyAgeyAiQFBST0dSQU1AIiwgKHZvaWQgKikgMCB9LAotK19MVF9FT0YK LSsJICAkU0VEICJzL14kc3ltY29kZSRzeW1jb2RlKiBcKC4qXCkgXCguKlwpJC8gIHtcIlwyXCIs ICh2b2lkICopIFwmXDJ9LC8iIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0 LiRhY19leHQKLSsJICBjYXQgPDxcX0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rICB7MCwg KHZvaWQgKikgMH0KLSt9OwotKwotKy8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBG cmVlQlNEIGxpbmtlciAqLwotKyNpZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKLStzdGF0aWMgY29u c3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVwKCkgewotKyAgcmV0dXJuIGx0X19QUk9HUkFNX19M VFhfcHJlbG9hZGVkX3N5bWJvbHM7Ci0rfQotKyNlbmRpZgotKwotKyNpZmRlZiBfX2NwbHVzcGx1 cwotK30KLSsjZW5kaWYKLStfTFRfRU9GCi0rCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBm aWxlcy4KLSsJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKLSsJ ICBsdF9zYXZlX0xJQlM9IiRMSUJTIgotKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwkg IExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCi0rCSAgQ0ZMQUdTPSIkQ0ZMQUdTJGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIgotKwkgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM SU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFj X3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4 ZWV4dH07IHRoZW4KLSsJICAgIHBpcGVfd29ya3M9eWVzCi0rCSAgZmkKLSsJICBMSUJTPSIkbHRf c2F2ZV9MSUJTIgotKwkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdTIgotKwllbHNlCi0rCSAgZWNo byAiY2Fubm90IGZpbmQgbm1fdGVzdF9mdW5jIGluICRubGlzdCIgPiY1Ci0rCWZpCi0rICAgICAg ZWxzZQotKwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mNQotKyAg ICAgIGZpCi0rICAgIGVsc2UKLSsgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlIiA+JjUKLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgZWNobyAiJHByb2du YW1lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSsgICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgotKwotKyAgIyBEbyBub3Qg dXNlIHRoZSBnbG9iYWxfc3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgotKyAgaWYgdGVzdCAi JHBpcGVfd29ya3MiID0geWVzOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbHNlCi0rICAgIGx0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9Ci0rICBmaQotK2RvbmUKLSsKLStmaQotKwotK2lmIHRl c3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfcGlwZSRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4K LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGZhaWxlZCIgPiY1Ci0rJGFz X2VjaG8gImZhaWxlZCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogb2siID4mNQotKyRhc19lY2hvICJvayIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1sb2NrIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJs ZXZhbD0kZW5hYmxlX2xpYnRvb2xfbG9jazsKLStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2xpYnRv b2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xvY2s9eWVzCi0rCi0rIyBTb21lIGZs YWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29tcGlsZXIgb3IgbGlua2VyIGZvciBn b29kCi0rIyBsaWJ0b29sIHN1cHBvcnQuCi0rY2FzZSAkaG9zdCBpbgotK2lhNjQtKi1ocHV4KikK LSsgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2ludCBpOycg PiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19z dGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgotKyAgICBjYXNlIGAvdXNyL2Jpbi9m aWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCi0rICAgICAgKkVMRi0zMiopCi0rCUhQVVhfSUE2 NF9NT0RFPSIzMiIKLSsJOzsKLSsgICAgICAqRUxGLTY0KikKLSsJSFBVWF9JQTY0X01PREU9IjY0 IgotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsq LSotaXJpeDYqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNo byAnI2xpbmUgNjc2NiAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICBpZiB7IChl dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFs ICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsg dGhlbgotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rICAg ICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkqMzItYml0 KikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkg IExEPSIke0xELWxkfSAtbWVsZjMyYm1pcG4zMiIKLSsJICA7OwotKwkqNjQtYml0KikKLSsJICBM RD0iJHtMRC1sZH0gLW1lbGY2NGJtaXAiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBlbHNlCi0r ICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkqMzIt Yml0KikKLSsJICBMRD0iJHtMRC1sZH0gLTMyIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkgIExEPSIk e0xELWxkfSAtbjMyIgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtNjQi Ci0rCSAgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0 KgotKyAgOzsKLSsKLSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0q bGludXgqfHBvd2VycGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYqfHNw YXJjKi0qbGludXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAg ZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsgKGV2YWwgZWNobyAiJGFz X21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCi0rICAgIGNh c2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgICAqMzItYml0KikKLSsJY2Fz ZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKLSsJICAgIExEPSIke0xELWxk fSAtbSBlbGZfaTM4Nl9mYnNkIgotKwkgICAgOzsKLSsJICB4ODZfNjQtKmxpbnV4KikKLSsJICAg IExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsJICAgIDs7Ci0rCSAgcHBjNjQtKmxpbnV4Knxw b3dlcnBjNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGYzMnBwY2xpbnV4Igot KwkgICAgOzsKLSsJICBzMzkweC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl9z MzkwIgotKwkgICAgOzsKLSsJICBzcGFyYzY0LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0g LW0gZWxmMzJfc3BhcmMiCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgKjY0LWJpdCop Ci0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0rCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgotKwkgICAgOzsKLSsJICB4ODZfNjQtKmxpbnV4 KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgotKwkgICAgOzsKLSsJICBwcGMq LSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NHBw YyIKLSsJICAgIDs7Ci0rCSAgczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKikKLSsJICAgIExEPSIk e0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYyotKmxpbnV4KikKLSsJ ICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsK LSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0rKi0qLXNj bzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQg ZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsgIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdTIgotKyAgQ0ZM QUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGYiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGYuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2x0X2N2X2NjX25lZWRzX2JlbGYrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfZXh0PWMKLSthY19jcHA9JyRD UFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsKLSsgICAgIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsK LSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAi KCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19z dGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0r ICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl eHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0 X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGx0X2N2X2NjX25lZWRz X2JlbGY9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlsdF9jdl9j Y19uZWVkc19iZWxmPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAg IGFjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251 Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfY2Nf bmVlZHNfYmVsZiIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9jY19uZWVkc19iZWxmIiA+JjY7IH0K LSsgIGlmIHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCi0rICAg ICMgdGhpcyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVk IGZvciAtYmVsZgotKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKLSsgIGZpCi0rICA7OwotK3Nw YXJjKi0qc29sYXJpcyopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0r ICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgeyAoZXZhbCBlY2hvICIk YXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfY29tcGls ZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSsgICAg Y2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgotKyAgICAqNjQtYml0KikKLSsgICAg ICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgotKyAgICAgIHllcyopIExEPSIke0xELWxkfSAt bSBlbGY2NF9zcGFyYyIgOzsKLSsgICAgICAqKQotKwlpZiAke0xELWxkfSAtNjQgLXIgLW8gY29u ZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsJICBMRD0iJHtMRC1s ZH0gLTY0IgotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKyAgICBlc2FjCi0r ICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLStlc2FjCi0rCi0rbmVlZF9sb2Nrcz0i JGVuYWJsZV9saWJ0b29sX2xvY2siCi0rCi0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIHJo YXBzb2R5KiB8IGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRo ZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1kc3lt dXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWw7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfRFNZ TVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJERTWU1VVElMIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19EU1lN VVRJTD0iJERTWU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNl Ci0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4g JFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAg ICBhY19jdl9wcm9nX0RTWU1VVElMPSIke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsIgotKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZl X0lGUwotKwotK2ZpCi0rZmkKLStEU1lNVVRJTD0kYWNfY3ZfcHJvZ19EU1lNVVRJTAotK2lmIHRl c3QgLW4gIiREU1lNVVRJTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICREU1lNVVRJTCIgPiY1Ci0rJGFzX2VjaG8gIiREU1lNVVRJTCIgPiY2OyB9Ci0rZWxz ZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19l Y2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9n X0RTWU1VVElMIjsgdGhlbgotKyAgYWNfY3RfRFNZTVVUSUw9JERTWU1VVElMCi0rICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgImRzeW11dGlsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu YW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZHN5bXV0aWw7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2 X3Byb2dfYWNfY3RfRFNZTVVUSUwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElMIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iJGFjX2N0X0RTWU1VVElMIiAjIExldCB0 aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZT PSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19z YXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0RTWU1V VElMPSJkc3ltdXRpbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRFNZTVVUSUw9 JGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwKLStpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwi OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfRFNZ TVVUSUwiID4mNQotKyRhc19lY2hvICIkYWNfY3RfRFNZTVVUSUwiID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0RTWU1VVElMIiA9IHg7IHRo ZW4KLSsgICAgRFNZTVVUSUw9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGlu ZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMg OzsKLStlc2FjCi0rICAgIERTWU1VVElMPSRhY19jdF9EU1lNVVRJTAotKyAgZmkKLStlbHNlCi0r ICBEU1lNVVRJTD0iJGFjX2N2X3Byb2dfRFNZTVVUSUwiCi0rZmkKLSsKLSsgICAgaWYgdGVzdCAt biAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0OyBhY193b3JkPSQy Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVz dCAiJHthY19jdl9wcm9nX05NRURJVCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkTk1FRElUIjsgdGhlbgotKyAg YWNfY3ZfcHJvZ19OTUVESVQ9IiROTUVESVQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfTk1FRElUPSIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIK LSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0k YXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rTk1FRElUPSRhY19jdl9wcm9nX05NRURJVAotK2lm IHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkTk1FRElUIiA+JjUKLSskYXNfZWNobyAiJE5NRURJVCIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX05N RURJVCI7IHRoZW4KLSsgIGFjX2N0X05NRURJVD0kTk1FRElUCi0rICAjIEV4dHJhY3QgdGhlIGZp cnN0IHdvcmQgb2YgIm5tZWRpdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15IG5tZWRpdDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9O TUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRoZW4KLSsgIGFjX2N2X3Byb2df YWNfY3RfTk1FRElUPSIkYWNfY3RfTk1FRElUIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2Zv ciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0ibm1lZGl0IgotKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lG UwotKwotK2ZpCi0rZmkKLSthY19jdF9OTUVESVQ9JGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUCi0r aWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19jdF9OTUVESVQiID4mNQotKyRhc19lY2hvICIkYWNfY3RfTk1F RElUIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRh Y19jdF9OTUVESVQiID0geDsgdGhlbgotKyAgICBOTUVESVQ9IjoiCi0rICBlbHNlCi0rICAgIGNh c2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4 ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVz aW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSth Y190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE5NRURJVD0kYWNfY3RfTk1FRElUCi0r ICBmaQotK2Vsc2UKLSsgIE5NRURJVD0iJGFjX2N2X3Byb2dfTk1FRElUIgotK2ZpCi0rCi0rICAg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1saXBvIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1saXBvOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wcm9nX0xJUE8rc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJExJUE8iOyB0aGVuCi0r ICBhY19jdl9wcm9nX0xJUE89IiRMSVBPIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX0xJUE89IiR7YWNfdG9vbF9wcmVmaXh9bGlwbyIKLSsgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rTElQTz0kYWNfY3ZfcHJvZ19MSVBPCi0raWYgdGVzdCAtbiAi JExJUE8iOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTElQ TyIgPiY1Ci0rJGFzX2VjaG8gIiRMSVBPIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStm aQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfTElQTyI7IHRoZW4KLSsgIGFj X2N0X0xJUE89JExJUE8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibGlwbyIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGxpcG87IGFj X3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193 b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTElQTytzZXR9IiA9IHNldDsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3Rf TElQTyI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfTElQTz0iJGFjX2N0X0xJUE8iICMgTGV0 IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFz X3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4 ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3Qg LWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfTElQ Tz0ibGlwbyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9u ZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfTElQTz0kYWNfY3ZfcHJv Z19hY19jdF9MSVBPCi0raWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8iOyB0aGVuCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfTElQTyIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdF9MSVBPIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYg dGVzdCAieCRhY19jdF9MSVBPIiA9IHg7IHRoZW4KLSsgICAgTElQTz0iOiIKLSsgIGVsc2UKLSsg ICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7 fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgTElQTz0kYWNfY3RfTElQTwot KyAgZmkKLStlbHNlCi0rICBMSVBPPSIkYWNfY3ZfcHJvZ19MSVBPIgotK2ZpCi0rCi0rICAgIGlm IHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w7IGFjX3dv cmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfT1RPT0wrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJE9UT09MIjsgdGhlbgot KyAgYWNfY3ZfcHJvZ19PVE9PTD0iJE9UT09MIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUg dGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2Zv ciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAi JGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0 YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Ijsg fTsgdGhlbgotKyAgICBhY19jdl9wcm9nX09UT09MPSIke2FjX3Rvb2xfcHJlZml4fW90b29sIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStPVE9PTD0kYWNfY3ZfcHJvZ19PVE9PTAotK2lmIHRl c3QgLW4gIiRPVE9PTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRPVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRPVE9PTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX09UT09MIjsg dGhlbgotKyAgYWNfY3RfT1RPT0w9JE9UT09MCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIm90b29sIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQg ZHVtbXkgb3Rvb2w7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dv cmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT1RPT0wrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTD0i JGFjX2N0X09UT09MIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0r YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBh Y19jdl9wcm9nX2FjX2N0X09UT09MPSJvdG9vbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0r YWNfY3RfT1RPT0w9JGFjX2N2X3Byb2dfYWNfY3RfT1RPT0wKLStpZiB0ZXN0IC1uICIkYWNfY3Rf T1RPT0wiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfT1RPT0wiID4mNQotKyRhc19lY2hvICIkYWNfY3RfT1RPT0wiID4mNjsgfQotK2Vsc2UKLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X09UT09MIiA9IHg7IHRoZW4K LSsgICAgT1RPT0w9IjoiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStl c2FjCi0rICAgIE9UT09MPSRhY19jdF9PVE9PTAotKyAgZmkKLStlbHNlCi0rICBPVE9PTD0iJGFj X2N2X3Byb2dfT1RPT0wiCi0rZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4 IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4 fW90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBk dW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sNjQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2df T1RPT0w2NCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT1RPT0w2NCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfT1RP T0w2ND0iJE9UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UK LSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAk UEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBh c19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAg IGFjX2N2X3Byb2dfT1RPT0w2ND0iJHthY190b29sX3ByZWZpeH1vdG9vbDY0IgotKyAgICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lG UwotKwotK2ZpCi0rZmkKLStPVE9PTDY0PSRhY19jdl9wcm9nX09UT09MNjQKLStpZiB0ZXN0IC1u ICIkT1RPT0w2NCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRPVE9PTDY0IiA+JjUKLSskYXNfZWNobyAiJE9UT09MNjQiID4mNjsgfQotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8i ID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PVE9PTDY0 IjsgdGhlbgotKyAgYWNfY3RfT1RPT0w2ND0kT1RPT0w2NAotKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICJvdG9vbDY0Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn cy4KLStzZXQgZHVtbXkgb3Rvb2w2NDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9P VE9PTDY0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9PVE9PTDY0IjsgdGhlbgotKyAgYWNfY3ZfcHJv Z19hY19jdF9PVE9PTDY0PSIkYWNfY3RfT1RPT0w2NCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IK LStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3Qg LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4 ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0PSJvdG9vbDY0IgotKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9PVE9PTDY0PSRhY19jdl9wcm9nX2FjX2N0X09U T09MNjQKLStpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9PVE9PTDY0IiA+JjUKLSskYXNfZWNobyAi JGFjX2N0X09UT09MNjQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBp ZiB0ZXN0ICJ4JGFjX2N0X09UT09MNjQiID0geDsgdGhlbgotKyAgICBPVE9PTDY0PSI6IgotKyAg ZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVz OikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBPVE9PTDY0PSRh Y19jdF9PVE9PTDY0Ci0rICBmaQotK2Vsc2UKLSsgIE9UT09MNjQ9IiRhY19jdl9wcm9nX09UT09M NjQiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIgZmxhZyIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnLi4uICIg PiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X2Fw cGxlX2NjX3NpbmdsZV9tb2Q9bm8KLSsgICAgICBpZiB0ZXN0IC16ICIke0xUX01VTFRJX01PRFVM RX0iOyB0aGVuCi0rCSMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUg ZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKwkjIGJ5IGVpdGhlciBzZXR0aW5nIHRoZSBlbnZpcm9u bWVudCB2YXJpYWJsZSBMVF9NVUxUSV9NT0RVTEUKLSsJIyBub24tZW1wdHkgYXQgY29uZmlndXJl IHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRoZQotKwkjIGxpbmsgZmxhZ3Mu Ci0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsJZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1 cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsJZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1v IGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSstZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29u ZnRlc3QuYyIgPiY1Ci0rCSRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5k eWxpYiBcCi0rCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5j b25mdGVzdC5lcnIKLSsgICAgICAgIF9sdF9yZXN1bHQ9JD8KLSsJaWYgdGVzdCAtZiBsaWJjb25m dGVzdC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyICYmIHRlc3QgJF9sdF9yZXN1bHQg PSAwOyB0aGVuCi0rCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKLSsJZWxzZQotKwkg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rCWZpCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioK LSsJcm0gLWYgY29uZnRlc3QuKgotKyAgICAgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY1Ci0rJGFzX2Vj aG8gIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA+JjY7IH0KLSsgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtl ciBmbGFnIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgLWV4cG9ydGVkX3N5bWJvbHNf bGlzdCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfbGRfZXhwb3J0 ZWRfc3ltYm9sc19saXN0K3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubwotKyAg ICAgIHNhdmVfTERGTEFHUz0kTERGTEFHUwotKyAgICAgIGVjaG8gIl9tYWluIiA+IGNvbmZ0ZXN0 LnN5bQotKyAgICAgIExERkxBR1M9IiRMREZMQUdTIC1XbCwtZXhwb3J0ZWRfc3ltYm9sc19saXN0 LGNvbmZ0ZXN0LnN5bSIKLSsgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK LStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3Qg LXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAg ICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9z c19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAot KyAgICAgICB9OyB0aGVuCi0rICBsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9eWVzCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3Q9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKwlMREZM QUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPiY1Ci0rJGFzX2VjaG8g IiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNjsgfQotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuWzAxMl0pCi0rICAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKyAgICBk YXJ3aW4xLiopCi0rICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFt ZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKyAgICBkYXJ3aW4qKSAj IGRhcndpbiA1Lnggb24KLSsgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhl IGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCi0rICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwg aWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKLSsgICAgICAjIHRhcmdldCBkZWZh dWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KLSsgICAgICBjYXNlICR7TUFDT1NYX0RF UExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCi0rCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4w LCotZGFyd2luWzkxXSopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVm aW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKwkxMC5bMDEyXSopCi0rCSAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3ds fXN1cHByZXNzJyA7OwotKwkxMC4qKQotKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3ds fS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsKLSsgICAgICBlc2FjCi0rICAgIDs7 Ci0rICBlc2FjCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA9ICJ5 ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9zaW5nbGVfbW9kPSckc2luZ2xlX21vZHVsZScKLSsg ICAgZmkKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCIgPSAi eWVzIjsgdGhlbgotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9JyAke3dsfS1leHBvcnRlZF9z eW1ib2xzX2xpc3QsJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bScKLSsg ICAgZWxzZQotKyAgICAgIF9sdF9kYXJfZXhwb3J0X3N5bXM9J34kTk1FRElUIC1zICRvdXRwdXRf b2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwotKyAgICBmaQotKyAgICBp ZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgotKyAgICAgIF9sdF9kc3ltdXRpbD0nfiRE U1lNVVRJTCAkbGliIHx8IDonCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZHN5bXV0aWw9Ci0rICAg IGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZM QUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQ UEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVy X2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICIgPiY2OyB9Ci0rIyBP biBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KLStpZiB0ZXN0IC1uICIk Q1BQIiAmJiB0ZXN0IC1kICIkQ1BQIjsgdGhlbgotKyAgQ1BQPQotK2ZpCi0raWYgdGVzdCAteiAi JENQUCI7IHRoZW4KLSsgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICAgICMgRG91Ymxl IHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotKyAgICBmb3IgQ1BQIGlu ICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFsLWNwcCIgIi9saWIvY3BwIgotKyAgICBkbwot KyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBp biAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2Nj LCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIg d29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18g aXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3Rh bmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0 aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAu ICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGlu Y2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYK LSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAq XFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsK LStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNo b1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251 bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAg OgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQot K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWls cyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cg Y2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBh bmQgaG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsj aW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19j cHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25m dGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9k ZXYvbnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dl cnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9OyB0aGVu Ci0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZWxz ZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdz L14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4K LSthY19wcmVwcm9jX29rPToKLSticmVhawotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQ Uk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJvY19vazsgdGhlbgotKyAgYnJlYWsK LStmaQotKwotKyAgICBkb25lCi0rICAgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKLSsKLStmaQotKyAg Q1BQPSRhY19jdl9wcm9nX0NQUAotK2Vsc2UKLSsgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDUFAiID4mNQotKyRhc19lY2hv ICIkQ1BQIiA+JjY7IH0KLSthY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2NfcHJlcHJvY193 YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21l cyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBhIGZyZXNoIGNyb3Nz LWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlm IF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4g b24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMg dGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0rICAjIG5vdCBqdXN0IHRo cm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSsg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lmZGVmIF9fU1RE Q19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+ Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIHsgKGFjX3RyeT0i JGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0k PwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1m IGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fSA+L2Rldi9udWxsICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFj X2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07 IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJy b2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNh c2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUg ZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNf dHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2Zs YWckYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAg ICAgfTsgdGhlbgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250 aW51ZQotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJv dGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsn LCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1m IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4K LSsgIDoKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4g XGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2Qn OiIgPiYyO30KLSt7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBwcmVwcm9j ZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxvZycgZm9y IG1vcmUgZGV0YWlscy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDIHByZXByb2Nl c3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3Ig bW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLStm aQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGls ZXJfZ251Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBB TlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBD IGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsj aW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgYWNfY3ZfaGVhZGVy X3N0ZGM9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9o ZWFkZXJfc3RkYz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0 ZGMgPSB5ZXM7IHRoZW4KLSsgICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUg bWVtKiwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29u ZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotK19BQ0VPRgotK2lmIChldmFs ICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAibWVtY2hyIiA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1u bwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFk ZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVj bGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCi0rX0FDRU9GCi0raWYg KGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVHUkVQICJmcmVl IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3Rk Yz1ubwotK2ZpCi0rcm0gLWYgY29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9o ZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBu b24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSsgIDoKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29u ZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNs dWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0rIyBkZWZpbmUg SVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotKyMgZGVmaW5lIFRPVVBQRVIo YykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSsjZWxzZQotKyMgZGVm aW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKLSsJ CSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotKwkJICAgICB8fCAoJ3MnIDw9 IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8g KChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwotKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUp ICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIGludCBp OwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotKyAgICBpZiAoWE9SIChpc2xvd2VyIChp KSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQotKyAgICAg IHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0JGFj X2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgot KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsg IChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSsgIHsgKGNhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB9OyB0aGVuCi0rICA6Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog cHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0rJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKyggZXhpdCAkYWNfc3RhdHVzICkKLSthY19jdl9oZWFkZXJfc3RkYz1u bwotK2ZpCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlICouY29yZSBjb3JlLmNv bmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotKwotK2ZpCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9z dGRjID0geWVzOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5l IFNURENfSEVBREVSUyAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLSsjIE9uIElSSVggNS4zLCBzeXMv dHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgotKwotKwotKwotKwotKwotKwot KwotKwotKwotK2ZvciBhY19oZWFkZXIgaW4gc3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIu aCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdzLmggXAotKwkJICBpbnR0eXBlcy5oIHN0ZGludC5o IHVuaXN0ZC5oCi0rZG8KLSthc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFj X2hlYWRlciIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX2hl YWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3Qg XCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyog Y29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAotKwotKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgot K19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19j b21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwot K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJv cl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3Qg LXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMi Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfSGVh ZGVyPW5vIgotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSthY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNf YWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19y ZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJ ICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0 aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2VjaG8gIkhB VkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLStkb25l Ci0rCi0rCi0rCi0rZm9yIGFjX2hlYWRlciBpbiBkbGZjbi5oCi0rZG8KLSthc19hY19IZWFkZXI9 YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFy PSRhc19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAot KwotKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgot KyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwlldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotK2ZpCi0rCi0rcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSth Y19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KLSsJCSAkYXNfZWNobyAiJGFz X3ZhbCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYg dGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBjYXQgPj5jb25mZGVmcy5oIDw8X0FD RU9GCi0rI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAx Ci0rX0FDRU9GCi0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0rYWNfZXh0PWNwcAotK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0raWYg dGVzdCAteiAiJENYWCI7IHRoZW4KLSsgIGlmIHRlc3QgLW4gIiRDQ0MiOyB0aGVuCi0rICAgIENY WD0kQ0NDCi0rICBlbHNlCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4K LSsgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFDQyBDQyBjeHggY2MrKyBjbC5leGUgRkND IEtDQyBSQ0MgeGxDX3IgeGxDCi0rICBkbwotKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9 JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0 ZXN0ICIke2FjX2N2X3Byb2dfQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDWFgiOyB0aGVuCi0rICBhY19j dl9wcm9nX0NYWD0iJENYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxz ZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsg ICAgYWNfY3ZfcHJvZ19DWFg9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgotKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwot KwotK2ZpCi0rZmkKLStDWFg9JGFjX2N2X3Byb2dfQ1hYCi0raWYgdGVzdCAtbiAiJENYWCI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDWFgiID4mNQotKyRh c19lY2hvICIkQ1hYIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAg ICB0ZXN0IC1uICIkQ1hYIiAmJiBicmVhawotKyAgZG9uZQotK2ZpCi0raWYgdGVzdCAteiAiJENY WCI7IHRoZW4KLSsgIGFjX2N0X0NYWD0kQ1hYCi0rICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdw cCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhsQwotK2RvCi0rICAj IEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3Byb2dfYWNfY3RfQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCi0r ICBhY19jdl9wcm9nX2FjX2N0X0NYWD0iJGFjX2N0X0NYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19wcm9nIgotKyAg ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19z YXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9DWFg9JGFjX2N2X3Byb2dfYWNfY3RfQ1hYCi0r aWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdF9DWFgiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ1hYIiA+JjY7 IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1 Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJGFjX2N0X0NY WCIgJiYgYnJlYWsKLStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0NYWCIgPSB4OyB0aGVu Ci0rICAgIENYWD0iZysrIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFj X3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJl Zml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0r ZXNhYwotKyAgICBDWFg9JGFjX2N0X0NYWAotKyAgZmkKLStmaQotKwotKyAgZmkKLStmaQotKyMg UHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxlci4KLSskYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDKysgY29tcGlsZXIgdmVyc2lvbiIgPiY1Ci0r c2V0IFggJGFjX2NvbXBpbGUKLSthY19jb21waWxlcj0kMgotK3sgKGFjX3RyeT0iJGFjX2NvbXBp bGVyIC0tdmVyc2lvbiA+JjUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29t cGlsZXIgLS12ZXJzaW9uID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9Ci0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLXYgPiY1IgotK2Nhc2UgIigoJGFjX3Ry eSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC12ID4mNSIpIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9Ci0reyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLVYgPiY1Igot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyIC1WID4mNSIpIDI+JjUK LSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9Ci0rCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNv bXBpbGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0 aGUgR05VIEMrKyBjb21waWxlci4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfY3h4X2Nv bXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rI2lmbmRlZiBfX0dOVUNfXwotKyAgICAgICBjaG9rZSBt ZQotKyNlbmRpZgotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNf b2JqZXh0OyB0aGVuCi0rICBhY19jb21waWxlcl9nbnU9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwlhY19jb21waWxlcl9nbnU9bm8KLStmaQotKwotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2Fj X2N2X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQotKwotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNQot KyRhc19lY2hvICIkYWNfY3ZfY3h4X2NvbXBpbGVyX2dudSIgPiY2OyB9Ci0raWYgdGVzdCAkYWNf Y29tcGlsZXJfZ251ID0geWVzOyB0aGVuCi0rICBHWFg9eWVzCi0rZWxzZQotKyAgR1hYPQotK2Zp Ci0rYWNfdGVzdF9DWFhGTEFHUz0ke0NYWEZMQUdTK3NldH0KLSthY19zYXZlX0NYWEZMQUdTPSRD WFhGTEFHUwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICRD WFggYWNjZXB0cyAtZyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAkQ1hYIGFj Y2VwdHMgLWcuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY3h4X2crc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNf c2F2ZV9jeHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3JfZmxhZwotKyAgIGFjX2N4eF93ZXJy b3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9nX2N4eF9nPW5vCi0rICAgQ1hYRkxBR1M9Ii1nIgot KyAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwot K19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0r bWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgotKyAgYWNfY3ZfcHJvZ19jeHhfZz15ZXMKLStlbHNlCi0rICAkYXNfZWNo byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0 ZXN0LiRhY19leHQgPiY1Ci0rCi0rCUNYWEZMQUdTPSIiCi0rICAgICAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAg OwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQK LStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZh bCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICA6 Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jeHhfd2Vycm9yX2Zs YWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCi0rCSBDWFhGTEFHUz0iLWciCi0rCSBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotKwotK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKyAg IGFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2N4eF9nIiA+JjUKLSsk YXNfZWNobyAiJGFjX2N2X3Byb2dfY3h4X2ciID4mNjsgfQotK2lmIHRlc3QgIiRhY190ZXN0X0NY WEZMQUdTIiA9IHNldDsgdGhlbgotKyAgQ1hYRkxBR1M9JGFjX3NhdmVfQ1hYRkxBR1MKLStlbGlm IHRlc3QgJGFjX2N2X3Byb2dfY3h4X2cgPSB5ZXM7IHRoZW4KLSsgIGlmIHRlc3QgIiRHWFgiID0g eWVzOyB0aGVuCi0rICAgIENYWEZMQUdTPSItZyAtTzIiCi0rICBlbHNlCi0rICAgIENYWEZMQUdT PSItZyIKLSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAg Q1hYRkxBR1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ci0rICBmaQotK2ZpCi0rYWNf ZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLSsK LStkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0g c2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KLSsgICMg V2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNh biBlbmQgdXAKLSsgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91 dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCi0rICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0 aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAotKyAgIyBtYWtpbmcgYSBkdW1t eSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAot KyAgIyBpbiBEJy4KLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAgIyBDb3B5IGRlcGNvbXAgdG8g c3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSsgICMg dXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCi0rICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0 LmRpcgotKyAgY2QgY29uZnRlc3QuZGlyCi0rICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQg ZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKLSsgICMgaXQgaGVscHMgdG8g ZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCi0rICAj IGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNp ZXMgYXMgYQotKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1 dCB0aGUgZGVwZW5kZW5jaWVzIGluCi0rICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBU cnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKLSsgICMgZGlyZWN0b3J5LgotKyAgbWtk aXIgc3ViCi0rCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQot KyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KLSsgICAgIGFtX2NvbXBp bGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCcgPCAuL2RlcGNv bXBgCi0rICBmaQotKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCi0rICAg ICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNv bXBpbGVycwotKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNv bHVtbiA4MCAod2l0aCBcKSwgYW5kCi0rICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBj b21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KLSsgICAgIwotKyAgICAjIFdlIG5l ZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVy IG1heQotKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2Jz Y3VyZSBjb21tYW5kIGxpbmVzLgotKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRo ZSBBSVggQyBjb21waWxlci4KLSsgICAgOiA+IHN1Yi9jb25mdGVzdC5jCi0rICAgIGZvciBpIGlu IDEgMiAzIDQgNSA2OyBkbwotKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicg Pj4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBj cmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAotKyAgICAgICMgU29sYXJpcyA4J3Mgey91 c3IsfS9iaW4vc2guCi0rICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCi0rICAgIGRvbmUKLSsg ICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9f cXVvdGV9IiA+IGNvbmZtZgotKwotKyAgICBjYXNlICRkZXBtb2RlIGluCi0rICAgIG5vc2lkZWVm ZmVjdCkKLSsgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lk ZS1lZmZlY3QsIHNvIHRoZXknbGwKLSsgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0 bHkgcmVxdWVzdGVkCi0rICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2lu ZyIgPSB4eWVzOyB0aGVuCi0rCWNvbnRpbnVlCi0rICAgICAgZWxzZQotKwlicmVhawotKyAgICAg IGZpCi0rICAgICAgOzsKLSsgICAgbm9uZSkgYnJlYWsgOzsKLSsgICAgZXNhYwotKyAgICAjIFdl IGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91 dCIKLSsgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGls ZXIgZG9lcyBub3QgcHJvcGVybHkKLSsgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQg dG8gZGV0ZWN0IHRoaXMuCi0rICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAotKyAgICAgICBzb3Vy Y2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBcCi0rICAg ICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBc Ci0rICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09C SkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0 LmVyciAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9k ZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0 LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRlc3QuJHtPQkpF WFQtb30gc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtF LW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2Mg ZG9lc24ndCBjaG9rZSBvbiB1bmtub3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJu aW5ncwotKyAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3Jl cCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCi0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdh cyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNj IDcuMCBhbmQgNy4xIGNvbXBsYWluIHRodXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxp bmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0r ICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNj OiBDb21tYW5kIGxpbmUgcmVtYXJrOiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAg IGlmIChncmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBn cmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6 OyBlbHNlCi0rICAgICAgICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRl cG1vZGUKLSsgICAgICAgIGJyZWFrCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGRvbmUKLSsKLSsg IGNkIC4uCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rZWxzZQotKyAgYW1fY3ZfQ1hYX2RlcGVu ZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlw ZSIgPiY1Ci0rJGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUi ID4mNjsgfQotK0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlCi0rCi0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5n IiAhPSB4bm8gXAotKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZSIgPSBnY2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPQotKyAgYW1fX2Zhc3Rk ZXBDWFhfRkFMU0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKLSsgIGFt X19mYXN0ZGVwQ1hYX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0 ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKLSsgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYm IGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8Ci0rICAgICh0ZXN0ICJYJENYWCIgIT0gIlhn KysiKSkpIDsgdGhlbgotKyAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMrKyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0IC16ICIkQ1hYQ1BQIjsgdGhlbgotKyAgaWYgdGVzdCAiJHthY19jdl9wcm9n X0NYWENQUCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQIG5lZWRzIHRvIGJl IGV4cGFuZGVkCi0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGliL2NwcCIKLSsgICAg ZG8KLSsgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5f ZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdp dGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29t cGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19T VERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBm cmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUg Y29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3QgdGhyb3Vn aCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgotKyAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18K LSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsj ZW5kaWYKLSsJCSAgICAgU3ludGF4IGVycm9yCi0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpc YCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNf dHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190 cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNf Y3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29u ZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4v ZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19j eHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07 IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIEJy b2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUKLStmaQotKwotK3JtIC1mIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNh c2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUg ZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8q IGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgeyAoYWNf dHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChl dmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5f ZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0r ICAgICAgIH07IHRoZW4KLSsgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi0r Y29udGludWUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rICAjIFBhc3Nl cyBib3RoIHRlc3RzLgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLSsKLStybSAtZiBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJy ZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLSty bSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0 aGVuCi0rICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJvZ19DWFhDUFA9 JENYWENQUAotKwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0rZWxzZQotKyAg YWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRDWFhDUFAiID4mNjsgfQotK2Fj X3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHll cwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNv bmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4K LSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZp bmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBj b21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2gg dGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRh eCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0rICBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8 bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAg ICBTeW50YXggZXJyb3IKLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFj X3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMK LStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0r JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3Qu JGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsg IGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7 Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbgotKyAgOgot K2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgQnJva2VuOiBmYWlscyBv biB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19leHQKLSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hl Y2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQg aG93LgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4g ICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiB7IChhY190cnk9IiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jcHAg Y29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVz dC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYv bnVsbCAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhl bgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMu Ci0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotKwotK3JtIC1mIGNvbmZ0ZXN0LmVyciBj b25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJF UFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1mIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSsgIDoKLStl bHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30K LStfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXM7IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3Bw PSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rZWxzZQotKyAgX2x0 X2NhdWdodF9DWFhfZXJyb3I9eWVzCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsjIFNldCBvcHRpb25z Ci0rCi0rCi0rCi0rICAgICAgICBlbmFibGVfZGxvcGVuPW5vCi0rCi0rCi0rICBlbmFibGVfd2lu MzJfZGxsPW5vCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1waWMgd2Fz IGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9waWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2 YWw9JHdpdGhfcGljOyBwaWNfbW9kZT0iJHdpdGh2YWwiCi0rZWxzZQotKyAgcGljX21vZGU9ZGVm YXVsdAotK2ZpCi0rCi0rCi0rdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1kZWZhdWx0 Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZmFzdC1p bnN0YWxsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9mYXN0X2luc3RhbGwrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2Zhc3RfaW5zdGFsbDsgcD0ke1BBQ0tB R0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX2Zh c3RfaW5zdGFsbD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8gOzsKLSsg ICAgKikKLSsgICAgICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rICAgICAgIyBMb29rIGF0IHRo ZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3Jz LgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1Is IgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMi Ci0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX2Zhc3RfaW5zdGFs bD15ZXMKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAg ICAgOzsKLSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0rZmkK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIFRoaXMgY2FuIGJlIHVzZWQgdG8g cmVidWlsZCBsaWJ0b29sIHdoZW4gbmVlZGVkCi0rTElCVE9PTF9ERVBTPSIkbHRtYWluIgotKwot KyMgQWx3YXlzIHVzZSBvdXIgb3duIGxpYnRvb2wuCi0rTElCVE9PTD0nJChTSEVMTCkgJCh0b3Bf YnVpbGRkaXIpL2xpYnRvb2wnCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rdGVzdCAteiAiJExOX1MiICYm IExOX1M9ImxuIC1zIgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot K2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0IE5PX0dM T0JfU1VCU1QKLStmaQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3Igb2JqZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igb2JqZGlyLi4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9vYmpkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgcm0gLWYgLmxpYnMgMj4vZGV2L251bGwK LStta2RpciAubGlicyAyPi9kZXYvbnVsbAotK2lmIHRlc3QgLWQgLmxpYnM7IHRoZW4KLSsgIGx0 X2N2X29iamRpcj0ubGlicwotK2Vsc2UKLSsgICMgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGVu YW1lcyB0aGF0IGJlZ2luIHdpdGggYSBkb3QuCi0rICBsdF9jdl9vYmpkaXI9X2xpYnMKLStmaQot K3JtZGlyIC5saWJzIDI+L2Rldi9udWxsCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkbHRfY3Zfb2JqZGlyIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X29iamRpciIg PiY2OyB9Ci0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLSsKLSsKLSsKLSsKLSsKLStjYXQgPj5jb25m ZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBMVF9PQkpESVIgIiRsdF9jdl9vYmpkaXIvIgotK19B Q0VPRgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot K2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxl bXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Igc29tZQotKyAgIyByZWFzb24s IGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1FUyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHBy b2JsZW1zCi0rICAjIHZhbmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtD T0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsg ICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIFNlZCBz dWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFz aGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRv dWJsZS1xdW90ZWQgc3RyaW5ncy4KLStzZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxc MS9nJwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZl cmVuY2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFsiYFxcXVwpL1xcXDEvZycKLSsKLSsj IFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwg dmFyaWFibGUgaW4gYQotKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KLStkZWxheV92 YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJwotKwotKyMgU2VkIHN1YnN0 aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUuCi0r ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKLSsKLSsj IFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFsZWQg ZXhwcmVzc2lvbnMKLStub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKLSsKLSsjIEdsb2JhbCB2 YXJpYWJsZXM6Ci0rb2ZpbGU9bGlidG9vbAotK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCi0rCi0rIyBB bGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2lu ZyAoZXhjZXB0IE1TVkMsCi0rIyB3aGljaCBuZWVkcyAnLmxpYicpLgotK2xpYmV4dD1hCi0rCi0r d2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKLSsKLStvbGRfQ0M9IiRDQyIKLStvbGRf Q0ZMQUdTPSIkQ0ZMQUdTIgotKwotKyMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMgdmFy aWFibGVzCi0rdGVzdCAteiAiJENDIiAmJiBDQz1jYwotK3Rlc3QgLXogIiRMVENDIiAmJiBMVEND PSRDQwotK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUwotK3Rlc3QgLXog IiRMRCIgJiYgTEQ9bGQKLSt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwotKwot K2ZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAg ICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0r ICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0r ICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFt ZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2Fs aWFzLSUlImAKLSsKLSsKLSsjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRo ZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKLSt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJ Q19DTUQ9ZmlsZQotK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rZmlsZV9tYWdpYyop Ci0rICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCi0rICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZp eH1maWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1m aWxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX01BR0lDX0NNRCtzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNl ICRNQUdJQ19DTUQgaW4KLStbXFwvKl0gfCAgPzpbXFwvXSopCi0rICBsdF9jdl9wYXRoX01BR0lD X0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBh IHBhdGguCi0rICA7OwotKyopCi0rICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKLSsg IGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgYWNfZHVtbXk9Ii91 c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsg ZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFj X2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4fWZpbGU7IHRo ZW4KLSsgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci8ke2FjX3Rvb2xfcHJlZml4 fWZpbGUiCi0rICAgICAgaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgot KwljYXNlICRkZXBsaWJzX2NoZWNrX21ldGhvZCBpbgotKwkiZmlsZV9tYWdpYyAiKikKLSsJICBm aWxlX21hZ2ljX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFn aWMgXCguKlwpImAKLSsJICBNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLSsJICBp ZiBldmFsICRmaWxlX21hZ2ljX2NtZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVs bCB8Ci0rCSAgICAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgot KwkgICAgOgotKwkgIGVsc2UKLSsJICAgIGNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJu aW5nOiB0aGUgY29tbWFuZCBsaWJ0b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMs Ci0rKioqICRmaWxlX21hZ2ljX2NtZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5u b3QgcmVjb2duaXplLgotKyoqKiBUaGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0 byByZWNvZ25pemUgc2hhcmVkIGxpYnJhcmllcwotKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFm ZmVjdCB0aGUgY3JlYXRpb24gb2YgbGlidG9vbCBsaWJyYXJpZXMgdGhhdAotKyoqKiBkZXBlbmQg b24gc2hhcmVkIGxpYnJhcmllcywgYnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9v bAotKyoqKiBsaWJyYXJpZXMgd2lsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAg TmV2ZXJ0aGVsZXNzLCB5b3UKLSsqKiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRv IHlvdXIgc3lzdGVtIG1hbmFnZXIgYW5kL29yIHRvCi0rKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcK LSsKLStfTFRfRU9GCi0rCSAgZmkgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgYnJlYWsK LSsgICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgTUFHSUNfQ01EPSIk bHRfc2F2ZV9NQUdJQ19DTUQiCi0rICA7OwotK2VzYWMKLStmaQotKwotK01BR0lDX0NNRD0iJGx0 X2N2X3BhdGhfTUFHSUNfQ01EIgotK2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKLSskYXNf ZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsK LSsKLSsKLSsKLStpZiB0ZXN0IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCi0rICBp ZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgZmlsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIGZpbGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3Nl dH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGNhc2UgJE1BR0lDX0NNRCBpbgotK1tcXC8qXSB8ICA/OltcXC9dKikKLSsgIGx0X2N2X3BhdGhf TUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3 aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01E IgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBhY19kdW1t eT0iL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1 bW15OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIg JiYgYWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyL2ZpbGU7IHRoZW4KLSsgICAgICBs dF9jdl9wYXRoX01BR0lDX0NNRD0iJGFjX2Rpci9maWxlIgotKyAgICAgIGlmIHRlc3QgLW4gIiRm aWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVwbGlic19jaGVja19tZXRob2Qg aW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxp YnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCi0rCSAgTUFHSUNfQ01EPSIk bHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxl X21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAgJEVHUkVQICIkZmlsZV9tYWdp Y19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAgICBjYXQg PDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2Vz IHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1 Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KLSsqKiogVGhlIHJlc3Vs dCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMK LSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wg bGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9n cmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGlicmFyaWVzIHdpbGwgd29yayBy ZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91Ci0rKioqIG1heSB3 YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0 bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rX0xUX0VPRgotKwkgIGZpIDs7Ci0rCWVz YWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRs dF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01EIgotKyAgOzsKLStl c2FjCi0rZmkKLSsKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLStpZiB0ZXN0 IC1uICIkTUFHSUNfQ01EIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJE1BR0lDX0NNRCIgPiY1Ci0rJGFzX2VjaG8gIiRNQUdJQ19DTUQiID4mNjsgfQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBlbHNlCi0rICAgIE1BR0lDX0NNRD06Ci0r ICBmaQotK2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBVc2UgQyBmb3IgdGhlIGRl ZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKLSsKLStsdF9zYXZlX0ND PSIkQ0MiCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9 JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5r PSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKLSsKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJj ZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQg QyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHQ9JG9iamV4dAotKwotKyMgQ29kZSB0 byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVfdGVz dF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGlu IHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbigp e3JldHVybigwKTt9JwotKwotKwotKwotKwotKwotKwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3 YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBD IGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7 TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rIyBTYXZlIHRoZSBkZWZhdWx0IGNv bXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCi0rIyB0YWdz IGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBOT1Au Ci0rY29tcGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUg b2Ygc2ltcGxlIHRlc3QgY29kZQotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2Vj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZh bCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+ Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJy YAotKyRSTSBjb25mdGVzdCoKLSsKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLStl Y2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2YWwg IiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNvbmZ0 ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJFJN IC1yIGNvbmZ0ZXN0KgotKwotKwotKyMjIENBVkVBVCBFTVBUT1I6Ci0rIyMgVGhlcmUgaXMgbm8g ZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UK LSsjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxl c3MgeW91IGtub3cgZXhhY3RseQotKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotK2lmIHRlc3Qg LW4gIiRjb21waWxlciI7IHRoZW4KLSsKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh Zz0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgbHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWc9JyAtZm5vLWJ1aWx0aW4nCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4 Y2VwdGlvbnMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0 cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9j dl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0 dGlfZXhjZXB0aW9ucz1ubwotKyAgIGFjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAg IGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAot KyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiCi0rICAgIyBJ bnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJs ZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9y ICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2Vz IG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIg c2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5Lgot KyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNv bmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBc Ci0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAot KyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsg ICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19t ZTo5MjgyOiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNv bmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgY29uZnRlc3QuZXJyID4mNQot KyAgIGVjaG8gIiRhc19tZTo5Mjg2OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhp dCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhl IGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNv Z25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhh biB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPmNvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7 IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMg Y29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxs OyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPXllcwot KyAgICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0 aW9ucyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9u cyIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0 aW9ucyIgPSB4eWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFn PSIkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcgLWZuby1ydHRpIC1mbm8tZXhjZXB0 aW9ucyIKLStlbHNlCi0rICAgIDoKLStmaQotKwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICBs dF9wcm9nX2NvbXBpbGVyX3dsPQotK2x0X3Byb2dfY29tcGlsZXJfcGljPQotK2x0X3Byb2dfY29t cGlsZXJfc3RhdGljPQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMuLi4gIiA+JjY7IH0KLSsK LSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9 Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctc3RhdGljJwotKwotKyAgICBj YXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQ SUMuCi0rICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBu b3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1C c3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNv bW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpYz0nLWZQSUMnCi0rICAgICAgICA7OwotKyAgICAgIG02OGspCi0rICAgICAgICAg ICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBs aWJyYXJpZXMsIGJ1dAotKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0 byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAotKyAgICAgICAgICAgICMg bGlrZSBgLW02ODA0MCcuCi0rICAgICAgICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1tNjgw MjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVzdG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAg ZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJlb3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3Rv cHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVs dCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwg cHczMiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhl IHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0 IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4 YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhlIGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywg c3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUKLSsgICAgICAjICgtLWRpc2FibGUtYXV0by1p bXBvcnQpIGxpYnJhcmllcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBP UlQnCi0rICAgICAgOzsKLSsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBDb21tb24gc3ltYm9s cyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf cGljPSctZm5vLWNvbW1vbicKLSsgICAgICA7OwotKwotKyAgICBocHV4KikKLSsgICAgICAjIFBJ QyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQK LSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1 dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBh ZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2 NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBp bGVyX3BpYz0nLWZQSUMnCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGlu dGVyaXhbMy05XSopCi0rICAgICAgIyBJbnRlcml4IDMueCBnY2MgLWZwaWMvLWZQSUMgb3B0aW9u cyBnZW5lcmF0ZSBicm9rZW4gY29kZS4KLSsgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNo YXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KLSsgICAgICA7OwotKwotKyAgICBtc2Rvc2RqZ3Bw KikKLSsgICAgICAjIEp1c3QgYmVjYXVzZSB3ZSB1c2UgR0NDIGRvZXNuJ3QgbWVhbiB3ZSBzdWRk ZW5seSBnZXQgc2hhcmVkIGxpYnJhcmllcwotKyAgICAgICMgb24gc3lzdGVtcyB0aGF0IGRvbid0 IHN1cHBvcnQgdGhlbS4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQ9 bm8KLSsgICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKm50byogfCAq cW54KikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hh cmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7OwotKwot KyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotKwlsdF9w cm9nX2NvbXBpbGVyX3BpYz0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICAqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKLSsgICAgICA7Owot KyAgICBlc2FjCi0rICBlbHNlCi0rICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3Mg bGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KLSsgICAgY2FzZSAkaG9z dF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0r ICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3Vw cG9ydHMgSUE2NCBwcm9jZXNzb3IKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGlj JwotKyAgICAgIGVsc2UKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ibnNvIC1iSTovbGli L3N5c2NhbGxzLmV4cCcKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG1pbmd3KiB8IGN5 Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlzIGhhY2sgaXMgc28g dGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZwotKyAgICAg ICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9s cyBmb3IgZXhhbXBsZSkuCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1ERExMX0VYUE9S VCcKLSsgICAgICA7OwotKwotKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciBJQTY0IEhQLVVYIGFuZCA2NC1iaXQgSFAtVVgsIGJ1dAotKyAgICAgICMgbm90IGZvciBQ QSBIUC1VWC4KLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqfGlhNjQq KQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxl cl9waWM9JytaJwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVy IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8K LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0r ICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICMgUElDICh3aXRoIC1LUElDKSBpcyB0 aGUgZGVmYXVsdC4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQn Ci0rICAgICAgOzsKLSsKLSsgICAgbGludXgqIHwgaypic2QqLWdudSkKLSsgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwg c3VwcG9ydGVkIC1LUElDLgotKyAgICAgIGVjYyopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1X bCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsJbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgaWNjIHVzZWQgdG8gYmUgaW5j b21wYXRpYmxlIHdpdGggR0NDLgotKyAgICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElD IGFueSBtb3JlLgotKyAgICAgIGljYyogfCBpZm9ydCopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9 Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKLSsJbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgTGFoZXkgRm9ydHJhbiA4 LjEuCi0rICAgICAgbGY5NSopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3By b2dfY29tcGlsZXJfcGljPSctLXNoYXJlZCcKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy0t c3RhdGljJwotKwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQot KyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdj YyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQgcHJvamVjdCkKLSsJbHRf cHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mcGljJwot KwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAg IGNjYyopCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgICAgIyBB bGwgQWxwaGEgY29kZSBpcyBQSUMuCi0rICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0n LW5vbl9zaGFyZWQnCi0rICAgICAgICA7OwotKyAgICAgIHhsKikKLSsJIyBJQk0gWEwgQyA4LjAv Rm9ydHJhbiAxMC4xIG9uIFBQQwotKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwlsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLXFwaWMnCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctcXN0 YXRpY2xpbmsnCi0rCTs7Ci0rICAgICAgKikKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFg IGluCi0rCSpTdW5cIEMqKQotKwkgICMgU3VuIEMgNS45Ci0rCSAgbHRfcHJvZ19jb21waWxlcl9w aWM9Jy1LUElDJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsJICBs dF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKwkgIDs7Ci0rCSpTdW5cIEYqKQotKwkgICMgU3Vu IEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIK LSsJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy1Cc3RhdGljJwotKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJICA7OwotKwll c2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYpCi0rICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAg ICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9u IHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIG9zZjMq IHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAg ICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgc29s YXJpcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVFv cHRpb24gbGQgJzs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7Owot KyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfd2w9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LVBJQycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAg OzsKLSsKLSsgICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3By b2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElD JwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7Owot KwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwls dF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtjb25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwg dW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJ QycKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsK LSsKLSsgICAgdW5pY29zKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0r ICAgIHV0czQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctcGljJwotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQot KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGZpCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1z IHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpn cHAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KLSsgICAgOzsKLSsgICopCi0rICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCi0rICAgIDs7 Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2Nv bXBpbGVyX3BpYyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgPiY2OyB9 Ci0rCi0rCi0rCi0rCi0rCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxh ZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGlj IjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21w aWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3MiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMg d29ya3MuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dv cmtzK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPW5vCi0rICAgYWNfb3V0ZmlsZT1j b25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2dfY29t cGlsZXJfcGljIC1EUElDIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRl ciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBj b250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhh dCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVn aW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hv IHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2 aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVj aG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRs dF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRf Y29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AK LSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6OTYyMTogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAg IChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0r ICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6OTYyNTogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291 dGZpbGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25v cmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhl cmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hP ICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVz dC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0 LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4 cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBp bGVyX3BpY193b3Jrcz15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gY29uZnRlc3QqCi0r Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19j b21waWxlcl9waWNfd29ya3MiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9w aWNfd29ya3MiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNf d29ya3MiID0geHllczsgdGhlbgotKyAgICBjYXNlICRsdF9wcm9nX2NvbXBpbGVyX3BpYyBpbgot KyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikgbHRfcHJvZ19jb21waWxlcl9waWM9IiAkbHRf cHJvZ19jb21waWxlcl9waWMiIDs7Ci0rICAgICBlc2FjCi0rZWxzZQotKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpYz0KLSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwot K2ZpCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUg dGhlIHN0YXRpYyBmbGFnIGFjdHVhbGx5IHdvcmtzLgotKyMKLSt3bD0kbHRfcHJvZ19jb21waWxl cl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wi Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0 aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBpZiAkY29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4u LiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3Mr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8KLSsgICBzYXZlX0xERkxBR1M9 IiRMREZMQUdTIgotKyAgIExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0r ICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0r ICAgaWYgKGV2YWwgJGFjX2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0OyB0aGVuCi0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsg ICAgICAgIyBBcHBlbmQgYW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0 IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxh dGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQv ZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBj b25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9j dl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UK LSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCi0rICAgICBmaQot KyAgIGZpCi0rICAgJFJNIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1Mi Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJv Z19jb21waWxlcl9zdGF0aWNfd29ya3MiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3MiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3MiID0geHllczsgdGhlbgotKyAgICA6Ci0rZWxzZQotKyAgICBsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYz0KLStmaQotKwotKwotKwotKwotKwotKwotKwotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAt byBmaWxlLiRhY19vYmpleHQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxl ciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPW5vCi0r ICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0rICAgbWtkaXIgY29uZnRlc3QKLSsgICBj ZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1v IG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhl ciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgotKyAgICMgKDIpIGJlZm9y ZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCi0rICAg IyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNo ZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBz byB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCi0rICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21w aWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAg IChldmFsIGVjaG8gIlwiXCRhc19tZTo5NzI2OiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2 YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0r ICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0rICAgZWNobyAiJGFzX21lOjk3MzA6IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0 L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2Fu IG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAg ICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIlgkX2x0X2Nv bXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhw Ci0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0 ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQv Y29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBs dF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1 K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxs IGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3Rh bnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyog JiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNk IC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19v IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7IH0KLSsKLSsK LSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAk Y29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4u ICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbytzZXR9IiA9IHNl dDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9w cm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAg IG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hv ICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsg ICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJ bnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJs ZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9y ICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2Vz IG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIg c2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5Lgot KyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4q RkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14g XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6OTc4MTogJGx0X2Nv bXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJy KQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVj aG8gIiRhc19tZTo5Nzg1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNf c3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsg ICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlm IG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MK LSsgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14k L2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9j b25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBvdXQvY29u ZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2 L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCi0rICAgICBm aQotKyAgIGZpCi0rICAgY2htb2QgdSt3IC4gMj4mNQotKyAgICRSTSBjb25mdGVzdCoKLSsgICAj IFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9y Ci0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMg JiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRSTSBvdXQv KiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVzdAotKyAgICRSTSBj b25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBp bGVyX2NfbyIgPiY2OyB9Ci0rCi0rCi0rCi0rCi0raGFyZF9saW5rcz0ibm90dGVzdGVkIgotK2lm IHRlc3QgIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2Nr cyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9s b2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0r ICBoYXJkX2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25m dGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEK LSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxu IGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFz X2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5v OyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycg ZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBc YC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xv Y2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0r Ci0rCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0 aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQp IHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLSsKLSsgIHJ1bnBhdGhfdmFy PQotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8K LSsgIGFyY2hpdmVfY21kcz0KLSsgIGFyY2hpdmVfZXhwc3ltX2NtZHM9Ci0rICBjb21waWxlcl9u ZWVkc19vYmplY3Q9bm8KLSsgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9bm8K LSsgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyRO TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcn cy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIGhhcmRjb2Rl X2F1dG9tYXRpYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0PW5vCi0rICBoYXJkY29kZV9kaXJlY3Rf YWJzb2x1dGU9bm8KLSsgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0rICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX2xkPQotKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KLSsgIGhh cmRjb2RlX21pbnVzX0w9bm8KLSsgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQK LSsgIGluaGVyaXRfcnBhdGg9bm8KLSsgIGxpbmtfYWxsX2RlcGxpYnM9dW5rbm93bgotKyAgbW9k dWxlX2NtZHM9Ci0rICBtb2R1bGVfZXhwc3ltX2NtZHM9Ci0rICBvbGRfYXJjaGl2ZV9mcm9tX25l d19jbWRzPQotKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9Ci0rICB0aHJlYWRfc2Fm ZV9mbGFnX3NwZWM9Ci0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICMgaW5jbHVkZV9l eHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUg KmFsd2F5cyoKLSsgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0Ci0rICBpbmNsdWRlX2V4 cHN5bXM9Ci0rICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4gYmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9m IHN5bWJvbHMgdG8gZXhjbHVkZQotKyAgIyBpdCB3aWxsIGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQg YCkkJywgc28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lubmluZyBvcgotKyAgIyBlbmQgb2YgbGlu ZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFu ZCBgYmMnLAotKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1ib2wgdGhhdCBjb250YWlucyBgZCcuCi0r ICBleGNsdWRlX2V4cHN5bXM9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8u KicKLSsgICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9s IEMgbmFtZSwgbW9zdCBhLm91dAotKyAgIyBwbGF0Zm9ybXMgKGFiKXVzZSBpdCBpbiBQSUMgY29k ZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2VkIGlmCi0rICAjIHRoZSBzeW1ib2wgaXMg ZXhwbGljaXRseSByZWZlcmVuY2VkLiAgU2luY2UgcG9ydGFibGUgY29kZSBjYW5ub3QKLSsgICMg cmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5j bHVkZSBpdCBpbgotKyAgIyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KLSsgICMgRXhjbHVkZSBz aGFyZWQgbGlicmFyeSBpbml0aWFsaXphdGlvbi9maW5hbGl6YXRpb24gc3ltYm9scy4KLSsgIGV4 dHJhY3RfZXhwc3ltc19jbWRzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgY3lnd2luKiB8 IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQg aGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0aW1lCi0rICAgICMgV2hlbiBub3QgdXNp bmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICMgTWlj cm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotKyAg ICAgIHdpdGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBpbnRlcml4KikKLSsgICAg IyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2NjIGFuZCBub3QgYzg5ICg9IE1TVkMrKykK LSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0rICBvcGVuYnNkKikKLSsgICAgd2l0aF9n bnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGxkX3NobGlicz15ZXMKLSsgIGlmIHRl c3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVu cyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9Jwot KwotKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFy eSBzdXBwb3J0LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFy aWVzIGFyZSBub3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0 aGVtIHRvIGJlIG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9S VU5fUEFUSAotKyAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3ds fSRsaWJkaXInCi0rICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tLWV4cG9ydC1k eW5hbWljJwotKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJj aGl2ZSBldC4gYWwuCi0rICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICduby13aG9sZS1h cmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj PSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9s ZS1hcmNoaXZlJwotKyAgICBlbHNlCi0rICAgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Ci0r ICAgIGZpCi0rICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubwotKyAgICBjYXNlIGAkTEQg LXYgMj4mMWAgaW4KLSsgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiop IDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCi0rICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1 cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSsgICAgICAqXCAyLjEx LjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4 LjIgLi4uCi0rICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKLSsgICAg ICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAg IyBTZWUgaWYgR05VIGxkIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgYWl4WzMtOV0qKQotKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBs aW5rZXIgaXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7 IHRoZW4KLSsJbGRfc2hsaWJzPW5vCi0rCWNhdCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJu aW5nOiB0aGUgR05VIGxpbmtlciwgYXQgbGVhc3QgdXAgdG8gcmVsZWFzZSAyLjkuMSwgaXMgcmVw b3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFy aWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRpc2FibGluZyBzaGFyZWQg bGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5IGNhcmUgZm9yIHNoYXJlZCBs aWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBQQVRICi0rKioqIHNvIHRoYXQg YSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsKLStfTFRfRU9G Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRo b3N0X2NwdSBpbgotKyAgICAgIHBvd2VycGMpCi0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBh Ym91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAotKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJwot KyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJN ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGli bmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJ QlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2Rl ZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4k RUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNpb24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhs aWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGliICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2Qg JG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkgLTMyKScKLSsgICAgICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgICAgICAgaGFyZGNvZGVfbWlu dXNfTD15ZXMKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJl b3MqKQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJn ZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5z dXBwb3J0ZWQKLSsJIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21l IHJlbGVhc2VzIG9mIGdjYwotKwkjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRlc2VydmVz IHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCWFyY2hpdmVfY21kcz0nJENDIC1ub3N0YXJ0 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAg ICA7OwotKwotKyAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAg IyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFsbHkgbWVh bmluZ2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4K LSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJv bHM9bm8KLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAg ICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xv YmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBd KlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycg fCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxw IDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgICBh cmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNl IC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQt c3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQ T1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhw c3ltX2NtZHM9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRT OyB0aGVuCi0rCSAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVm OwotKwllbHNlCi0rCSAgZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7 Ci0rCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsK LSsJZml+Ci0rCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9 LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAk bGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7Owot KwotKyAgICBpbnRlcml4WzMtOV0qKQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubwotKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPScke3dsfS1ycGF0aCwkbGliZGlyJwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Yz0nJHt3bH0tRScKLSsgICAgICAjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3QgY29t cGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rICAgICAgIyBJbnN0ZWFkLCBzaGFy ZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFzZSAoMHgxMDAwMDAwMCBieQot KyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBp cyBhIHNsb3cgdmVyeSBtZW1vcnkKLSsgICAgICAjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcg cHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rICAgICAgIyAyNTYg S2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAg YXQgbGluawotKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBh bGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRz b25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCog MjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz PSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4 cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29i amRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0g JSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAgIDs7Ci0r Ci0rICAgIGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdudSkKLSsgICAgICB0bXBfZGll dD1ubwotKyAgICAgIGlmIHRlc3QgIiRob3N0X29zIiA9IGxpbnV4LWRpZXRsaWJjOyB0aGVuCi0r CWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgZGlldFwgKikgdG1wX2RpZXQ9eWVzOzsJIyBsaW51 eC1kaWV0bGliYyB3aXRoIHN0YXRpYyBsaW5raW5nICghZGlldC1keW4pCi0rCWVzYWMKLSsgICAg ICBmaQotKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRFR1JFUCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsIFwKLSsJICYmIHRlc3QgIiR0bXBfZGlldCIgPSBubwot KyAgICAgIHRoZW4KLSsJdG1wX2FkZGZsYWc9Ci0rCXRtcF9zaGFyZWRmbGFnPSctc2hhcmVkJwot KwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KLSsgICAgICAgIHBnY2MqKQkJCQkjIFBv cnRsYW5kIEdyb3VwIEMgY29tcGlsZXIKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3 bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAg LW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZc IjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNo aXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwkgIDs7Ci0rCXBnZjc3KiB8IHBn ZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLSsJ ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYg aW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5p ZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZl bmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBp Y19mbGFnIC1Nbm9tYWluJyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRlbCBD IGNvbXBpbGVyIG9uIGlhNjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Ci0rCWVm YyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBpYTY0 Ci0rCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OwotKwlpZmMqIHwg aWZvcnQqKQkJCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlcgotKwkgIHRtcF9hZGRmbGFnPScgLW5v Zm9yX21haW4nIDs7Ci0rCWxmOTUqKQkJCQkjIExhaGV5IEZvcnRyYW4gOC4xCi0rCSAgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWM9Ci0rCSAgdG1wX3NoYXJlZGZsYWc9Jy0tc2hhcmVkJyA7OwotKwl4 bFtjQ10qKQkJCSMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJ ICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJZXNh YwotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1blwgQyopCQkJIyBTdW4g QyA1LjkKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVg bmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAt eiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwi OyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCi0rCSAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PXllcwotKwkgIHRtcF9zaGFyZWRmbGFnPSct RycgOzsKLSsJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKLSsJICB0bXBfc2hhcmVkZmxh Zz0nLUcnIDs7Ci0rCWVzYWMKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgJyIkdG1wX3NoYXJlZGZsYWci IiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKyAgICAgICAgaWYgdGVzdCAieCRzdXBwb3J0 c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKyAgICAgICAgICBhcmNoaXZlX2V4cHN5 bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot KwkgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAkQ0MgJyIkdG1wX3NoYXJlZGZsYWci IiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLnZlciAtbyAkbGliJwotKyAgICAgICAgZmkKLSsKLSsJY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsJeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBj cmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy0t d2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSct cnBhdGggJGxpYmRpcicKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKLSsJICBpZiB0 ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICBhcmNo aXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUudmVyfgotKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9c MTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCSAgICAgIGVjaG8gImxvY2Fs OiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICAkTEQgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIC12 ZXJzaW9uLXNjcmlwdCAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJICBm aQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBlbHNlCi0rICAgICAgICBsZF9zaGxpYnM9bm8KLSsg ICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2 ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAt byAkbGliJwotKwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKyAgICAgIGZp Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgaWYgJExEIC12IDI+JjEgfCAk R1JFUCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCi0rCWxkX3NobGlicz1ubwotKwljYXQg PDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRo ZSBHTlUgbGlua2VyIGNhbm5vdCByZWxpYWJseQotKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmll cyBvbiBTb2xhcmlzIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJs aW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05V Ci0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlv biBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24g c28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0 LgotKwotK19MVF9FT0YKLSsgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSsJYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFy ZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn Ci0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCop Ci0rICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAgICAqXCBbMDFdLiogfCAqXCAy LlswLTldLiogfCAqXCAyLjFbMC01XS4qKQotKwlsZF9zaGxpYnM9bm8KLSsJY2F0IDw8X0xUX0VP RiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBHTlUgbGlua2VyIHByaW9y IHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkgY3JlYXRlIHNoYXJlZCBsaWJy YXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKLSsqKiogaXMgZGlzYWJs aW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05V Ci0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3IgbmV3ZXIuICBBbm90aGVy IG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3Vy YXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1c2VkLCBhbmQgdGhlbiBy ZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICAjIEZvciBzZWN1cml0eSByZWFz b25zLCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3YXlzCi0rCSAgIyB1c2Ug YWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVzLCBhbmQgZXhjbHVkZSB0 aGUKLSsJICAjIERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4g IEJ1dCBkb2luZyBzbwotKwkgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29tcGlsZSBldmVyeXRoaW5n IHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0rCSAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAg Jzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAg YXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgIGFyY2hpdmVfZXhwc3lt X2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRf c3ltYm9scyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIGxkX3NobGlicz1ubwotKwkgIGZpCi0r CTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgYXJj aGl2ZV9jbWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHdsYXJjPQotKyAgICAgIGhhcmRj b2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAg OzsKLSsKLSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBw b3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0n JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVk ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwot KyAgICAgIGVsc2UKLSsJbGRfc2hsaWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBl c2FjCi0rCi0rICAgIGlmIHRlc3QgIiRsZF9zaGxpYnMiID0gbm87IHRoZW4KLSsgICAgICBydW5w YXRoX3Zhcj0KLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQotKyAgICAgIGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYz0KLSsgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsg ICAgZmkKLSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlv dXIgc3lzdGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQotKyAgICBjYXNlICRob3N0X29zIGluCi0r ICAgIGFpeDMqKQotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3VwcG9ydGVkCi0rICAg ICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwotKyAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9 JyRMRCAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MgLWJFOiRleHBvcnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxB R1MgJGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKyAgICAgICMgTm90ZTogdGhpcyBsaW5r ZXIgaGFyZGNvZGVzIHRoZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCi0rICAgICAg IyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgotKyAgICAgIGhhcmRjb2RlX21p bnVzX0w9eWVzCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAteiAiJGx0X3By b2dfY29tcGlsZXJfc3RhdGljIjsgdGhlbgotKwkjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcg bm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRlZCB3aXRoIGEKLSsJIyBicm9rZW4gY29sbGVj dDIuCi0rCWhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgYWl4WzQtOV0qKQotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0 aGVuCi0rCSMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVm YXVsdCwgc28gd2UgZG9uJ3QKLSsJIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCi0rCWFp eF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsJZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKLSsJbm9f ZW50cnlfZmxhZz0iIgotKyAgICAgIGVsc2UKLSsJIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRo ZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rCSMgLUMgbWVhbnMgZGVtYW5nbGUg dG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KLSsJaWYgJE5N IC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGV4cG9ydF9zeW1i b2xzX2NtZHM9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAo KChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vi c3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAk ZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gLUJD cGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8 fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9 ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycK LSsJZmkKLSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKwotKwkjIFRlc3QgaWYgd2UgYXJl IHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBub3JtYWwKLSsJIyBBSVggc3R5bGUg bGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExERkxBR1MsIHdlCi0rCSMgbmVlZCB0 byBkbyBydW50aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMjNdfGFpeDQu WzIzXS4qfGFpeFs1LTldKikKLSsJICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBp ZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwi KTsgdGhlbgotKwkgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0r CSAgZmkKLSsJICBkb25lCi0rCSAgOzsKLSsJZXNhYwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhw b3J0JwotKwlub19lbnRyeV9mbGFnPSctYm5vZW50cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAj IFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVgg bGQgY2FuCi0rICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250 ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0rICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMg aW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1tbWluaW1hbC10b2MgdG8KLSsgICAgICAjIENY WEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5v dAotKyAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0 byBMREZMQUdTLgotKwotKyAgICAgIGFyY2hpdmVfY21kcz0nJwotKyAgICAgIGhhcmRjb2RlX2Rp cmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwot KyAgICAgIGZpbGVfbGlzdF9zcGVjPScke3dsfS1mLCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29zIGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4q KQotKwkjIFdlIG9ubHkgd2FudCB0byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUg Y2hlY2sKLSsJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0 LjMrCi0rCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAot KwkgIGlmIHRlc3QgLWYgIiRjb2xsZWN0Mm5hbWUiICYmCi0rCSAgIHN0cmluZ3MgIiRjb2xsZWN0 Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCi0rCSAgdGhlbgotKwkg ICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgIDoKLSsJICBlbHNlCi0rCSAgIyBXZSBo YXZlIG9sZCBjb2xsZWN0MgotKwkgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAotKwkgICMg SXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxs ZWQKLSsJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcgaGFy ZGNvZGVfbWludXNfTAotKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKwkg IGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwk bGliZGlyJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9Ci0rCSAgZmkKLSsJICA7Owot Kwllc2FjCi0rCXNoYXJlZF9mbGFnPSctc2hhcmVkJwotKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50 aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICIn JHt3bH0tRycKLSsJZmkKLSsgICAgICBlbHNlCi0rCSMgbm90IHVzaW5nIGdjYwotKwlpZiB0ZXN0 ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41 IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkjIGNob2tlcyBvbiAtV2ws LUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgotKwkgIHNoYXJlZF9mbGFnPSctRycK LSsJZWxzZQotKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhl bgotKwkgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAgZWxzZQotKwkgICAgc2hhcmVkX2Zs YWc9JyR7d2x9LWJNOlNSRScKLSsJICBmaQotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgZXhw b3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQgc2VlbXMg dGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAg ICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qg b2Ygc3ltYm9scyB0byBleHBvcnQuCi0rICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXllcwot KyAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkj IFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3Mg KC1icnRsKSwKLSsJIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJv ZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nLWJlcm9rJwot KyAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBl bmNvZGVkIGluIGFuCi0rICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rICAgICAgICBjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YK LStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkK LSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3Qu JGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgot K2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk YWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAk YXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4 X2xpYnBhdGhfc2VkPScKLSsgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAv IHsKLSsJICAgIHMvXjAgICpcKC4qXCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4 X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAt biAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0 IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7 IHRoZW4KLSsgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9k ZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQot KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0 LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0i L3Vzci9saWI6L2xpYiI7IGZpCi0rCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKyAgICAgICAgYXJjaGl2 ZV9leHBzeW1fY21kcz0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRl cGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAi eCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxs b3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3lt X2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgZWxzZQotKwlpZiB0 ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkgIGFsbG93X3VuZGVmaW5lZF9m bGFnPSIteiBub2RlZnMiCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2Zs YWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9 JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQotKwkg IyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGlu IGFuCi0rCSAjIGVtcHR5IGV4ZWN1dGFibGUuCi0rCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRh Y19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rCi0rbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAg L0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkvXjAvIHsKLSsJICAgIHMvXjAgICpcKC4q XCkkL1wxLwotKwkgICAgcAotKwl9Ci0rICAgIH0nCi0rYWl4X2xpYnBhdGg9YGR1bXAgLUggY29u ZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRo X3NlZCJgCi0rIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFu eXRoaW5nLgotK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSsgIGFpeF9saWJwYXRo PWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUg IiRsdF9haXhfbGlicGF0aF9zZWQiYAotK2ZpCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0 ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0raWYgdGVzdCAt eiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCi0r Ci0rCSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOici JGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1 biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJy b3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIG5vX3VuZGVmaW5lZF9m bGFnPScgJHt3bH0tYmVybm90b2snCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1i ZXJvaycKLSsJICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBv YmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJGNvbnZl bmllbmNlJwotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcwotKwkgICMgVGhpcyBpcyBzaW1p bGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMu Ci0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxl cl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4k QVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29i amRpci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2Fv cyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAg ICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAg ICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgICAgICAgIGFyY2hp dmVfZXhwc3ltX2NtZHM9JycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAg ICBhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hP ICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0 YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJy YXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGly L2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAk b3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jq c34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0r ICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotKyAgICAg ICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsg ICAgICA7OwotKwotKyAgICBic2RpWzQ1XSopCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjPS1yZHluYW1pYwotKyAgICAgIDs7Ci0rCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMy KiB8IGNlZ2NjKikKLSsgICAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFz c3VtZSB0aGF0IHdlIGFyZSB1c2luZwotKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0r ICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNz LCBhcyB0aGVyZSBpcwotKyAgICAgICMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKLSsgICAgICBhbGxvd191bmRlZmluZWRfZmxh Zz11bnN1cHBvcnRlZAotKyAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBu b3QgLmEgZmlsZXMuCi0rICAgICAgbGliZXh0PWxpYgotKyAgICAgICMgVGVsbCBsdG1haW4gdG8g bWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgotKyAgICAgIHNocmV4dF9jbWRzPSIuZGxs IgotKyAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4K LSsgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFn cyBgJEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsg LWRsbH5saW5rbmFtZXM9JwotKyAgICAgICMgVGhlIGxpbmtlciB3aWxsIGF1dG9tYXRpY2FsbHkg YnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0rICAgICAgb2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcz0ndHJ1ZScKLSsgICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2Vy IHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgotKyAgICAgIG9sZF9hcmNoaXZlX2NtZHM9J2xpYiAt T1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsgICAgICBmaXhfc3JjZmlsZV9wYXRo PSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKLSsgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3Rh dGljX3J1bnRpbWVzPXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29keSop Ci0rCi0rCi0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0PW5v Ci0rICBoYXJkY29kZV9hdXRvbWF0aWM9eWVzCi0rICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPXVu c3VwcG9ydGVkCi0rICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJwotKyAgbGlua19hbGxfZGVw bGlicz15ZXMKLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkX2x0X2Rhcl9hbGxvd191bmRlZmlu ZWQiCi0rICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9z aGFyZWQ9eWVzIDs7Ci0rICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OwotKyAgZXNh YwotKyAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotKyAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rICAgIGFyY2hpdmVfY21kcz0iXCRDQyAtZHlu YW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxp YnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJz dHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKLSsgICAgbW9kdWxlX2Nt ZHM9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2Jq cyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKLSsgICAgYXJjaGl2 ZV9leHBzeW1fY21kcz0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0 X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxs b3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVy X2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9k YXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAg ICBtb2R1bGVfZXhwc3ltX2NtZHM9InNlZCAtZSAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMg PiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyBcJGFsbG93 X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNv bXBpbGVyX2ZsYWdzJHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0X2RzeW11dGlsfSIKLSsKLSsg IGVsc2UKLSsgIGxkX3NobGlicz1ubwotKyAgZmkKLSsKLSsgICAgICA7OwotKwotKyAgICBkZ3V4 KikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAg IDs7Ci0rCi0rICAgIGZyZWVic2QxKikKLSsgICAgICBsZF9zaGxpYnM9bm8KLSsgICAgICA7Owot KwotKyAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5v IHRvIGdldCBDKysgY29uc3RydWN0b3IKLSsgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25z IGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCi0rICAgICMg ZG9lcyBub3QgYnJlYWsgYW55dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUg Y29zdCBvZiBhIGxpdHRsZQotKyAgICAjIGV4dHJhIHNwYWNlKS4KLSsgICAgZnJlZWJzZDIuMiop Ci0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzIC91c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVz Ci0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMg VW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRo aXMgZmVhdHVyZS4KLSsgICAgZnJlZWJzZDIqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1C c2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAg ICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAg ICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgIyBGcmVlQlNE IDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgot KyAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfZGly ZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwot KyAgICBocHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2 ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3ds fStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9 ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgIGVsc2UKLSsJ YXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3Rh bGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsKLSsgICAgICAjIGhh cmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKyAgICAgICMg YnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKyAgICAgIGhhcmRj b2RlX21pbnVzX0w9eWVzCi0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1F JwotKyAgICAgIDs7Ci0rCi0rICAgIGhwdXgxMCopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5 ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hh cmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJk aXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxz ZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAg ICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGQ9JytiICRsaWJkaXInCi0rCWhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKwloYXJk Y29kZV9kaXJlY3Q9eWVzCi0rCWhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKLSsJZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKwkjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCBy ZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlv biBvZiB0aGUgbGlicmFyeS4KLSsJaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBmaQotKyAg ICAgIDs7Ci0rCi0rICAgIGhwdXgxMSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEg IiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0 KikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQq KQotKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25h bWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1m UElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGVsc2UKLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgYXJjaGl2 ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCopCi0rCSAgYXJjaGl2ZV9jbWRz PSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBh cmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGlu c3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwot KwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIg PSBubzsgdGhlbgotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxp YmRpcicKLSsJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0rCi0rCWNhc2UgJGhvc3RfY3B1 IGluCi0rCWhwcGEqNjQqfGlhNjQqKQotKwkgIGhhcmRjb2RlX2RpcmVjdD1ubwotKwkgIGhhcmRj b2RlX3NobGlicGF0aF92YXI9bm8KLSsJICA7OwotKwkqKQotKwkgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKLSsJICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCSAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPScke3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxs eSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24g b2YgdGhlIGxpYnJhcnkuCi0rCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsJICA7OwotKwllc2Fj Ci0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9w dXgqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0n JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0 X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkg JHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkjIFRyeSB0byB1 c2UgdGhlIC1leHBvcnRlZF9zeW1ib2wgbGQgb3B0aW9uLCBpZiBpdCBkb2VzIG5vdAotKwkjIHdv cmssIGFzc3VtZSB0aGF0IC1leHBvcnRzX2ZpbGUgZG9lcyBub3Qgd29yayBlaXRoZXIgYW5kCi0r CSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCi0rICAgICAgICBzYXZlX0xERkxBR1M9 IiRMREZMQUdTIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1leHBv cnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9udWxs IgotKyAgICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0raW50IGZvbyh2b2lk KSB7fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhl ZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVy MQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0 ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK LSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVl eHQKLSsgICAgICAgfTsgdGhlbgotKyAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3 bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5 bWJvbHMgLW8gJGxpYicKLSsKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0r Ci0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAg Y29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgIExERkxBR1M9IiRz YXZlX0xERkxBR1MiCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVD SE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAk e291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9s cyAtbyAkbGliJwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJwot KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRp cicKLSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBpbmhlcml0X3Jw YXRoPXllcwotKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAg bmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxG X18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxz ZQotKwlhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsg ICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29z NikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0r ICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX3No bGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAg IDs7Ci0rCi0rICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xk LnNvOyB0aGVuCi0rCWhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zh cj1ubwotKwloYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCWlmIHRlc3QgLXogImBlY2hv IF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0k aG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBhcmNoaXZlX2NtZHM9 JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5 bWJvbHMtZmlsZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7 d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbMDFdLiog fCBvcGVuYnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0rCSAgICAgYXJjaGl2ZV9jbWRz PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsJICAgICA7 OwotKwkgICAqKQotKwkgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICAgOzsKLSsJICBl c2FjCi0rCWZpCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAg IDs7Ci0rCi0rICAgIG9zMiopCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwk bGliZGlyJwotKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRFQ0hPICJMSUJSQVJZ ICRsaWJuYW1lIElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gIkRFU0NSSVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu ZGVmfiRFQ0hPIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICIgU0lO R0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPIEVYUE9S VFMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicK LSsgICAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpk aXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgOzsKLSsK LSsgICAgb3NmMyopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3df dW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNo aXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4g IiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5n IiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3Nv X2xvY2F0aW9ucyAtbyAkbGliJwotKyAgICAgIGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNv bmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lv biAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVl ZF9sYz0nbm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgg JHt3bH0kbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAg IDs7Ci0rCi0rICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24g b2YgLW1zeW0gZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFsbG93 X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLSsJYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3 bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1 dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgZWxzZQotKwlhbGxvd191bmRl ZmluZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0Mg LXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkg JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1f Y21kcz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxu IiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxu IiAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21waWxlcl9mbGFncyAkbGlib2JqcyAk ZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJY LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kUk0gJGxpYi5leHAnCi0rCi0rCSMgQm90 aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBhcmNo aXZlX2NtZHNfbmVlZF9sYz0nbm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06 Ci0rICAgICAgOzsKLSsKLSsgICAgc29sYXJpcyopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9 JyAteiBkZWZzJwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPSck e3dsfScKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3ds fS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNh dCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5l Y2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtc2hhcmVkICR7d2x9LXog JHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rICAg ICAgZWxzZQotKwljYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJKiJDb21waWxlcnMgNS4wIiopCi0r CSAgd2xhcmM9JycKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAtRyR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwot KwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQg JGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNo byAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkTEQgLUcke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAgOzsKLSsJKikKLSsJICB3bGFyYz0nJHt3 bH0nCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaCAk c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9y dF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9j YWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVf c2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzb2xhcmlz Mi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0rICAgICAgKikKLSsJIyBUaGUgY29tcGls ZXIgZHJpdmVyIHdpbGwgY29tYmluZSBhbmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJIyBi dXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFnJy4gIEdDQyBkaXNjYXJkcyBpdCB3aXRob3V0 IGAkd2wnLAotKwkjIGJ1dCBpcyBjYXJlZnVsIGVub3VnaCBub3QgdG8gcmVvcmRlci4KLSsJIyBT dXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJlIDIuNS4xPykKLSsJaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0teiAke3ds fWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JwotKwll bHNlCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVu Y2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGxp bmtfYWxsX2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgc3Vub3M0KikKLSsgICAgICBp ZiB0ZXN0ICJ4JGhvc3RfdmVuZG9yIiA9IHhzZXF1ZW50OyB0aGVuCi0rCSMgVXNlICRDQyB0byBs aW5rIHVuZGVyIHNlcXVlbnQsIGJlY2F1c2UgaXQgdGhyb3dzIGluIHNvbWUgZXh0cmEgLm8KLSsJ IyBmaWxlcyB0aGF0IG1ha2UgLmluaXQgYW5kIC5maW5pIHNlY3Rpb25zIHdvcmsuCi0rCWFyY2hp dmVfY21kcz0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJExEIC1hc3Nl cnQgcHVyZS10ZXh0IC1Cc3RhdGljIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKLSsgICAgICBmaQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxp YmRpcicKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfbWludXNf TD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsg ICAgc3lzdjQpCi0rICAgICAgY2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsJc25pKQotKwkgIGFyY2hp dmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKwkgIGhhcmRjb2RlX2RpcmVjdD15ZXMgIyBpcyB0aGlzIHJlYWxseSB0cnVl Pz8/Ci0rCTs7Ci0rCXNpZW1lbnMpCi0rCSAgIyMgTEQgaXMgbGQgaXQgbWFrZXMgYSBQTEFNTElC Ci0rCSAgIyMgQ0MganVzdCBtYWtlcyBhIEdyb3NzTW9kdWxlLgotKwkgIGFyY2hpdmVfY21kcz0n JExEIC1HIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICByZWxv YWRfY21kcz0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rCSAgaGFyZGNvZGVfZGly ZWN0PW5vCi0rICAgICAgICA7OwotKwltb3Rvcm9sYSkKLSsJICBhcmNoaXZlX2NtZHM9JyRMRCAt RyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJ ICBoYXJkY29kZV9kaXJlY3Q9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRl c3RzIHNheSB0aGV5IGxpZQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBydW5wYXRoX3Zhcj0n TERfUlVOX1BBVEgnCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIDs7 Ci0rCi0rICAgIHN5c3Y0LjMqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRj b2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9Jy1C ZXhwb3J0JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1k IC91c3IvbmVjOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwloYXJkY29kZV9zaGxpYnBhdGhf dmFyPW5vCi0rCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rCWhhcmRjb2RlX3J1bnBhdGhfdmFy PXllcwotKwlsZF9zaGxpYnM9eWVzCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2 NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5p eHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnPSck e3dsfS16LHRleHQnCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8KLSsgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwot KwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhw b3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAt RyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRf c3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2 NSogfCBzY281djYqKQotKyAgICAgICMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3 ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rICAgICAgIyBsaW5rIHdpdGggLWxj LCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3ltYm9scyB1c2VkIGZyb20gbGliYyB0bwotKyAg ICAgICMgYWx3YXlzIGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGli cmFyeSB3b3VsZAotKyAgICAgICMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1 c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsgICAgICAjIHRob3VnaCwgd2hpY2ggZG9lcyBj YXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5kZWQKLSsgICAgICAj IGFzIC16IGRlZnMuCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyR7d2x9LXosdGV4dCcKLSsg ICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0nJHt3bH0teixub2RlZnMnCi0rICAgICAgYXJjaGl2 ZV9jbWRzX25lZWRfbGM9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tUiwkbGliZGlyJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMK LSsgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUJleHBvcnQnCi0rICAgICAg cnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJwotKwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRs aWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlhcmNoaXZlX2V4cHN5bV9j bWRzPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAg ZWxzZQotKwlhcmNoaXZlX2NtZHM9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRD QyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZmkKLSsgICAgICA7 OwotKwotKyAgICB1dHM0KikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj1ubwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgbGRfc2hsaWJzPW5vCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0IHgkaG9zdF92ZW5kb3IgPSB4c25pOyB0 aGVuCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgIHN5c3Y0IHwgc3lzdjQuMnV3MiogfCBz eXN2NC4zKiB8IHN5c3Y1KikKLSsJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1CbGFy Z2VkeW5zeW0nCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBmaQotKyAgZmkKLSsKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hsaWJzIiA+JjUKLSskYXNfZWNobyAi JGxkX3NobGlicyIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlicyIgPSBubyAmJiBjYW5fYnVpbGRf c2hhcmVkPW5vCi0rCi0rd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xkCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIwotKyMgRG8gd2UgbmVlZCB0byBleHBsaWNp dGx5IGxpbmsgbGliYz8KLSsjCi0rY2FzZSAieCRhcmNoaXZlX2NtZHNfbmVlZF9sYyIgaW4KLSt4 fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZlX2NtZHNf bmVlZF9sYz15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHMgaW4KLSsgICAgKid+ JyopCi0rICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1h bmQgc2VxdWVuY2VzLgotKyAgICAgIDs7Ci0rICAgICckQ0MgJyopCi0rICAgICAgIyBUZXN0IHdo ZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29t ZQotKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2Nj IGFscmVhZHkgcGFzc2VzIC1sYwotKyAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3Jl IC1sZ2NjLgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0 aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4iID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbi4uLiAi ID4mNjsgfQotKyAgICAgICRSTSBjb25mdGVzdCoKLSsgICAgICBlY2hvICIkbHRfc2ltcGxlX2Nv bXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICAgICBpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRh Y19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAyPmNv bmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAgc29uYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsaWI9 Y29uZnRlc3QKLSsgICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgICAgICAg ZGVwbGlicz0KLSsgICAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsCi0rCXBpY19mbGFnPSRs dF9wcm9nX2NvbXBpbGVyX3BpYwotKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9LXYKLSsgICAgICAg IGxpbmtlcl9mbGFncz0tdgotKyAgICAgICAgdmVyc3RyaW5nPQotKyAgICAgICAgb3V0cHV0X29i amRpcj0uCi0rICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0Ci0rICAgICAgICBsdF9zYXZlX2FsbG93 X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZwotKyAgICAgICAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9Ci0rICAgICAgICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5c JjFcIiIpID4mNQotKyAgKGV2YWwgJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxj IFwiIFw+L2Rldi9udWxsIDJcPlwmMSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0KLSsgICAgICAgIHRoZW4KLSsJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAg ICAgICAgZWxzZQotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcwotKyAgICAgICAgZmkKLSsg ICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFn Ci0rICAgICAgZWxzZQotKyAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Ci0rICAgICAgZmkK LSsgICAgICAkUk0gY29uZnRlc3QqCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGFyY2hpdmVfY21kc19uZWVkX2xjIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVf Y21kc19uZWVkX2xjIiA+JjY7IH0KLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBmaQotKyAgOzsK LStlc2FjCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0KLSsKLStp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBkYXJ3 aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7Ci0rICAgICopIGx0X2F3a19h cmc9Ii9ebGlicmFyaWVzOi8iIDs7Ci0rICBlc2FjCi0rICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAk Q0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGli cmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9z cGVjIiB8ICRHUkVQICc7JyA+L2Rldi9udWxsIDsgdGhlbgotKyAgICAjIGlmIHRoZSBwYXRoIGNv bnRhaW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCi0rICAgICMg b3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6 IikgLSBpdCBpcwotKyAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhu YW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKLSsgICAgIyBva2F5IGluIHRoZSByZWFs IHdvcmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCi0rICAg IGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VE IC1lICdzLzsvIC9nJ2AKLSsgIGVsc2UKLSsgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8g IiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ci YAotKyAgZmkKLSsgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3Bh Y2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0Ci0rICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlm IG5lY2Vzc2FyeS4KLSsgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQotKyAgbHRfbXVsdGlf b3NfZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRp cmVjdG9yeSAyPi9kZXYvbnVsbGAKLSsgIGZvciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3Bh dGhfc3BlYzsgZG8KLSsgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19k aXIiOyB0aGVuCi0rICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRf c2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciIKLSsgICAgZWxz ZQotKyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAotKwlsdF90bXBfbHRfc2VhcmNo X3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKLSsg ICAgZmkKLSsgIGRvbmUKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRf c2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCi0rQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30gewot KyAgbHRfZm9vPSIiOwotKyAgbHRfY291bnQ9MDsKLSsgIGZvciAobHRfaSA9IE5GOyBsdF9pID4g MDsgbHRfaS0tKSB7Ci0rICAgIGlmICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKLSsg ICAgICBpZiAoJGx0X2kgPT0gIi4uIikgewotKyAgICAgICAgbHRfY291bnQrKzsKLSsgICAgICB9 IGVsc2UgewotKyAgICAgICAgaWYgKGx0X2NvdW50ID09IDApIHsKLSsgICAgICAgICAgbHRfZm9v PSIvIiAkbHRfaSBsdF9mb287Ci0rICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICBsdF9jb3Vu dC0tOwotKyAgICAgICAgfQotKyAgICAgIH0KLSsgICAgfQotKyAgfQotKyAgaWYgKGx0X2ZvbyAh PSAiIikgeyBsdF9mcmVxW2x0X2Zvb10rKzsgfQotKyAgaWYgKGx0X2ZyZXFbbHRfZm9vXSA9PSAx KSB7IHByaW50IGx0X2ZvbzsgfQotK30nYAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAk RUNITyAkbHRfc2VhcmNoX3BhdGhfc3BlY2AKLStlbHNlCi0rICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rZmkKLStsaWJyYXJ5X25hbWVz X3NwZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStzb25hbWVfc3BlYz0KLStzaHJleHRf Y21kcz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9zdHVuaW5zdGFsbF9jbWRzPQotK2Zp bmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0aF92YXI9Ci0rc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5cGU9bm9uZQotK2R5bmFtaWNfbGlu a2VyPSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAv dXNyL2xpYiIKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgotK2hhcmRjb2RlX2ludG9fbGlicz1u bwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRv ZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFy Z3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0rY2FzZSAkaG9zdF9vcyBpbgotK2Fp eDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKLSsgIHNo bGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBw b3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIDs7Ci0r Ci0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0 Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3Jl YXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhl IGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBU aGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBv biBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAg ICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNl ICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAxXSB8IGFpeDQuWzAxXS4qKQotKyAg ICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dO VUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMgJwotKwkgICBlY2hvICcjZW5kaWYn OyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgotKwk6Ci0rICAg ICAgZWxzZQotKwljYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQs IHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKLSsgICAgIyBzb25hbWUg aW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0 bwotKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4g ZnV0dXJlLgotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRo ZW4KLSsgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0 ZXIpIHVzZSBsaWI8bmFtZT4uc28KLSsgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8g bGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAotKyAgICAgICMgdHlwaWNhbCBBSVgg c2hhcmVkIGxpYnJhcmllcy4KLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgZWxzZQotKyAgICAg ICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91 Z2ggQUlYNC4yCi0rICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0 aW1lIGxpbmtpbmcuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfS5hICRsaWJuYW1lLmEnCi0rICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZmkKLSsgICAgc2hsaWJwYXRoX3Zhcj1MSUJQ QVRICi0rICBmaQotKyAgOzsKLSsKLSthbWlnYW9zKikKLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0r ICBwb3dlcnBjKQotKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1 cHBvcnRzIC5zbyBsaWJyYXJpZXMuCi0rICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFi bGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICAgIDs7Ci0rICBtNjhrKQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRs aWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4 bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxp YiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRF Q0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbXi9dKlwpXC5peGxpYnJhcnkkJVwx JSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cg ImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAv c3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsg ZG9uZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRo b3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0r YnNkaVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29u ZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9YMTEvbGliIC91c3IvY29u dHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCi0rICAjIHRoZSBkZWZhdWx0IGxk LnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIvbGliIGFuZAotKyAgIyAvdXNyL1gx MVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3IvWDExUjYpLCBidXQgbGV0IHVzIGFs bG93Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNlIGludG8gcHJvZ3JhbXMKLSsgIDs7 Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgdmVyc2lvbl90eXBl PXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotKyAgeWVzLGN5 Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVzLGNlZ2NjKikKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRv ICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9j bWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVM TCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFt ZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAg ICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9w cm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxk aXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAt biAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwk ZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmlu c3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxu YW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxw YXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3ln JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHts aWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1l ICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGli IgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgICAjIE1pbkdXIERMTHMg dXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtz aGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQt c2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwgJFNFRCAtZSAicy9ebGlicmFyaWVz Oi8vIiAtZSAicyw9LywvLGciYAotKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAg IyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSCBwcmludGVkIGJ5Ci0r ICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5uaW5nIG9uIEN5Z3dpbi4gR2NjIHBy aW50cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3 aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0rICAgICAgICAjIGRyaXZlIGxl dHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMgdGhlbSksIHNvIGxlYXZlIHRoZW0s Ci0rICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQgcGFzcyBmaWxlcyBmb3VuZCB0aGVy ZSB0byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3Rh bmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8g L2cnYAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVD SE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJB VE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3 MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hv ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4 dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKwotKyAgKikKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIDs7Ci0r ICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwotKyAgIyBGSVhNRTogZmly c3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlz IGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5 KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRh cndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7 bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz Ci0rICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRl c3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xv Y2FsL2xpYiIKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAv bGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAot KyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVlYnNkMSop Ci0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdvbmZseSop Ci0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVt ZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KLSsgIGlm IHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1gL3Vzci9i aW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGZyZWVi c2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYgOzsKLSsg ICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKLSsgIGNh c2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAg OzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAgZXNhYwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg IGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICA7 OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg IDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0rICBmcmVl YnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJlZWJzZGVs ZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAgaGFyZGNv ZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5kIERyYWdv bkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2Rl X2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikKLSsgIHZl cnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAk e2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStocHV4OSogfCBocHV4MTAq IHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWpv ciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2FpbnN0IG90 aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQot KyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxl c3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGlm IHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMyIC91c3Iv bG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIv dXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAgICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7 Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxlIFNITElC X1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9l bnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIwXzY0Igot KyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj Ci0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BBVEgKLSsg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQgdG8gZW5h YmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBlc2FjCi0r ICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFy ZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgOzsK LSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBkeW5h bWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYq IHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4KikgdmVy c2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19n bnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQotKwkJdmVy c2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwot KyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9uc3RvcHV4 KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAgY2FzZSAk TEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAot KyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQotKyAgICAg IGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8KiItbjMy ICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJzdWZmPTMy IHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCotbWVsZjY0 Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGli bWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZl ci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9s aWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZv ciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51eCphb3V0 KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rIyBUaGlz IG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp ZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRj aGVkIHRvIHNldCBEVF9SVU5QQVRICi0rICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgIHNhdmVf bGliZGlyPSRsaWJkaXIKLSsgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBp bGVyX3dsXCI7IFwKLSsgICAgICAgTERGTEFHUz1cIlwkTERGTEFHUyAkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY1wiIgotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYg eyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxg KiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190 cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3Ry eV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19s aW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIk YWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29t cGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAg ICAgfTsgdGhlbgotKyAgaWYgICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19leGVleHQpIDI+L2Rl di9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbDsgdGhlbgotKyAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotK2ZpCi0rCi0rZWxzZQotKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQotKwotKwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29u ZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r ICBMREZMQUdTPSRzYXZlX0xERkxBR1MKLSsgIGxpYmRpcj0kc2F2ZV9saWJkaXIKLSsKLSsgICMg VGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgotKyAg IyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0r ICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19saWJzPXll cwotKwotKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGli cmFyeSBwYXRoLgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xp YjY0IC9saWIgL3Vzci9saWIiCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRv IHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsg ICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0 YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBw cmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4q Ly87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAv IC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKLSsgIGZpCi0rCi0r ICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5zby4xIGFuZCBkaXNhYmxlIHNoYXJlZCBs aWJyYXJpZXMgb24KLSsgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVk IHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKLSsgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2lu Y2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLAotKyAgIyBtb3N0IHBvd2Vy cGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxpbmtpbmcgdGhlc2UgZGF5cyBhbmQKLSsg ICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNoYXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92 ZWQsIGFuZCB3ZQotKyAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBp biB1c2UuCi0rICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJwotKyAgOzsKLSsKLStu ZXRic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsg IG5lZWRfdmVyc2lvbj1ubwotKyAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBf X0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCcKLSsgICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRj b25maWcgLW0gJGxpYmRpcicKLSsgICAgZHluYW1pY19saW5rZXI9J05ldEJTRCAoYS5vdXQpIGxk LnNvJwotKyAgZWxzZQotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBkeW5hbWljX2xpbmtl cj0nTmV0QlNEIGxkLmVsZl9zbycKLSsgIGZpCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgOzsKLSsKLStuZXdzb3M2KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICA7OwotKwotKypudG8qIHwgKnFueCopCi0r ICB2ZXJzaW9uX3R5cGU9cW54Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNvJwotKyAgOzsKLSsKLStvcGVuYnNkKikK LSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliIgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMg b2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5lZWQgdmVyc2lvbmVkIGxpYnMuCi0rICBj YXNlICRob3N0X29zIGluCi0rICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopCW5lZWRfdmVy c2lvbj15ZXMgOzsKLSsgICAgKikJCQkJbmVlZF92ZXJzaW9uPW5vICA7OwotKyAgZXNhYwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRz PSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaWYgdGVzdCAteiAiYGVjaG8gX19FTEZfXyB8ICRDQyAt RSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3Bl bmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgb3Bl bmJzZDIuWzg5XSB8IG9wZW5ic2QyLls4OV0uKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cwotKwk7OwotKyAgICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgZmkKLSsgIDs7Ci0rCi0rb3MyKikKLSsgIGxpYm5hbWVfc3BlYz0nJG5h bWUnCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5 bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAg OzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGli IC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLSsgIDs7Ci0rCi0rcmRvcyopCi0rICBkeW5h bWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStzb2xhcmlzKikKLSsgIHZlcnNpb25fdHlwZT1saW51 eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAjIGxkZCBj b21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQotKyAgcG9zdGluc3RhbGxf Y21kcz0nY2htb2QgK3ggJGxpYicKLSsgIDs7Ci0rCi0rc3Vub3M0KikKLSsgIHZlcnNpb25fdHlw ZT1zdW5vcwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGZpCi0rICBuZWVkX3ZlcnNpb249eWVzCi0rICA7OwotKwot K3N5c3Y0IHwgc3lzdjQuMyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X3ZlbmRv ciBpbgotKyAgICBzbmkpCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0r ICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgK LSsgICAgICA7OwotKyAgICBzaWVtZW5zKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg ICAgIDs7Ci0rICAgIG1vdG9yb2xhKQotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAg IG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot KyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9s aWInCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc3lzdjQqTVAqKQotKyAgaWYgdGVz dCAtZCAvdXNyL25lYyA7dGhlbgotKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7 c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3Nw ZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCi0rICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBmaQotKyAgOzsKLSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281 djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSsgIHZlcnNpb25fdHlw ZT1mcmVlYnNkLWVsZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3No YXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBp ZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xp YiAvbGliJwotKyAgZWxzZQotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2Nz L2xpYiAvdXNyL2xpYicKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNjbzMuMnY1KikK LSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyAvbGliIgotKwk7OwotKyAgICBlc2FjCi0rICBmaQotKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Jy91c3IvbGliJwotKyAgOzsKLSsKLSt0cGYqKQotKyAgIyBUUEYgaXMgYSBjcm9z cy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgotKyAgdmVy c2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1u bwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLSsqKQotKyAg ZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xp bmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9z aGFyZWQ9bm8KLSsKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRo X3ZhciAkcnVucGF0aF92YXIiCi0raWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlh Ymxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VY RUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgotK2ZpCi0rCi0raWYgdGVzdCAi JHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIK LStmaQotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNv ZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9 Ci0raGFyZGNvZGVfYWN0aW9uPQotK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjIiB8fAotKyAgIHRlc3QgLW4gIiRydW5wYXRoX3ZhciIgfHwKLSsgICB0ZXN0ICJYJGhhcmRj b2RlX2F1dG9tYXRpYyIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAjIFdlIGNhbiBoYXJkY29kZSBu b24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAh PSBubyAmJgotKyAgICAgIyBJZiB0aGUgb25seSBtZWNoYW5pc20gdG8gYXZvaWQgaGFyZGNvZGlu ZyBpcyBzaGxpYnBhdGhfdmFyLCB3ZQotKyAgICAgIyBoYXZlIHRvIHJlbGluaywgb3RoZXJ3aXNl IHdlIG1pZ2h0IGxpbmsgd2l0aCBhbiBpbnN0YWxsZWQgbGlicmFyeQotKyAgICAgIyB3aGVuIHdl IHNob3VsZCBiZSBsaW5raW5nIHdpdGggYSB5ZXQtdG8tYmUtaW5zdGFsbGVkIG9uZQotKyAgICAg IyMgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgKSIgIT0gbm8gJiYK LSsgICAgIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhlbgotKyAgICAjIExpbmtp bmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5LgotKyAg ICBoYXJkY29kZV9hY3Rpb249cmVsaW5rCi0rICBlbHNlCi0rICAgICMgV2UgY2FuIGxpbmsgd2l0 aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5vbmV4aXN0aW5nIGRpcnMuCi0r ICAgIGhhcmRjb2RlX2FjdGlvbj1pbW1lZGlhdGUKLSsgIGZpCi0rZWxzZQotKyAgIyBXZSBjYW5u b3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUgZXhpc3Rp bmcKLSsgICMgZGlyZWN0b3JpZXMuCi0rICBoYXJkY29kZV9hY3Rpb249dW5zdXBwb3J0ZWQKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb24i ID4mNQotKyRhc19lY2hvICIkaGFyZGNvZGVfYWN0aW9uIiA+JjY7IH0KLSsKLStpZiB0ZXN0ICIk aGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluayB8fAotKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoIiA9 IHllczsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCi0rICBl bmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoIiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4K LSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQotKyAgZW5hYmxlX2Zhc3Rf aW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICBpZiB0ZXN0ICJ4JGVu YWJsZV9kbG9wZW4iICE9IHh5ZXM7IHRoZW4KLSsgIGVuYWJsZV9kbG9wZW49dW5rbm93bgotKyAg ZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24KLSsgIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9 dW5rbm93bgotK2Vsc2UKLSsgIGx0X2N2X2Rsb3Blbj1ubwotKyAgbHRfY3ZfZGxvcGVuX2xpYnM9 Ci0rCi0rICBjYXNlICRob3N0X29zIGluCi0rICBiZW9zKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJs b2FkX2FkZF9vbiIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIGx0X2N2X2Rsb3Blbl9z ZWxmPXllcwotKyAgICA7OwotKwotKyAgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGx0 X2N2X2Rsb3Blbj0iTG9hZExpYnJhcnkiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICA7 OwotKwotKyAgY3lnd2luKikKLSsgICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCi0rICAgIGx0X2N2 X2Rsb3Blbl9saWJzPQotKyAgICA7OwotKwotKyAgZGFyd2luKikKLSsgICMgaWYgbGliZGwgaXMg aW5zdGFsbGVkIHdlIG5lZWQgdG8gbGluayBhZ2FpbnN0IGl0Ci0rICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElC Uz0iLWxkbCAgJExJQlMiCi0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBh biBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJu IHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5 cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAi QyIKLSsjZW5kaWYKLStjaGFyIGRsb3BlbiAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVy biBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19s aW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0 LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8 Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBh Y19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK LSsKLSsJYWNfY3ZfbGliX2RsX2Rsb3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRT WU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4k YWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJf ZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2 X2Rsb3Blbl9saWJzPSItbGRsIgotK2Vsc2UKLSsKLSsgICAgbHRfY3ZfZGxvcGVuPSJkeWxkIgot KyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCi0rCi0r ZmkKLSsKLSsgICAgOzsKLSsKLSsgICopCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3Igc2hsX2xvYWQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBz aGxfbG9hZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19zaGxfbG9hZCtzZXR9 IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNF T0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKy8qIERlZmluZSBzaGxf bG9hZCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVz IHNobF9sb2FkLgotKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJl cyBnZXR0aW1lb2ZkYXkuICAqLwotKyNkZWZpbmUgc2hsX2xvYWQgaW5ub2N1b3VzX3NobF9sb2Fk Ci0rCi0rLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1 bGx5IGZldyBwcm90b3R5cGVzLAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHNo bF9sb2FkICgpOyBiZWxvdy4KLSsgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwotKwotKyNpZmRlZiBfX1NURENfXwotKyMg aW5jbHVkZSA8bGltaXRzLmg+Ci0rI2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRp ZgotKwotKyN1bmRlZiBzaGxfbG9hZAotKwotKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwg cHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1p Z2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4g aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9f Y3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgc2hsX2xvYWQgKCk7Ci0rLyog VGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1w bGVtZW50cwotKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25z IGFyZSBhY3R1YWxseSBuYW1lZAotKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQg dGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfc2hs X2xvYWQgfHwgZGVmaW5lZCBfX3N0dWJfX19zaGxfbG9hZAotK2Nob2tlIG1lCi0rI2VuZGlmCi0r Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gc2hsX2xvYWQgKCk7Ci0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRh Y19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRl c3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFj X2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9mdW5jX3NobF9sb2FkPXllcwotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfZnVuY19zaGxfbG9hZD1u bwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAgICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPiY1Ci0rJGFzX2Vj aG8gIiRhY19jdl9mdW5jX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNf c2hsX2xvYWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIgotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2hsX2xvYWQg aW4gLWxkbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRs ZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbGQgICRMSUJTIgotK2NhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K LSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBzaGxfbG9h ZCAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBzaGxfbG9hZCAoKTsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewot KwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRl c3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQ9 eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19jdl9saWJfZGxk X3NobF9sb2FkPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5v byBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRh Y19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9s aWJfZGxkX3NobF9sb2FkIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfc2hsX2xv YWQiID0geCIieWVzOyB0aGVuCi0rICBsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9w ZW5fbGlicz0iLWxkbGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBkbG9wZW4iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4u Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfZGxvcGVuK3NldH0iID0gc2V0OyB0 aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBj b25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rLyogRGVmaW5lIGRsb3BlbiB0byBhbiBp bm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIGRsb3Blbi4KLSsg ICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5 LiAgKi8KLSsjZGVmaW5lIGRsb3BlbiBpbm5vY3VvdXNfZGxvcGVuCi0rCi0rLyogU3lzdGVtIGhl YWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVz LAotKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGRsb3BlbiAoKTsgYmVsb3cuCi0r ICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5l ZCwgc2luY2UKLSsgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29t cGlsZXJzLiAgKi8KLSsKLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgot KyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgZGxvcGVu Ci0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4g ZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0 eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBl IHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMi Ci0rI2VuZGlmCi0rY2hhciBkbG9wZW4gKCk7Ci0rLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5l cyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwotKyAgICB0byBhbHdheXMg ZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAotKyAg ICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFs aWFzLiAgKi8KLSsjaWYgZGVmaW5lZCBfX3N0dWJfZGxvcGVuIHx8IGRlZmluZWQgX19zdHViX19f ZGxvcGVuCi0rY2hva2UgbWUKLSsjZW5kaWYKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVy biBkbG9wZW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19s aW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0 LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4m NQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8 Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBh Y19jdl9mdW5jX2Rsb3Blbj15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCWFjX2N2X2Z1bmNfZGxvcGVuPW5vCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQot K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5j X2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9mdW5jX2Rsb3BlbiIgPiY2OyB9Ci0raWYg dGVzdCAieCRhY19jdl9mdW5jX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Bl bj0iZGxvcGVuIgotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9w ZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3Blbitz ZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxkbCAgJExJQlMiCi0rY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBh bnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBi dWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHku ICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIGRs b3BlbiAoKTsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVybiBkbG9wZW4gKCk7Ci0rICA7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3Ry eSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsK LSsJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9OyB0aGVuCi0rICBhY19jdl9saWJfZGxfZGxvcGVuPXll cwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQot K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYWNfY3ZfbGliX2RsX2Rs b3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAot KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rs b3BlbiIgPiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsg dGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgot K2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZGxvcGVu IGluIC1sc3ZsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2 bGQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X2xpYl9zdmxkX2Rsb3BlbitzZXR9IiA9 IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWxzdmxkICAkTElCUyIKLStjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJyaWRlIGFueSBH Q0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVzZSBjaGFyIGJl Y2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwotKyAgIGJ1aWx0 aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICov Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2NoYXIgZGxvcGVu ICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBp bgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBh Y190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21l OiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUK LSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsg IGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25m dGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYg ewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3Qk YWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15ZXMK LStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2xpYl9zdmxkX2Rs b3Blbj1ubwotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAot KyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfc3Zs ZF9kbG9wZW4iID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA9IHgi InllczsgdGhlbgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSIt bHN2bGQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBkbGRfbGluayBpbiAtbGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsZF9s aW5rIGluIC1sZGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9saWJfZGxkX2RsZF9s aW5rK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vs c2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsZCAgJExJQlMi Ci0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVy cmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBV c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MK LSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwg YXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStj aGFyIGRsZF9saW5rICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsZF9saW5rICgp OwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rl c3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgYWNfY3ZfbGliX2Rs ZF9kbGRfbGluaz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFj X2N2X2xpYl9kbGRfZGxkX2xpbms9bm8KLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4 X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4 dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjUKLSskYXNfZWNo byAiJGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGli X2RsZF9kbGRfbGluayIgPSB4IiJ5ZXM7IHRoZW4KLSsgIGx0X2N2X2Rsb3Blbj0iZGxkX2xpbmsi IGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsK LSsKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsg IGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Bl bj15ZXMKLSsgIGVsc2UKLSsgICAgZW5hYmxlX2Rsb3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2Ug JGx0X2N2X2Rsb3BlbiBpbgotKyAgZGxvcGVuKQotKyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxB R1MiCi0rICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVyX2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFH Uz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgotKwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZM QUdTIgotKyAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxB R1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wiCi0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMi Ci0rICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGlicyAkTElCUyIKLSsKLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4g aXRzZWxmIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4g ZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfZGxvcGVuX3NlbGYr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3Zf ZGxvcGVuX3NlbGY9Y3Jvc3MKLStlbHNlCi0rICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2Nv cmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCi0rICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgotKyAg Y2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsjbGluZSAxMjU4NCAiY29uZmlndXJl IgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKwotKyNpZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVk ZSA8ZGxmY24uaD4KLSsjZW5kaWYKLSsKLSsjaW5jbHVkZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYg UlRMRF9HTE9CQUwKLSsjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UK LSsjICBpZmRlZiBETF9HTE9CQUwKLSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFM Ci0rIyAgZWxzZQotKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5k aWYKLSsKLSsvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUg Y29tbWFuZCBsaW5lIGlmIHdlCi0rICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21l IHBsYXRmb3JtLiAqLwotKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVwotKyMgIGlmZGVmIFJUTERf TEFaWQotKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQotKyMgIGVsc2UK LSsjICAgIGlmZGVmIERMX0xBWlkKLSsjICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURM X0xBWlkKLSsjICAgIGVsc2UKLSsjICAgICAgaWZkZWYgUlRMRF9OT1cKLSsjICAgICAgICBkZWZp bmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVwotKyMgICAgICBlbHNlCi0rIyAgICAgICAgaWZk ZWYgRExfTk9XCi0rIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKLSsj ICAgICAgICBlbHNlCi0rIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCi0rIyAg ICAgICAgZW5kaWYKLSsjICAgICAgZW5kaWYKLSsjICAgIGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5k aWYKLSsKLSt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2 b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsg IGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsg ICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3Vz Y29yZTsKLSsgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRs dF9kbG5lZWRfdXNjb3JlOwotKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwotKyAgICB9Ci0r ICBlbHNlCi0rICAgIHB1dHMgKGRsZXJyb3IgKCkpOwotKwotKyAgcmV0dXJuIHN0YXR1czsKLSt9 Ci0rX0xUX0VPRgotKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlu a1wiIikgPiY1Ci0rICAoZXZhbCAkYWNfbGluaykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVs bDsgdGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKLSsgICAg bHRfc3RhdHVzPSQ/Ci0rICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KLSsgICAgICB4JGx0X2Rsbm9f dXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZj15ZXMgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2Nv cmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSBs dF9jdl9kbG9wZW5fc2VsZj1ubyA7OwotKyAgICBlc2FjCi0rICBlbHNlIDoKLSsgICAgIyBjb21w aWxhdGlvbiBmYWlsZWQKLSsgICAgbHRfY3ZfZGxvcGVuX3NlbGY9bm8KLSsgIGZpCi0rZmkKLSty bSAtZnIgY29uZnRlc3QqCi0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVu X3NlbGYiID4mNjsgfQotKwotKyAgICBpZiB0ZXN0ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5 ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIExERkxBR1M9XCJc JExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSsgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dy YW0gY2FuIGRsb3BlbiBpdHNlbGYiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg YSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9 Ci0raWYgdGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRoZW4K LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGlj PWNyb3NzCi0rZWxzZQotKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2Rs bmVlZF91c2NvcmU9MgotKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0 ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rI2xpbmUgMTI2ODAgImNvbmZpZ3VyZSIKLSsjaW5jbHVk ZSAiY29uZmRlZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+ Ci0rI2VuZGlmCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFM Ci0rIyAgZGVmaW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYg RExfR0xPQkFMCi0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UK LSsjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyog V2UgbWF5IGhhdmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGlu ZSBpZiB3ZQotKyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4g Ki8KLSsjaWZuZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAg IGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRl ZiBETF9MQVpZCi0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAg ICBlbHNlCi0rIyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFa WV9PUl9OT1cJUlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwot KyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxz ZQotKyMgICAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlm Ci0rIyAgICAgIGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rdm9p ZCBmbm9yZCgpIHsgaW50IGk9NDI7fQotK2ludCBtYWluICgpCi0rewotKyAgdm9pZCAqc2VsZiA9 IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7Ci0rICBpbnQgc3RhdHVz ID0gJGx0X2RsdW5rbm93bjsKLSsKLSsgIGlmIChzZWxmKQotKyAgICB7Ci0rICAgICAgaWYgKGRs c3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0rICAg ICAgZWxzZSBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSBzdGF0dXMgPSAkbHRfZGxuZWVkX3Vz Y29yZTsKLSsgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAg ICBwdXRzIChkbGVycm9yICgpKTsKLSsKLSsgIHJldHVybiBzdGF0dXM7Ci0rfQotK19MVF9FT0YK LSsgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQot KyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMp OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KLSsg ICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCi0rICAgIGx0X3N0YXR1cz0k PwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5vX3VzY29yZSkgbHRf Y3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGxuZWVkX3VzY29yZSkg bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGx1bmtub3dufHgq KSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKLSsgICAgZXNhYwotKyAgZWxzZSA6Ci0r ICAgICMgY29tcGlsYXRpb24gZmFpbGVkCi0rICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1u bwotKyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4mNQot KyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIiA+JjY7IH0KLSsgICAgZmkKLSsK LSsgICAgQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgotKyAgICBMREZMQUdTPSIkc2F2ZV9MREZM QUdTIgotKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgotKyAgICA7OwotKyAgZXNhYwotKwotKyAgY2Fz ZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmPSRs dF9jdl9kbG9wZW5fc2VsZiA7OwotKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmPXVua25vd24gOzsK LSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyBpbgotKyAgeWVz fG5vKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMg OzsKLSsgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93biA7OwotKyAgZXNhYwot K2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r c3RyaXBsaWI9Ci0rb2xkX3N0cmlwbGliPQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyB3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGUiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJs ZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+JjEgfCAk R1JFUCAiR05VIHN0cmlwIiA+L2Rldi9udWxsOyB0aGVuCi0rICB0ZXN0IC16ICIkb2xkX3N0cmlw bGliIiAmJiBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgotKyAgdGVzdCAteiAi JHN0cmlwbGliIiAmJiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9v cyBpc24ndCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndp biopCi0rICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCi0rICAgICAgc3RyaXBsaWI9IiRT VFJJUCAteCIKLSsgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKLSsgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4m NjsgfQotKyAgICBlbHNlCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAq KQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgOzsKLSsgIGVzYWMKLStmaQotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxs IGFjdHVhbGx5IGJlIGJ1aWx0Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7 IH0KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjYW5fYnVpbGRfc2hh cmVkIiA+JjUKLSskYXNfZWNobyAiJGNhbl9idWlsZF9zaGFyZWQiID4mNjsgfQotKwotKyAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc2hhcmVk IGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBz aGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIg PSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICMgT24gQUlYLCBzaGFyZWQgbGlicmFy aWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAotKyAg IyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4Myop Ci0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0r ICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJj aGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgotKyAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5M SUIgJGxpYicKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGFpeFs0LTldKikKLSsgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IG5vIDsgdGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVf c3RhdGljPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3NoYXJlZCIgPiY1Ci0rJGFzX2VjaG8gIiRlbmFi bGVfc2hhcmVkIiA+JjY7IH0KLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXMiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4uLiAiID4mNjsgfQot KyAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxlX3N0YXRpYyBpcyB5 ZXMuCi0rICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMK LSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+ JjUKLSskYXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQotKwotKwotKwotKwotK2ZpCi0r YWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDQyAtYyAk Q0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ0MgLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUK LSsKLStDQz0iJGx0X3NhdmVfQ0MiCi0rCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rYXJjaGl2ZV9j bWRzX25lZWRfbGNfQ1hYPW5vCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPQotK2Fsd2F5c19l eHBvcnRfc3ltYm9sc19DWFg9bm8KLSthcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0KLStjb21waWxl cl9uZWVkc19vYmplY3RfQ1hYPW5vCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0KLSto YXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD1ubwot K2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGRfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPQotK2hhcmRjb2RlX21p bnVzX0xfQ1hYPW5vCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5zdXBwb3J0ZWQKLSto YXJkY29kZV9hdXRvbWF0aWNfQ1hYPW5vCi0raW5oZXJpdF9ycGF0aF9DWFg9bm8KLSttb2R1bGVf Y21kc19DWFg9Ci0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0KLStsaW5rX2FsbF9kZXBsaWJzX0NY WD11bmtub3duCi0rb2xkX2FyY2hpdmVfY21kc19DWFg9JG9sZF9hcmNoaXZlX2NtZHMKLStub191 bmRlZmluZWRfZmxhZ19DWFg9Ci0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQotK2VuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBl eHRlbnNpb24gZm9yIEMrKyB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0PWNwcAotKwotKyMgT2JqZWN0 IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBDKysgdGVzdCBzb3VyY2VzLgotK29iamV4dD1v Ci0rb2JqZXh0X0NYWD0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVz ZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBjb21waWxl ciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsj IGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMg cGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2Vk IG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vy cm9yIiAhPSB5ZXM7IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxl IHRlc3RzCi0rICBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxl ID0gMDsiCi0rCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAg bHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltdKSB7IHJldHVy bigwKTsgfScKLSsKLSsgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1 cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLSsKLSsKLSsKLSsKLSsKLSsKLSsjIElm IG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgotK0xUQ0M9JHtMVENDLSIkQ0Mi fQotKwotKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFH Uy4KLStMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KLSsKLSsjIEFsbG93IENDIHRvIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotK2NvbXBpbGVyPSRDQwotKwotKwotKyAg IyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIGFjX291 dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0 X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYv bnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVy X2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSsgIGFj X291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0 X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVs bCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0rX2x0X2xpbmtlcl9ib2ls ZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKLSskUk0gLXIgY29uZnRlc3QqCi0rCi0rCi0rICAj IEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotKyAgbHRfc2F2 ZV9DQz0kQ0MKLSsgIGx0X3NhdmVfTEQ9JExECi0rICBsdF9zYXZlX0dDQz0kR0NDCi0rICBHQ0M9 JEdYWAotKyAgbHRfc2F2ZV93aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKLSsgIGx0X3NhdmVfcGF0 aF9MRD0kbHRfY3ZfcGF0aF9MRAotKyAgaWYgdGVzdCAtbiAiJHtsdF9jdl9wcm9nX2dudV9sZGN4 eCtzZXR9IjsgdGhlbgotKyAgICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGRj eHgKLSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3Byb2dfZ251X2xkCi0rICBmaQotKyAg aWYgdGVzdCAtbiAiJHtsdF9jdl9wYXRoX0xEQ1hYK3NldH0iOyB0aGVuCi0rICAgIGx0X2N2X3Bh dGhfTEQ9JGx0X2N2X3BhdGhfTERDWFgKLSsgIGVsc2UKLSsgICAgJGFzX3Vuc2V0IGx0X2N2X3Bh dGhfTEQKLSsgIGZpCi0rICB0ZXN0IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAotKyAg Q0M9JHtDWFgtImMrKyJ9Ci0rICBjb21waWxlcj0kQ0MKLSsgIGNvbXBpbGVyX0NYWD0kQ0MKLSsg IGZvciBjY190ZW1wIGluICRjb21waWxlciIiOyBkbwotKyAgY2FzZSAkY2NfdGVtcCBpbgotKyAg ICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7Ci0r ICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7Ci0r ICAgIFwtKikgOzsKLSsgICAgKikgYnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStjY19iYXNlbmFt ZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2Fs aWFzLSUlImAKLSsKLSsKLSsgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsgICAgIyBX ZSBkb24ndCB3YW50IC1mbm8tZXhjZXB0aW9uIHdoZW4gY29tcGlsaW5nIEMrKyBjb2RlLCBzbyBz ZXQgdGhlCi0rICAgICMgbm9fYnVpbHRpbl9mbGFnIHNlcGFyYXRlbHkKLSsgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxh Z19DWFg9JyAtZm5vLWJ1aWx0aW4nCi0rICAgIGVsc2UKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVy X25vX2J1aWx0aW5fZmxhZ19DWFg9Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRHWFgiID0g eWVzOyB0aGVuCi0rICAgICAgIyBTZXQgdXAgZGVmYXVsdCBHTlUgQysrIGNvbmZpZ3VyYXRpb24K LSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9n bnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5vIHx8IHdpdGhfZ251X2xkPXllcwotK2Vsc2UKLSsg IHdpdGhfZ251X2xkPW5vCi0rZmkKLSsKLSthY19wcm9nPWxkCi0raWYgdGVzdCAiJEdDQyIgPSB5 ZXM7IHRoZW4KLSsgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBw YXRoLgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2Vk IGJ5ICRDQyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4u ICIgPiY2OyB9Ci0rICBjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICAjIGdjYyBs ZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3Ci0rICAg IGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2Ag OzsKLSsgICopCi0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAg OzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFjX3Byb2cgaW4KLSsgICAgIyBBY2NlcHQgYWJzb2x1dGUg cGF0aHMuCi0rICAgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgICAgIHJlX2RpcmVsdD0nL1teL11b Xi9dKi9cLlwuLycKLSsgICAgICAjIENhbm9uaWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKLSsg ICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3Byb2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKLSsgICAg ICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwgJEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxs IDI+JjE7IGRvCi0rCWFjX3Byb2c9YCRFQ0hPICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQl LyUiYAotKyAgICAgIGRvbmUKLSsgICAgICB0ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIK LSsgICAgICA7OwotKyAgIiIpCi0rICAgICMgSWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBh cmVuJ3QgdXNpbmcgR0NDLgotKyAgICBhY19wcm9nPWxkCi0rICAgIDs7Ci0rICAqKQotKyAgICAj IElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEgu Ci0rICAgIHdpdGhfZ251X2xkPXVua25vd24KLSsgICAgOzsKLSsgIGVzYWMKLStlbGlmIHRlc3Qg IiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05V IGxkLi4uICIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9u LUdOVSBsZC4uLiAiID4mNjsgfQotK2ZpCi0raWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLXogIiRMRCI7IHRoZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NF UEFSQVRPUgotKyAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9p ZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYg IiRhY19kaXIvJGFjX3Byb2ciIHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0 IjsgdGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAg IyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2Ug LS12ZXJzaW9uLAotKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUg bGQgb25seSBhY2NlcHQgLXYuCi0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05V L25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xE IiAtdiAyPiYxIDwvZGV2L251bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0r CXRlc3QgIiR3aXRoX2dudV9sZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0 ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsg ICAgZmkKLSsgIGRvbmUKLSsgIElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3Bh dGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGgu Ci0rZmkKLStmaQotKwotK0xEPSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQotKyRh c19lY2hvICIkTEQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rdGVzdCAteiAi JExEIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJs ZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBh Y2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH0KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxp bmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBs aW5rZXIgKCRMRCkgaXMgR05VIGxkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9n X2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRs eSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBgJExEIC12IDI+JjEgPC9kZXYv bnVsbGAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0X2N2X3Byb2dfZ251X2xkPXll cwotKyAgOzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KLSsgIDs7Ci0rZXNhYwotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xk IiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfZ251X2xkIiA+JjY7IH0KLSt3aXRoX2dudV9s ZD0kbHRfY3ZfcHJvZ19nbnVfbGQKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgICAjIENoZWNr IGlmIEdOVSBDKysgdXNlcyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0 aGUKLSsgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQg aXMgYmVpbmcgdXNlZC4KLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu Ci0rICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9s cyAtbyAkbGliJwotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAgICAgICMgSWYgYXJjaGl2ZV9j bWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAgICAgICAjIFhY WCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVk IHRvCi0rICAgICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1N KQotKyAgICAgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBk aWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgotKyAgICAgICAgaWYgZXZhbCAi YCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAotKwkgICRHUkVQICduby13 aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgICB3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlY19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHds YXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0KLSsgICAgICAgIGZpCi0rICAgICAgZWxzZQotKyAgICAg ICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgICAgIHdsYXJjPQotKwotKyAgICAgICAgIyBBIGdlbmVy aWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KLSsgICAg ICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUg bmF0aXZlCi0rICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJs ZSwgdGhpcyBzZXR0aW5nIHNob3VsZAotKyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2 YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCi0rICAgICAgICAjIHRoZSBw bGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwotKyAgICAgIGZpCi0rCi0r ICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQg dGhhdCBsaXN0cwotKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxl cyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJy YXJ5LgotKyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdT IC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJwotKwotKyAgICBlbHNlCi0r ICAgICAgR1hYPW5vCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgICB3bGFyYz0KLSsgICAg ZmkKLSsKLSsgICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3Rl bSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0 cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+ JjY7IH0KLSsgICAgbGRfc2hsaWJzX0NYWD15ZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICAgIGFpeDMqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKyAgICAgIGFp eFs0LTldKikKLSsgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAg ICAgICAgICMgT24gSUE2NCwgdGhlIGxpbmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVm YXVsdCwgc28gd2UgZG9uJ3QKLSsgICAgICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNp YWwuCi0rICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsgICAgICAgICAgZXhw X3N5bV9mbGFnPSctQmV4cG9ydCcKLSsgICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgotKyAgICAg ICAgZWxzZQotKyAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCi0rICAgICAg ICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5v cm1hbAotKyAgICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hl cmUgaW4gTERGTEFHUywgd2UKLSsgICAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2lu Zy4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4 WzUtOV0qKQotKwkgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCi0rCSAgICAgIGNhc2Ug JGxkX2ZsYWcgaW4KLSsJICAgICAgKi1icnRsKikKLSsJICAgICAgICBhaXhfdXNlX3J1bnRpbWVs aW5raW5nPXllcwotKwkgICAgICAgIGJyZWFrCi0rCSAgICAgICAgOzsKLSsJICAgICAgZXNhYwot KwkgICAgZG9uZQotKwkgICAgOzsKLSsgICAgICAgICAgZXNhYwotKwotKyAgICAgICAgICBleHBf c3ltX2ZsYWc9Jy1iZXhwb3J0JwotKyAgICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnkn Ci0rICAgICAgICBmaQotKwotKyAgICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNo YXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlYIGxkIGNhbgotKyAgICAgICAgIyBoYXZlIHByb2Js ZW1zIGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5 Ci0rICAgICAgICAjIG9yIHByb2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBh ZGQgLW1taW5pbWFsLXRvYyB0bwotKyAgICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9n Y2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBub3QKLSsgICAgICAgICMgZW5vdWdoIHRv IGZpeCB0aGUgcHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJwotKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMK LSsgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rICAgICAgICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD0nOicKLSsgICAgICAgIGxpbmtfYWxsX2RlcGxpYnNf Q1hYPXllcwotKyAgICAgICAgZmlsZV9saXN0X3NwZWNfQ1hYPScke3dsfS1mLCcKLSsKLSsgICAg ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgICAgIGNhc2UgJGhvc3Rfb3Mg aW4gYWl4NC5bMDEyXXxhaXg0LlswMTJdLiopCi0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRv IGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJl bG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xs ZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAt ZiAiJGNvbGxlY3QybmFtZSIgJiYKLSsJICAgICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRH UkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2 ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBv bGQgY29sbGVjdDIKLSsJICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9dW5zdXBwb3J0ZWQKLSsJICAg ICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0 YWxsZWQKLSsJICAgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGlu ZyBoYXJkY29kZV9taW51c19MCi0rCSAgICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtp bmcKLSsJICAgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcwotKwkgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9Jy1MJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfQ1hYPQotKwkgIGZpCi0rICAgICAgICAgIGVzYWMKLSsgICAgICAgICAgc2hhcmVkX2ZsYWc9 Jy1zaGFyZWQnCi0rCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKLSsJICBmaQot KyAgICAgICAgZWxzZQotKyAgICAgICAgICAjIG5vdCB1c2luZyBnY2MKLSsgICAgICAgICAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAjIFZpc3VhbEFnZSBDKyssIFZlcnNp b24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQotKwkgICMgY2hva2Vz IG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0rCSAgc2hhcmVkX2Zs YWc9Jy1HJwotKyAgICAgICAgICBlbHNlCi0rCSAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1l bGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCi0rCSAg ICBlbHNlCi0rCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1iTTpTUkUnCi0rCSAgICBmaQotKyAg ICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LWJleHBhbGwnCi0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBh bGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5k ZXJzY29yZSAoXyksIHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9s cyB0bwotKwkjIGV4cG9ydC4KLSsgICAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9eWVz Ci0rICAgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4K LSsgICAgICAgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBs b2FkaW5nIGZsYWdzICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRo b3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAgICAgICAg YWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSctYmVyb2snCi0rICAgICAgICAgICMgRGV0ZXJtaW5l IHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eQot KyAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7 Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25m dGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKwotK2x0X2FpeF9saWJwYXRoX3NlZD0n Ci0rICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJL14wLyB7Ci0rCSAgICBzL14w ICAqXCguKlwpJC9cMS8KLSsJICAgIHAKLSsJfQotKyAgICB9JwotK2FpeF9saWJwYXRoPWBkdW1w IC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhf bGlicGF0aF9zZWQiYAotKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3Qg ZmluZCBhbnl0aGluZy4KLStpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0rICBhaXhf bGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VE IC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLStmaQotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0 ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK2lm IHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIi OyBmaQotKwotKyAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0t YmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsKLSsgICAgICAgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRk ZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3Qg Ingke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgICAgZWxzZQotKyAg ICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkgICAgaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwotKwkg ICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIteiBub2RlZnMiCi0rCSAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29u YW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6 XCRleHBvcnRfc3ltYm9scyIKLSsgICAgICAgICAgZWxzZQotKwkgICAgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rCSAgICAjIGVt cHR5IGV4ZWN1dGFibGUuCi0rCSAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRh Y19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQK LStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAi JGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3Qg LXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0r ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNy b3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0 Ci0rICAgICAgIH07IHRoZW4KLSsKLStsdF9haXhfbGlicGF0aF9zZWQ9JwotKyAgICAvSW1wb3J0 IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCS9eMC8gewotKwkgICAgcy9eMCAgKlwoLipcKSQvXDEv Ci0rCSAgICBwCi0rCX0KLSsgICAgfScKLSthaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRh Y19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAK LSsjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcu Ci0raWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotKyAgYWl4X2xpYnBhdGg9YGR1bXAg LUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2Fp eF9saWJwYXRoX3NlZCJgCi0rZmkKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r Ci0rCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAg ICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStpZiB0ZXN0IC16ICIkYWl4 X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKLSsKLSsJICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGlyOici JGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIg cnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0 IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICAgIG5vX3VuZGVm aW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm5vdG9rJwotKwkgICAgYWxsb3dfdW5kZWZpbmVkX2Zs YWdfQ1hYPScgJHt3bH0tYmVyb2snCi0rCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1 bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLSsJICAgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWD0nJGNvbnZlbmllbmNlJwotKwkgICAgYXJjaGl2ZV9jbWRzX25lZWRf bGNfQ1hYPXllcwotKwkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25h bGx5IGJ1aWxkcyBpdHMgc2hhcmVkCi0rCSAgICAjIGxpYnJhcmllcy4KLSsJICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxB R1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25h bWUnCi0rICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsKLSsgICAgICBi ZW9zKikKLSsJaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6 LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD11 bnN1cHBvcnRlZAotKwkgICMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMg c29tZSByZWxlYXNlcyBvZiBnY2MKLSsJICAjIHN1cHBvcnQgLS11bmRlZmluZWQuICBUaGlzIGRl c2VydmVzIHNvbWUgaW52ZXN0aWdhdGlvbi4gIEZJWE1FCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwllbHNlCi0rCSAgbGRfc2hsaWJzX0NYWD1ubwotKwlm aQotKwk7OwotKwotKyAgICAgIGNob3J1cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBp bgotKyAgICAgICAgICAqKQotKwkgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKwkgIGxkX3NobGlic19DWFg9bm8KLSsJICA7OwotKyAgICAgICAgZXNhYwotKyAg ICAgICAgOzsKLSsKLSsgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0r ICAgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgQ1hYKSBpcyBh Y3R1YWxseSBtZWFuaW5nbGVzcywKLSsgICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBh dGggZm9yIERMTHMuCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwk bGliZGlyJwotKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0r ICAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hYPW5vCi0rICAgICAgICBlbmFibGVfc2hh cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD15ZXMKLSsKLSsgICAgICAgIGlmICRMRCAtLWhl bHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAk b3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlu a2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgICAgICAjIElmIHRoZSBleHBv cnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rICAgICAg ICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0r ICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4 cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgICAgY3AgJGV4cG9ydF9zeW1ib2xz ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKyAgICAgICAgICBlbHNlCi0rCSAgICBlY2hv IEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJICAgIGNhdCAkZXhwb3J0 X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rICAgICAgICAgIGZpfgot KyAgICAgICAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5k ZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRv LWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rICAgICAg ICBlbHNlCi0rICAgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIGZpCi0rICAgICAg ICA7OwotKyAgICAgIGRhcndpbiogfCByaGFwc29keSopCi0rCi0rCi0rICBhcmNoaXZlX2NtZHNf bmVlZF9sY19DWFg9bm8KLSsgIGhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsgIGhhcmRjb2RlX2F1 dG9tYXRpY19DWFg9eWVzCi0rICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD11bnN1cHBvcnRl ZAotKyAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScnCi0rICBsaW5rX2FsbF9kZXBsaWJz X0NYWD15ZXMKLSsgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0iJF9sdF9kYXJfYWxsb3dfdW5k ZWZpbmVkIgotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgIGlmb3J0KikgX2x0X2Rhcl9j YW5fc2hhcmVkPXllcyA7OwotKyAgICAgKikgX2x0X2Rhcl9jYW5fc2hhcmVkPSRHQ0MgOzsKLSsg IGVzYWMKLSsgIGlmIHRlc3QgIiRfbHRfZGFyX2Nhbl9zaGFyZWQiID0gInllcyI7IHRoZW4KLSsg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobwotKyAgICBhcmNoaXZlX2NtZHNfQ1hYPSJc JENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpz IFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFt ZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICBt b2R1bGVfY21kc19DWFg9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVu ZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIK LSsgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5 bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAt ZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRl cGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2 ZXJzdHJpbmcgJHtfbHRfZGFyX3NpbmdsZV9tb2R9JHtfbHRfZGFyX2V4cG9ydF9zeW1zfSR7X2x0 X2RzeW11dGlsfSIKLSsgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0ic2VkIC1lICdzLF4sXywn IDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xz LmV4cHN5bX5cJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxp Ym9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtf bHRfZHN5bXV0aWx9IgotKyAgICAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21v ZCIgIT0gInllcyI7IHRoZW4KLSsgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSJcJENDIC1yIC1rZWVw X3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+ XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0t bWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRo L1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHNfQ1hYPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRf b2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9l eHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5h bWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBc JGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUg XCR2ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBm aQotKwotKyAgZWxzZQotKyAgbGRfc2hsaWJzX0NYWD1ubwotKyAgZmkKLSsKLSsJOzsKLSsKLSsg ICAgICBkZ3V4KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIGVj KysqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r CSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBnaGN4KikKLSsJICAg ICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0r ICAgICAgICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0r ICAgICAgICA7OwotKwotKyAgICAgIGZyZWVic2RbMTJdKikKLSsgICAgICAgICMgQysrIHNoYXJl ZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFpcmx5IGJyb2tlbiBiZWZvcmUKLSsJIyBzd2l0 Y2ggdG8gRUxGCi0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAg ICAgIGZyZWVic2QtZWxmKikKLSsgICAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwot KyAgICAgICAgOzsKLSsKLSsgICAgICBmcmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAgICAgICAj IEZyZWVCU0QgMyBhbmQgbGF0ZXIgdXNlIEdOVSBDKysgYW5kIEdOVSBsZCB3aXRoIHN0YW5kYXJk IEVMRgotKyAgICAgICAgIyBjb252ZW50aW9ucwotKyAgICAgICAgbGRfc2hsaWJzX0NYWD15ZXMK LSsgICAgICAgIDs7Ci0rCi0rICAgICAgZ251KikKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaHB1 eDkqKQotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2IgJHt3 bH0kbGliZGlyJwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKyAg ICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKLSsgICAgICAgIGhh cmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rICAgICAgICBoYXJkY29kZV9taW51c19MX0NYWD15ZXMg IyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJCQkgICAgICAgICAgICAgIyBidXQgYXMgdGhl IGRlZmF1bHQKLSsJCQkJICAgICAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0r Ci0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rICAgICAg ICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAg ICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGFDQyop Ci0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25h bWV+JENDIC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBt diAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgICAgICAgIyBDb21tYW5kcyB0 byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKyAgICAg ICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3Mg YXJlIHVzZWQgd2hlbgotKyAgICAgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5Lgot KyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJl IGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rICAgICAgICAgICAgIyBleHBs aWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRo ZW0KLSsgICAgICAgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0 IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCi0r ICAgICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRD RkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRFR1JFUCAiXC1MImA7IGxpc3Q9IiI7 IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0 PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25l OyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICop Ci0rICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgICAg IGFyY2hpdmVfY21kc19DWFg9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRs aWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgIGVsc2UK LSsgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAotKyAgICAgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAgICAgIGZpCi0rICAg ICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaHB1eDEw KnxocHV4MTEqKQotKyAgICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJ ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rICAgICAgICAgIGNhc2UgJGhv c3RfY3B1IGluCi0rICAgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCi0rICAgICAgICAgICAgICA7 OwotKyAgICAgICAgICAgICopCi0rCSAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LUUnCi0rICAgICAgICAgICAgICA7OwotKyAgICAgICAgICBlc2FjCi0rICAgICAgICBm aQotKyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICAgICAgaHBwYSo2NCp8aWE2NCop Ci0rICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubwotKyAgICAgICAgICAgIGhhcmRj b2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgKikK LSsgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAgICAgICAgICAgIGhhcmRj b2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFg9eWVzCi0rICAgICAgICAgICAgaGFyZGNvZGVfbWludXNf TF9DWFg9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJCQkJCSAgICAgICAgICMgYnV0 IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCQkgICAgICAgICAjIGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5 LgotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rCi0rICAgICAgICBjYXNlICRjY19i YXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVy IEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0r ICAgICAgICAgIGFDQyopCi0rCSAgICBjYXNlICRob3N0X2NwdSBpbgotKwkgICAgICBocHBhKjY0 KikKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgICAgaWE2NCopCi0rCSAg ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgIDs7Ci0rCSAgICAg ICopCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29u YW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg ICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBw cm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBs aW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3Qg YXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAj IGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3Ry aXAgdGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBp bmNsdWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRw dXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxp c3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4k b2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIg fCAkWHNlZCcKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rCSAg ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgICAgICAgIGhwcGEqNjQqKQotKwkgICAgICAg ICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0r aCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAg ICAgICAgICBpYTY0KikKLSsJICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJw YXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAgICA7OwotKwkgICAgICAgICAgKikK LSsJICAgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1m UElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAgZXNhYwotKwkgICAg ICBmaQotKwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJICAgIDs7 Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGludGVyaXhbMy05XSopCi0r CWhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8K LSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0r CWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rCSMgSGFjazogT24gSW50 ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4K LSsJIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFz ZSAoMHgxMDAwMDAwMCBieQotKwkjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhleSBjb25m bGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0rCSMgY29uc3VtaW5nIGFuZCBmcmFn bWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKLSsJIyAy NTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4NkZGQzAw MDAgYXQgbGluawotKwkjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFsc28gYWxs b3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg JHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25h bWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYy MTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3Nl ZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3lt fiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGly LyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQw OTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCTs7Ci0rICAgICAgaXJp eDUqIHwgaXJpeDYqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAg Q0MqKQotKwkgICAgIyBTR0kgQysrCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy c3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBk YXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCi0r CSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0 ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNv bXBpbGVyLiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRp YXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkg ICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAtYXIgLVdSLC11IC1vICRvbGRsaWIgJG9sZG9i anMnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7 IHRoZW4KLSsJICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7 d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAg ICAgZWxzZQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRg IC1vICRsaWInCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgICAgbGlua19hbGxfZGVwbGlic19D WFg9eWVzCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsgICAgICAgIGluaGVyaXRfcnBhdGhfQ1hYPXll cwotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251KQotKyAgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikKLSsJICAgICMgS3VjayBhbmQg QXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsKLSsJICAgICMgS0NDIHdpbGwg b25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKLSsJICAgICMg ZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBzbyByZW5hbWUgdGhlIGxpYnJh cnkKLSsJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZlcnNpb24pIGFmdGVyIGxpbmtp bmcuCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwg JFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGli PWBlY2hvICRsaWIgfCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgLS1zb25hbWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwot KwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQg fCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBs aWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9s cy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCi0rCSAgICAjIENvbW1h bmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0r CSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFy ZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwot KwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMg Y29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBm aWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNv IHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVw ZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0Mg JENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4m MSB8ICRHUkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBm b3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0i JGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsg JEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250 YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJD QyAtQnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0rCSAgICBv bGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCi0r CSAgICA7OwotKwkgIGljcGMqIHwgZWNwYyogKQotKwkgICAgIyBJbnRlbCBDKysKLSsJICAgIHdp dGhfZ251X2xkPXllcwotKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9r ZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKLSsJICAgICMgaWYgd2UgYWRkICRwcmVkZXBf b2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCi0rCSAgICAjIGVh cmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgotKwkgICAgY2FzZSBgJEND IC1WIDI+JjFgIGluCi0rCSAgICAgICoiVmVyc2lvbiA3LiIqKQotKwkgICAgICAgIGFyY2hpdmVf Y21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAt byAkbGliJwotKwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRl eHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgICAgKikgICMgVmVyc2lvbiA4LjAg b3IgbmV3ZXIKLSsJICAgICAgICB0bXBfaWR5bj0KLSsJICAgICAgICBjYXNlICRob3N0X2NwdSBp bgotKwkJICBpYTY0KikgdG1wX2lkeW49JyAtaV9keW5hbWljJzs7Ci0rCQllc2FjCi0rCSAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwot KwkJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJCTs7 Ci0rCSAgICBlc2FjCi0rCSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAg ZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252 ZW5pZW5jZSAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAgIDs7Ci0rICAgICAgICAgIHBn Q0MqIHwgcGdjcHAqKQotKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVy Ci0rCSAgICBjYXNlIGAkQ0MgLVZgIGluCi0rCSAgICAqcGdDQ1wgWzEtNV0qIHwgKnBnY3BwXCBb MS01XSopCi0rCSAgICAgIHByZWxpbmtfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0r CQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRp b25fZGlyICR0cGxkaXIgJG9ianMgJGxpYm9ianMgJGNvbXBpbGVfZGVwbGlic34KLSsJCWNvbXBp bGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAk TkwyU1BgIicKLSsJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5k aXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3Rh bnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkkQVIgJEFSX0ZM QUdTICRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8g fCAkTkwyU1BgfgotKwkJJFJBTkxJQiAkb2xkbGliJwotKwkgICAgICBhcmNoaXZlX2NtZHNfQ1hY PSd0cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+Ci0rCQkkQ0MgLS1wcmVs aW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2JqZWN0c34KLSsJCSRDQyAt c2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQg JHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCi0rCSAgICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSd0cGxkaXI9VGVtcGxhdGUuZGlyfgotKwkJcm0gLXJmICR0cGxkaXJ+ Ci0rCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkY29udmVuaWVuY2UgJHBvc3RkZXBfb2Jq ZWN0c34KLSsJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYCAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsK LSsJICAgICopICMgVmVyc2lvbiA2IHdpbGwgdXNlIHdlYWsgc3ltYm9scwotKwkgICAgICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAke3dsfSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9 JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWIn Ci0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tLXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAgIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZl bmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRu ZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJg ICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKyAgICAgICAgICAgIDs7Ci0rCSAgY3h4KikKLSsJ ICAgICMgQ29tcGFxIEMrKwotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29u YW1lICAtbyAkbGliICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xz JwotKwotKwkgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3JfQ1hYPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9k dWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJy YXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5r aW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBw ZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4 cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAg dGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNs dWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlz dCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7 IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0 PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25l OyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICB4bCopCi0rCSAgICAjIElC TSBYTCA4LjAgb24gUFBDLCB3aXRoIEdOVSBsZAotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJICAgIGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLSsJICAgIGFyY2hpdmVfY21k c19DWFg9JyRDQyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgaWYgdGVzdCAieCRzdXBwb3J0 c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K LSsJCWNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJCWVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24t c2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0rCSAgICBm aQotKwkgICAgOzsKLSsJICAqKQotKwkgICAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGlu Ci0rCSAgICAqU3VuXCBDKikKLSsJICAgICAgIyBTdW4gQysrIDUuOQotKwkgICAgICBub191bmRl ZmluZWRfZmxhZ19DWFg9JyAtemRlZnMnCi0rCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt RyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJ ICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR7d2x9JGV4cG9ydF9zeW1ib2xzJwotKwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nLVIkbGliZGlyJwotKwkgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5p ZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdf Y29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7 d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgICAgICBjb21waWxlcl9uZWVkc19vYmplY3RfQ1hY PXllcwotKwotKwkgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgc29tZXRoaW5nIGJhc2VkIG9uCi0r CSAgICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRz aGFyZWRfZXh0IDI+JjEKLSsJICAgICAgIyB3b3VsZCBiZSBiZXR0ZXIuCi0rCSAgICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwotKwotKwkgICAgICAjIEFyY2hpdmVzIGNvbnRhaW5p bmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICAgIyAiQ0Mg LXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAg ICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBp bmNsdWRlZAotKwkgICAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgICBvbGRfYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgICAgOzsKLSsJICAg IGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICBseW54b3MqKQotKyAgICAg ICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCWxkX3NobGli c19DWFg9bm8KLSsJOzsKLSsKLSsgICAgICBtODhrKikKLSsgICAgICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwot Kwk7OwotKwotKyAgICAgIG12cyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAg ICAgICAgICBjeHgqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKwkgICopCi0rCSAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGli c19DWFg9bm8KLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsKLSsgICAgICBuZXRic2QqKQotKyAg ICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251 bGw7IHRoZW4KLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckTEQgLUJzaGFyZWFibGUgIC1vICRsaWIg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGxpbmtl cl9mbGFncycKLSsJICB3bGFyYz0KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0n LVIkbGliZGlyJwotKwkgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rCSAgaGFyZGNvZGVfc2hs aWJwYXRoX3Zhcl9DWFg9bm8KLSsJZmkKLSsJIyBXb3JrYXJvdW5kIHNvbWUgYnJva2VuIHByZS0x LjUgdG9vbGNoYWlucwotKwlvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENG TEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCBjb25mdGVzdC4kb2JqZXh0IHwg JFNFRCAtZSAiczotbGdjYyAtbGMgLWxnY2M6OiInCi0rCTs7Ci0rCi0rICAgICAgKm50byogfCAq cW54KikKLSsgICAgICAgIGxkX3NobGlic19DWFg9eWVzCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJz ZDIqKQotKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyBhcmUgZmFpcmx5IGJyb2tlbgot KwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rCi0rICAgICAgb3BlbmJzZCopCi0rCWlmIHRlc3Qg LWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVuCi0rCSAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMK LSsJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwkgIGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZV9DWFg9eWVzCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19m bGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtbyAkbGliJwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY PScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAk Q0MgLUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAi b3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9 JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSwkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LUUnCi0rCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9IiR3bGFy YyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hp dmUnCi0rCSAgZmkKLSsJICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCi0rCWVsc2UKLSsJ ICBsZF9zaGxpYnNfQ1hYPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgb3NmMyogfCBvc2Y0KiB8 IG9zZjUqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgS0NDKikK LSsJICAgICMgS3VjayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKLSsK LSsJICAgICMgS0NDIHdpbGwgb25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0 cHV0IGZpbGUKLSsJICAgICMgZW5kcyB3aXRoICIuc28iIChvciAiLnNsIiBmb3IgSFAtVVgpLCBz byByZW5hbWUgdGhlIGxpYnJhcnkKLSsJICAgICMgdG8gaXRzIHByb3BlciBuYW1lICh3aXRoIHZl cnNpb24pIGFmdGVyIGxpbmtpbmcuCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSd0ZW1wZXh0PWBl Y2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxc XDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1c Li4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsg bXYgXCR0ZW1wbGliICRsaWInCi0rCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Q1hYPToKLSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11 c3QgYmUgY3JlYXRlZCB1c2luZwotKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAg IGNhc2UgJGhvc3QgaW4KLSsJICAgICAgb3NmMyopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAgICAgKikgb2xkX2FyY2hpdmVf Y21kc19DWFg9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OwotKwkgICAgZXNhYwotKwkgICAg OzsKLSsgICAgICAgICAgUkNDKikKLSsJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCi0rCSAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGli c19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGN4eCopCi0rCSAgICBjYXNlICRob3N0IGlu Ci0rCSAgICAgIG9zZjMqKQotKwkgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7 d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3Zl cnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCQk7OwotKwkgICAgICAqKQot KwkgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nIC1leHBlY3RfdW5yZXNvbHZlZCBc KicKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAg ICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJv bHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIu ZXhwOyBkb25lfgotKwkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLSsJICAg ICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3VuZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAt c29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJz dHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRh dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KLSsJICAg ICAgICAgICRSTSAkbGliLmV4cCcKLSsJICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nLXJwYXRoICRsaWJkaXInCi0rCQk7OwotKwkgICAgZXNhYwotKwotKwkgICAgaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJo aWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0r CSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUg ZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20K LSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVl ZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9u J3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJ ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJg OyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClc KCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAk eiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikg bGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJwotKwkg ICAgOzsKLSsJICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7 d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4KLSsJ ICAgICAgICBvc2YzKikKLSsJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRf dmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAk e3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCQkgIDs7Ci0rCSAg ICAgICAgKikKLSsJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1z b25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0t c2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0 cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7Owot KwkgICAgICBlc2FjCi0rCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSck e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0 b3JfQ1hYPToKLSsKLSsJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2Ug dmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgIyBsaW5r aW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSck Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwi JwotKwotKwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJICAgIDs7 Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHBzb3MqKQotKyAgICAgICAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9z aGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKwotKyAgICAgIHN1bm9zNCopCi0rICAgICAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyopCi0rCSAgICAjIFN1biBDKysgNC54 Ci0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAg IGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGxjYyopCi0rCSAgICAjIEx1 Y2lkCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJ ICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19D WFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIHNv bGFyaXMqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQot KwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwotKyAgICAgICAgICAg IGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsJICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NY WD0nIC16ZGVmcycKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICBhcmNoaXZlX2V4 cHN5bV9jbWRzX0NYWD0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5 bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDog KjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFn fSAke3dsfS1NICR7d2x9JGxpYi5leHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAk bGliLmV4cCcKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSctUiRsaWJk aXInCi0rCSAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwkgICAgY2FzZSAkaG9z dF9vcyBpbgotKwkgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0r CSAgICAgICopCi0rCQkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9y ZGVyIGxpbmtlciBvcHRpb25zLAotKwkJIyBidXQgdW5kZXJzdGFuZHMgYC16IGxpbmtlcl9mbGFn Jy4KLSsJICAgICAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/ KQotKwkJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScteiBhbGxleHRyYWN0JGNvbnZlbmll bmNlIC16IGRlZmF1bHRleHRyYWN0JwotKwkgICAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICBs aW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKLSsKLSsJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21k PSdlY2hvJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMg bXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0 aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMgaXMKLSsJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ug c3VyZSBpbnN0YW50aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAotKwkgICAgIyBpbiB0aGUg YXJjaGl2ZS4KLSsJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGli ICRvbGRvYmpzJwotKwkgICAgOzsKLSsgICAgICAgICAgZ2N4KikKLSsJICAgICMgR3JlZW4gSGls bHMgQysrIENvbXBpbGVyCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCi0rCSAgICAjIFRoZSBDKysgY29t cGlsZXIgbXVzdCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgYXJjaGl2ZS4KLSsJICAgIG9sZF9hcmNo aXZlX2NtZHNfQ1hYPSckQ0MgJExERkxBR1MgLWFyY2hpdmUgLW8gJG9sZGxpYiAkb2xkb2JqcycK LSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICAjIEdOVSBDKysgY29tcGlsZXIgd2l0aCBT b2xhcmlzIGxpbmtlcgotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9 LXogJHt3bH1kZWZzJwotKwkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43 JyA+IC9kZXYvbnVsbDsgdGhlbgotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRs aWInCi0rCSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIg PiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1z aGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJN ICRsaWIuZXhwJwotKwotKwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9k dWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhpZGRlbiIg bGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVyYm9zZV9s aW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAk R1JFUCAiXC1MIicKLSsJICAgICAgZWxzZQotKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRv IHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKLSsJICAgICAgICAjIHBsYXRmb3Jt LgotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAtbm9zdGRsaWIgJExERkxBR1Mg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRf c3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2Fs OiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCQkgICRDQyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wk bGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCi0rCSAgICAgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cwotKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5 LgotKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBj b25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKLSsJICAgICAgZmkKLSsKLSsJICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicKLSsJ ICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01 XS4qKSA7OwotKwkJKikKLSsJCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS16 ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3Qn Ci0rCQkgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNh YwotKyAgICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lz djVVbml4V2FyZTcuWzAxXS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikK LSsgICAgICBub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NY WD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt RyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRl eHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9 LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7 OwotKwotKyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rCSMgTm90ZTogV2Ug Y2FuIE5PVCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90 Ci0rCSMgbGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNl ZCBmcm9tIGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVz dCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdl J3JlIG5vdCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNoIGRv ZXMgY2F0Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rCSMg YXMgLXogZGVmcy4KLSsJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCi0rCWFs bG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teixub2RlZnMnCi0rCWFyY2hpdmVfY21kc19u ZWVkX2xjX0NYWD1ubwotKwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwloYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiwkbGliZGlyJwotKwloYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yX0NYWD0nOicKLSsJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCWV4cG9y dF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdM RF9SVU5fUEFUSCcKLSsKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQot KwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgOzsK LSsJICAqKQotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9z eW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJICAgIDs7Ci0rCWVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHRhbmRlbSop Ci0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBOQ0MqKQotKwkgICAg IyBOb25TdG9wLVVYIE5DQyAzLjIwCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAg ICAgICopCi0rCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK LSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAg ICA7OwotKwotKyAgICAgIHZ4d29ya3MqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAg ICA7OwotKwotKyAgICAgICopCi0rICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0r ICAgIGVzYWMKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxk X3NobGlic19DWFgiID4mNQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rICAg IHRlc3QgIiRsZF9zaGxpYnNfQ1hYIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSsg ICAgR0NDX0NYWD0iJEdYWCIKLSsgICAgTERfQ1hYPSIkTEQiCi0rCi0rICAgICMjIENBVkVBVCBF TVBUT1I6Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xs b3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rICAgICMjIHRoZSBydW5uaW5nIG9yZGVyIG9y IG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rICAg ICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotKyAgICAjIERlcGVuZGVuY2llcyB0byBwbGFjZSBi ZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3QgYmVpbmcgbGlua2VkOgotK3ByZWRlcF9vYmplY3Rz X0NYWD0KLStwb3N0ZGVwX29iamVjdHNfQ1hYPQotK3ByZWRlcHNfQ1hYPQotK3Bvc3RkZXBzX0NY WD0KLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPQotKwotK2NhdCA+IGNvbmZ0ZXN0LiRh Y19leHQgPDxfTFRfRU9GCi0rY2xhc3MgRm9vCi0rewotK3B1YmxpYzoKLSsgIEZvbyAodm9pZCkg eyBhID0gMDsgfQotK3ByaXZhdGU6Ci0rICBpbnQgYTsKLSt9OwotK19MVF9FT0YKLSsKLStpZiB7 IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChl dmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsg fTsgdGhlbgotKyAgIyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBu ZWNlc3NhcnkKLSsgICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotKwot KyAgIyBTZW50aW5lbCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJl IGJlZm9yZQotKyAgIyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCi0rICBwcmVfdGVzdF9vYmpl Y3RfZGVwc19kb25lPW5vCi0rCi0rICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xp bmtfY21kImA7IGRvCi0rICAgIGNhc2UgJHAgaW4KLSsKLSsgICAgLUwqIHwgLVIqIHwgLWwqKQot KyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5k IHRoZSBwYXRoLgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCi0rICAgICAgIGlmIHRlc3Qg JHAgPSAiLUwiIHx8Ci0rICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCi0rCSBwcmV2PSRw Ci0rCSBjb250aW51ZQotKyAgICAgICBlbHNlCi0rCSBwcmV2PQotKyAgICAgICBmaQotKwotKyAg ICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotKwkg Y2FzZSAkcCBpbgotKwkgLUwqIHwgLVIqKQotKwkgICAjIEludGVybmFsIGNvbXBpbGVyIGxpYnJh cnkgcGF0aHMgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhvc2UKLSsJICAgIyBwcm92aWRlZCB0aGUgdXNl ci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCi0rCSAgICMgdXNlciBzdXBw bGllZCBsaWJzIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJvY2VzcyB0aGVtLgotKwkgICBpZiB0 ZXN0IC16ICIkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWCI7IHRoZW4KLSsJICAgICBjb21w aWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSIke3ByZXZ9JHtwfSIKLSsJICAgZWxzZQotKwkgICAg IGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7Y29tcGlsZXJfbGliX3NlYXJjaF9wYXRo X0NYWH0gJHtwcmV2fSR7cH0iCi0rCSAgIGZpCi0rCSAgIDs7Ci0rCSAjIFRoZSAiLWwiIGNhc2Ug d291bGQgbmV2ZXIgY29tZSBiZWZvcmUgdGhlIG9iamVjdCBiZWluZwotKwkgIyBsaW5rZWQsIHNv IGRvbid0IGJvdGhlciBoYW5kbGluZyB0aGlzIGNhc2UuCi0rCSBlc2FjCi0rICAgICAgIGVsc2UK LSsJIGlmIHRlc3QgLXogIiRwb3N0ZGVwc19DWFgiOyB0aGVuCi0rCSAgIHBvc3RkZXBzX0NYWD0i JHtwcmV2fSR7cH0iCi0rCSBlbHNlCi0rCSAgIHBvc3RkZXBzX0NYWD0iJHtwb3N0ZGVwc19DWFh9 ICR7cHJldn0ke3B9IgotKwkgZmkKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAgKi4k b2JqZXh0KQotKyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxl IG9ubHkgc2hvd3MgdXAKLSsgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCi0r ICAgICAgIGlmIHRlc3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0IjsgdGhlbgotKwkgcHJlX3Rl c3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKLSsJIGNvbnRpbnVlCi0rICAgICAgIGZpCi0rCi0rICAg ICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCi0rCSBp ZiB0ZXN0IC16ICIkcHJlZGVwX29iamVjdHNfQ1hYIjsgdGhlbgotKwkgICBwcmVkZXBfb2JqZWN0 c19DWFg9IiRwIgotKwkgZWxzZQotKwkgICBwcmVkZXBfb2JqZWN0c19DWFg9IiRwcmVkZXBfb2Jq ZWN0c19DWFggJHAiCi0rCSBmaQotKyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkcG9zdGRl cF9vYmplY3RzX0NYWCI7IHRoZW4KLSsJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHAiCi0rCSBl bHNlCi0rCSAgIHBvc3RkZXBfb2JqZWN0c19DWFg9IiRwb3N0ZGVwX29iamVjdHNfQ1hYICRwIgot KwkgZmkKLSsgICAgICAgZmkKLSsgICAgICAgOzsKLSsKLSsgICAgKikgOzsgIyBJZ25vcmUgdGhl IHJlc3QuCi0rCi0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgICMgQ2xlYW4gdXAuCi0rICBybSAt ZiBhLm91dCBhLmV4ZQotK2Vsc2UKLSsgIGVjaG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVt IGNvbXBpbGluZyBDWFggdGVzdCBwcm9ncmFtIgotK2ZpCi0rCi0rJFJNIC1mIGNvbmZlc3QuJG9i amV4dAotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUg aXQgaXMgYnJva2VuCi0rY2FzZSAkaG9zdF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIElu dGVyaXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNv IHJhdGhlciB0aGFuCi0rICAjIGhhY2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAi ZysrIiB0byBEVFJULgotKyAgcHJlZGVwX29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3Rz X0NYWD0KLSsgIHBvc3RkZXBzX0NYWD0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJEND IC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQot KwotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkg aXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVj aWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMK LSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENY WCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBz b2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlm IHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRl cHNfQ1hYPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0r ICBlc2FjCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg IENDKikKLSsgICAgIyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJy YXJ5IGlzCi0rICAgICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQg c3BlY2lmeWluZwotKyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVu IGFzCi0rICAgICMgLWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAi ICRDWFggJENYWEZMQUdTICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAg ICAgc29sYXJpc191c2Vfc3RscG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAg ICAjIEFkZGluZyB0aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGli cmFyaWVzIGZvcgotKyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNl IFBJQyBvYmplY3RzIGZyb20gYW4gb2xkCi0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBp bnRvIHRoZSBvdXRwdXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRlc3QgIiRz b2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSct bGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0r ICA7OwotK2VzYWMKLSsKLSsKLStjYXNlICIgJHBvc3RkZXBzX0NYWCAiIGluCi0rKiIgLWxjICIq KSBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8gOzsKLStlc2FjCi0rIGNvbXBpbGVyX2xpYl9z ZWFyY2hfZGlyc19DWFg9Ci0raWYgdGVzdCAtbiAiJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhf Q1hYfSI7IHRoZW4KLSsgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAiICR7Y29t cGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdz IV4gISEnYAotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIGx0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYPQotK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLStsdF9w cm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAi ID4mNjsgfQotKwotKyAgIyBDKysgc3BlY2lmaWMgY2FzZXMgZm9yIHBpYywgc3RhdGljLCB3bCwg ZXRjLgotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgbHRfcHJvZ19jb21waWxl cl93bF9DWFg9Jy1XbCwnCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRp YycKLSsKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBhaXgqKQotKyAgICAgICMgQWxsIEFJ WCBjb2RlIGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgot KwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgotKwlsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1p Z2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAg ICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAg ICBtNjhrKQotKyAgICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29k ZSB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0 aGUgYC1tNjgwMjAnIGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRl ciwKLSsgICAgICAgICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWD0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0 JwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rICAg IG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCi0rICAgICAgIyBUaGlz IGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBi ZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBl eHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2lu IGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAgICAg ICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctRERMTF9FWFBPUlQnCi0rICAgICAgOzsKLSsgICAgZGFyd2luKiB8IHJo YXBzb2R5KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0r ICAgICAgIyBDb21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsg ICAgKmRqZ3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxpYnJh cmllcyBhdCBhbGwKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgICAgOzsK LSsgICAgaW50ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJ QyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVs b2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0rICAgIHN5c3Y0 Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBocHV4 KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQg bm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlz IHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQg VExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGlu Ci0rICAgICAgaHBwYSo2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPSctZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKnFueCog fCAqbnRvKikKLSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAt c2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4K LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAg OzsKLSsgICAgKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAg IGFpeFs0LTldKikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29y Ci0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJZWxzZQotKwkg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhw JwotKwlmaQotKwk7OwotKyAgICAgIGNob3J1cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0r CWN4Y2g2OCopCi0rCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAjIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsIENYWCk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9u IC11IF9fbWFpbiAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3Ji LmEgJE1WTUVfRElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMu YSIKLSsJICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZGd1eCopCi0rCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rCSAgZWMrKyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElD JwotKwkgICAgOzsKLSsJICBnaGN4KikKLSsJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVy Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCi0rCSAgICA7OwotKwkgICop Ci0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQot KwkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCi0rCTs7Ci0rICAgICAgaHB1eDkqIHwgaHB1eDEwKiB8 IGhwdXgxMSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgbHRfcHJv Z19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19D WFg9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKwkgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBp YTY0OyB0aGVuCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCi0rCSAgICBm aQotKwkgICAgOzsKLSsJICBhQ0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1X bCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9JyR7d2x9LWEgJHt3bH1hcmNo aXZlJwotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAgIGhwcGEqNjQqfGlhNjQqKQotKwkg ICAgICAjICtaIHRoZSBkZWZhdWx0Ci0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJwotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgICAg OzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGludGVyaXgqKQotKwkj IFRoaXMgaXMgYzg5LCB3aGljaCBpcyBNUyBWaXN1YWwgQysrIChubyBzaGFyZWQgbGlicykKLSsJ IyBBbnlvbmUgd2FudHMgdG8gZG8gYSBwb3J0PwotKwk7OwotKyAgICAgIGlyaXg1KiB8IGlyaXg2 KiB8IG5vbnN0b3B1eCopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAg bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpY19DWFg9Jy1ub25fc2hhcmVkJwotKwkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUg ZGVmYXVsdC4KLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAg ICBsaW51eCogfCBrKmJzZCotZ251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyop Ci0rCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hY PSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMn Ci0rCSAgICA7OwotKwkgIGVjcGMqICkKLSsJICAgICMgb2xkIEludGVsIEMrKyBmb3IgeDg2XzY0 IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xf Q1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAgaWNw YyogKQotKwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0ND LgotKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCi0rCSAgICBs dF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0nLWZQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1zdGF0aWMn Ci0rCSAgICA7OwotKwkgIHBnQ0MqIHwgcGdjcHAqKQotKwkgICAgIyBQb3J0bGFuZCBHcm91cCBD KysgY29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZnBpYycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBh cSBDKysKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVh cnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9i amVjdHMgYXJlIFBJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsJICAgIGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgIHhs YyogfCB4bEMqKQotKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQwotKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1XbCwnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1xcGlj JwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctcXN0YXRpY2xpbmsnCi0rCSAg ICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJICAg ICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0n LUJzdGF0aWMnCi0rCSAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctUW9wdGlvbiBsZCAn Ci0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAg bHlueG9zKikKLSsJOzsKLSsgICAgICBtODhrKikKLSsJOzsKLSsgICAgICBtdnMqKQotKwljYXNl ICRjY19iYXNlbmFtZSBpbgotKwkgIGN4eCopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9Jy1XIGMsZXhwb3J0YWxsJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwot Kwk7OwotKyAgICAgIG5ldGJzZCopCi0rCTs7Ci0rICAgICAgKnFueCogfCAqbnRvKikKLSsgICAg ICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9u IHRvbywgb3RoZXJ3aXNlCi0rICAgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgICA7OwotKyAg ICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBL Q0MqKQotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJwotKwkg ICAgOzsKLSsJICBSQ0MqKQotKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEKLSsJICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIDs7Ci0rCSAgY3h4KikKLSsJICAgICMg RGlnaXRhbC9Db21wYXEgQysrCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcK LSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBpcyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhh dCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMg YXJlIFBJQy4KLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsJICAgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgICopCi0rCSAg ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgcHNvcyopCi0rCTs7Ci0rICAgICAgc29sYXJpcyop Ci0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQuMiwg NS54IGFuZCBDZW50ZXJsaW5lIEMrKwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct S1BJQycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVFvcHRpb24gbGQgJwotKwkgICAgOzsKLSsJICBn Y3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLVBJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMK LSsJOzsKLSsgICAgICBzdW5vczQqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikK LSsJICAgICMgU3VuIEMrKyA0LngKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBp YycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rCSAgICA7 OwotKwkgIGxjYyopCi0rCSAgICAjIEx1Y2lkCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9Jy1waWMnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAg ICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVy X3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCi0r CSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKwkgICAgOzsKLSsJ ZXNhYwotKwk7OwotKyAgICAgIHRhbmRlbSopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAg TkNDKikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAgbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYPSctS1BJQycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJ OzsKLSsgICAgICB2eHdvcmtzKikKLSsJOzsKLSsgICAgICAqKQotKwlsdF9wcm9nX2NvbXBpbGVy X2Nhbl9idWlsZF9zaGFyZWRfQ1hYPW5vCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0rY2Fz ZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IFBJ QywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFg9IiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFgiID4mNQotKyRhc19lY2hvICIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIiA+JjY7IH0KLSsK LSsKLSsKLSsjCi0rIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdv cmtzLgotKyMKLStpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIjsgdGhlbgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBQSUMg ZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCB3 b3Jrcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29y a3NfQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWD1ubwotKyAgIGFjX291 dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9IiRsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFggLURQSUMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRo ZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZv cmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAg ICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFz aGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwg c28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyBy ZWZlcmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRf Y29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31c ezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0 ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGls ZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNDcwMDogJGx0X2NvbXBpbGVc IiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNf c3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTQ3 MDQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRl c3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkg d2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28g c2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQu Ci0rICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9e JC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3Qu ZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlm ZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRf Y3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAg ICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4mNQotKyRhc19lY2hvICIk bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgi JGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPSB4eWVzOyB0aGVuCi0rICAgIGNh c2UgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAg ICAgKikgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSIgJGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WCIgOzsKLSsgICAgIGVzYWMKLStlbHNlCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0K LSsgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KLStmaQotKwot K2ZpCi0rCi0rCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBh Y3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIGV2YWwgbHRf dG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWFwiCi0reyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAk bHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAk Y29tcGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsg fQotK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD1ubwotKyAgIHNhdmVfTERGTEFHUz0i JExERkxBR1MiCi0rICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKLSsg ICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsg ICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQ7IHRoZW4KLSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25v cmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhl cmUgYXJlIHdhcm5pbmdzCi0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAg ICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQg Y29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0 ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCi0rICAgICAgICRTRUQgJy9eJC9k OyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgotKyAgICAgICBpZiBkaWZmIGNv bmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgIGx0X2N2 X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWD15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVs c2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcwotKyAg ICAgZmkKLSsgICBmaQotKyAgICRSTSAtciBjb25mdGVzdCoKLSsgICBMREZMQUdTPSIkc2F2ZV9M REZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0 X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9j dl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNjsgfQotKwotK2lmIHRlc3QgeCIk bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KLSsgICAg OgotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQotK2ZpCi0rCi0rCi0r Ci0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGls ZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2 OyB9Ci0raWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYPW5vCi0rICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0r ICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwot KyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku Ci0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6 LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBb XiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAk bHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNDc5OTogJGx0 X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3Qu ZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAg IGVjaG8gIiRhc19tZToxNDgwMzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQg JGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKLSsgICB0aGVu Ci0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlv biBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5p bmdzCi0rICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUg Jy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBv dXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0 L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+ L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMK LSsgICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0ZXN0 KgotKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2Zp bGVzLyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9p aV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAg JFJNIG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0r ICAgJFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNjsgfQotKwotKwotKwotKyAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZp bGUuJGFjX29iamV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1 cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7bHRf Y3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD1u bwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0r ICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFn PSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBl aXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBi ZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgot KyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tz bGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVu KSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVj aG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRs dF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRf Y29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AK LSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTQ4NTE6ICRsdF9jb21waWxlXCIiID4mNSkKLSsg ICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9 JD8KLSsgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6MTQ4NTU6 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3Qg LXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAgdGhlbgotKyAgICAgIyBUaGUgY29tcGls ZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQK LSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncwotKyAgICAgJEVDSE8gIlgk X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRl c3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0 L2NvbmZ0ZXN0LmVyMgotKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlm ZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAg ICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9eWVzCi0rICAgICBmaQotKyAgIGZpCi0r ICAgY2htb2QgdSt3IC4gMj4mNQotKyAgICRSTSBjb25mdGVzdCoKLSsgICAjIFNHSSBDKysgY29t cGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxlcy8gZm9yCi0rICAgIyB0ZW1w bGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlfZmlsZXMgJiYgJFJNIG91dC9p aV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRSTSBvdXQvKiAmJiBybWRpciBv dXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVzdAotKyAgICRSTSBjb25mdGVzdCoKLSsK LStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wcm9nX2Nv bXBpbGVyX2Nfb19DWFgiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Q1hYIiA+JjY7IH0KLSsKLSsKLSsKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVz dCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2Nr cyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9s b2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGlmIHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0r ICBoYXJkX2xpbmtzPXllcwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25m dGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEK LSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxu IGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaGFyZF9saW5rcyIgPiY1Ci0rJGFz X2VjaG8gIiRoYXJkX2xpbmtzIiA+JjY7IH0KLSsgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5v OyB0aGVuCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBcYCRDQycg ZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBc YC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQotKyAgICBuZWVkX2xv Y2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0rCi0rCi0rCi0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9y dHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKwotKyAgZXhwb3J0X3N5bWJvbHNfY21k c19DWFg9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwg JFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGFpeFs0LTldKikKLSsgICAgIyBJZiB3ZSdyZSB1c2luZyBH TlUgbm0sIHRoZW4gd2UgZG9uJ3Qgd2FudCB0aGUgIi1DIiBvcHRpb24uCi0rICAgICMgLUMgbWVh bnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUg bm0KLSsgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgot KyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVu aWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwg KFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAz IH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0rICAgICAg ZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2Ug fCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIg PT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdc JycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBmaQotKyAgICA7OwotKyAgcHcz MiopCi0rICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSIkbHRkbGxfY21kcyIKLSsgIDs7Ci0r ICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NY WD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VE IC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS87L14uKlsgXV9f bm1fXy9zL14uKlsgXV9fbm1fX1woW14gXSpcKVsgXVteIF0qL1wxIERBVEEvOy9eSVsgXS9kOy9e W0FJVFddWyBdL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0r ICA7OwotKyAgKikKLSsgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAkbGlib2JqcyAk Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycg fCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIDs7Ci0rICBlc2FjCi0rICBleGNs dWRlX2V4cHN5bXNfQ1hYPSdfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLion Ci0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGxkX3NobGlic19DWFgi ID4mNQotKyRhc19lY2hvICIkbGRfc2hsaWJzX0NYWCIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGli c19DWFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK3dpdGhfZ251X2xkX0NYWD0k d2l0aF9nbnVfbGQKLSsKLSsKLSsKLSsKLSsKLSsKLSsjCi0rIyBEbyB3ZSBuZWVkIHRvIGV4cGxp Y2l0bHkgbGluayBsaWJjPwotKyMKLStjYXNlICJ4JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIg aW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVkCi0rICBhcmNoaXZl X2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCi0rICBpZiB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5 ZXMgJiYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgY2FzZSAkYXJjaGl2ZV9jbWRzX0NY WCBpbgotKyAgICAqJ34nKikKLSsgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdp dGggbXVsdGktY29tbWFuZCBzZXF1ZW5jZXMuCi0rICAgICAgOzsKLSsgICAgJyRDQyAnKikKLSsg ICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1s YyBzaW5jZSBvbiBzb21lCi0rICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZv cmUgLWxjLiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCi0rICAgICAgIyB0byBsZCwgZG9uJ3Qg YWRkIC1sYyBiZWZvcmUgLWxnY2MuCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkg bGlua2VkIGluLi4uICIgPiY2OyB9Ci0rICAgICAgJFJNIGNvbmZ0ZXN0KgotKyAgICAgIGVjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwotKyAg ICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m NQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9IDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAgICAgICBzb25hbWU9Y29uZnRlc3QK LSsgICAgICAgIGxpYj1jb25mdGVzdAotKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2Jq ZXh0Ci0rICAgICAgICBkZXBsaWJzPQotKyAgICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2xf Q1hYCi0rCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgKLSsgICAgICAgIGNvbXBp bGVyX2ZsYWdzPS12Ci0rICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSsgICAgICAgIHZlcnN0cmlu Zz0KLSsgICAgICAgIG91dHB1dF9vYmpkaXI9LgotKyAgICAgICAgbGlibmFtZT1jb25mdGVzdAot KyAgICAgICAgbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZz0kYWxsb3dfdW5kZWZpbmVkX2Zs YWdfQ1hYCi0rICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ci0rICAgICAgICBpZiB7 IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhcmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBc fCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxXCIiKSA+JjUKLSsgIChldmFsICRh cmNoaXZlX2NtZHNfQ1hYIDJcPlwmMSBcfCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+ XCYxKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfQotKyAgICAgICAg dGhlbgotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwotKyAgICAgICAgZWxzZQotKwkg IGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsgICAgICAgIGZpCi0rICAgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsgICAg ICBlbHNlCi0rICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsgICAgICBmaQotKyAgICAg ICRSTSBjb25mdGVzdCoKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGFyY2hpdmVfY21k c19uZWVkX2xjX0NYWCIgPiY2OyB9Ci0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7 Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7 IH0KLSsKLStsaWJyYXJ5X25hbWVzX3NwZWM9Ci0rbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLStz b25hbWVfc3BlYz0KLStzaHJleHRfY21kcz0iLnNvIgotK3Bvc3RpbnN0YWxsX2NtZHM9Ci0rcG9z dHVuaW5zdGFsbF9jbWRzPQotK2ZpbmlzaF9jbWRzPQotK2ZpbmlzaF9ldmFsPQotK3NobGlicGF0 aF92YXI9Ci0rc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXVua25vd24KLSt2ZXJzaW9uX3R5 cGU9bm9uZQotK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLStzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKLStuZWVkX2xpYl9wcmVmaXg9dW5rbm93bgot K2hhcmRjb2RlX2ludG9fbGlicz1ubwotKwotKyMgd2hlbiB5b3Ugc2V0IG5lZWRfdmVyc2lvbiB0 byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1zZXRfdmVyc2lvbgotKyMgZmxhZ3Mg dG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cwotK25lZWRfdmVyc2lvbj11bmtub3duCi0rCi0r Y2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJGxpYm5hbWUuYScKLSsgIHNobGlicGF0aF92YXI9TElCUEFUSAotKwotKyAgIyBBSVggMyBo YXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBlbmQgYSBtYWpvciB2ZXJzaW9uIHRv IHRoZSBuYW1lLgotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKLSsgIDs7Ci0rCi0rYWl4WzQtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4 Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgaGFyZGNvZGVf aW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAg IyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAgICAjIFdpdGggR0NDIHVwIHRvIDIuOTUu eCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9ydCBmaWxlCi0rICAgICMgZm9yIGRlcGVu ZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxlIHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAg IyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFy eSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBU aGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3BtZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJp b3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4NCB8IGFpeDQuWzAx XSB8IGFpeDQuWzAxXS4qKQotKyAgICAgIGlmIHsgZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAo X19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+PSA5NyknCi0rCSAgIGVjaG8gJyB5ZXMg JwotKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtDQ30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYv bnVsbDsgdGhlbgotKwk6Ci0rICAgICAgZWxzZQotKwljYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAg ICAgZmkKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBu byB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJlbnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNv cnJlY3QKLSsgICAgIyBzb25hbWUgaW50byBleGVjdXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRk IHZlcnNpb25pbmcgc3VwcG9ydCB0bwotKyAgICAjIGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxp bmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgotKyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50 aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtp bmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBsaWI8bmFtZT4uc28KLSsgICAgICAjIGluc3Rl YWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3BsZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAot KyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKLSsgICAgZWxzZQotKyAgICAgICMgV2UgcHJlc2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBz aGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4yCi0rICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3 ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtpbmcuCi0rICAgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRsaWJuYW1lLmEnCi0rICAgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZmkKLSsg ICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICi0rICBmaQotKyAgOzsKLSsKLSthbWlnYW9zKikKLSsg IGNhc2UgJGhvc3RfY3B1IGluCi0rICBwb3dlcnBjKQotKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBB bWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5zbyBsaWJyYXJpZXMuCi0rICAgICMgV2hlbiBj b21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAtdXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBj b21waWxlbGluZS4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIDs7Ci0rICBtNjhrKQotKyAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4bGlicmFyeSAkbGlibmFtZS5hJwotKyAgICAj IENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotKyAg ICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMgJGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYv bnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxpYiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChb Xi9dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1l fV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFt ZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4 bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0r YmVvcyopCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9Jwot KyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJS QVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNkaVs0NV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGZpbmlzaF9jbWRzPSdQQVRI PSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIg L3Vzci9YMTEvbGliIC91c3IvY29udHJpYi9saWIgL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvc2hsaWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIi Ci0rICAjIHRoZSBkZWZhdWx0IGxkLnNvLmNvbmYgYWxzbyBjb250YWlucyAvdXNyL2NvbnRyaWIv bGliIGFuZAotKyAgIyAvdXNyL1gxMVI2L2xpYiAoL3Vzci9YMTEgaXMgYSBsaW5rIHRvIC91c3Iv WDExUjYpLCBidXQgbGV0IHVzIGFsbG93Ci0rICAjIGxpYnRvb2wgdG8gaGFyZC1jb2RlIHRoZXNl IGludG8gcHJvZ3JhbXMKLSsgIDs7Ci0rCi0rY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2Vn Y2MqKQotKyAgdmVyc2lvbl90eXBlPXdpbmRvd3MKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsKLSsgIGNhc2UgJEdDQywk aG9zdF9vcyBpbgotKyAgeWVzLGN5Z3dpbiogfCB5ZXMsbWluZ3cqIHwgeWVzLHB3MzIqIHwgeWVz LGNlZ2NjKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKLSsgICAg IyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21k cwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4K LSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmls ZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJu YW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIgLXAgXCRkbGRp cn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWV+Ci0r ICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0IC1uICdcJyck c3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgotKyAgICAgICAg ZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBcJD87Ci0rICAg ICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdc JycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRkaXIvXCRkbGRs bH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikKLSsgICAgICAj IEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBz b25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5Zy8nYGBlY2hv ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4 dH0nCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFw aSAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgICAgIDs7Ci0rICAgIG1pbmd3KiB8IGNlZ2NjKikK LSsgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAotKyAgICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICBzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCAkR1JFUCAiXmxpYnJhcmllczoiIHwg JFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotKyAgICAgIGlmICRFQ0hP ICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYv bnVsbDsgdGhlbgotKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3Jt YXQgUEFUSCBwcmludGVkIGJ5Ci0rICAgICAgICAjIG1pbmd3IGdjYywgYnV0IHdlIGFyZSBydW5u aW5nIG9uIEN5Z3dpbi4gR2NjIHByaW50cyBpdHMgc2VhcmNoCi0rICAgICAgICAjIHBhdGggd2l0 aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhl Ci0rICAgICAgICAjIGRyaXZlIGxldHRlcnMgKGN5Z3dpbiBmaWxldXRpbHMgdW5kZXJzdGFuZHMg dGhlbSksIHNvIGxlYXZlIHRoZW0sCi0rICAgICAgICAjIGVzcGVjaWFsbHkgYXMgd2UgbWlnaHQg cGFzcyBmaWxlcyBmb3VuZCB0aGVyZSB0byBhIG1pbmd3IG9iamR1bXAsCi0rICAgICAgICAjIHdo aWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0rICAgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNF RCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAg ICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4g J2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQg LWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7 dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7Owot KwotKyAgKikKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxl YXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGli bmFtZS5saWInCi0rICAgIDs7Ci0rICBlc2FjCi0rICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQu ZXhlJwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0 b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFyPVBBVEgKLSsgIDs7Ci0r Ci0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkeWxk IgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQnCi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZTERfTElCUkFSWV9QQVRI Ci0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYmIGVjaG8gLnNvIHx8IGVj aG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2Fs L2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsgIHZlcnNpb25fdHlwZT1s aW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVk X2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgOzsKLSsKLStmcmVl YnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStmcmVlYnNkKiB8IGRyYWdv bmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkg aW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4K LSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0rICAgIG9iamZvcm1hdD1g L3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAg IGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICopIG9iamZvcm1hdD1lbGYg OzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQK LSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMKLSsgICAgICA7OwotKyAg ZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2UgJGhvc3Rfb3Mg aW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwot KyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKLSsgICAgc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxmMy5bMi05XSogfCBcCi0r ICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJlZWJzZDQuMS4xIHwgZnJl ZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAg aGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBmcm9tIDQuNiBvbiwgYW5k IERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rZ251KikK LSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3Zl cnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21h am9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLStocHV4OSogfCBo cHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRo ZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMgbGluayBhZ2Fp bnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlh NjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz Ci0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMg IyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIvaHB1eDMy IC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAgICBmaQotKyAg ICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjCi0r ICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgaGFyZGNv ZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgot KyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQgd2UgaGFuZGxl IFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVz cyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2NzL2xpYi9wYTIw XzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBkeW5h bWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPVNITElCX1BB VEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMgcmVxdWlyZWQg dG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIDs7Ci0rICBl c2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFy aWVzIGFyZSBtb2RlIDU1NS4KLSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwot KyAgOzsKLSsKLStpbnRlcml4WzMtOV0qKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVk X2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBkeW5hbWljX2xpbmtlcj0nSW50ZXJpeCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raXJpeDUqIHwg aXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbm9uc3RvcHV4 KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1eCA7OwotKyAgICAqKQotKwlpZiB0ZXN0ICIkbHRfY3Zf cHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rCQl2ZXJzaW9uX3R5cGU9bGludXgKLSsJZWxzZQot KwkJdmVyc2lvbl90eXBlPWlyaXgKLSsJZmkgOzsKLSsgIGVzYWMKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxp Ym5hbWUke3NoYXJlZF9leHR9JwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgaXJpeDUqIHwgbm9u c3RvcHV4KikKLSsgICAgbGlic3VmZj0gc2hsaWJzdWZmPQotKyAgICA7OwotKyAgKikKLSsgICAg Y2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0 byBMRAotKyAgICAqLTMyfCoiLTMyICJ8Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQot KyAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0gbGlibWFnaWM9MzItYml0OzsKLSsgICAgKi1uMzJ8 KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMyfCoiLW1lbGYzMmJtaXBuMzIgIikKLSsgICAgICBsaWJz dWZmPTMyIHNobGlic3VmZj1OMzIgbGlibWFnaWM9TjMyOzsKLSsgICAgKi02NHwqIi02NCAifCot bWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlwICIpCi0rICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9 NjQgbGlibWFnaWM9NjQtYml0OzsKLSsgICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdp Yz1uZXZlci1tYXRjaDs7Ci0rICAgIGVzYWMKLSsgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0 aF92YXI9TERfTElCUkFSWSR7c2hsaWJzdWZmfV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9bm8KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1 ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3IvbG9jYWwvbGliJHtsaWJzdWZmfSIKLSsgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCi0r ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotKyMgTm8gc2hhcmVkIGxpYiBzdXBw b3J0IGZvciBMaW51eCBvbGRsZCwgYW91dCwgb3IgY29mZi4KLStsaW51eCpvbGRsZCogfCBsaW51 eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0r IyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUpCi0rICB2ZXJz aW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5v Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBs ZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFy ZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICi0rICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsg IHNhdmVfbGliZGlyPSRsaWJkaXIKLSsgIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9n X2NvbXBpbGVyX3dsX0NYWFwiOyBcCi0rICAgICAgIExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYXCIiCi0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRh Y19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok TElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0r ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3Qk YWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3Qk YWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251 bGw7IHRoZW4KLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLStmaQotKwotK2Vs c2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25m dGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29u ZnRlc3QuJGFjX2V4dAotKyAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCi0rICBsaWJkaXI9JHNhdmVf bGliZGlyCi0rCi0rICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVu YWNjZXB0YWJsZS4KLSsgICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9y IGZhc3RfaW5zdGFsbAotKyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsKLSsgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0 byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0aC4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgotKwotKyAgIyBBcHBlbmQgbGQuc28u Y29uZiBjb250ZW50cyB0byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5z by5jb25mOyB0aGVuCi0rICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVt KHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsg fSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYg fCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1d KiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0 cmEiCi0rICBmaQotKwotKyAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQg ZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCi0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51 eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5h bWljIGxpbmtlci4gIFNpbmNlIHRoaXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywK LSsgICMgbW9zdCBwb3dlcnBjLWxpbnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRo ZXNlIGRheXMgYW5kCi0rICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRo ZSB0ZXN0IHdhcyByZW1vdmVkLCBhbmQgd2UKLSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHlu YW1pYyBsaW5rZXIgaXMgaW4gdXNlLgotKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5z bycKLSsgIDs7Ci0rCi0rbmV0YnNkKikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRD QyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJc JFBBVEg6L3NiaW4iIGxkY29uZmlnIC1tICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdO ZXRCU0QgKGEub3V0KSBsZC5zbycKLSsgIGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAg c29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsg ICAgZHluYW1pY19saW5rZXI9J05ldEJTRCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK LSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNp b25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLSsq bnRvKiB8ICpxbngqKQotKyAgdmVyc2lvbl90eXBlPXFueAotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhh cmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKLSsgIDs7 Ci0rCi0rb3BlbmJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21l IG9sZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNp b25lZCBsaWJzLgotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJz ZDMuMy4qKQluZWVkX3ZlcnNpb249eWVzIDs7Ci0rICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAg OzsKLSsgIGVzYWMKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgn Ci0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGly JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hv IF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0k aG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICAgIG9wZW5ic2QyLls4OV0gfCBvcGVuYnNkMi5bODldLiopCi0rCXNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKwk7OwotKyAgICAgICopCi0rCXNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKLSsJOzsKLSsgICAgICBlc2FjCi0rICBlbHNlCi0rICAgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGZpCi0rICA7OwotKwotK29zMiopCi0rICBs aWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRs aWJuYW1lLmEnCi0rICBkeW5hbWljX2xpbmtlcj0nT1MvMiBsZC5leGUnCi0rICBzaGxpYnBhdGhf dmFyPUxJQlBBVEgKLSsgIDs7Ci0rCi0rb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgdmVyc2lv bl90eXBlPW9zZgotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2Nt cGxycy9jYyAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiAvdmFyL3NobGliIgotKyAgc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rICA7OwotKwot K3Jkb3MqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICB2 ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9u PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRs aWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgIyBsZGQgY29tcGxhaW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUK LSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kICt4ICRsaWInCi0rICA7OwotKwotK3N1bm9zNCop Ci0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNv bmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5 ZXM7IHRoZW4KLSsgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBmaQotKyAgbmVlZF92ZXJzaW9u PXllcwotKyAgOzsKLSsKLStzeXN2NCB8IHN5c3Y0LjMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4 Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAg Y2FzZSAkaG9zdF92ZW5kb3IgaW4KLSsgICAgc25pKQotKyAgICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIHJ1bnBhdGhf dmFyPUxEX1JVTl9QQVRICi0rICAgICAgOzsKLSsgICAgc2llbWVucykKLSsgICAgICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBtb3Rvcm9sYSkKLSsgICAgICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgICAgICBuZWVkX3ZlcnNpb249bm8KLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vz ci9saWIgL3Vzci9jY3MvbGliJwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3N5c3Y0 Kk1QKikKLSsgIGlmIHRlc3QgLWQgL3Vzci9uZWMgO3RoZW4KLSsgICAgdmVyc2lvbl90eXBlPWxp bnV4Ci0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJz dWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n Ci0rICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwotKyAgICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rc3lzdjUqIHwg c2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3Miop Ci0rICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC1lbGYKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50 b19saWJzPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNy L2Njcy9saWIgL3Vzci9saWIgL2xpYicKLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPScvdXNyL2Njcy9saWIgL3Vzci9saWInCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgICBzY28zLjJ2NSopCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWMgL2xpYiIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHN5 c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xpYicKLSsgIDs7Ci0rCi0rdHBmKikKLSsg ICMgVFBGIGlzIGEgY3Jvc3MtdGFyZ2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdO VS9MaW51eC4KLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0r ICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNv ZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51 eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IDs7Ci0rCi0rKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZHluYW1pY19saW5rZXIiID4mNQotKyRhc19l Y2hvICIkZHluYW1pY19saW5rZXIiID4mNjsgfQotK3Rlc3QgIiRkeW5hbWljX2xpbmtlciIgPSBu byAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9 IlBBVEggJHNobGlicGF0aF92YXIgJHJ1bnBhdGhfdmFyIgotK2lmIHRlc3QgIiRHQ0MiID0geWVz OyB0aGVuCi0rICB2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iJHZhcmlhYmxlc19zYXZlZF9m b3JfcmVsaW5rIEdDQ19FWEVDX1BSRUZJWCBDT01QSUxFUl9QQVRIIExJQlJBUllfUEFUSCIKLStm aQotKwotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjK3NldH0iID0g c2V0OyB0aGVuCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRsdF9jdl9zeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMiCi0rZmkKLStpZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjK3NldH0iID0gc2V0OyB0aGVuCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iJGx0X2N2X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIgotK2ZpCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRv IHByb2dyYW1zIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGli cmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uICIgPiY2OyB9Ci0raGFyZGNvZGVfYWN0aW9uX0NY WD0KLStpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFgiIHx8Ci0rICAg dGVzdCAtbiAiJHJ1bnBhdGhfdmFyX0NYWCIgfHwKLSsgICB0ZXN0ICJYJGhhcmRjb2RlX2F1dG9t YXRpY19DWFgiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4 aXN0ZW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9DWFgiICE9 IG5vICYmCi0rICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5n IGlzIHNobGlicGF0aF92YXIsIHdlCi0rICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ug d2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5Ci0rICAgICAjIHdoZW4gd2Ug c2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCi0rICAgICAj IyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCBDWFgpIiAhPSBubyAm JgotKyAgICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0xfQ1hYIiAhPSBubzsgdGhlbgotKyAgICAj IExpbmtpbmcgYWx3YXlzIGhhcmRjb2RlcyB0aGUgdGVtcG9yYXJ5IGxpYnJhcnkgZGlyZWN0b3J5 LgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNh biBsaW5rIHdpdGhvdXQgaGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGlu ZyBkaXJzLgotKyAgICBoYXJkY29kZV9hY3Rpb25fQ1hYPWltbWVkaWF0ZQotKyAgZmkKLStlbHNl Ci0rICAjIFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBo YXJkY29kZSBleGlzdGluZwotKyAgIyBkaXJlY3Rvcmllcy4KLSsgIGhhcmRjb2RlX2FjdGlvbl9D WFg9dW5zdXBwb3J0ZWQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjUKLSskYXNfZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9D WFgiID4mNjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29kZV9hY3Rpb25fQ1hYIiA9IHJlbGluayB8 fAotKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoX0NYWCIgPSB5ZXM7IHRoZW4KLSsgICMgRmFzdCBp bnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwot K2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKLSsgICAg IHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9u IGlzIG5vdCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKLStmaQot KwotKwotKwotKwotKwotKwotKwotKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBD Qz0kbHRfc2F2ZV9DQwotKyAgTERDWFg9JExECi0rICBMRD0kbHRfc2F2ZV9MRAotKyAgR0NDPSRs dF9zYXZlX0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKLSsgIGx0X2N2 X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0 aF9MRAotKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCi0rICBsdF9j dl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2ZpICMgdGVzdCAiJF9sdF9jYXVn aHRfQ1hYX2Vycm9yIiAhPSB5ZXMKLSsKLSthY19leHQ9YwotK2FjX2NwcD0nJENQUCAkQ1BQRkxB R1MnCi0rYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKyAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRz IGxpYnRvb2wiCi0rCi0rCi0rCi0rCi0rIyBPbmx5IGV4cGFuZCBvbmNlOgotKwotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4uICIgPiY2OyB9Ci0r TE5fUz0kYXNfbG5fcwotK2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAtcyI7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8s IHVzaW5nICRMTl9TIiA+JjUKLSskYXNfZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KLStm aQotKwotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICR7TUFL RS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy ICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICIgPiY2OyB9Ci0rc2V0IHggJHtNQUtFLW1h a2V9Ci0rYWNfbWFrZT1gJGFzX2VjaG8gIiQyIiB8IHNlZCAncy8rL3AvZzsgcy9bXmEtekEtWjAt OV9dL18vZydgCi0raWYgeyBhc192YXI9YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0OyBl dmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNF T0YKLStTSEVMTCA9IC9iaW4vc2gKLSthbGw6Ci0rCUBlY2hvICdAQEAlJSU9JChNQUtFKT1AQEAl JSUnCi0rX0FDRU9GCi0rIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRl cmluZy4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCi0rY2FzZSBgJHtNQUtFLW1ha2V9IC1m IGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCi0rICAqQEBAJSUlPT8qPUBAQCUlJSopCi0r ICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PXllczs7Ci0rICAqKQotKyAg ICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD1ubzs7Ci0rZXNhYwotK3JtIC1m IGNvbmZ0ZXN0Lm1ha2UKLStmaQotK2lmIGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFrZV8ke2Fj X21ha2V9X3NldCA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSsgIFNFVF9NQUtFPQotK2Vs c2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgotK2ZpCi0r Ci0rCi0rIyBTZXQgZGVmYXVsdCBsYW5ndWFnZSB0byBDKysKLSthY19leHQ9Y3BwCi0rYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsK LSsjIENoZWNrIGZvciBleGNlcHRpb25zIHN3aXRjaAotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJs ZS1leGNlcHRpb25zIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9leGNlcHRpb25zK3Nl dH0iID0gc2V0OyB0aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9leGNlcHRpb25zOwotK2NhdCA+ PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBTT0NJX0VYQ0VQVElPTlMgMQotK19BQ0VP RgotKwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfZXhjZXB0aW9ucyIgIT0geG5vICYmIGVuYWJs ZV9leGNlcHRpb25zPXllcwotK3Rlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiAhPSB4bm8g JiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCi0rCi0rIyBDaGVjayBmb3IgaW5mbyBwYWdlcwotKyMg Q2hlY2sgd2hldGhlciAtLWVuYWJsZS1pbmZvLWRvYyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtl bmFibGVfaW5mb19kb2Mrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2lu Zm9fZG9jOwotK2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFi bGVfaW5mb19kb2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2Vu YWJsZV9odG1sX2RvYytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfaHRt bF9kb2M7Ci0rZmkKLSsKLSt0ZXN0ICJ4JGVuYWJsZV9odG1sX2RvYyIgIT0geG5vICYmIGVuYWJs ZV9odG1sX2RvYz15ZXMKLSsKLSsKLSsjIFByb3ZpZGUgLS13aXRoLWRvY2RpcgotKwotKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtZG9jZGlyIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfZG9j ZGlyK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX2RvY2RpcjsgRE9DX0RJUj0i JHdpdGh2YWwiCi0rZWxzZQotKyAgRE9DX0RJUj0iIgotK2ZpCi0rCi0raWYgdGVzdCAieCRET0Nf RElSIiAhPSB4OyB0aGVuCi0rICBkb2NkaXI9IiRET0NfRElSIgotK2Vsc2UKLSsgIGRvY2Rpcj0i JHtkYXRhZGlyfS9kb2MvJFBBQ0tBR0UtJFZFUlNJT04iCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNr IGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIFNPQ0kgaXRzZWxmKQotKyMgQ2hlY2sgd2hl dGhlciAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5h YmxlX2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFi bGVfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAg ICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rICAgICAgZW5hYmxlX2J1 cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYnVycmllZF9oZWFk ZXJzPW5vCi0rZmkKLSsKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJh dGlvbgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX2J1 cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9 Ci0rICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfSEVBREVS U19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9Ci0rZmkKLSsK LSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAg IENQUEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBD aGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rIyBDaGVj ayB3aGV0aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuCi0r ICBlbmFibGV2YWw9JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5h YmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsg ICBlbHNlCi0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0rICAgZmkKLStlbHNl Ci0rICAgZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3Jh cnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfbXlzcWxfYnVycmll ZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMi ID0geHllczsgdGhlbgotKyAgU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPQotKyAgU09D SV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStlbHNlCi0rICBTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEX1RSVUU9JyMnCi0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNF PQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9 IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEICRD UFBGTEFHUyIKLStmaQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3Ig UG9zdEdyZVNRTCBjbGllbnQpCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXBvc3RncmVzcWwt YnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9wb3N0Z3Jlc3Fs X2J1cnJpZWRfaGVhZGVycytzZXR9IiA9IHNldDsgdGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVf cG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCi0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJ ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpCi0rZWxzZQotKyAg IGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwotK2ZpCi0rCi0rIyBUZW1wb3Jh cnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfcG9zdGdyZXNxbF9i dXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmll ZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF9UUlVFPQotKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vs c2UKLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFPScjJwotKyAgU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPQotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRl bmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQUEZM QUdTPSItRFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsK LSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBCb29zdCAoU1RMIEV4dGVuc2lvbnM6IGh0dHA6Ly93d3cuYm9vc3Qub3JnKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWJvb3N0IHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke3dpdGhfYm9vc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfYm9v c3Q7Ci0rICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4KLSsJ CSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgotKyAgICAgICAgICAgICAgICBlbGlmIHRlc3Qg IiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICB3YW50X2Jvb3N0 PSJ5ZXMiCi0rICAgICAgICAgICAgICAgICAgICBhY19ib29zdF9wYXRoPSIiCi0rICAgICAgICAg ICAgICAgIGVsc2UKLSsJCQkgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKLSsgICAgICAgICAgICAJ CWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgotKwkJICAgICAgICBmaQotKwotK2Vsc2UKLSsgIHdh bnRfYm9vc3Q9InllcyIKLStmaQotKwotKwotKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0rQk9P U1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18xIgot KwotKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCi0rCQlib29zdF9saWJf dmVyc2lvbl9yZXE9MS4zMwotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW49YGV4cHIg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAtOV0qXCknYAotKwkJYm9vc3Rf bGliX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChb MC05XSpcKSdgCi0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xp Yl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNp b25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1swLTldKlwu WzAtOV0qXC5cKFswLTldKlwpJ2AKLSsJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNpb25fcmVx X3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCi0rCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9t aW5vcj0iMCIKLSsgICAgCWZpCi0rCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0X2xp Yl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lvbl9yZXFf bWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAotKwkJeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBib29zdGxpYiA+PSAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgYm9vc3RsaWIg Pj0gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQotKwkJc3VjY2VlZGVkPW5vCi0r Ci0rCQkJCQkJCQkJCWlmIHRlc3QgLWQgL2xpYjY0OyB0aGVuCi0rCQkJQk9PU1RfTElCRElSVFlQ RT0ibGliNjQiCi0rCQllbHNlCi0rCQkJQk9PU1RfTElCRElSVFlQRT0ibGliIgotKwkJZmkKLSsJ CWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgotKwkJCWlmIHRlc3QgIiRCT09T VF9MSUJESVJUWVBFIiA9PSAibGliNjQiOyB0aGVuCi0rCQkJCWlmIHRlc3QgLWQgIiRhY19ib29z dF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIiAmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aC8kQk9P U1RfTElCRElSVFlQRSI7IHRoZW4KLSsJICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFj X2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCWVsc2UKLSsgICAgICAgICAgICAg ICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgotKwkJCQlmaQotKwkJCWVs c2UKLSsJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIiCi0rCQkJZmkKLSsJCQlC T09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZSIKLSsJCWVsc2UKLSsJCQlmb3Ig YWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAvdXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0 IDsgZG8KLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3Qi ICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IjsgdGhlbgotKwkJ CQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0r CQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUiCi0rCQkJCQli cmVhazsKLSsJCQkJZmkKLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3Rf cGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vYm9vc3QiOyB0aGVuCi0r CQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIK LSsJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0k Qk9PU1RfTURXX1ZFUlNJT04iCi0rCi0rCQkJCQkJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9w YXRoX3RtcC9saWIiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9saWIiICYmIHRlc3Qg ISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IjsgdGhlbgotKwkJCQkJCUJPT1NUX0xJQlM9 Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKLSsJCQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElC UyIKLSsJCQkJCWZpCi0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQlkb25lCi0rCQlmaQotKwot KwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIKLSsJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJP T1NUX0NGTEFHUyIKLSsJCWV4cG9ydCBDUFBGTEFHUwotKwotKwkJTERGTEFHU19TQVZFRD0iJExE RkxBR1MiCi0rCQlMREZMQUdTPSIkTERGTEFHUyAkQk9PU1RfTElCUyIKLSsJCWV4cG9ydCBMREZM QUdTCi0rCi0rICAgICAJY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsKLSsjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZlcnl0 aGluZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQK LSsjZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFj X3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK LSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgotKwotKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCQkgc3VjY2VlZGVkPXll cwotKwkJIGZvdW5kX3N5c3RlbT15ZXMKLSsgICAgICAgICA6Ci0rCi0rZWxzZQotKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKwotKwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rCQkJCQkJaWYgdGVz dCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgotKwkJCV92ZXJzaW9uPTAKLSsJCQlpZiB0 ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KLSsgICAgICAgICAgICAgICAgQk9PU1Rf TElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJaWYgdGVzdCAt ZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgotKwkJ CQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYv bnVsbGA7IGRvCi0rCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJzIyRhY19ib29z dF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdzL18vLi8nYAot KwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCi0rCQkJCQkJ aWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQlfdmVyc2lvbj0kX3ZlcnNp b25fdG1wCi0rCQkJCQkJZmkKLSsJCQkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJz aW9uIHwgc2VkICdzL1wuL18vJ2AKLSsJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3Bh dGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgotKwkJCQkJZG9uZQotKwkJCQlm aQotKwkJCWVsc2UKLSsJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4gL3VzciAvdXNyL2xvY2FsIC9v cHQgOyBkbwotKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRh Y19ib29zdF9wYXRoIjsgdGhlbgotKwkJCQkJCWZvciBpIGluIGBscyAtZCAkYWNfYm9vc3RfcGF0 aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbwotKwkJCQkJCQlfdmVyc2lvbl90bXA9 YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9i b29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCi0rCQkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9u X3RtcCBcPiAkX3ZlcnNpb25gCi0rCQkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRo ZW4KLSsJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJCQkJCQkJCWJlc3RfcGF0aD0k YWNfYm9vc3RfcGF0aAotKwkJCQkJCQlmaQotKwkJCQkJCWRvbmUKLSsJCQkJCWZpCi0rCQkJCWRv bmUKLSsKLSsJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8IHNlZCAncy9c Li9fLydgCi0rCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRoL2luY2x1ZGUvYm9vc3QtJFZF UlNJT05fVU5ERVJTQ09SRSIKLSsJCQkJQk9PU1RfTElCUz0iLUwkYmVzdF9wYXRoLyRCT09TVF9M SUJESVJUWVBFIgotKwotKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NUX1JPT1QiICE9ICJ4IjsgdGhl bgotKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRlc3QgLXIgIiRCT09TVF9ST09U IjsgdGhlbgotKwkJCQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJPT1NUX1JPT1QgOiAnLiovXCgu KlwpJ2AKLSsJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJzaW9uX2RpciB8IHNlZCAncy9i b29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAotKwkJCQkJCXN0YWdlX3ZlcnNpb25fc2hvcnRlbj1g ZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFswLTldKlwuWzAtOV0qXCknYAotKwkJCQkJCVZfQ0hF Q0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRlbiBcPlw9ICRfdmVyc2lvbmAKLSsJCQkJCQlp ZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCXsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NU X1JPT1QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0 IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30KLSsJCQkJCQkJQk9PU1RfQ0ZMQUdTPSIt SSRCT09TVF9ST09UIgotKwkJCQkJCQlCT09TVF9MSUJTPSItTCRCT09TVF9ST09UL3N0YWdlLyRC T09TVF9MSUJESVJUWVBFIgotKwkJCQkJCWZpCi0rCQkJCQlmaQotKwkgICAgCQlmaQotKwkJCWZp Ci0rCi0rCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJCWV4cG9ydCBD UFBGTEFHUwotKwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJCWV4cG9ydCBM REZMQUdTCi0rCi0rICAgICAJCWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCi0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21haW4gKCkK LSt7Ci0rCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2 ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28g b2xkCi0rI2VuZGlmCi0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0r ICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK LSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LiRhY19vYmpleHQ7IHRoZW4KLSsKLSsgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiB5ZXMgKCRfdmVyc2lvbikiID4mNQotKyRhc19lY2hvICJ5ZXMgKCRfdmVyc2lv bikiID4mNjsgfQotKwkJIHN1Y2NlZWRlZD15ZXMKLSsgICAgICAgICA6Ci0rCi0rZWxzZQotKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKyAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAibm8gKCRf dmVyc2lvbikiID4mNjsgfQotKyAgICAgICAgIDoKLSsKLStmaQotKwotK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJZmkKLSsK LSsJCWlmIHRlc3QgIiRzdWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRlc3QgIiRf dmVyc2lvbiIgPSAiMCIgOyB0aGVuCi0rCQkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZlcnNpb24g JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBoYXZlIGEg c3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBzcGVjaWZ5 IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBhIFBBVEgg dG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBib29zdCBp bnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGluIDxib29z dC92ZXJzaW9uLmhwcD4uIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogV2UgY291bGQg bm90IGRldGVjdCB0aGUgYm9vc3QgbGlicmFyaWVzICh2ZXJzaW9uICRib29zdF9saWJfdmVyc2lv bl9yZXFfc2hvcnRlbiBvciBoaWdoZXIpLiBJZiB5b3UgaGF2ZSBhIHN0YWdlZCBib29zdCBsaWJy YXJ5IChzdGlsbCBub3QgaW5zdGFsbGVkKSBwbGVhc2Ugc3BlY2lmeSBcJEJPT1NUX1JPT1QgaW4g eW91ciBlbnZpcm9ubWVudCBhbmQgZG8gbm90IGdpdmUgYSBQQVRIIHRvIC0td2l0aC1ib29zdCBv cHRpb24uICBJZiB5b3UgYXJlIHN1cmUgeW91IGhhdmUgYm9vc3QgaW5zdGFsbGVkLCB0aGVuIGNo ZWNrIHlvdXIgdmVyc2lvbiBudW1iZXIgbG9va2luZyBpbiA8Ym9vc3QvdmVyc2lvbi5ocHA+LiIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsJCQllbHNlCi0rCQkJCXsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAnWW91ciBib29zdCBsaWJyYXJpZXMgc2Vl bXMgdG8gb2xkICh2ZXJzaW9uICRfdmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29zdF9s aWJfdmVyc2lvbl9zaG9ydGVuJyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICdZb3Vy IGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5l ZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotKwkJCWZpCi0rCQllbHNlCi0rCi0rCi0rCi0rY2F0ID4+Y29u ZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1QgLyoqLwotK19BQ0VPRgotKwot KwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBC b29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkZpbGVzeXN0ZW0gbGlicmFyeSBpcyBhdmFpbGFi bGUuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0rc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJ CSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvZmlsZXN5c3RlbS9wYXRoLmhwcD4KLStpbnQKLStt YWluICgpCi0rewotK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6ZmlsZXN5c3RlbTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggbXlfcGF0aCggImZvby9iYXIvZGF0YS50 eHQiICk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsg IDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2 YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0r CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgotKyAg YXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8KLStmaQotKwotK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJIAkJ ICAgICAgICAJCQlhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjUKLSskYXNfZWNobyAi JGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNjsgfQotKwkJCWlmIHRlc3QgIiRheF9jdl9ib29z dF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNF T0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfRklMRVNZU1RFTSAvKiovCi0rX0FDRU9GCi0rCi0rCQkJ CUJOPWJvb3N0X2ZpbGVzeXN0ZW0KLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4t JENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4t bWd3LW10ICRCTi1tZ3ctbXQtcyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJO LW1ndy1zICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFz X2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hg Ci0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4u ICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192 YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGli ICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5o LiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot KwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNf ZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UK LSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9e L3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStm aQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25m dGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZl X0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRh c19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFs PWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AK LSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX0ZJTEVTWVNU RU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWsKLStlbHNlCi0r ICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJ CQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxl IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9P cHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9j dl9ib29zdF9wcm9ncmFtX29wdGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFj X2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFgg LWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSck Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2Nv bXBpbGVyX2dudQotKwotKwkJCSAgICAgICAgICAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+ Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+ Ci0raW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6cHJvZ3JhbV9vcHRpb25zOjpvcHRpb25zX2Rl c2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIg PiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQot KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9u cz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0 X3Byb2dyYW1fb3B0aW9ucz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJICAgICAgICAgICAgICAgYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jv b3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3By b2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP RgotKyNkZWZpbmUgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMgLyoqLwotK19BQ0VPRgotKwot KwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKLSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTjsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2Vj aG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYg eyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0 IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQg PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YK LStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4g KCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChh Y190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBp bGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAg IH07IHRoZW4KLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBj b25mdGVzdC5kU1lNCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2Fj X3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFs IidgCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVz IiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9 JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4 JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KLSsgIEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUI9Ii1s JGF4X2xpYiIgIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlu a19wcm9ncmFtX29wdGlvbnM9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJubyIiID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlRocmVhZCBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rf dGhyZWFkK3NldH0iID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0r YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIENYWEZMQUdTX1NBVkU9JENYWEZM QUdTCi0rCi0rCQkJIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4KLSsg IAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsaWYgdGVzdCAieCRi dWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rCQkJCSBDWFhGTEFHUz0iLW10aHJlYWRzICRD WFhGTEFHUyIKLSsJCQkgZWxzZQotKwkJCQlDWFhGTEFHUz0iLXB0aHJlYWQgJENYWEZMQUdTIgot KwkJCSBmaQotKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KyNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhyZWFkLmhwcD4KLStpbnQKLSttYWluICgpCi0rewot K2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAt ZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKLStjYXNl ICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKLSsg IGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAot KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgotKyAgYXhfY3ZfYm9vc3RfdGhyZWFkPXllcwotK2Vsc2UKLSsgICRh c19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3RfdGhyZWFkPW5vCi0rZmkKLSsK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLSsJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NBVkUKLSsJCQkgYWNfZXh0PWNwcAotK2Fj X2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1Mg JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRl c3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4 dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0r Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9v c3RfdGhyZWFkIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY2OyB9Ci0r CQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAg ICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJ ICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVz dCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0i LW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFH Uz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwotKwotK2NhdCA+PmNv bmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1RIUkVBRCAvKiovCi0rX0FD RU9GCi0rCi0rCQkJCUJOPWJvb3N0X3RocmVhZAotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4t JENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND LW10LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJEND LW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19l Y2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lm IHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNl dCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNf Y2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9G Ci0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWlu ICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAo YWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5r IikgMj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAg ICB9OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYg Y29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSth Y19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3Zh bCInYAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3Jl cyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFs PSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAi eCRhc192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9USFJFQURfTElCPSItbCRheF9saWIi ICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStm aQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsg dGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1z IGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHtheF9jdl9ib29zdF9pb3N0cmVhbXMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsK LSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICov Ci0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVk ZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgotKwkJCQkJCQkJCQkJCSAj aW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgotKwotK2ludAotK21haW4g KCkKLSt7Ci0rc3RkOjpzdHJpbmcgIGlucHV0ID0gIkhlbGxvIFdvcmxkISI7Ci0rCQkJCQkJCQkJ IG5hbWVzcGFjZSBpbyA9IGJvb3N0Ojppb3N0cmVhbXM7Ci0rCQkJCQkJCQkJIGlvOjpmaWx0ZXJp bmdfaXN0cmVhbSAgaW4oYm9vc3Q6Om1ha2VfaXRlcmF0b3JfcmFuZ2UoaW5wdXQpKTsKLSsJCQkJ CQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCi0r ICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK LSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X2lvc3RyZWFtcz15ZXMKLStlbHNlCi0r ICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWF4X2N2X2Jvb3N0X2lvc3RyZWFtcz1ubwot K2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY1Ci0rJGFz X2VjaG8gIiRheF9jdl9ib29zdF9pb3N0cmVhbXMiID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhf Y3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmgg PDxcX0FDRU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX0lPU1RSRUFNUyAvKiovCi0rX0FDRU9GCi0r Ci0rCQkJCUJOPWJvb3N0X2lvc3RyZWFtcwotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQt cyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hv ICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsg YXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7 IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hl Y2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgp Ci0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgot K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9 OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29u ZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19y ZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCIn YAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIg PiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7 JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRh c192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIi ICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStm aQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsg dGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXph dGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24rc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19l eHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29u ZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0 Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8ZnN0cmVhbT4KLSsJCQkJCQkJCQkJCQkgI2luY2x1ZGUgPGJvb3N0L2Fy Y2hpdmUvdGV4dF9vYXJjaGl2ZS5ocHA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfaWFyY2hpdmUu aHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rc3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1l Iik7Ci0rCQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJ CQkJCQkJCQkgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r cm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIx Ci0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzCi0r ZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2Vk ICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlheF9jdl9ib29zdF9zZXJpYWxp emF0aW9uPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc2VyaWFsaXph dGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA+JjY7IH0K LSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMiOyB0aGVu Ci0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfQk9PU1RfU0VS SUFMSVpBVElPTiAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJOPWJvb3N0X3NlcmlhbGl6YXRpb24K LSsJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAk Qk4tJENDLXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4t JENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBk bwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWlu IiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0 ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStM SUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3Qu JGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsg IDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgk YWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2Vj aG8iKSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0 dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBy bSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3Rf eCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xp Yj15ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNf YWNfTGliPW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28g XAotKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNf Y2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0xpYid9Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+ JjY7IH0KLSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNo byAiJGFzX3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAg Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJy ZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJ CQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3 ICRCTi1tZ3ctbXQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQt cyAkQk4tbWd3LXMgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hv ICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIHsg YXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7 IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hl Y2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0r Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgp Ci0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgot K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNf dHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikg Mj5jb25mdGVzdC5lcjEKLSsgIGFjX3N0YXR1cz0kPwotKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKLSsgIHJtIC1mIGNvbmZ0ZXN0LmVyMQotKyAgY2F0IGNvbmZ0 ZXN0LmVyciA+JjUKLSsgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4 X3dlcnJvcl9mbGFnIiB8fAotKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgotKyAgICAgICB9ICYm IHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKLSsJIHRlc3QgIiRjcm9zc19jb21waWxp bmciID0geWVzIHx8Ci0rCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgICAgICB9 OyB0aGVuCi0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1Ci0rCi0rCWV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLSsKLStybSAtcmYgY29u ZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSthY19y ZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFzX3ZhbCIn YAotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIg PiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7 JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRh c192YWwiID0geCIieWVzOyB0aGVuCi0rICBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4 X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5v IgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4 bm8iOyB0aGVuCi0rCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJCWZpCi0rCi0rCQkJeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTaWdu YWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0 aGVyIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQot K2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3Rfc2lnbmFscytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot KwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRl IDxib29zdC9zaWduYWwuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rYm9vc3Q6OnNpZ25h bDx2b2lkICgpPiBzaWc7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFj X3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owot KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF9zaWduYWxzPXllcwotK2Vsc2UKLSsgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubwotK2ZpCi0rCi0rcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4mNQotKyRhc19lY2hvICIkYXhfY3Zf Ym9vc3Rfc2lnbmFscyIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9zaWduYWxz IiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCi0rI2RlZmlu ZSBIQVZFX0JPT1NUX1NJR05BTFMgLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9zaWdu YWxzCi0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10 LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGli JEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9O IDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydf bWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1h aW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZh bCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJT Ci0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7 Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3Ry eV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19z dGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19l eGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190 ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2YWwgIiRhc19h Y19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJZXZhbCAi JGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9 JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRh c19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3Jl cyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9Ci0rCQkgJGFz X2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4K LSsgIEJPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVh awotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJ aWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30K LSsJCQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVj a2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxp YnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtheF9jdl9ib29zdF9k YXRlX3RpbWUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK LSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvZGF0ZV90aW1lL2dyZWdv cmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rdXNpbmcg bmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29z dF9kYXRlX3RpbWU9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlh eF9jdl9ib29zdF9kYXRlX3RpbWU9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9i b29zdF9kYXRlX3RpbWUiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+ JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPSAieHllcyI7IHRo ZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9E QVRFX1RJTUUgLyoqLwotK19BQ0VPRgotKwotKwkJCQlCTj1ib29zdF9kYXRlX3RpbWUKLSsJCQkJ Zm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJEND LXMgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxp YiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJ CQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRh c190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4g aW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRh eF9saWIuLi4gIiA+JjY7IH0KLStpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwi XCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSIt bCRheF9saWIgICRMSUJTIgotK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNv bmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+ JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g JiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7 Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAotKwkgJGFzX3Rlc3RfeCBjb25m dGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMi Ci0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0r c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlldmFsICIkYXNfYWNfTGli PW5vIgotK2ZpCi0rCi0rcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAotKyAg ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tf bGliX3NhdmVfTElCUwotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9 Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0K LSthc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KLSsJCSAkYXNfZWNobyAiJGFz X3ZhbCInYAotKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgotKyAgQk9PU1Rf REFURV9USU1FX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNl Ci0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3Qg IngkbGlua190aHJlYWQiPSJubyIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJ CQkJZmkKLSsJCQlmaQotKwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2 YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcmVnZXgrc2V0fSIg PSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJ CSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSck Q1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGlu az0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4 eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvcmVnZXguaHBwPgotKwotK2ludAotK21haW4gKCkK LSt7Ci0rYm9vc3Q6OnJlZ2V4IHIoKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGFjX3RyeT0iJGFj X2NvbXBpbGUiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgot KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY29tcGlsZSIpIDI+ Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVz dC5lcnIgPiY1Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93 ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KLSsgIGF4X2N2X2Jvb3N0X3JlZ2V4PXll cwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQot K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3RfcmVn ZXg9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9yZWdleCIgPiY1Ci0r JGFzX2VjaG8gIiRheF9jdl9ib29zdF9yZWdleCIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9j dl9ib29zdF9yZWdleCIgPSAieHllcyI7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgotKyNkZWZpbmUgSEFWRV9CT09TVF9SRUdFWCAvKiovCi0rX0FDRU9GCi0rCi0rCQkJCUJO PWJvb3N0X3JlZ2V4Ci0rCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8k YXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgeyBhc192YXI9JGFzX2Fj X0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9M SUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgPmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMu aCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJu IG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5r IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVy MQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQot KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWci IHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwK LSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsgIGV2 YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsK LSsJZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4 X2NvbmZ0ZXN0Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4 dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2FjX3Jlcz1gZXZhbCAnYXNf dmFsPSR7JyRhc19hY19MaWInfQotKwkJICRhc19lY2hvICIkYXNfdmFsIidgCi0rCSAgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNo byAiJGFjX3JlcyIgPiY2OyB9Ci0rYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9 Ci0rCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5 ZXM7IHRoZW4KLSsgIEJPT1NUX1JFR0VYX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9Inll cyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25l Ci0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCXsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEi ID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkg aXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29z dDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStp ZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9 Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKLSsKLSsJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBwPgotK2ludAotK21haW4gKCkKLSt7 Ci0rdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0ZTsKLSsJCQkJCSAgICAgICAgICAg ICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFt cGxlIDEiICk7IHJldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nh c2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8 Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0OyB0aGVuCi0rICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXll cwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQot K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJYXhfY3ZfYm9vc3RfdW5p dF90ZXN0X2ZyYW1ld29yaz1ubwotK2ZpCi0rCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfdW5pdF90 ZXN0X2ZyYW1ld29yayIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF91bml0X3Rl c3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FD RU9GCi0rI2RlZmluZSBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksgLyoqLwotK19BQ0VP RgotKwotKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKLSsgICAgCQlzYXZlZF9sZGZs YWdzPSIke0xERkxBR1N9IgotKwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1t dCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1n dy1tdC1zIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rICAgICAgICAgICAgICAgIExERkxBR1M9IiR7 TERGTEFHU30gLWwkYXhfbGliIgotKyAgICAJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5 IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB0aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRU ZXN0RnJhbWV3b3JrIGxpYnJhcnkuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0 X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29u ZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQg JENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScK LSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsgICAgICAgICAg ICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8K LStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRl IDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSt1c2luZyBi b29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1w bGUgMSIgKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9 IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv bmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3Qu ZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRo ZW4KLSsgIGxpbmtfdGhyZWFkPSJ5ZXMiCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFp bGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m NQotKwotKwlsaW5rX3RocmVhZD0ibm8iCi0rZmkKLSsKLStybSAtcmYgY29uZnRlc3QuZFNZTQot K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBh OF9jb25mdGVzdC5vbyBcCi0rICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY1Ci0r JGFzX2VjaG8gIiRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA+JjY7IH0KLSsgICAg ICAgICAgICAgICAgTERGTEFHUz0iJHtzYXZlZF9sZGZsYWdzfSIKLSsJCQkgICAgaWYgdGVzdCAi eCRsaW5rX3RocmVhZCIgPSAieHllcyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIEJPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUktfTElCPSItbCRheF9saWIiCi0rCi0rCQkJCQlicmVhawotKwkJ CQlmaQotKyAgICAgICAgICAgICAgZG9uZQotKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFk IiA9ICJ4bm8iOyB0aGVuCi0rCQkJCSAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291 bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsJ CWZpCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTX1NBVkVEIgotKyAgICAgICAgTERGTEFH Uz0iJExERkxBR1NfU0FWRUQiCi0rCWZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0 cDovL3d3dy5teXNxbC5vcmcKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5h YmxlLWJhY2tlbmQtbXlzcWwgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRf bXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfbXlz cWw7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBlbmFibGVfYmFj a2VuZF9teXNxbD1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX215c3FsPXllcwot KyAgICAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCi0rCi0rZmkKLSsK LSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgotKyAg IE1ZU1FMX0RJUlM9Im15c3FsIgotKyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIKLSsKLSsK LSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dp dGhfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdpdGhfbXlzcWw7Ci0rCU1Z U1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVkZSIKLSsgICAgICAgIGlmIHRlc3QgIiR3 aXRodmFsIiA9ICJubyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X215c3FsPSJubyIKLSsgICAg ICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50 X215c3FsPSJ5ZXMiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgd2FudF9teXNxbD0ieWVz IgotKyAgICAgICAgICAgIE1ZU1FMX0NPTkZJRz0iJHdpdGh2YWwiCi0rICAgICAgICBmaQotKwot K2Vsc2UKLSsgIHdhbnRfbXlzcWw9InllcyIKLSsJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1 ZGUgL3Vzci9sb2NhbCAvb3B0IgotKwotK2ZpCi0rCi0rCi0rICAgIE1ZU1FMX0NGTEFHUz0iIgot KyAgICBNWVNRTF9MREZMQUdTPSIiCi0rICAgIE1ZU1FMX1ZFUlNJT049IiIKLSsKLSsKLSsgICAg aWYgdGVzdCAiJHdhbnRfbXlzcWwiID0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3Qg LXogIiRNWVNRTF9DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsgICAgICAgICAgICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgIm15c3FsX2NvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IG15c3FsX2NvbmZpZzsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7 YWNfY3ZfcGF0aF9NWVNRTF9DT05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkTVlTUUxfQ09ORklHIGluCi0rICBbXFwv XSogfCA/OltcXC9dKikKLSsgIGFjX2N2X3BhdGhfTVlTUUxfQ09ORklHPSIkTVlTUUxfQ09ORklH IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0r ICAqKQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgotKyAgICBhY19jdl9wYXRoX01ZU1FMX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQot K0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rTVlTUUxfQ09ORklHPSRh Y19jdl9wYXRoX01ZU1FMX0NPTkZJRwotK2lmIHRlc3QgLW4gIiRNWVNRTF9DT05GSUciOyB0aGVu Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfQ09ORklHIiA+ JjUKLSskYXNfZWNobyAiJE1ZU1FMX0NPTkZJRyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9 Ci0rZmkKLSsKLSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgICAgIGlmIHRlc3QgISAt eCAiJE1ZU1FMX0NPTkZJRyI7IHRoZW4KLSsgICAgICAgICAgICB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogJE1ZU1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBu b3QgYW4gZXhlY3R1YWJsZSBmaWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJE1Z U1FMX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxl IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgICAgICAgICAgIE1ZU1FM X0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfbXlzcWw9Im5vIgotKyAgICAgICAgZmkK LSsKLSsgICAgICAgIGlmIHRlc3QgIiRNWVNRTF9DT05GSUciICE9ICJubyI7IHRoZW4KLSsgICAg ICAgICAgICAjCi0rICAgICAgICAgICAgIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCi0r ICAgICAgICAgICAgIwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeS4uLiAiID4mNjsgfQotKyAgICAgICAg ICAgIE1ZU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgbXlzcWxfaW5jX2RpciBpbiAkTVlT UUxfaW5jX2NoZWNrCi0rICAgICAgICAgICAgZG8KLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAt ZCAiJG15c3FsX2luY19kaXIiIFwKLSsgICAgICAgICAgICAgICAgJiYgdGVzdCAtZiAiJG15c3Fs X2luY19kaXIvbXlzcWwvbXlzcWwuaCIKLSsgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAg ICAgICAgICAgICAgTVlTUUxfaW5jZGlyPSRteXNxbF9pbmNfZGlyCi0rICAgICAgICAgICAgICAg ICAgICBicmVhawotKyAgICAgICAgICAgICAgICBmaQotKyAgICAgICAgICAgIGRvbmUKLSsKLSsg ICAgICAgICAgICBpZiB0ZXN0IC16ICIkTVlTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4K LSsgICAgICAgICAgICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERp ZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1ZU1FMX2luY19jaGVjayciID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBEaWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5jbHVk ZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgY2FzZSAiJE1ZU1FMX2lu Y2RpciIgaW4KLSsgICAgICAgICAgICAgICAgLyogKSA7OwotKyAgICAgICAgICAgICAgICAqICkg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBUaGUgTXlTUUwgaW5jbHVkZSBk aXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgTXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRN WVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iID4mMjt9Ci0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0rICAgICAgICAgICAgZXNhYwotKwotKyAgICAgICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNWVNRTF9pbmNkaXIiID4mNQot KyRhc19lY2hvICIkTVlTUUxfaW5jZGlyIiA+JjY7IH0KLSsKLSsgICAgICAgICAgICBpZiB0ZXN0 ICIkTVlTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBN WVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICBNWVNRTF9D RkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAg ICAgTVlTUUxfTERGTEFHUz0iYCRNWVNRTF9DT05GSUcgLS1saWJzYCIKLSsKLSsgICAgICAgICAg ICBNWVNRTF9WRVJTSU9OPWAkTVlTUUxfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsKLStjYXQgPj5j b25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFWRV9NWVNRTCAxCi0rX0FDRU9GCi0rCi0r Ci0rICAgICAgICAgICAgZm91bmRfbXlzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAg ICAgICBmb3VuZF9teXNxbD0ibm8iCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKwotKwotKyAg ICBteXNxbF92ZXJzaW9uX3JlcT0kTVlTUUxfUkVRX1ZFUlNJT04KLSsKLSsgICAgaWYgdGVzdCAi JGZvdW5kX215c3FsIiA9ICJ5ZXMiIC1hIC1uICIkbXlzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0r Ci0rICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgTXlTUUwg dmVyc2lvbiBpcyA+PSAkbXlzcWxfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGlmIE15U1FMIHZlcnNpb24gaXMgPj0gJG15c3FsX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9 Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgbXlzcWxfdmVyc2lvbl9yZXFfbWFqb3I9YGV4 cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgbXlzcWxfdmVy c2lvbl9yZXFfbWlub3I9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxIDogJ1swLTldKlwuXChbMC05 XSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkbXlzcWxfdmVy c2lvbl9yZXEgOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgaWYgdGVz dCAieCRteXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBt eXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBteXNx bF92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIgJG15c3FsX3ZlcnNpb25fcmVxX21ham9yIFwqIDEw MDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3Zl cnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXCsgJG15c3FsX3ZlcnNpb25fcmVxX21pY3JvYAotKwotKyAgICAgICAgICAgICAgICAg ICAgICAgIG15c3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIgJE1ZU1FMX1ZFUlNJT04gOiAnXChbMC05 XSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRNWVNRTF9WRVJTSU9O IDogJ1swLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBteXNxbF92ZXJzaW9uX21pY3JvPWBl eHByICRNWVNRTF9WRVJTSU9OIDogJ1swLTldKlwuWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAg ICAgIGlmIHRlc3QgIngkbXlzcWxfdmVyc2lvbl9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAg ICAgICBteXNxbF92ZXJzaW9uX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIG15 c3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRteXNxbF92ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAg XAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG15c3FsX3ZlcnNpb25f bWlub3IgXCogMTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAk bXlzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAgICAgIG15c3FsX3ZlcnNpb25fY2hlY2s9YGV4 cHIgJG15c3FsX3ZlcnNpb25fbnVtYmVyIFw+XD0gJG15c3FsX3ZlcnNpb25fcmVxX251bWJlcmAK LSsgICAgICAgIGlmIHRlc3QgIiRteXNxbF92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgotKyAg ICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0r JGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2 OyB9Ci0rICAgICAgICBmaQotKyAgICBmaQotKwotKwotKwotKwotKwotK2ZpCi0rIGlmIHRlc3Qg IngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgotKyAgSEFWRV9NWVNRTF9UUlVF PQotKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKLStlbHNlCi0rICBIQVZFX01ZU1FMX1RSVUU9JyMn Ci0rICBIQVZFX01ZU1FMX0ZBTFNFPQotK2ZpCi0rCi0rI01ZU1FMX0RJUlM9Im15c3FsIgotKwot KwotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgd2Fz IGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlK3NldH0iID0gc2V0OyB0 aGVuCi0rICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX29yYWNsZTsgIGlmIHRlc3QgIiRlbmFi bGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubwotKyAg ICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMKLSsgICAgICBmaQotK2Vsc2UK LSsgICBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KLSsKLStmaQotKwotKwotK2lmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgotKyAgIE9SQUNMRV9ESVJTPSJv cmFjbGUiCi0rICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lPTj0iOS4wIgotKwotKwotKwotKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtb3JhY2xlIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfb3Jh Y2xlK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSR3aXRoX29yYWNsZTsKLSsgICAgICAg IGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgaWYgdGVzdCAt biAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9 IiRPUkFDTEVfSE9NRSIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIG9yYWNs ZV9ob21lX2Rpcj0iIgotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKwotK2Vsc2UKLSsK LSsgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KLSsgICAgICAgICAgICBv cmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAg ICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsgICAgICAgIGZpCi0rCi0rCi0rZmkKLSsKLSsKLSsKLSsj IENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlIHdhcyBnaXZlbi4KLStpZiB0ZXN0 ICIke3dpdGhfb3JhY2xlX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9JHdp dGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCIKLStl bHNlCi0rICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgotKwotK2ZpCi0rCi0rCi0rIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhf b3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbgotKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGVfbGli OyBvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCIKLStlbHNlCi0rICBvcmFjbGVfaG9tZV9s aWJfZGlyPSIiCi0rCi0rZmkKLSsKLSsKLSsgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKLSsgICAg T1JBQ0xFX09DSV9MREZMQUdTPSIiCi0rICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgotKwotKyAg ICAgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ibm8iCi0rCi0rICAgIGlmIHRl c3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3Jh Y2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhl bgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNs ZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgb3Jh Y2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgotKwotKyAgICAg ICAgICAgICAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL2xpYiIK LSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgPSAieWVzIjsgdGhlbgotKyAg ICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwot KyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgLW8gLW4gIiRvcmFj bGVfaG9tZV9saWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21l X2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJ5 ZXMiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiCi0rICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2Rp ciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5 ZXMiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9k aXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAg ICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfbGliX2RpciIKLSsgICAgICAg IGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAg ICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgotKyAgICAgICAgZmkKLSsgICAgZmkK LSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3JhY2xlIHN1 cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVk LiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFj bGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0 aW9ucy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlz IHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1Bs ZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwK LSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+ JjI7fQotKyAgICBmaQotKwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2lu Y2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgc2F2 ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkk b3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KLSsgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT IC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgIyBGaWd1 cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KLSsgICAgICAgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKLSsgICAgICAgICAg ICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKLSsgICAgICAgICAgICAqKSBXSU4zMj1ubyA7Owot KyAgICAgICAgZXNhYwotKwotKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKLSsgICAg ICAgIHRoZW4KLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKLSsgICAg ICAgIGVsc2UKLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCi0rICAgICAgICBmaQotKwot KyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCi0rICAgICAgICBzYXZlZF9MSUJTPSIk TElCUyIKLSsgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKLSsgICAgICAg IExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKLSsgICAgICAgIExJQlM9IiRMSUJTICRv Y2lfbGlicyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFj bGVfaW5jbHVkZV9kaXIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBPcmFjbGUgT0NJ IGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpci4uLiAiID4mNjsgfQotKwotKyAgICAgICAg YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0rCi0rICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK LSsKLSsgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxvY2kuaD4KLStpbnQKLSttYWlu ICgpCi0rewotKwotKyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJTSU9OKQotKyNpZiBPQ0lfTUFK T1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9PSAyCi0rLy8gT3JhY2xlIDEw LjIgZGV0ZWN0ZWQKLSsjZW5kaWYKLSsjZWxpZiBkZWZpbmVkKE9DSV9WN19TWU5UQVgpCi0rLy8g T0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAotKy8vIFRPRE8gLSBtbG9za290OiBmaW5kIGJldHRl ciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7Ci0rI2Vsc2UKLSsjICBlcnJvciBP cmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRpZgotKwotKwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBj YXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rCi0rICAgICAgICAg ICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNsdWRlX2RpciIKLSsKLSsgICAgICAg ICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KLSsgICAgICAgICAg ICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJX0NGTEFHUyAtSSRvcmFjbGVfaW5j bHVkZV9kaXIyIgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgb2NpX2hlYWRlcl9m b3VuZD0ieWVzIgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rZWxzZQotKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQotKwotKwotKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5v IgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vdCBm b3VuZCIgPiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9Ci0rCi0rCi0rZmkKLSsKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKLSsgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyI7IHRoZW4KLSsKLSsg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE9yYWNs ZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2RpciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpci4uLiAiID4m NjsgfQotKwotKyAgICAgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgICAgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKwotKyAgICAgICAgICAgICAgICAvKiBjb25mZGVm cy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KyNpbmNsdWRlIDxvY2kuaD4KLStpbnQKLSttYWluICgpCi0rewotKwotK09DSUVudiogZW52aCA9 IDA7Ci0rT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwgMCwgMCwgMCwgMCwgMCwgMCk7 Ci0raWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hUWVBFX0VOVik7Ci0rCi0rCi0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdCRhY19leGVleHQKLStpZiB7IChhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigo JGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl eHQgJiYgewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0 X3ggY29uZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4KLSsKLSsgICAgICAgICAgICAg ICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgotKyAgICAgICAg ICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9 Ci0rCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwotKyAgICAgICAgICAg ICAgICBvY2lfbGliX2ZvdW5kPSJubyIKLSsgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKLSskYXNfZWNobyAibm90IGZvdW5k IiA+JjY7IH0KLSsKLSsKLStmaQotKwotK3JtIC1yZiBjb25mdGVzdC5kU1lNCi0rcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKLSsgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgICAg ICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIENQUEZMQUdT PSIkc2F2ZWRfQ1BQRkxBR1MiCi0rICAgICAgICBMREZMQUdTPSIkc2F2ZWRfTERGTEFHUyIKLSsg ICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgotKyAgICBmaQotKwotKyAgICAgICAgICAgICAgICBv cmFjbGVfdmVyc2lvbl9yZXE9JE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04KLSsKLSsgICAgaWYgdGVz dCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMi IC1hIFwKLSsgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAg ICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9S X1ZFUlNJT04uKicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3Mv I2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgb3JhY2xl X3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04u KicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBP Q0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVyc2lvbiBpcyA+PSAkb3JhY2xl X3ZlcnNpb25fcmVxIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiBPcmFjbGUgT0NJIHZl cnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQotKwotKyAgICAgICAg aWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAtbiAkIm9yYWNsZV92ZXJzaW9u X21pbm9yIjsgdGhlbgotKwotKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iJG9yYWNs ZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIKLSsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJG9y YWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAgICAgICBvcmFjbGVfdmVy c2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAt OV0qXCknYAotKwotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIg JG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEw MDBgCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBl eHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCi0rCi0r ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251 bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAotKyAgICAgICAgICAgIGlmIHRl c3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsgICAgICAgICAgICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAi eWVzIiA+JjY7IH0KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgSEFW RV9PUkFDTEUgMQotK19BQ0VPRgotKwotKyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVk IHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IE9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWlyZWQgdmVy c2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgT1JB Q0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBPcmFjbGUgdmVyc2lv biB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJsZSIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJv YmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mMjt9Ci0rICAgICAgICBm aQotKyAgICBmaQotKwotKwotKwotKwotKwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tl bmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfT1JBQ0xFX1RSVUU9Ci0rICBIQVZFX09S QUNMRV9GQUxTRT0nIycKLStlbHNlCi0rICBIQVZFX09SQUNMRV9UUlVFPScjJwotKyAgSEFWRV9P UkFDTEVfRkFMU0U9Ci0rZmkKLSsKLSsjT1JBQ0xFX0RJUlM9Im9yYWNsZSIKLSsKLSsKLSsKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSsjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAotKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwgd2FzIGdp dmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsg dGhlbgotKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsOyAgaWYgdGVzdCAi JGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNx bD1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9eWVzCi0rICAg ICAgZmkKLStlbHNlCi0rICAgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubwotKwotK2ZpCi0r Ci0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9ICJ4eWVzIjsgdGhl bgotKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsgICBQT1NUR1JFU1FMX1JFUV9W RVJTSU9OPSI3LjEuNCIKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLXBvc3RncmVzcWwg d2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9wb3N0Z3Jlc3FsK3NldH0iID0gc2V0OyB0aGVu Ci0rICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7Ci0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIk d2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAi bm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGVs aWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X3Bvc3Rn cmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9 InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsK LStlbHNlCi0rICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsJUE9TVEdSRVNRTF9pbmNfY2hlY2s9 Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCi0rCi0rZmkKLSsKLSsKLSsgICAgUE9TVEdS RVNRTF9DRkxBR1M9IiIKLSsgICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCi0rICAgIFBPU1RHUkVT UUxfUE9TVEdSRVNRTD0iIgotKwotKwotKyAgICBpZiB0ZXN0ICIkd2FudF9wb3N0Z3Jlc3FsIiA9 ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09ORklHIiAtbyB0ZXN0 OyB0aGVuCi0rICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwZ19jb25m aWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBw Z19jb25maWc7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEdfQ09ORklHK3NldH0iID0gc2V0 OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJFBH X0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9wYXRoX1BHX0NPTkZJ Rz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBh dGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9u ZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK1BHX0NP TkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcKLStpZiB0ZXN0IC1uICIkUEdfQ09ORklHIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFBHX0NPTkZJRyIgPiY1 Ci0rJGFzX2VjaG8gIiRQR19DT05GSUciID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAhIC14ICIkUEdfQ09ORklH IjsgdGhlbgotKyAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZp bGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkUEdfQ09ORklHIGRvZXMgbm90IGV4 aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGUiID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rICAgICAgICAgICAgUEdfQ09ORklHPSJubyIKLSsgICAgICAgICAg ICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBpZiB0ZXN0 ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgIwotKyAgICAgICAgICAg ICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJzCi0rICAgICAgICAgICAgIwotKyAg ICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgUG9zdGdy ZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFBv c3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KLSsgICAgICAgICAgICBQT1NU R1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQ T1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0rICAgICAgICAgICAgICAgIGlm IHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKLSsgICAgICAgICAgICAgICAgJiYgdGVz dCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKLSsgICAgICAgICAgICAg ICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVz cWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgICAgICAgICAg ZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RH UkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4KLSsgICAgICAgICAgICAgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3Fs IGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXIgaW4g JyRQT1NUR1JFU1FMX2luY19jaGVjayciID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9Ci0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9p bmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsgICAgICAgICAgICAgICAgKiAp ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIFBvc3RncmVzcWwgaW5j bHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBw YXRoLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1 ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0 aC4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7Ci0rICAgICAgICAgICAg ZXNhYwotKwotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1Ci0rJGFzX2VjaG8gIiRQT1NUR1JFU1FMX2luY2RpciIg PiY2OyB9Ci0rCi0rICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIv dXNyL2luY2x1ZGUiOyB0aGVuCi0rICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgot KyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7 UE9TVEdSRVNRTF9pbmNkaXJ9IgotKyAgICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgUE9T VEdSRVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGlyYCAtbHBxIgotKwotKyAgICAg ICAgICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBzZWQgLWUg J3MjUG9zdGdyZVNRTCAjIydgCi0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsj ZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxCi0rX0FDRU9GCi0rCi0rCi0rICAgICAgICAgICAgZm91 bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIGZvdW5kX3Bv c3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcT0kUE9TVEdSRVNRTF9SRVFfVkVSU0lPTgotKwotKyAgICBpZiB0ZXN0 ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXEiOyB0aGVuCi0rCi0rICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBv c3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KLSsKLSsgICAgICAgICAgICAgICAgICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9t aW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCkn YAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBp ZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCi0rICAg ICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKLSsgICAgICAgIGZpCi0r Ci0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWljcm9gCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJz aW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbMC05XSpcKSdgCi0rICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6 ICdbMC05XSpcLlwoWzAtOV0qXCknYAotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv PWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCkn YAotKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0 aGVuCi0rICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPSIwIgotKyAgICAgICAg ZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv YAotKwotKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyYAotKyAg ICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KLSsg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQot KyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsKLSsKLSsKLSsKLStmaQotKyBpZiB0ZXN0 ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllczsgdGhlbgotKyAgSEFWRV9QT1NU R1JFU1FMX1RSVUU9Ci0rICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9JyMnCi0rZWxzZQotKyAgSEFW RV9QT1NUR1JFU1FMX1RSVUU9JyMnCi0rICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9Ci0rZmkKLSsK LSsjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgotKwotKwotKwotKwotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2tz IGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCi0rI0FDX0NIRUNLX1BST0coW3RleGluZm9f b2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQotKyNpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2Rv YyIgIT0geG5vOyB0aGVuCi0rIyAgdGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYmIGVuYWJs ZV9pbmZvX2RvYz1ubwotKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCi0rI2Zp Ci0rIGlmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXM7IHRoZW4KLSsgIElORk9fRE9D X1RSVUU9Ci0rICBJTkZPX0RPQ19GQUxTRT0nIycKLStlbHNlCi0rICBJTkZPX0RPQ19UUlVFPScj JwotKyAgSU5GT19ET0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSsjIENoZWNrcyBmb3IgZG9jdW1lbnRh dGlvbiBidWlsZCB0b29scwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZG94eWdlbiIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGRveHln ZW47IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZG94eWdlbl9vaytzZXR9IiA9IHNldDsgdGhl bgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIk ZG94eWdlbl9vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0iJGRveHlnZW5fb2si ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfZG94 eWdlbl9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZG94 eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29rPSJubyIKLStmaQotK2ZpCi0rZG94eWdl bl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCi0raWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZG94eWdlbl9vayIg PiY1Ci0rJGFzX2VjaG8gIiRkb3h5Z2VuX29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0K LStmaQotKwotKwotKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibGF0ZXgiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBsYXRleDsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19sYXRleF9vaytzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0 aGVuCi0rICBhY19jdl9wcm9nX2xhdGV4X29rPSIkbGF0ZXhfb2siICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfbGF0ZXhfb2s9InllcyIKLSsgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2xhdGV4X29rIiAmJiBhY19jdl9wcm9n X2xhdGV4X29rPSJubyIKLStmaQotK2ZpCi0rbGF0ZXhfb2s9JGFjX2N2X3Byb2dfbGF0ZXhfb2sK LStpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQotKyRhc19lY2hvICIkbGF0ZXhfb2siID4mNjsg fQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0r c2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHthY19jdl9wcm9nX2R2aXBzX29rK3NldH0i ID0gc2V0OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZHZpcHNfb2s9IiRkdmlw c19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJv Z19kdmlwc19vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2Rv bmUKLStkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2df ZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgotK2ZpCi0rZmkKLStkdmlwc19v az0kYWNfY3ZfcHJvZ19kdmlwc19vawotK2lmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KLSsg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkdmlwc19vayIgPiY1Ci0rJGFz X2VjaG8gIiRkdmlwc19vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsK LSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdzIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgZ3M7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3By b2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19nc19v az0iJGdzX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgK LStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wcm9nX2dzX29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0r ZG9uZQotK2RvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCi0rZmkKLStmaQotK2dzX29rPSRhY19j dl9wcm9nX2dzX29rCi0raWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdzX29rIiA+JjUKLSskYXNfZWNobyAiJGdzX29rIiA+ JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5hYmxl X2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KLSsgIHRlc3QgIngkZG94eWdlbl9vayIgIT0geHllcyAm JiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5h YmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9o dG1sX2RvYz1ubwotKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9 bm8KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVybCIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHBlcmw7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhlbgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRQRVJMIGluCi0rICBbXFwvXSogfCA/OltcXC9dKikK LSsgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgotKyAgOzsKLSsgICopCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3Nh dmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3BhdGhfUEVSTD0iJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIDs7Ci0rZXNhYwotK2Zp Ci0rUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCi0raWYgdGVzdCAtbiAiJFBFUkwiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUEVSTCIgPiY1Ci0rJGFzX2VjaG8g IiRQRVJMIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotK2ZpCi0rIGlm IHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7IHRoZW4KLSsgIEhUTUxfRE9DX1RSVUU9 Ci0rICBIVE1MX0RPQ19GQUxTRT0nIycKLStlbHNlCi0rICBIVE1MX0RPQ19UUlVFPScjJwotKyAg SFRNTF9ET0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSsKLSsjIENoZWNrIGZvciBkaWZmIHByb2dyYW0g dXNlZCBmb3IgdGVzdHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRpZmYiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkaWZmOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgdGVzdCAiJHthY19jdl9wcm9nX2RpZmZfb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGRpZmZfb2siOyB0 aGVuCi0rICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZmX29rIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2RpZmZfb2s9InllcyIKLSsgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9J RlMKLSsKLSsgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2siICYmIGFjX2N2X3Byb2dfZGlm Zl9vaz0ibm8iCi0rZmkKLStmaQotK2RpZmZfb2s9JGFjX2N2X3Byb2dfZGlmZl9vawotK2lmIHRl c3QgLW4gIiRkaWZmX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGRpZmZfb2siID4mNQotKyRhc19lY2hvICIkZGlmZl9vayIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInNl ZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHNl ZDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQotK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRfb2src2V0fSIgPSBzZXQ7IHRoZW4KLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJHNlZF9v ayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfc2VkX29rPSIkc2VkX29rIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX3NlZF9vaz0ieWVzIgotKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLStkb25lCi0rSUZTPSRhc19zYXZl X0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfc2VkX29rIiAmJiBhY19jdl9wcm9nX3Nl ZF9vaz0ibm8iCi0rZmkKLStmaQotK3NlZF9vaz0kYWNfY3ZfcHJvZ19zZWRfb2sKLStpZiB0ZXN0 IC1uICIkc2VkX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJHNlZF9vayIgPiY1Ci0rJGFzX2VjaG8gIiRzZWRfb2siID4mNjsgfQotK2Vsc2UKLSsgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8i ID4mNjsgfQotK2ZpCi0rCi0rCi0rZW5hYmxlX3Rlc3RzPXllcwotK3Rlc3QgIngkZGlmZl9vayIg IT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KLSt0ZXN0ICJ4JHNlZF9vayIgIT0geHllcyAmJiBl bmFibGVfdGVzdHM9bm8KLSsgaWYgdGVzdCAieCRlbmFibGVfdGVzdHMiID0geHllczsgdGhlbgot KyAgUlVOX1RFU1RTX1RSVUU9Ci0rICBSVU5fVEVTVFNfRkFMU0U9JyMnCi0rZWxzZQotKyAgUlVO X1RFU1RTX1RSVUU9JyMnCi0rICBSVU5fVEVTVFNfRkFMU0U9Ci0rZmkKLSsKLSsKLSsKLSsjIENo ZWNrcyBmb3IgaGVhZGVyIGZpbGVzCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiR7YWNfY3Zf aGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRl ZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0r Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRlIDxz dHJpbmcuaD4KLSsjaW5jbHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWluICgpCi0rewotKwot KyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLStpZiB7IChhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRl c3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK LSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0r ICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0rCWFjX2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLStpZiB0ZXN0ICRh Y19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgotKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9l cyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgotKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rX0FD RU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVH UkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFjX2N2 X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lmIHRl c3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAjIElTQyAyLjAuMiBzdGRsaWIu aCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCi0rICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25mZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKLStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsK LStfQUNFT0YKLStpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0r ICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgOgotK2Vsc2UKLSsgIGFj X2N2X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lm IHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAjIC9iaW4vY2MgaW4gSXJp eC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCi0r ICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotKyAgOgotK2Vsc2UKLSsg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19B Q0VPRgotK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGN0 eXBlLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAy MCkKLSsjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0rIyBk ZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQot KyNlbHNlCi0rIyBkZWZpbmUgSVNMT1dFUihjKSBcCi0rCQkgICAoKCdhJyA8PSAoYykgJiYgKGMp IDw9ICdpJykgXAotKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCi0rCQkg ICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQotKyMgZGVmaW5lIFRPVVBQRVIoYykg KElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0rI2VuZGlmCi0rCi0rI2RlZmluZSBY T1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLStpbnQKLSttYWluICgp Ci0rewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0rICAgIGlmIChY T1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLSsJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBF UiAoaSkpCi0rICAgICAgcmV0dXJuIDI7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rcm0g LWYgY29uZnRlc3QkYWNfZXhlZXh0Ci0raWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKLStjYXNlICIo KCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQotKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0r ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotKyAg eyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgIDoKLStlbHNlCi0rICAkYXNf ZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rKCBleGl0ICRhY19zdGF0dXMgKQotK2FjX2N2 X2hlYWRlcl9zdGRjPW5vCi0rZmkKLStybSAtcmYgY29uZnRlc3QuZFNZTQotK3JtIC1mIGNvcmUg Ki5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rCi0rCi0rZmkKLStm aQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3Rk YyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9Ci0raWYgdGVzdCAk YWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgotKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKLStfQUNFT0YKLSsKLStmaQotKwotK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3Rp bWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQuLi4gIiA+JjY7 IH0KLStpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1lK3NldH0iID0gc2V0OyB0aGVuCi0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgotK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNpbmNsdWRl IDxzeXMvdGltZS5oPgotKyNpbmNsdWRlIDx0aW1lLmg+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sK LStpZiAoKHN0cnVjdCB0bSAqKSAwKQotK3JldHVybiAwOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0r fQotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNh YwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK LSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19jdl9oZWFkZXJfdGltZT15 ZXMKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK LStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX2N2X2hlYWRlcl90 aW1lPW5vCi0rZmkKLSsKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9oZWFkZXJfdGltZSIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJf dGltZSIgPiY2OyB9Ci0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3RpbWUgPSB5ZXM7IHRoZW4KLSsK LStjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgotKyNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDEKLStfQUNFT0YKLSsKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAotKyAgZGVxdWUgXAotKyAgZnN0cmVh bSBcCi0rICBpb21hbmlwIFwKLSsgIGlvc3RyZWFtIFwKLSsgIHNzdHJlYW0gXAotKyAgbGltaXRz IFwKLSsgIGxpc3QgXAotKyAgc2V0IFwKLSsgIHZlY3RvciBcCi0rICBtYXAgXAotKyAgcXVldWUg XAotKyAgc3RkZXhjZXB0IFwKLSsgIHN0cmluZwotK2RvCi0rYXNfYWNfSGVhZGVyPWAkYXNfZWNo byAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotK2lmIHsgYXNfdmFyPSRh c19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRl ciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0K LStpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCi0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2ZpCi0r YWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9Ci0rCQkgJGFzX2VjaG8gIiRh c192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLStlbHNlCi0rICAjIElzIHRo ZSBoZWFkZXIgY29tcGlsYWJsZT8KLSt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nICRhY19o ZWFkZXIgdXNhYmlsaXR5Li4uICIgPiY2OyB9Ci0rY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSskYWNfaW5jbHVkZXNfZGVmYXVsdAotKyNpbmNsdWRlIDwkYWNfaGVh ZGVyPgotK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0r ZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29u ZnRlc3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCi0rICBhY19oZWFkZXJfY29tcGls ZXI9eWVzCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKwlhY19oZWFkZXJf Y29tcGlsZXI9bm8KLStmaQotKwotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQotKyRhc19lY2hvICIkYWNfaGVhZGVyX2Nv bXBpbGVyIiA+JjY7IH0KLSsKLSsjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAiID4mNjsgfQotK2NhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotKy8qIGNvbmZkZWZzLmguICAqLwotK19BQ0VPRgot K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAotK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPCRhY19oZWFk ZXI+Ci0rX0FDRU9GCi0raWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0r Y2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAy PmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRl c3QuZXJyID4mNQotKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgewotKwkgdGVzdCAt eiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH07IHRoZW4KLSsgIGFjX2hlYWRlcl9wcmVw cm9jPXllcwotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgIGFjX2hlYWRl cl9wcmVwcm9jPW5vCi0rZmkKLSsKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4 dAotK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJv YyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19oZWFkZXJfcHJlcHJvYyIgPiY2OyB9Ci0rCi0rIyBTbz8g IFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/Ci0rY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19o ZWFkZXJfcHJlcHJvYzokYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluCi0rICB5ZXM6bm86ICkK LSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFj Y2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4m NQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRo ZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9Ci0rICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5n IHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+ JjI7fQotKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKLSsgICAgOzsKLSsgIG5vOnllczoqICkK LSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHBy ZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQot KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAg IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJl cXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29u ZiBkb2N1bWVudGF0aW9uIiA+JjI7fQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUg Q29tcGlsZWRcIiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjog ICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KLSsg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2Nl ZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nv cidzIHJlc3VsdCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJl Y2VkZW5jZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogaW4g dGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQotKyAg ICAoIGNhdCA8PFxfQVNCT1gKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKLSsjIyBSZXBvcnQgdGhpcyB0byBtc29iY3pha0B1c2Vycy5zb3VyY2Vm b3JnZS5uZXQgIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKLStfQVNCT1gKLSsgICAgICkgfCBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAg ICAvIiA+JjIKLSsgICAgOzsKLStlc2FjCi0reyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X2hlYWRlci4uLiAiID4mNjsgfQotK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRl c3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9w cmVwcm9jIgotK2ZpCi0rYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9Ci0r CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSsK LStmaQotK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQotKwkJICRhc19l Y2hvICIkYXNfdmFsIidgCi0rICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCi0r ICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFj X2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi0rX0FDRU9GCi0rCi0rZmkKLSsKLStkb25lCi0rCi0r Ci0rCi0rIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcwotK2FjX2NvbmZpZ19maWxlcz0iJGFjX2Nv bmZpZ19maWxlcyBNYWtlZmlsZSBzb2NpLWNvbmZpZyBzb2NpLnBjIHNvY2kuc3BlYyBzb2NpL01h a2VmaWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSBzb2NpL2Jh Y2tlbmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIG1hbi9NYWtlZmls ZSBkb2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2VmaWxlIGJ1aWxkL01ha2VmaWxlIGJ1aWxk L3VuaXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIKLSsKLSsKLStjYXQgPmNvbmZjYWNoZSA8 PFxfQUNFT0YKLSsjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUg cmVzdWx0cyBvZiBjb25maWd1cmUKLSsjIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5 IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKLSsjIHNjcmlwdHMgYW5kIGNvbmZpZ3Vy ZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgotKyMgSXQgaXMg bm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3Ug ZG9uJ3QKLSsjIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KLSsjCi0r IyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYg eW91IGdpdmUgaXQKLSsjIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4K LSsjCi0rIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUg b3ZlcnJpZGRlbiB3aGVuCi0rIyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNf Y3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQotKyMgZm9sbG93aW5nIHZhbHVlcy4KLSsKLStf QUNFT0YKLSsKLSsjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hh bmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAotKyMgYnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3Vu ZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2llbnQuCi0rIyBTbywgd2Uga2ls bCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KLSsjIFVsdHJpeCBzaCBzZXQgd3JpdGVz IHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJlY3RseSwKLSsjIGFuZCBzZXRz IHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2 YXJzLgotKygKLSsgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ3MvXlwoW2Et ekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsgZG8KLSsgICAgZXZhbCBhY192YWw9XCQk YWNfdmFyCi0rICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAotKyAgICAqJHthc19ubH0qKQotKyAgICAg IGNhc2UgJGFjX3ZhciBpbiAjKAotKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5l IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFy IGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKLSsgICAgICBlc2FjCi0rICAgICAgY2FzZSAk YWNfdmFyIGluICMoCi0rICAgICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAotKyAgICAgIEJBU0hf QVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCi0rICAgICAgKikgJGFzX3Vu c2V0ICRhY192YXIgOzsKLSsgICAgICBlc2FjIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsg IChzZXQpIDI+JjEgfAotKyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9JyAnOyBzZXQpIDI+JjFg IGluICMoCi0rICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKLSsgICAgICAjIGBzZXQnIGRvZXMg bm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCi0rICAgICAg IyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8g XCkuCi0rICAgICAgc2VkIC1uIFwKLSsJInMvJy8nXFxcXCcnL2c7Ci0rCSAgcy9eXFwoW18kYXNf Y3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwyJy9wIgot KyAgICAgIDs7ICMoCi0rICAgICopCi0rICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFz IHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KLSsgICAgICBzZWQgLW4g Ii9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgotKyAgICAgIDs7Ci0r ICAgIGVzYWMgfAotKyAgICBzb3J0Ci0rKSB8Ci0rICBzZWQgJwotKyAgICAgL15hY19jdl9lbnZf L2IgZW5kCi0rICAgICB0IGNsZWFyCi0rICAgICA6Y2xlYXIKLSsgICAgIHMvXlwoW149XSpcKT1c KC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KLSsgICAgIHQgZW5kCi0r ICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8KLSsgICAgIDplbmQnID4+Y29u ZmNhY2hlCi0raWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNoZSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4gOjsgZWxzZQotKyAgaWYgdGVzdCAtdyAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0rICAgIHRl c3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmCi0rICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSsgICAgY2F0IGNv bmZjYWNoZSA+JGNhY2hlX2ZpbGUKLSsgIGVsc2UKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmls ZSIgPiY2O30KLSsgIGZpCi0rZmkKLStybSAtZiBjb25mY2FjaGUKLSsKLSt0ZXN0ICJ4JHByZWZp eCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4Ci0rIyBMZXQgbWFrZSBleHBh bmQgZXhlY19wcmVmaXguCi0rdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3By ZWZpeD0nJHtwcmVmaXh9JwotKwotK0RFRlM9LURIQVZFX0NPTkZJR19ICi0rCi0rYWNfbGlib2Jq cz0KLSthY19sdGxpYm9ianM9Ci0rZm9yIGFjX2kgaW4gOiAkTElCT0JKUzsgZG8gdGVzdCAieCRh Y19pIiA9IHg6ICYmIGNvbnRpbnVlCi0rICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQg JFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCi0rICBhY19zY3JpcHQ9J3MvXCRVXC4vLi87cy9cLm8k Ly87cy9cLm9iaiQvLycKLSsgIGFjX2k9YCRhc19lY2hvICIkYWNfaSIgfCBzZWQgIiRhY19zY3Jp cHQiYAotKyAgIyAyLiBQcmVwZW5kIExJQk9CSkRJUi4gIFdoZW4gdXNlZCB3aXRoIGF1dG9tYWtl Pj0xLjEwIExJQk9CSkRJUgotKyAgIyAgICB3aWxsIGJlIHNldCB0byB0aGUgZGlyZWN0b3J5IHdo ZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUgYnVpbHQuCi0rICBhY19saWJvYmpzPSIkYWNfbGlib2Jq cyBcJHtMSUJPQkpESVJ9JGFjX2lcJFUuJGFjX29iamV4dCIKLSsgIGFjX2x0bGlib2Jqcz0iJGFj X2x0bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2kiJyRVLmxvJwotK2RvbmUKLStMSUJPQkpTPSRh Y19saWJvYmpzCi0rCi0rTFRMSUJPQkpTPSRhY19sdGxpYm9ianMKLSsKLSsKLStpZiB0ZXN0IC16 ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX0NQUFVOSVRfRkFMU0V9 IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlv bmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNf ZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX0NQUFVOSVRcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0r ZmkKLStpZiB0ZXN0IC16ICIke0FNREVQX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FNREVQX0ZBTFNF fSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRp b25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgot K1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25h bGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3Qg LXogIiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhf RkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNv bmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5 IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4m NQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hY XCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9IiAmJiB0ZXN0 IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZl ciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl ZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlv bmFsIFwiYW1fX2Zhc3RkZXBDQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3Rk ZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFMU0V9IjsgdGhlbgot KyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1f X2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhl IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ1hYXCIgd2FzIG5ldmVyIGRl ZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0r aWYgdGVzdCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NP Q0lfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBu ZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRp dGlvbmFsIFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFs bHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIg PiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7 U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURcIiB3 YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5 IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj b25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5l ZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0 aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0 ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAt eiAiJHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9QT1NU R1JFU1FMX0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSsk YXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhl IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfTVlTUUxfVFJVRX0i ICYmIHRlc3QgLXogIiR7SEFWRV9NWVNRTF9GQUxTRX0iOyB0aGVuCi0rICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX01ZU1FMXCIgd2FzIG5l dmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0 aW9uYWwgXCJIQVZFX01ZU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1l YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtIQVZFX09SQUNM RV9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX09SQUNMRV9GQUxTRX0iOyB0aGVuCi0rICB7IHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX09SQUNM RVwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2Fz IG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNvbmRpdGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIk e0hBVkVfUE9TVEdSRVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVTUUxfRkFM U0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRp dGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0 aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX1BPU1RHUkVTUUxc IiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBv bmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rZmkKLStpZiB0ZXN0IC16ICIke0lORk9fRE9DX1RSVUV9IiAmJiB0ZXN0IC16ICIk e0lORk9fRE9DX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1 YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHku IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wi IHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLStmaQotK2lmIHRlc3QgLXogIiR7SFRNTF9ET0NfVFJVRX0iICYmIHRlc3QgLXogIiR7 SFRNTF9ET0NfRkFMU0V9IjsgdGhlbgotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNvbmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3Vh bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhUTUxfRE9DXCIg d2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25s eSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQotK2ZpCi0raWYgdGVzdCAteiAiJHtSVU5fVEVTVFNfVFJVRX0iICYmIHRlc3QgLXogIiR7 UlVOX1RFU1RTX0ZBTFNFfSI7IHRoZW4KLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGVycm9yOiBjb25kaXRpb25hbCBcIlJVTl9URVNUU1wiIHdhcyBuZXZlciBkZWZpbmVkLgotK1Vz dWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5 LiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiUlVOX1RFU1RT XCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQotK2ZpCi0rCi0rOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQotK2Fj X3dyaXRlX2ZhaWw9MAotK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi0rYWNf Y2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NUQVRVUyIKLSt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotK2NhdCA+JENPTkZJR19T VEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyEgJFNIRUxMCi0rIyBHZW5lcmF0 ZWQgYnkgJGFzX21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBj b25maWd1cmF0aW9uLgotKyMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwg dXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSsjIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmlnLmxvZyBpZiBp dCBleGlzdHMuCi0rCi0rZGVidWc9ZmFsc2UKLSthY19jc19yZWNoZWNrPWZhbHNlCi0rYWNfY3Nf c2lsZW50PWZhbHNlCi0rU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KLStfQUNFT0YKLSsK LStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCi0r IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rCi0rIyBCZSBtb3JlIEJvdXJuZSBjb21wYXRp YmxlCi0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotK2lmIHRlc3Qg LW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsg dGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFByZS00LjIgdmVyc2lvbnMg b2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKLSsgICMgaXMgY29u dHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0rICBhbGlhcyAtZyAn JHsxKyIkQCJ9Jz0nIiRAIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2Fz ZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCi0rICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsK LStlc2FjCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsjIFBBVEggbmVlZHMgQ1IKLSsjIEF2b2lkIGRl cGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi0rYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hp amtsbW5vcHFyc3R1dnd4eXonCi0rYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVonCi0rYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCi0rYXNf Y3JfZGlnaXRzPScwMTIzNDU2Nzg5JwotK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2Ny X2RpZ2l0cwotKwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25sCi0rIyBQcmludGluZyBhIGxv bmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50Zi4KLSthc19lY2hvPSdc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotK2FzX2VjaG89 JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwotK2FzX2VjaG89JGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0raWYgKHRlc3QgIlhg cHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KLSsg IGFzX2VjaG89J3ByaW50ZiAlc1xuJwotKyAgYXNfZWNob19uPSdwcmludGYgJXMnCi0rZWxzZQot KyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251bGxg IiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCi0rICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3Vj Yi9lY2hvIC1uICIkMSRhc19ubCInCi0rICAgIGFzX2VjaG9fbj0nL3Vzci91Y2IvZWNobyAtbicK LSsgIGVsc2UKLSsgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwp IicKLSsgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKLSsgICAgICBhcmc9JDE7Ci0rICAgICAgY2Fz ZSAkYXJnIGluCi0rICAgICAgKiIkYXNfbmwiKikKLSsJZXhwciAiWCRhcmciIDogIlhcXCguKlxc KSRhc19ubCI7Ci0rCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7Ci0r ICAgICAgZXNhYzsKLSsgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIk YXNfbmwiCi0rICAgICcKLSsgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5Ci0rICAgIGFzX2VjaG9f bj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCi0rICBmaQotKyAgZXhwb3J0IGFzX2Vj aG9fYm9keQotKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJwotK2ZpCi0r Ci0rIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCi0raWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRP UitzZXR9IiAhPSBzZXQ7IHRoZW4KLSsgIFBBVEhfU0VQQVJBVE9SPToKLSsgIChQQVRIPScvYmlu Oy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsKLSsgICAg KFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEg fHwKLSsgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKLSsgIH0KLStmaQotKwotKyMgU3VwcG9ydCB1 bnNldCB3aGVuIHBvc3NpYmxlLgotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQp ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfdW5zZXQ9dW5zZXQKLStlbHNlCi0rICBhc191 bnNldD1mYWxzZQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQg bmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcwotKyMgdGhlcmUg dG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgotKyMg KElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0IHdvdWxkIGRp c2FibGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5IHZhbHVlLikK LStJRlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBw YXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KLStjYXNlICQwIGluCi0r ICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7Ci0rICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3Nh dmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgdGVzdCAtciAiJGFz X2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKLStkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2Vs dmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwotKyMgaW4gd2hp Y2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotK2lmIHRlc3QgIngk YXNfbXlzZWxmIiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAotK2ZpCi0raWYgdGVzdCAhIC1m ICIkYXNfbXlzZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5u b3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKLSsg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQotK2ZpCi0rCi0rIyBXb3JrIGFyb3VuZCBidWdzIGluIHBy ZS0zLjAgVVdJTiBrc2guCi0rZm9yIGFzX3ZhciBpbiBFTlYgTUFJTCBNQUlMUEFUSAotK2RvICgk YXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRhc191bnNldCAkYXNfdmFyCi0r ZG9uZQotK1BTMT0nJCAnCi0rUFMyPSc+ICcKLStQUzQ9JysgJwotKwotKyMgTkxTIG51aXNhbmNl cy4KLStMQ19BTEw9QwotK2V4cG9ydCBMQ19BTEwKLStMQU5HVUFHRT1DCi0rZXhwb3J0IExBTkdV QUdFCi0rCi0rIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCi0raWYgZXhwciBhIDogJ1woYVwp JyA+L2Rldi9udWxsIDI+JjEgJiYKLSsgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwp J2AiID0gWDAwMTsgdGhlbgotKyAgYXNfZXhwcj1leHByCi0rZWxzZQotKyAgYXNfZXhwcj1mYWxz ZQotK2ZpCi0rCi0raWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJY YGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgotKyAgYXNfYmFzZW5hbWU9YmFzZW5h bWUKLStlbHNlCi0rICBhc19iYXNlbmFtZT1mYWxzZQotK2ZpCi0rCi0rCi0rIyBOYW1lIG9mIHRo ZSBleGVjdXRhYmxlLgotK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0gIiQwIiB8fAotKyRhc19leHBy IFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCi0rCSBYIiQwIiA6ICdYXCgvL1wp JCcgXHwgXAotKwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2Vj aG8gWC8iJDAiIHwKLSsgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97Ci0rCSAgICBz Ly9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXC9cKFwvXC9cKSQvewotKwkgICAgcy8vXDEv Ci0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwvXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKwotKyMgQ0RQQVRILgotKyRhc191bnNldCBD RFBBVEgKLSsKLSsKLSsKLSsgIGFzX2xpbmVub18xPSRMSU5FTk8KLSsgIGFzX2xpbmVub18yPSRM SU5FTk8KLSsgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgotKyAg dGVzdCAieGBleHByICRhc19saW5lbm9fMSArIDFgIiA9ICJ4JGFzX2xpbmVub18yIiB8fCB7Ci0r Ci0rICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQg d2l0aCAkTElORU5PCi0rICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIu ICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCi0rICAjIGxpbmUtbnVtYmVyIGxpbmUgYWZ0ZXIg ZWFjaCBsaW5lIHVzaW5nICRMSU5FTk87IHRoZSBzZWNvbmQgJ3NlZCcKLSsgICMgZG9lcyB0aGUg cmVhbCB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoCi0rICAj IGxpbmUtbnVtYmVyIGxpbmUgd2l0aCB0aGUgbGluZSBjb250YWluaW5nICRMSU5FTk8sIGFuZCBh cHBlbmRzCi0rICAjIHRyYWlsaW5nICctJyBkdXJpbmcgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJ TkVOTyBpcyBub3QgYSBzcGVjaWFsCi0rICAjIGNhc2UgYXQgbGluZSBlbmQuCi0rICAjIChSYWph IFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUK LSsgICMgc2NyaXB0cyB3aXRoIG9wdGltaXphdGlvbiBoZWxwIGZyb20gUGFvbG8gQm9uemluaS4g IEJsYW1lIExlZQotKyAgIyBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXgu ICA6LSkKLSsgIHNlZCAtbiAnCi0rICAgIHAKLSsgICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNf bXlzZWxmIHwKLSsgICAgc2VkICcKLSsgICAgICBzL1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQg bGluZW5vCi0rICAgICAgYgotKyAgICAgIDpsaW5lbm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AK LSsgICAgICBzL1skXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFc Mi8KLSsgICAgICB0IGxvb3AKLSsgICAgICBzLy1cbi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVu byAmJgotKyAgY2htb2QgK3ggIiRhc19tZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRh c19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBP U0lYIHNoZWxsIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLSsKLSsgICMgRG9u J3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHBy b2JsZW1zCi0rICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUg d2UgbWlnaHQgZmluZCB0aGUKLSsgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMg ZXNwZWNpYWxseSBzZW5zaXRpdmUgdG8gdGhpcykuCi0rICAuICIuLyRhc19tZS5saW5lbm8iCi0r ICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KLSsgIGV4aXQKLSt9 Ci0rCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBY LykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1lPWRpcm5hbWUKLStlbHNlCi0r ICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLStFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nh c2UgYGVjaG8gLW4geGAgaW4KLSstbiopCi0rICBjYXNlIGBlY2hvICd4XGMnYCBpbgotKyAgKmMq KSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMgc2luZ2xlIHRhYiBjaGFyYWN0ZXIuCi0rICAqKSAg IEVDSE9fQz0nXGMnOzsKLSsgIGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwot K2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHBy IDAwMDAxIDogJy4qXCguLi5cKSdgIiA9IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vs c2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStmaQotKwotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNv bmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQu ZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29u ZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYv bnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0 aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBn b3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxu IGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7 IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNh c2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZp bGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAg ICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2 L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAt cCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQg Y29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29u ZiQkLmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4K LSsgIGFzX21rZGlyX3A9OgotK2Vsc2UKLSsgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCi0r ICBhc19ta2Rpcl9wPWZhbHNlCi0rZmkKLSsKLStpZiB0ZXN0IC14IC8gPi9kZXYvbnVsbCAyPiYx OyB0aGVuCi0rICBhc190ZXN0X3g9J3Rlc3QgLXgnCi0rZWxzZQotKyAgaWYgbHMgLWRMIC8gPi9k ZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgIGFzX2xzX0xfb3B0aW9uPUwKLSsgIGVsc2UKLSsgICAg YXNfbHNfTF9vcHRpb249Ci0rICBmaQotKyAgYXNfdGVzdF94PScKLSsgICAgZXZhbCBzaCAtYyAn XCcnCi0rICAgICAgaWYgdGVzdCAtZCAiJDEiOyB0aGVuCi0rCXRlc3QgLWQgIiQxLy4iOwotKyAg ICAgIGVsc2UKLSsJY2FzZSAkMSBpbgotKwktKilzZXQgIi4vJDEiOzsKLSsJZXNhYzsKLSsJY2Fz ZSBgbHMgLWxkJyRhc19sc19MX29wdGlvbicgIiQxIiAyPi9kZXYvbnVsbGAgaW4KLSsJPz8/W3N4 XSopOjs7KilmYWxzZTs7ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAnCi0rZmkKLSthc19leGVj dXRhYmxlX3A9JGFzX3Rlc3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5n IG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3Jf bGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKyMg U2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1l LgotK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyci Ci0rCi0rCi0rZXhlYyA2PiYxCi0rCi0rIyBTYXZlIHRoZSBsb2cgbWVzc2FnZSwgdG8ga2VlcCAk WzBdIGFuZCBzbyBvbiBtZWFuaW5nZnVsLCBhbmQgdG8KLSsjIHJlcG9ydCBhY3R1YWwgaW5wdXQg dmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKLSsjIHZhbHVlcyBh ZnRlciBvcHRpb25zIGhhbmRsaW5nLgotK2FjX2xvZz0iCi0rVGhpcyBmaWxlIHdhcyBleHRlbmRl ZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2VuZXJhdGVkIGJ5IEdOVSBBdXRv Y29uZiAyLjYzLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCi0rCi0rICBDT05GSUdfRklM RVMgICAgPSAkQ09ORklHX0ZJTEVTCi0rICBDT05GSUdfSEVBREVSUyAgPSAkQ09ORklHX0hFQURF UlMKLSsgIENPTkZJR19MSU5LUyAgICA9ICRDT05GSUdfTElOS1MKLSsgIENPTkZJR19DT01NQU5E UyA9ICRDT05GSUdfQ09NTUFORFMKLSsgICQgJDAgJEAKLSsKLStvbiBgKGhvc3RuYW1lIHx8IHVu YW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKLSsiCi0rCi0rX0FDRU9GCi0rCi0rY2FzZSAk YWNfY29uZmlnX2ZpbGVzIGluICoiCi0rIiopIHNldCB4ICRhY19jb25maWdfZmlsZXM7IHNoaWZ0 OyBhY19jb25maWdfZmlsZXM9JCo7OwotK2VzYWMKLSsKLStjYXNlICRhY19jb25maWdfaGVhZGVy cyBpbiAqIgotKyIqKSBzZXQgeCAkYWNfY29uZmlnX2hlYWRlcnM7IHNoaWZ0OyBhY19jb25maWdf aGVhZGVycz0kKjs7Ci0rZXNhYwotKwotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRl IGZvci4KLStjb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMiCi0rY29uZmlnX2hlYWRlcnM9 IiRhY19jb25maWdfaGVhZGVycyIKLStjb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFu ZHMiCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFj X3dyaXRlX2ZhaWw9MQotK2FjX2NzX3VzYWdlPSJcCi0rXGAkYXNfbWUnIGluc3RhbnRpYXRlcyBm aWxlcyBmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlCi0rY3VycmVudCBjb25maWd1cmF0 aW9uLgotKwotK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbRklMRV0uLi4KLSsKLSsgIC1oLCAtLWhl bHAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKLSsgIC1WLCAtLXZlcnNpb24gICAg cHJpbnQgdmVyc2lvbiBudW1iZXIgYW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIHRoZW4gZXhp dAotKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50Ci0rICAgICAgICAgICAgICAgICAgIGRvIG5vdCBw cmludCBwcm9ncmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcgICAgICBkb24ndCByZW1vdmUg dGVtcG9yYXJ5IGZpbGVzCi0rICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVj b25maWd1cmluZyBpbiB0aGUgc2FtZSBjb25kaXRpb25zCi0rICAgICAgLS1maWxlPUZJTEVbOlRF TVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlv biBmaWxlIEZJTEUKLSsgICAgICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLSsgICAgICAgICAg ICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKLSsKLStD b25maWd1cmF0aW9uIGZpbGVzOgotKyRjb25maWdfZmlsZXMKLSsKLStDb25maWd1cmF0aW9uIGhl YWRlcnM6Ci0rJGNvbmZpZ19oZWFkZXJzCi0rCi0rQ29uZmlndXJhdGlvbiBjb21tYW5kczoKLSsk Y29uZmlnX2NvbW1hbmRzCi0rCi0rUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvY29uZkBnbnUub3Jn Pi4iCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCi0rYWNfY3NfdmVyc2lvbj0iXFwKLStTT0NJIGNvbmZpZy5zdGF0dXMgMy4wLjAK LStjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMsCi0rICB3 aXRoIG9wdGlvbnMgXFwiYCRhc19lY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL14g Ly87IHMvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKLSsKLStDb3B5cmlnaHQgKEMpIDIwMDggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBp cyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKLSsK LSthY19wd2Q9JyRhY19wd2QnCi0rc3JjZGlyPSckc3JjZGlyJwotK0lOU1RBTEw9JyRJTlNUQUxM JwotK01LRElSX1A9JyRNS0RJUl9QJwotK0FXSz0nJEFXSycKLSt0ZXN0IC1uICJcJEFXSyIgfHwg QVdLPWF3awotK19BQ0VPRgotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKLSsjIFRoZSBkZWZhdWx0IGxpc3RzIGFwcGx5IGlmIHRoZSB1c2VyIGRv ZXMgbm90IHNwZWNpZnkgYW55IGZpbGUuCi0rYWNfbmVlZF9kZWZhdWx0cz06Ci0rd2hpbGUgdGVz dCAkIyAhPSAwCi0rZG8KLSsgIGNhc2UgJDEgaW4KLSsgIC0tKj0qKQotKyAgICBhY19vcHRpb249 YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAotKyAgICBhY19vcHRhcmc9YGV4cHIgIlgkMSIg OiAnWFtePV0qPVwoLipcKSdgCi0rICAgIGFjX3NoaWZ0PToKLSsgICAgOzsKLSsgICopCi0rICAg IGFjX29wdGlvbj0kMQotKyAgICBhY19vcHRhcmc9JDIKLSsgICAgYWNfc2hpZnQ9c2hpZnQKLSsg ICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGFjX29wdGlvbiBpbgotKyAgIyBIYW5kbGluZyBv ZiB0aGUgb3B0aW9ucy4KLSsgIC1yZWNoZWNrIHwgLS1yZWNoZWNrIHwgLS1yZWNoZWMgfCAtLXJl Y2hlIHwgLS1yZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQotKyAgICBhY19jc19yZWNoZWNrPTog OzsKLSsgIC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC0tdmVyIHwg LS12ZSB8IC0tdiB8IC1WICkKLSsgICAgJGFzX2VjaG8gIiRhY19jc192ZXJzaW9uIjsgZXhpdCA7 OwotKyAgLS1kZWJ1ZyB8IC0tZGVidSB8IC0tZGViIHwgLS1kZSB8IC0tZCB8IC1kICkKLSsgICAg ZGVidWc9OiA7OwotKyAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkKLSsgICAgJGFjX3No aWZ0Ci0rICAgIGNhc2UgJGFjX29wdGFyZyBpbgotKyAgICAqXCcqKSBhY19vcHRhcmc9YCRhc19l Y2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwotKyAgICBlc2Fj Ci0rICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAnJGFjX29wdGFyZyciCi0rICAgIGFj X25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFkIHwg LS1oZWEgKQotKyAgICAkYWNfc2hpZnQKLSsgICAgY2FzZSAkYWNfb3B0YXJnIGluCi0rICAgICpc JyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxc JycvZyJgIDs7Ci0rICAgIGVzYWMKLSsgICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVS UyAnJGFjX29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwotKyAgLS1oZSB8 IC0taCkKLSsgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKLSsgICAg eyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKLStUcnkgXGAk MCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9OzsKLSsgIC0taGVscCB8IC0taGVsIHwgLWggKQotKyAgICAkYXNfZWNobyAiJGFj X2NzX3VzYWdlIjsgZXhpdCA7OwotKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwg LS1xdWkgfCAtLXF1IHwgLS1xIFwKLSsgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8 IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKLSsgICAgYWNfY3Nfc2lsZW50PTogOzsKLSsK LSsgICMgVGhpcyBpcyBhbiBlcnJvci4KLSsgIC0qKSB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9y OiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQotK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5m b3JtYXRpb24uIiA+JjIKLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKLSsKLSsgICop IGFjX2NvbmZpZ190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMgJDEiCi0rICAgICBhY19uZWVk X2RlZmF1bHRzPWZhbHNlIDs7Ci0rCi0rICBlc2FjCi0rICBzaGlmdAotK2RvbmUKLSsKLSthY19j b25maWd1cmVfZXh0cmFfYXJncz0KLSsKLStpZiAkYWNfY3Nfc2lsZW50OyB0aGVuCi0rICBleGVj IDY+L2Rldi9udWxsCi0rICBhY19jb25maWd1cmVfZXh0cmFfYXJncz0iJGFjX2NvbmZpZ3VyZV9l eHRyYV9hcmdzIC0tc2lsZW50IgotK2ZpCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFU VVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0raWYgXCRhY19jc19yZWNoZWNrOyB0aGVu Ci0rICBzZXQgWCAnJFNIRUxMJyAnJDAnICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3Vy ZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCi0rICBzaGlmdAotKyAgXCRh c19lY2hvICJydW5uaW5nIENPTkZJR19TSEVMTD0kU0hFTEwgXCQqIiA+JjYKLSsgIENPTkZJR19T SEVMTD0nJFNIRUxMJwotKyAgZXhwb3J0IENPTkZJR19TSEVMTAotKyAgZXhlYyAiXCRAIgotK2Zp Ci0rCi0rX0FDRU9GCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRl X2ZhaWw9MQotK2V4ZWMgNT4+Y29uZmlnLmxvZwotK3sKLSsgIGVjaG8KLSsgIHNlZCAnaDtzLy4v LS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCi0rIyMgUnVubmlu ZyAkYXNfbWUuICMjCi0rX0FTQk9YCi0rICAkYXNfZWNobyAiJGFjX2xvZyIKLSt9ID4mNQotKwot K19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9 MQotKyMKLSsjIElOSVQtQ09NTUFORFMKLSsjCi0rQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFj X2F1eF9kaXI9IiRhY19hdXhfZGlyIgotKwotKwotKyMgVGhlIEhQLVVYIGtzaCBhbmQgUE9TSVgg c2hlbGwgcHJpbnQgdGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gc3Rkb3V0Ci0rIyBpZiBDRFBBVEgg aXMgc2V0LgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgK LSsKLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCi0rZG91YmxlX3F1b3RlX3N1 YnN0PSckZG91YmxlX3F1b3RlX3N1YnN0JwotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSckZGVsYXlf dmFyaWFibGVfc3Vic3QnCi0rZW5hYmxlX3NoYXJlZD0nYCRFQ0hPICJYJGVuYWJsZV9zaGFyZWQi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfc3RhdGlj PSdgJEVDSE8gIlgkZW5hYmxlX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK21hY3JvX3ZlcnNpb249J2AkRUNITyAiWCRtYWNyb192ZXJzaW9uIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbWFjcm9fcmV2aXNpb249J2Ak RUNITyAiWCRtYWNyb19yZXZpc2lvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK3BpY19tb2RlPSdgJEVDSE8gIlgkcGljX21vZGUiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZmFzdF9pbnN0YWxsPSdgJEVDSE8gIlgk ZW5hYmxlX2Zhc3RfaW5zdGFsbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2hvc3RfYWxpYXM9J2AkRUNITyAiWCRob3N0X2FsaWFzIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raG9zdD0nYCRFQ0hPICJYJGhvc3QiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStob3N0X29zPSdgJEVDSE8gIlgkaG9z dF9vcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2J1aWxkX2Fs aWFzPSdgJEVDSE8gIlgkYnVpbGRfYWxpYXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStidWlsZD0nYCRFQ0hPICJYJGJ1aWxkIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYnVpbGRfb3M9J2AkRUNITyAiWCRidWlsZF9vcyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NFRD0nYCRFQ0hPICJYJFNF RCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1hzZWQ9J2AkRUNI TyAiWCRYc2VkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rR1JF UD0nYCRFQ0hPICJYJEdSRVAiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStFR1JFUD0nYCRFQ0hPICJYJEVHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rRkdSRVA9J2AkRUNITyAiWCRGR1JFUCIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xEPSdgJEVDSE8gIlgkTEQiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStOTT0nYCRFQ0hPICJYJE5NIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rTE5fUz0nYCRFQ0hPICJYJExOX1MiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttYXhfY21kX2xlbj0nYCRF Q0hPICJYJG1heF9jbWRfbGVuIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rYWNfb2JqZXh0PSdgJEVDSE8gIlgkYWNfb2JqZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhlZXh0PSdgJEVDSE8gIlgkZXhlZXh0IiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfdW5zZXQ9J2AkRUNITyAiWCRs dF91bnNldCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X1NQ Mk5MPSdgJEVDSE8gIlgkbHRfU1AyTkwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStsdF9OTDJTUD0nYCRFQ0hPICJYJGx0X05MMlNQIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcmVsb2FkX2ZsYWc9J2AkRUNITyAiWCRyZWxvYWRf ZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3JlbG9hZF9j bWRzPSdgJEVDSE8gIlgkcmVsb2FkX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStPQkpEVU1QPSdgJEVDSE8gIlgkT0JKRFVNUCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdgJEVDSE8g IlgkZGVwbGlic19jaGVja19tZXRob2QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStmaWxlX21hZ2ljX2NtZD0nYCRFQ0hPICJYJGZpbGVfbWFnaWNfY21kIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQVI9J2AkRUNITyAiWCRBUiIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0FSX0ZMQUdTPSdgJEVD SE8gIlgkQVJfRkxBR1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStTVFJJUD0nYCRFQ0hPICJYJFNUUklQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rUkFOTElCPSdgJEVDSE8gIlgkUkFOTElCIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRv bGRfcG9zdGluc3RhbGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK29sZF9wb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRvbGRfcG9zdHVuaW5zdGFs bF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2Fy Y2hpdmVfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStDQz0nYCRFQ0hPICJYJENDIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQ0ZMQUdTPSdgJEVDSE8gIlgkQ0ZMQUdTIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXI9J2AkRUNI TyAiWCRjb21waWxlciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K0dDQz0nYCRFQ0hPICJYJEdDQyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAiWCRsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9J2AkRUNITyAiWCRsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSdg JEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3MiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29iamRpcj0nYCRFQ0hPICJYJG9iamRpciIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NIRUxMPSdgJEVDSE8gIlgk U0hFTEwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStFQ0hPPSdg JEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K01BR0lDX0NNRD0nYCRFQ0hPICJYJE1BR0lDX0NNRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPSdgJEVD SE8gIlgkbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWciIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsPSdgJEVDSE8gIlgk bHRfcHJvZ19jb21waWxlcl93bCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2x0X3Byb2dfY29tcGlsZXJfcGljPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9w aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9j X289J2AkRUNITyAiWCRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK25lZWRfbG9ja3M9J2AkRUNITyAiWCRuZWVkX2xvY2tz IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rRFNZTVVUSUw9J2Ak RUNITyAiWCREU1lNVVRJTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK05NRURJVD0nYCRFQ0hPICJYJE5NRURJVCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK0xJUE89J2AkRUNITyAiWCRMSVBPIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rT1RPT0w9J2AkRUNITyAiWCRPVE9PTCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK09UT09MNjQ9J2AkRUNITyAiWCRPVE9P TDY0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGliZXh0PSdg JEVDSE8gIlgkbGliZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rc2hyZXh0X2NtZHM9J2AkRUNITyAiWCRzaHJleHRfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSdgJEVDSE8gIlgk ZXh0cmFjdF9leHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLSthcmNoaXZlX2NtZHNfbmVlZF9sYz0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19uZWVk X2xjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5hYmxlX3No YXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz0nYCRFQ0hPICJYJGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9J2AkRUNITyAiWCRleHBvcnRfZHluYW1pY19mbGFn X3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbmVlZHNfb2Jq ZWN0PSdgJEVDSE8gIlgkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nYCRFQ0hP ICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0nYCRFQ0hPICJY JG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9leHBzeW1f Y21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttb2R1bGVfY21kcz0nYCRFQ0hPICJYJG1vZHVsZV9jbWRz IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2V4cHN5 bV9jbWRzPSdgJEVDSE8gIlgkbW9kdWxlX2V4cHN5bV9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2l0aF9nbnVfbGQ9J2AkRUNITyAiWCR3aXRoX2dudV9s ZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2FsbG93X3VuZGVm aW5lZF9mbGFnPSdgJEVDSE8gIlgkYWxsb3dfdW5kZWZpbmVkX2ZsYWciIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStub191bmRlZmluZWRfZmxhZz0nYCRFQ0hPICJY JG5vX3VuZGVmaW5lZF9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSto YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlY19sZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVf ZGlyZWN0PSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPSdgJEVDSE8gIlgk aGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0raGFyZGNvZGVfbWludXNfTD0nYCRFQ0hPICJYJGhhcmRjb2RlX21pbnVzX0wi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9zaGxp YnBhdGhfdmFyPSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2F1dG9tYXRpYz0nYCRFQ0hP ICJYJGhhcmRjb2RlX2F1dG9tYXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2luaGVyaXRfcnBhdGg9J2AkRUNITyAiWCRpbmhlcml0X3JwYXRoIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlua19hbGxfZGVwbGlicz0nYCRF Q0hPICJYJGxpbmtfYWxsX2RlcGxpYnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStmaXhfc3JjZmlsZV9wYXRoPSdgJEVDSE8gIlgkZml4X3NyY2ZpbGVfcGF0aCIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5c19leHBvcnRf c3ltYm9scz0nYCRFQ0hPICJYJGFsd2F5c19leHBvcnRfc3ltYm9scyIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1ib2xzX2NtZHM9J2AkRUNITyAi WCRleHBvcnRfc3ltYm9sc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rZXhjbHVkZV9leHBzeW1zPSdgJEVDSE8gIlgkZXhjbHVkZV9leHBzeW1zIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9leHBzeW1zPSdg JEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rcHJlbGlua19jbWRzPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZmlsZV9saXN0X3NwZWM9J2AkRUNI TyAiWCRmaWxlX2xpc3Rfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSdgJEVDSE8gIlgkdmFyaWFibGVzX3Nh dmVkX2Zvcl9yZWxpbmsiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStuZWVkX2xpYl9wcmVmaXg9J2AkRUNITyAiWCRuZWVkX2xpYl9wcmVmaXgiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX3ZlcnNpb249J2AkRUNITyAiWCRu ZWVkX3ZlcnNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt2 ZXJzaW9uX3R5cGU9J2AkRUNITyAiWCR2ZXJzaW9uX3R5cGUiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStydW5wYXRoX3Zhcj0nYCRFQ0hPICJYJHJ1bnBhdGhfdmFy IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc2hsaWJwYXRoX3Zh cj0nYCRFQ0hPICJYJHNobGlicGF0aF92YXIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9J2AkRUNITyAiWCRzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStsaWJuYW1lX3NwZWM9J2AkRUNITyAiWCRsaWJuYW1lX3NwZWMiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaWJyYXJ5X25hbWVzX3NwZWM9J2Ak RUNITyAiWCRsaWJyYXJ5X25hbWVzX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStzb25hbWVfc3BlYz0nYCRFQ0hPICJYJHNvbmFtZV9zcGVjIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGluc3RhbGxfY21kcz0nYCRF Q0hPICJYJHBvc3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStwb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRwb3N0dW5pbnN0YWxsX2Nt ZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaW5pc2hfY21k cz0nYCRFQ0hPICJYJGZpbmlzaF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rZmluaXNoX2V2YWw9J2AkRUNITyAiWCRmaW5pc2hfZXZhbCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2ludG9fbGlicz0nYCRF Q0hPICJYJGhhcmRjb2RlX2ludG9fbGlicyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nYCRFQ0hPICJYJHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8gIlgkc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSto YXJkY29kZV9hY3Rpb249J2AkRUNITyAiWCRoYXJkY29kZV9hY3Rpb24iIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZGxvcGVuPSdgJEVDSE8gIlgkZW5h YmxlX2Rsb3BlbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Vu YWJsZV9kbG9wZW5fc2VsZj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW5fc2VsZiIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJsZV9kbG9wZW5fc2VsZl9zdGF0 aWM9J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3N0cmlwbGliPSdgJEVDSE8gIlgkb2xkX3N0 cmlwbGliIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rc3RyaXBs aWI9J2AkRUNITyAiWCRzdHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0nYCRFQ0hPICJYJGNvbXBpbGVyX2xp Yl9zZWFyY2hfZGlycyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3ByZWRlcF9vYmplY3RzPSdgJEVDSE8gIlgkcHJlZGVwX29iamVjdHMiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHM9J2AkRUNITyAiWCRw b3N0ZGVwX29iamVjdHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStwcmVkZXBzPSdgJEVDSE8gIlgkcHJlZGVwcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK3Bvc3RkZXBzPSdgJEVDSE8gIlgkcG9zdGRlcHMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxlcl9saWJfc2VhcmNoX3BhdGg9 J2AkRUNITyAiWCRjb21waWxlcl9saWJfc2VhcmNoX3BhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStMRF9DWFg9J2AkRUNITyAiWCRMRF9DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9jbWRzX0NYWD0n YCRFQ0hPICJYJG9sZF9hcmNoaXZlX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfQ1hYPSdgJEVDSE8gIlgkY29tcGlsZXJfQ1hYIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rR0NDX0NYWD0nYCRFQ0hP ICJYJEdDQ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSts dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFg9J2AkRUNITyAiWCRsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nYCRFQ0hPICJYJGx0X3Byb2df Y29tcGlsZXJfd2xfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfcHJv Z19jb21waWxlcl9zdGF0aWNfQ1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYPSdgJEVDSE8gIlgkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZV9jbWRz X25lZWRfbGNfQ1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5hYmxlX3NoYXJlZF93aXRoX3N0 YXRpY19ydW50aW1lc19DWFg9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4 cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiWCRleHBvcnRfZHluYW1pY19mbGFn X3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIlgkd2hvbGVfYXJjaGl2ZV9mbGFnX3Nw ZWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGls ZXJfbmVlZHNfb2JqZWN0X0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX25lZWRzX29iamVjdF9DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9m cm9tX25ld19jbWRzX0NYWD0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1z X2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYXJj aGl2ZV9jbWRzX0NYWD0nYCRFQ0hPICJYJGFyY2hpdmVfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nYCRF Q0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2NtZHNfQ1hYPSdgJEVDSE8gIlgkbW9kdWxlX2NtZHNf Q1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2V4 cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICJYJG1vZHVsZV9leHBzeW1fY21kc19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3aXRoX2dudV9sZF9DWFg9J2AkRUNI TyAiWCR3aXRoX2dudV9sZF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLSthbGxvd191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRhbGxvd191bmRlZmlu ZWRfZmxhZ19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStu b191bmRlZmluZWRfZmxhZ19DWFg9J2AkRUNITyAiWCRub191bmRlZmluZWRfZmxhZ19DWFgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZF9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv cl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29k ZV9kaXJlY3RfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0X0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9D WFg9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbWludXNfTF9DWFg9J2AkRUNI TyAiWCRoYXJkY29kZV9taW51c19MX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2hhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPSdgJEVDSE8gIlgkaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVfYXV0b21h dGljX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2luaGVy aXRfcnBhdGhfQ1hYPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aF9DWFgiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaW5rX2FsbF9kZXBsaWJzX0NYWD0nYCRFQ0hP ICJYJGxpbmtfYWxsX2RlcGxpYnNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rZml4X3NyY2ZpbGVfcGF0aF9DWFg9J2AkRUNITyAiWCRmaXhfc3JjZmlsZV9w YXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5 c19leHBvcnRfc3ltYm9sc19DWFg9J2AkRUNITyAiWCRhbHdheXNfZXhwb3J0X3N5bWJvbHNfQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhwb3J0X3N5bWJv bHNfY21kc19DWFg9J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19jbWRzX0NYWCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4Y2x1ZGVfZXhwc3ltc19DWFg9J2Ak RUNITyAiWCRleGNsdWRlX2V4cHN5bXNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICJYJGluY2x1ZGVfZXhw c3ltc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwcmVs aW5rX2NtZHNfQ1hYPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2ZpbGVfbGlzdF9zcGVjX0NYWD0nYCRFQ0hPICJY JGZpbGVfbGlzdF9zcGVjX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2hhcmRjb2RlX2FjdGlvbl9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9hY3Rpb25fQ1hY IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfbGli X3NlYXJjaF9kaXJzX0NYWD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19DWFgi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwcmVkZXBfb2JqZWN0 c19DWFg9J2AkRUNITyAiWCRwcmVkZXBfb2JqZWN0c19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwX29iamVjdHNfQ1hYPSdgJEVDSE8gIlgkcG9z dGRlcF9vYmplY3RzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK3ByZWRlcHNfQ1hYPSdgJEVDSE8gIlgkcHJlZGVwc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStwb3N0ZGVwc19DWFg9J2AkRUNITyAiWCRwb3N0ZGVw c19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxl cl9saWJfc2VhcmNoX3BhdGhfQ1hYPSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3NlYXJjaF9wYXRo X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotKwotK0xUQ0M9 JyRMVENDJwotK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZB VUxUJwotKwotKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZhciBpbiBTRUQgXAotK0dS RVAgXAotK0VHUkVQIFwKLStGR1JFUCBcCi0rTEQgXAotK05NIFwKLStMTl9TIFwKLStsdF9TUDJO TCBcCi0rbHRfTkwyU1AgXAotK3JlbG9hZF9mbGFnIFwKLStPQkpEVU1QIFwKLStkZXBsaWJzX2No ZWNrX21ldGhvZCBcCi0rZmlsZV9tYWdpY19jbWQgXAotK0FSIFwKLStBUl9GTEFHUyBcCi0rU1RS SVAgXAotK1JBTkxJQiBcCi0rQ0MgXAotK0NGTEFHUyBcCi0rY29tcGlsZXIgXAotK2x0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3BpcGUgXAotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNs IFwKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0rbHRfY3Zf c3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBcCi0rU0hFTEwg XAotK0VDSE8gXAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIFwKLStsdF9wcm9n X2NvbXBpbGVyX3dsIFwKLStsdF9wcm9nX2NvbXBpbGVyX3BpYyBcCi0rbHRfcHJvZ19jb21waWxl cl9zdGF0aWMgXAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLStuZWVkX2xvY2tzIFwKLStE U1lNVVRJTCBcCi0rTk1FRElUIFwKLStMSVBPIFwKLStPVE9PTCBcCi0rT1RPT0w2NCBcCi0rc2hy ZXh0X2NtZHMgXAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCi0rd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMgXAotK2NvbXBpbGVyX25lZWRzX29iamVjdCBcCi0rd2l0aF9nbnVfbGQgXAotK2Fs bG93X3VuZGVmaW5lZF9mbGFnIFwKLStub191bmRlZmluZWRfZmxhZyBcCi0raGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCBcCi0raGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciBcCi0rZml4X3NyY2ZpbGVfcGF0aCBcCi0rZXhjbHVkZV9leHBz eW1zIFwKLStpbmNsdWRlX2V4cHN5bXMgXAotK2ZpbGVfbGlzdF9zcGVjIFwKLSt2YXJpYWJsZXNf c2F2ZWRfZm9yX3JlbGluayBcCi0rbGlibmFtZV9zcGVjIFwKLStsaWJyYXJ5X25hbWVzX3NwZWMg XAotK3NvbmFtZV9zcGVjIFwKLStmaW5pc2hfZXZhbCBcCi0rb2xkX3N0cmlwbGliIFwKLStzdHJp cGxpYiBcCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIFwKLStwcmVkZXBfb2JqZWN0cyBcCi0r cG9zdGRlcF9vYmplY3RzIFwKLStwcmVkZXBzIFwKLStwb3N0ZGVwcyBcCi0rY29tcGlsZXJfbGli X3NlYXJjaF9wYXRoIFwKLStMRF9DWFggXAotK2NvbXBpbGVyX0NYWCBcCi0rbHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWdfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBcCi0r bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgg XAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCBcCi0rZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX0NYWCBcCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYIFwKLStjb21waWxlcl9uZWVk c19vYmplY3RfQ1hYIFwKLSt3aXRoX2dudV9sZF9DWFggXAotK2FsbG93X3VuZGVmaW5lZF9mbGFn X0NYWCBcCi0rbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKLStoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWCBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFggXAotK2hhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3JfQ1hYIFwKLStmaXhfc3JjZmlsZV9wYXRoX0NYWCBcCi0rZXhjbHVk ZV9leHBzeW1zX0NYWCBcCi0raW5jbHVkZV9leHBzeW1zX0NYWCBcCi0rZmlsZV9saXN0X3NwZWNf Q1hYIFwKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIFwKLStwcmVkZXBfb2JqZWN0c19D WFggXAotK3Bvc3RkZXBfb2JqZWN0c19DWFggXAotK3ByZWRlcHNfQ1hYIFwKLStwb3N0ZGVwc19D WFggXAotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg7IGRvCi0rICAgIGNhc2UgXGBldmFs IFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgotKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0q KQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZh clxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIK LSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2 YXJcXFxcXFwiIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBEb3VibGUtcXVv dGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gcmVsb2FkX2NtZHMgXAotK29s ZF9wb3N0aW5zdGFsbF9jbWRzIFwKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIFwKLStvbGRfYXJj aGl2ZV9jbWRzIFwKLStleHRyYWN0X2V4cHN5bXNfY21kcyBcCi0rb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kcyBcCi0rb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMgXAotK2FyY2hpdmVfY21k cyBcCi0rYXJjaGl2ZV9leHBzeW1fY21kcyBcCi0rbW9kdWxlX2NtZHMgXAotK21vZHVsZV9leHBz eW1fY21kcyBcCi0rZXhwb3J0X3N5bWJvbHNfY21kcyBcCi0rcHJlbGlua19jbWRzIFwKLStwb3N0 aW5zdGFsbF9jbWRzIFwKLStwb3N0dW5pbnN0YWxsX2NtZHMgXAotK2ZpbmlzaF9jbWRzIFwKLStz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgXAotK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIFwK LStvbGRfYXJjaGl2ZV9jbWRzX0NYWCBcCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFgg XAotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBcCi0rYXJjaGl2ZV9jbWRzX0NY WCBcCi0rYXJjaGl2ZV9leHBzeW1fY21kc19DWFggXAotK21vZHVsZV9jbWRzX0NYWCBcCi0rbW9k dWxlX2V4cHN5bV9jbWRzX0NYWCBcCi0rZXhwb3J0X3N5bWJvbHNfY21kc19DWFggXAotK3ByZWxp bmtfY21kc19DWFg7IGRvCi0rICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZh ciJcYCBpbgotKyAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFy PVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxc XCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIiAtZSBc XCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKLSsgICAgICA7OwotKyAg ICAqKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwiIgotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLStkb25lCi0rCi0rIyBGaXgtdXAgZmFsbGJhY2sgZWNobyBpZiBp dCB3YXMgbWFuZ2xlZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KLStjYXNlIFwkbHRfRUNI TyBpbgotKyonXFxcJDAgLS1mYWxsYmFjay1lY2hvIicpICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRs dF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8i XCQvXCQwIC0tZmFsbGJhY2stZWNobyIvJ1xgCi0rICA7OwotK2VzYWMKLSsKLSthY19hdXhfZGly PSckYWNfYXV4X2RpcicKLSt4c2lfc2hlbGw9JyR4c2lfc2hlbGwnCi0rbHRfc2hlbGxfYXBwZW5k PSckbHRfc2hlbGxfYXBwZW5kJwotKwotKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwg YW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRzIHRocm91Z2gg d2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lmIHRlc3QgLW4gIlwke1pTSF9W RVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLSsKLSsK LSsgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZFUlNJT049JyRWRVJTSU9OJwotKyAgICBU SU1FU1RBTVA9JyRUSU1FU1RBTVAnCi0rICAgIFJNPSckUk0nCi0rICAgIG9maWxlPSckb2ZpbGUn Ci0rCi0rCi0rCi0rCi0rCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgot K2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwotK2RvCi0rICBjYXNl ICRhY19jb25maWdfdGFyZ2V0IGluCi0rICAgICJzb2NpL2NvbmZpZy5oIikgQ09ORklHX0hFQURF UlM9IiRDT05GSUdfSEVBREVSUyBzb2NpL2NvbmZpZy5oIiA7OwotKyAgICAiZGVwZmlsZXMiKSBD T05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0rICAgICJsaWJ0 b29sIikgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGxpYnRvb2wiIDs7Ci0rICAg ICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSsg ICAgInNvY2ktY29uZmlnIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2ktY29uZmln IiA7OwotKyAgICAic29jaS5wYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpLnBj IiA7OwotKyAgICAic29jaS5zcGVjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2ku c3BlYyIgOzsKLSsgICAgInNvY2kvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM RVMgc29jaS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvY29yZS9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2Nv cmUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2NvcmUv dGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9NYWtlZmlsZSIgOzsKLSsgICAgInNv Y2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tl bmRzL215c3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL29yYWNsZS9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZSIgOzsKLSsgICAgIm1hbi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBtYW4vTWFrZWZpbGUiIDs7Ci0rICAgICJkb2MvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9 IiRDT05GSUdfRklMRVMgZG9jL01ha2VmaWxlIiA7OwotKyAgICAiZG9jL2JhY2tlbmRzL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSIg OzsKLSsgICAgImJ1aWxkL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1 aWxkL01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvdW5peC9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBidWlsZC91bml4L01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2 YzgwL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL21zdmM4MC9N YWtlZmlsZSIgOzsKLSsgICAgImJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIgOzsKLSsgICAgImJ1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVp bGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIgOzsKLSsKLSsgICopIHsgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdf dGFyZ2V0IiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7Ci0rICBlc2FjCi0r ZG9uZQotKwotKwotKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBz cGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRoZW4gdGhlIGVudnZhciBpbnRl cmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSsjIFdlIHVzZSB0 aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0 cmVtZWx5Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KLStpZiAkYWNfbmVlZF9kZWZh dWx0czsgdGhlbgotKyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklH X0ZJTEVTPSRjb25maWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBz ZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0rICB0ZXN0ICIke0NPTkZJR19D T01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwot K2ZpCi0rCi0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBN YWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyBy ZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotKyMgY3JlYXRp bmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBwcm9ibGVt cy4KLSsjIEhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0rIyBOb3RlIHRo YXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5v dCBiZSBjbGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUg aGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8fAotK3sKLSsgIHRtcD0KLSsg IHRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICB7IHRlc3QgLXogIiR0bXAiIHx8IHRlc3QgISAtZCAi JHRtcCIgfHwgcm0gLWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0YXR1cwotKycgMAotKyAg dHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKLSt9Ci0rIyBDcmVhdGUgYSAo c2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCi0rCi0rewotKyAgdG1wPWAodW1h c2sgMDc3ICYmIG1rdGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4vZGV2L251bGxgICYmCi0rICB0 ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgotK30gIHx8Ci0rewotKyAgdG1wPS4vY29u ZiQkLSRSQU5ET00KLSsgICh1bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQotK30gfHwKLSt7Ci0r ICAgJGFzX2VjaG8gIiRhc19tZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkg aW4gLiIgPiYyCi0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci0rfQotKwotKyMgU2V0IHVwIHRo ZSBzY3JpcHRzIGZvciBDT05GSUdfRklMRVMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJh dGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgotKyMgVGhpcyBoYXBwZW5zIGZv ciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgnLgotK2lmIHRlc3QgLW4g IiRDT05GSUdfRklMRVMiOyB0aGVuCi0rCi0rCi0rYWNfY3I9Jw0nCi0rYWNfY3NfYXdrX2NyPWAk QVdLICdCRUdJTiB7IHByaW50ICJhXHJiIiB9JyA8L2Rldi9udWxsIDI+L2Rldi9udWxsYAotK2lm IHRlc3QgIiRhY19jc19hd2tfY3IiID0gImEke2FjX2NyfWIiOyB0aGVuCi0rICBhY19jc19hd2tf Y3I9J1xccicKLStlbHNlCi0rICBhY19jc19hd2tfY3I9JGFjX2NyCi0rZmkKLSsKLStlY2hvICdC RUdJTiB7JyA+IiR0bXAvc3ViczEuYXdrIiAmJgotK19BQ0VPRgotKwotKwotK3sKLSsgIGVjaG8g ImNhdCA+Y29uZiQkc3Vicy5hd2sgPDxfQUNFT0YiICYmCi0rICBlY2hvICIkYWNfc3Vic3RfdmFy cyIgfCBzZWQgJ3MvLiovJiEkJiRhY19kZWxpbS8nICYmCi0rICBlY2hvICJfQUNFT0YiCi0rfSA+ Y29uZiQkc3Vicy5zaCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9Ci0rYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBn cmVwIC1jICckJ2AKLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0X3RyeSBpbiBmYWxz ZSBmYWxzZSBmYWxzZSBmYWxzZSBmYWxzZSA6OyBkbwotKyAgLiAuL2NvbmYkJHN1YnMuc2ggfHwK LSsgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtl ICRDT05GSUdfU1RBVFVTIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90 IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9 Ci0rCi0rICBhY19kZWxpbV9uPWBzZWQgLW4gInMvLiokYWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1 YnMuYXdrIHwgZ3JlcCAtYyBYYAotKyAgaWYgdGVzdCAkYWNfZGVsaW1fbiA9ICRhY19kZWxpbV9u dW07IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklH X1NUQVRVUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRD T05GSUdfU1RBVFVTIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKyAgZWxz ZQotKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBfJGFjX2RlbGltISEgIgotKyAg ZmkKLStkb25lCi0rcm0gLWYgY29uZiQkc3Vicy5zaAotKwotK2NhdCA+PiRDT05GSUdfU1RBVFVT IDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotK2NhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8 XFxfQUNBV0sgJiYKLStfQUNFT0YKLStzZWQgLW4gJwotK2gKLStzL14vU1siLzsgcy8hLiovIl09 LwotK3AKLStnCi0rcy9eW14hXSohLy8KLSs6cmVwbAotK3QgcmVwbAotK3MvJyIkYWNfZGVsaW0i JyQvLwotK3QgZGVsaW0KLSs6bmwKLStoCi0rcy9cKC5cezE0OFx9XCkuKi9cMS8KLSt0IG1vcmUx Ci0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvXFxuIlxcLwotK3AKLStuCi0rYiByZXBsCi0r Om1vcmUxCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsx NDhcfS8vCi0rdCBubAotKzpkZWxpbQotK2gKLStzL1woLlx7MTQ4XH1cKS4qL1wxLwotK3QgbW9y ZTIKLStzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AKLStiCi0rOm1vcmUyCi0rcy9b IlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBk ZWxpbQotKycgPGNvbmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlteIiJdL3sKLSsgIE4KLSsgIHMv XG4vLwotK30KLSsnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCi0rcm0gLWYg Y29uZiQkc3Vicy5hd2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKLStfQUNBV0sKLStjYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgot KyAgZm9yIChrZXkgaW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rCi0rfQot K3sKLSsgIGxpbmUgPSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChsaW5lLCBmaWVsZCwgIkAiKQot KyAgc3Vic3RlZCA9IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKLSsgIGZvciAoaSA9IDI7 IGkgPCBuZmllbGRzOyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRbaV0KLSsgICAga2V5bGVuID0g bGVuZ3RoKGtleSkKLSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsKLSsgICAgICB2YWx1ZSA9IFNb a2V5XQotKyAgICAgIGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJz dHIobGluZSwgbGVuICsga2V5bGVuICsgMykKLSsgICAgICBsZW4gKz0gbGVuZ3RoKHZhbHVlKSAr IGxlbmd0aChmaWVsZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAxCi0rICAgIH0gZWxzZQotKyAg ICAgIGxlbiArPSAxICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmludCBsaW5lCi0rfQotKwotK19B Q0FXSwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKLStpZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+ JjE7IHRoZW4KLSsgIHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19jci8kYWNfY3NfYXdrX2NyL2ci Ci0rZWxzZQotKyAgY2F0Ci0rZmkgPCAiJHRtcC9zdWJzMS5hd2siID4gIiR0bXAvc3Vicy5hd2si IFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qg c2V0dXAgY29uZmlnIGZpbGVzIG1hY2hpbmVyeSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiA+JjI7fQotKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotK19BQ0VPRgotKwotKyMgVlBBVEggbWF5IGNhdXNlIHRy b3VibGUgd2l0aCBzb21lIG1ha2VzLCBzbyB3ZSByZW1vdmUgJChzcmNkaXIpLAotKyMgJHtzcmNk aXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRp bmcgYW5kCi0rIyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5l IGlmIFZQQVRIIGJlY29tZXMgZW1wdHkKLSsjIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBs aW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCi0raWYgdGVzdCAieCRzcmNkaXIiID0geC47 IHRoZW4KLSsgIGFjX3Zwc3ViPScvXlsJIF0qVlBBVEhbCSBdKj0vewotK3MvOipcJChzcmNkaXIp OiovOi8KLStzLzoqXCR7c3JjZGlyfToqLzovCi0rcy86KkBzcmNkaXJAOiovOi8KLStzL15cKFte PV0qPVsJIF0qXCk6Ki9cMS8KLStzLzoqJC8vCi0rcy9eW149XSo9WwkgXSokLy8KLSt9JwotK2Zp Ci0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQot K2ZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKLSsKLSsjIFNldCB1cCB0aGUgc2NyaXB0cyBm b3IgQ09ORklHX0hFQURFUlMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBp ZiB0aGVyZSBhcmUgbm8gQ09ORklHX0hFQURFUlMuCi0rIyBUaGlzIGhhcHBlbnMgZm9yIGluc3Rh bmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCi0raWYgdGVzdCAtbiAiJENPTkZJ R19IRUFERVJTIjsgdGhlbgotK2NhdCA+IiR0bXAvZGVmaW5lcy5hd2siIDw8XF9BQ0FXSyB8fAot K0JFR0lOIHsKLStfQUNFT0YKLSsKLSsjIFRyYW5zZm9ybSBjb25mZGVmcy5oIGludG8gYW4gYXdr IHNjcmlwdCBgZGVmaW5lcy5hd2snLCBlbWJlZGRlZCBhcwotKyMgaGVyZS1kb2N1bWVudCBpbiBj b25maWcuc3RhdHVzLCB0aGF0IHN1YnN0aXR1dGVzIHRoZSBwcm9wZXIgdmFsdWVzIGludG8KLSsj IGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmlnLmguCi0rCi0rIyBDcmVhdGUgYSBkZWxpbWl0 ZXIgc3RyaW5nIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gY29uZmRlZnMuaCwgdG8gZWFzZQotKyMg aGFuZGxpbmcgb2YgbG9uZyBsaW5lcy4KLSthY19kZWxpbT0nJSFfISMgJwotK2ZvciBhY19sYXN0 X3RyeSBpbiBmYWxzZSBmYWxzZSA6OyBkbwotKyAgYWNfdD1gc2VkIC1uICIvJGFjX2RlbGltL3Ai IGNvbmZkZWZzLmhgCi0rICBpZiB0ZXN0IC16ICIkYWNfdCI7IHRoZW4KLSsgICAgYnJlYWsKLSsg IGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX0hFQURFUlMiID4mMjt9Ci0r ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICBlbHNlCi0rICAgIGFjX2RlbGltPSIkYWNf ZGVsaW0hJGFjX2RlbGltIF8kYWNfZGVsaW0hISAiCi0rICBmaQotK2RvbmUKLSsKLSsjIEZvciB0 aGUgYXdrIHNjcmlwdCwgRCBpcyBhbiBhcnJheSBvZiBtYWNybyB2YWx1ZXMga2V5ZWQgYnkgbmFt ZSwKLSsjIGxpa2V3aXNlIFAgY29udGFpbnMgbWFjcm8gcGFyYW1ldGVycyBpZiBhbnkuICBQcmVz ZXJ2ZSBiYWNrc2xhc2gKLSsjIG5ld2xpbmUgc2VxdWVuY2VzLgotKwotK2FjX3dvcmRfcmU9W18k YXNfY3JfTGV0dGVyc11bXyRhc19jcl9hbG51bV0qCi0rc2VkIC1uICcKLStzLy5cezE0OFx9LyYn IiRhY19kZWxpbSInL2cKLSt0IHJzZXQKLSs6cnNldAotK3MvXlsJIF0qI1sJIF0qZGVmaW5lWwkg XVsJIF0qLyAvCi0rdCBkZWYKLStkCi0rOmRlZgotK3MvXFwkLy8KLSt0IGJzbmwKLStzL1siXFxd L1xcJi9nCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9Q WyJcMSJdPSJcMiJcCi0rRFsiXDEiXT0iIFwzIi9wCi0rcy9eIFwoJyIkYWNfd29yZF9yZSInXClb CSBdKlwoLipcKS9EWyJcMSJdPSIgXDIiL3AKLStkCi0rOmJzbmwKLStzL1siXFxdL1xcJi9nCi0r cy9eIFwoJyIkYWNfd29yZF9yZSInXClcKChbXigpXSopXClbCSBdKlwoLipcKS9QWyJcMSJdPSJc MiJcCi0rRFsiXDEiXT0iIFwzXFxcXFxcbiJcXC9wCi0rdCBjb250Ci0rcy9eIFwoJyIkYWNfd29y ZF9yZSInXClbCSBdKlwoLipcKS9EWyJcMSJdPSIgXDJcXFxcXFxuIlxcL3AKLSt0IGNvbnQKLStk Ci0rOmNvbnQKLStuCi0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCi0rdCBjbGVhcgotKzpj bGVhcgotK3MvXFwkLy8KLSt0IGJzbmxjCi0rcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi9w Ci0rZAotKzpic25sYwotK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kL1xcXFxcXG4iXFwvcAot K2IgY29udAotKycgPGNvbmZkZWZzLmggfCBzZWQgJwotK3MvJyIkYWNfZGVsaW0iJy8iXFxcCi0r Ii9nJyA+PiRDT05GSUdfU1RBVFVTIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotK2NhdCA+PiRDT05G SUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgZm9yIChrZXkgaW4gRCkg RF9pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rfQotKy9eW1x0IF0qI1tcdCBdKihkZWZp bmV8dW5kZWYpW1x0IF0rJGFjX3dvcmRfcmUoW1x0IChdfFwkKS8gewotKyAgbGluZSA9IFwkIDAK LSsgIHNwbGl0KGxpbmUsIGFyZywgIiAiKQotKyAgaWYgKGFyZ1sxXSA9PSAiIyIpIHsKLSsgICAg ZGVmdW5kZWYgPSBhcmdbMl0KLSsgICAgbWFjMSA9IGFyZ1szXQotKyAgfSBlbHNlIHsKLSsgICAg ZGVmdW5kZWYgPSBzdWJzdHIoYXJnWzFdLCAyKQotKyAgICBtYWMxID0gYXJnWzJdCi0rICB9Ci0r ICBzcGxpdChtYWMxLCBtYWMyLCAiKCIpICMpCi0rICBtYWNybyA9IG1hYzJbMV0KLSsgIHByZWZp eCA9IHN1YnN0cihsaW5lLCAxLCBpbmRleChsaW5lLCBkZWZ1bmRlZikgLSAxKQotKyAgaWYgKERf aXNfc2V0W21hY3JvXSkgewotKyAgICAjIFByZXNlcnZlIHRoZSB3aGl0ZSBzcGFjZSBzdXJyb3Vu ZGluZyB0aGUgIiMiLgotKyAgICBwcmludCBwcmVmaXggImRlZmluZSIsIG1hY3JvIFBbbWFjcm9d IERbbWFjcm9dCi0rICAgIG5leHQKLSsgIH0gZWxzZSB7Ci0rICAgICMgUmVwbGFjZSAjdW5kZWYg d2l0aCBjb21tZW50cy4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSwKLSsgICAgIyBp biB0aGUgY2FzZSBvZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1 aXJlZAotKyAgICAjIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1cmUgd2lsbCBub3QgZGVj aWRlIHRvIGRlZmluZSBpdC4KLSsgICAgaWYgKGRlZnVuZGVmID09ICJ1bmRlZiIpIHsKLSsgICAg ICBwcmludCAiLyoiLCBwcmVmaXggZGVmdW5kZWYsIG1hY3JvLCAiKi8iCi0rICAgICAgbmV4dAot KyAgICB9Ci0rICB9Ci0rfQotK3sgcHJpbnQgfQotK19BQ0FXSwotK19BQ0VPRgotK2NhdCA+PiRD T05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMg bWFjaGluZXJ5IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IHNldHVw IGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7 IH07IH0KLStmaSAjIHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyIKLSsKLSsKLStldmFsIHNldCBY ICIgIDpGICRDT05GSUdfRklMRVMgIDpIICRDT05GSUdfSEVBREVSUyAgICA6QyAkQ09ORklHX0NP TU1BTkRTIgotK3NoaWZ0Ci0rZm9yIGFjX3RhZwotK2RvCi0rICBjYXNlICRhY190YWcgaW4KLSsg IDpbRkhMQ10pIGFjX21vZGU9JGFjX3RhZzsgY29udGludWU7OwotKyAgZXNhYwotKyAgY2FzZSAk YWNfbW9kZSRhY190YWcgaW4KLSsgIDpbRkhMXSo6Kik7OwotKyAgOkwqIHwgOkMqOiopIHsgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHRhZyAkYWNfdGFnIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB0YWcgJGFjX3RhZyIgPiYyO30KLSsg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwotKyAgOltGSF0tKSBhY190YWc9LTotOzsKLSsg IDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFjX3RhZy5pbjs7Ci0rICBlc2FjCi0rICBhY19zYXZl X0lGUz0kSUZTCi0rICBJRlM9OgotKyAgc2V0IHggJGFjX3RhZwotKyAgSUZTPSRhY19zYXZlX0lG UwotKyAgc2hpZnQKLSsgIGFjX2ZpbGU9JDEKLSsgIHNoaWZ0Ci0rCi0rICBjYXNlICRhY19tb2Rl IGluCi0rICA6TCkgYWNfc291cmNlPSQxOzsKLSsgIDpbRkhdKQotKyAgICBhY19maWxlX2lucHV0 cz0KLSsgICAgZm9yIGFjX2YKLSsgICAgZG8KLSsgICAgICBjYXNlICRhY19mIGluCi0rICAgICAg LSkgYWNfZj0iJHRtcC9zdGRpbiI7OwotKyAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmly c3QgaW4gdGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCi0rCSAjIChpZiB0 aGUgcGF0aCBpcyBub3QgYWJzb2x1dGUpLiAgVGhlIGFic29sdXRlIHBhdGggY2Fubm90IGJlIERP Uy1zdHlsZSwKLSsJICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicuCi0rCSB0ZXN0 IC1mICIkYWNfZiIgfHwKLSsJICAgY2FzZSAkYWNfZiBpbgotKwkgICBbXFwvJF0qKSBmYWxzZTs7 Ci0rCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2Yi OzsKLSsJICAgZXNhYyB8fAotKwkgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJv cjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGFjX2YiID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07OwotKyAgICAgIGVzYWMKLSsgICAgICBjYXNlICRhY19mIGluICpc JyopIGFjX2Y9YCRhc19lY2hvICIkYWNfZiIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyBl c2FjCi0rICAgICAgYWNfZmlsZV9pbnB1dHM9IiRhY19maWxlX2lucHV0cyAnJGFjX2YnIgotKyAg ICBkb25lCi0rCi0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3 aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19tZSksIHBlb3Bs ZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25maWcuaC4gIEdl bmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lucHV0PSdHZW5l cmF0ZWQgZnJvbSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0qL3x8O3N8Olte Ol0qL3wsIHxnJwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgiJGFjX2ZpbGUi ICE9IHgtOyB0aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICRjb25maWd1 cmVfaW5wdXQiCi0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRh Y19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30K LSsgICAgZmkKLSsgICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hhcmFjdGVycyBpbnRlcnByZXRl ZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3RyaW5ncy4KLSsgICAgY2FzZSAkY29uZmlndXJlX2lu cHV0IGluICMoCi0rICAgICpcJiogfCAqXHwqIHwgKlxcKiApCi0rICAgICAgIGFjX3NlZF9jb25m X2lucHV0PWAkYXNfZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAotKyAgICAgICBzZWQgJ3MvW1xc XFwmfF0vXFxcXCYvZydgOzsgIygKLSsgICAgKikgYWNfc2VkX2NvbmZfaW5wdXQ9JGNvbmZpZ3Vy ZV9pbnB1dDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkYWNfdGFnIGluCi0rICAgICo6LToq IHwgKjotKSBjYXQgPiIkdG1wL3N0ZGluIiBcCi0rICAgICAgfHwgeyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2Fj Ci0rCi0rICBhY19kaXI9YCRhc19kaXJuYW1lIC0tICIkYWNfZmlsZSIgfHwKLSskYXNfZXhwciBY IiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYWNf ZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBc fCBcCi0rCSBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNf ZWNobyBYIiRhY19maWxlIiB8Ci0rICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10q XC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9d LiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0r CSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8v XDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIHMvLiovLi87IHEnYAotKyAgeyBhc19kaXI9IiRhY19k aXIiCi0rICBjYXNlICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsg IGVzYWMKLSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAg IiRhc19kaXIiOyB9IHx8IHsKLSsgICAgYXNfZGlycz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAg ICBjYXNlICRhc19kaXIgaW4gIygKLSsgICAgICAqXCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFz X2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAjJygKLSsgICAgICAqKSBhc19xZGly PSRhc19kaXI7OwotKyAgICAgIGVzYWMKLSsgICAgICBhc19kaXJzPSInJGFzX3FkaXInICRhc19k aXJzIgotKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4 cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIk YXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcg XHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNf ZWNobyBYIiRhc19kaXIiIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpc LyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10u Ki97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJ ICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9c MS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFz X2RpciIgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZh bCAibWtkaXIgJGFzX2RpcnMiCi0rICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNf ZGlyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3Rv cnkgJGFzX2RpciIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KLSsgIGFj X2J1aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFj X3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyopCi0rICBhY19k aXJfc3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAg IyBBICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9w X2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9d KnwvLi58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikg YWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNf dG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVzYWMgOzsKLStl c2FjCi0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19w d2QkYWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9w X2J1aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAu KSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFj X3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9 JGFjX3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAg ICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRz cmNkaXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2 ZSBuYW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rp cl9zdWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIK LSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fi c19zcmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsKLSsgIGNhc2Ug JGFjX21vZGUgaW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklMRQotKyAgIwotKwotKyAg Y2FzZSAkSU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5T VEFMTCA7OwotKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7 Ci0rICBlc2FjCi0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNlICRNS0RJUl9QIGluCi0r ICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVp bGRfcHJlZml4JE1LRElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklH X1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBJZiB0aGUgdGVtcGxhdGUg ZG9lcyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgotKyMgRklYTUU6IFRo aXMgaGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgotK2FjX2Rh dGFyb290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotKwotK2FjX3NlZF9kYXRhcm9v dD0nCi0rL2RhdGFyb290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0YWRpckAvcAotKy9A ZG9jZGlyQC9wCi0rL0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsvQG1hbmRpckAvcAot KycKLStjYXNlIGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lu cHV0cyJgIGluCi0rKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OwotKypA ZGF0YWRpckAqfCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAq KQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19maWxlX2lucHV0 cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiY1Ci0rJGFzX2Vj aG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUg LS1kYXRhcm9vdGRpciBzZXR0aW5nIiA+JjI7fQotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyAgYWNfZGF0YXJvb3RkaXJfaGFjaz0n Ci0rICBzJkBkYXRhZGlyQCYkZGF0YWRpciZnCi0rICBzJkBkb2NkaXJAJiRkb2NkaXImZwotKyAg cyZAaW5mb2RpckAmJGluZm9kaXImZwotKyAgcyZAbG9jYWxlZGlyQCYkbG9jYWxlZGlyJmcKLSsg IHMmQG1hbmRpckAmJG1hbmRpciZnCi0rICAgIHMmXFxcJHtkYXRhcm9vdGRpcn0mJGRhdGFyb290 ZGlyJmcnIDs7Ci0rZXNhYwotK19BQ0VPRgotKwotKyMgTmV1dHJhbGl6ZSBWUEFUSCB3aGVuIGAk c3JjZGlyJyA9IGAuJy4KLSsjIFNoZWxsIGNvZGUgaW4gY29uZmlndXJlLmFjIG1pZ2h0IHNldCBl eHRyYXN1Yi4KLSsjIEZJWE1FOiBkbyB3ZSByZWFsbHkgd2FudCB0byBtYWludGFpbiB0aGlzIGZl YXR1cmU/Ci0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0x Ci0rYWNfc2VkX2V4dHJhPSIkYWNfdnBzdWIKLSskZXh0cmFzdWIKLStfQUNFT0YKLStjYXQgPj4k Q09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rOnQKLSsvQFthLXpB LVpfXVthLXpBLVpfMC05XSpALyFiCi0rc3xAY29uZmlndXJlX2lucHV0QHwkYWNfc2VkX2NvbmZf aW5wdXR8O3QgdAotK3MmQHRvcF9idWlsZGRpckAmJGFjX3RvcF9idWlsZGRpcl9zdWImO3QgdAot K3MmQHRvcF9idWlsZF9wcmVmaXhAJiRhY190b3BfYnVpbGRfcHJlZml4Jjt0IHQKLStzJkBzcmNk aXJAJiRhY19zcmNkaXImO3QgdAotK3MmQGFic19zcmNkaXJAJiRhY19hYnNfc3JjZGlyJjt0IHQK LStzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYWJzX3RvcF9zcmNkaXJA JiRhY19hYnNfdG9wX3NyY2RpciY7dCB0Ci0rcyZAYnVpbGRkaXJAJiRhY19idWlsZGRpciY7dCB0 Ci0rcyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0IHQKLStzJkBhYnNfdG9wX2J1 aWxkZGlyQCYkYWNfYWJzX3RvcF9idWlsZGRpciY7dCB0Ci0rcyZASU5TVEFMTEAmJGFjX0lOU1RB TEwmO3QgdAotK3MmQE1LRElSX1BAJiRhY19NS0RJUl9QJjt0IHQKLSskYWNfZGF0YXJvb3RkaXJf aGFjawotKyIKLStldmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIg fCAkQVdLIC1mICIkdG1wL3N1YnMuYXdrIiA+JHRtcC9vdXQgXAotKyAgfHwgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7 fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotK3Rlc3QgLXogIiRhY19kYXRhcm9v dGRpcl9oYWNrJGFjX2RhdGFyb290ZGlyX3NlZW4iICYmCi0rICB7IGFjX291dD1gc2VkIC1uICcv XCR7ZGF0YXJvb3RkaXJ9L3AnICIkdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgot KyAgeyBhY19vdXQ9YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGlyWwkgXSo6Kj0vcCcgIiR0bXAv b3V0ImA7IHRlc3QgLXogIiRhY19vdXQiOyB9ICYmCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlh YmxlIFxgZGF0YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNl IG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJv b3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBp dCBpcyBkZWZpbmVkLiIgPiYyO30KLSsKLSsgIHJtIC1mICIkdG1wL3N0ZGluIgotKyAgY2FzZSAk YWNfZmlsZSBpbgotKyAgLSkgY2F0ICIkdG1wL291dCIgJiYgcm0gLWYgIiR0bXAvb3V0Ijs7Ci0r ICAqKSBybSAtZiAiJGFjX2ZpbGUiICYmIG12ICIkdG1wL291dCIgIiRhY19maWxlIjs7Ci0rICBl c2FjIFwKLSsgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb3VsZCBu b3QgY3JlYXRlICRhY19maWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQg bm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0K LSsgOzsKLSsgIDpIKQotKyAgIwotKyAgIyBDT05GSUdfSEVBREVSCi0rICAjCi0rICBpZiB0ZXN0 IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgIHsKLSsgICAgICAkYXNfZWNobyAiLyogJGNv bmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2RlZmlu ZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKLSsgICAgfSA+IiR0bXAvY29uZmlnLmgiIFwKLSsg ICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNy ZWF0ZSAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBj cmVhdGUgJGFjX2ZpbGUiID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0rICAg IGlmIGRpZmYgIiRhY19maWxlIiAiJHRtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVu Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICRhY19maWxlIGlzIHVuY2hhbmdl ZCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQot KyAgICBlbHNlCi0rICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAgICAgIG12ICIkdG1wL2NvbmZp Zy5oIiAiJGFjX2ZpbGUiIFwKLSsJfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQotKyAgICBmaQotKyAgZWxzZQotKyAgICAkYXNfZWNobyAiLyogJGNvbmZpZ3Vy ZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdr IicgIiRhY19maWxlX2lucHV0cyIgXAotKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mNQotKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlIC0iID4mMjt9Ci0rICAgeyAoZXhpdCAxKTsgZXhpdCAx OyB9OyB9Ci0rICBmaQotKyMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19o ZWFkZXJzLgotK19hbV9hcmc9IiRhY19maWxlIgotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9h bV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGlu Ci0rICAgICRfYW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiAp Ci0rICAgICAgX2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7Owot KyAgZXNhYwotK2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YCRhc19kaXJu YW1lIC0tICIkX2FtX2FyZyIgfHwKLSskYXNfZXhwciBYIiRfYW1fYXJnIiA6ICdYXCguKlteL11c KS8vKlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKVteL10nIFx8 IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRfYW1fYXJnIiA6ICdY XCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRfYW1fYXJnIiB8Ci0rICAg IHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJ ICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9zdGFtcF9jb3VudAotKyA7OwotKwotKyAgOkMpICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNjt9 Ci0rIDs7Ci0rICBlc2FjCi0rCi0rCi0rICBjYXNlICRhY19maWxlJGFjX21vZGUgaW4KLSsgICAg ImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCAjIEF1dG9jb25mIDIu NjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxlcwot KyMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBl bmFibGUgdGhlIGV2YWwKLSsjIGlmIHdlIGRldGVjdCB0aGUgcXVvdGluZy4KLStjYXNlICRDT05G SUdfRklMRVMgaW4KLSsqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVTIiA7OwotKyopICAg c2V0IHggJENPTkZJR19GSUxFUyA7OwotK2VzYWMKLStzaGlmdAotK2ZvciBtZgotK2RvCi0rICAj IFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgotKyAgbWY9 YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKLSsgICMgQ2hlY2sgd2hldGhlciB0aGlz IGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCi0rICAjIFdlIHVzZWQg dG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0Ci0rICAjIHNv bWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29u dGVudC4KLSsgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBw ZW9wbGUgcG9zdC1wcm9jZXNzCi0rICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBs aW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgotKyAgIyBHcmVwJ2luZyB0aGUgd2hv bGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKLSsgICMgbGlt aXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFz dCA0MDAwLgotKyAgaWYgc2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAn ICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICBkaXJwYXJ0PWAkYXNf ZGlybmFtZSAtLSAiJG1mIiB8fAotKyRhc19leHByIFgiJG1mIiA6ICdYXCguKlteL11cKS8vKlte L11bXi9dKi8qJCcgXHwgXAotKwkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSBYIiRt ZiIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJG1mIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251 bGwgfHwKLSskYXNfZWNobyBYIiRtZiIgfAotKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlte L11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9c L1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9c KSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJ ICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsgIGVsc2UKLSsg ICAgY29udGludWUKLSsgIGZpCi0rICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElS LCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQotKyAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRo b3V0IHJ1bm5pbmcgYG1ha2UnLgotKyAgREVQRElSPWBzZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcg PCAiJG1mImAKLSsgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCi0rICBhbV9faW5jbHVk ZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSsgIHRlc3QgLXogImFt X19pbmNsdWRlIiAmJiBjb250aW51ZQotKyAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90 ZSA9IC8vcCcgPCAiJG1mImAKLSsgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1w dHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3An IDwgIiRtZiJgCi0rICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFy ZSBpbmNsdWRlZCBmaWxlcyB3aXRoCi0rICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdl IGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICMgc2ltcGxlc3QgYXBwcm9h Y2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCi0rICAj IGV4cGFuc2lvbi4KLSsgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAgICBzL14kYW1fX2luY2x1 ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8 IFwKLSsgICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRV LyciJFUiJy9nJ2A7IGRvCi0rICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgot KyAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKLSsgICAgZmRpcj1gJGFz X2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAotKyRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4qW14vXVwp Ly8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRmaWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAot KwkgWCIkZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJGZpbGUiIDogJ1hcKC9cKScgXHwg LiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGZpbGUiIHwKLSsgICAgc2VkICcvXlhcKC4q W14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0K LSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0r CSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhc KFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdg Ci0rICAgIHsgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyCi0rICBjYXNlICRhc19kaXIgaW4gIygKLSsg IC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMKLSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8 IHsgJGFzX21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8IHsKLSsgICAgYXNfZGly cz0KLSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19kaXIgaW4gIygKLSsgICAgICAq XCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9n ImA7OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OwotKyAgICAgIGVzYWMKLSsgICAg ICBhc19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5h bWUgLS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8v KlteL11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAot KwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCkn IFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19kaXIiIHwKLSsgICAgc2VkICcv XlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8u LzsgcSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAg ICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCi0rICB9IHx8IHRl c3QgLWQgIiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj YW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30KLSsgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH07IH0KLSsgICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmls ZSIKLSsgICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCi0rICBkb25lCi0rZG9u ZQotKyA7OwotKyAgICAibGlidG9vbCI6QykKLSsKLSsgICAgIyBTZWUgaWYgd2UgYXJlIHJ1bm5p bmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgotKyAgICAjIGNv bW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KLSsgICAgaWYgdGVz dCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICAgICBzZXRvcHQgTk9fR0xPQl9T VUJTVAotKyAgICBmaQotKwotKyAgICBjZmdmaWxlPSIke29maWxlfVQiCi0rICAgIHRyYXAgIiRS TSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1Ci0rICAgICRSTSAiJGNmZ2ZpbGUiCi0rCi0r ICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKyMhICRTSEVMTAotKwotKyMgYCRFQ0hP ICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5 LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCi0rIyBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBi eSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KLSsjIExpYnRvb2wgd2FzIGNv bmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNl ZCAxcWA6Ci0rIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUgbG9zdDog bG9vayBhdCBsdG1haW4uc2guCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5 OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCi0rIyAgICAgICAgICAgICAg ICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjICAg V3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgotKyMKLSsjICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIExpYnRvb2wuCi0rIwotKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotKyMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSsj IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMK LSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFt IG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkg aW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0 aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsjCi0rIyBHTlUgTGli dG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKLSsjIGNhbiBiZSBkb3dubG9hZGVk IGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgotKyMgb2J0YWlu ZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAotKyMg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV U0EuCi0rCi0rCi0rIyBUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBw b3J0ZWQgYnkgdGhpcyBzY3JpcHQuCi0rYXZhaWxhYmxlX3RhZ3M9IkNYWCAiCi0rCi0rIyAjIyMg QkVHSU4gTElCVE9PTCBDT05GSUcKLSsKLSsjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxkIHNoYXJl ZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCi0rCi0rIyBX aGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgotK2J1aWxkX29sZF9saWJz PSRlbmFibGVfc3RhdGljCi0rCi0rIyBXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVz ZWQ/Ci0rbWFjcm9fdmVyc2lvbj0kbWFjcm9fdmVyc2lvbgotK21hY3JvX3JldmlzaW9uPSRtYWNy b19yZXZpc2lvbgotKwotKyMgV2hhdCB0eXBlIG9mIG9iamVjdHMgdG8gYnVpbGQuCi0rcGljX21v ZGU9JHBpY19tb2RlCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBp bnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFzdF9pbnN0YWxsCi0rCi0rIyBU aGUgaG9zdCBzeXN0ZW0uCi0raG9zdF9hbGlhcz0kaG9zdF9hbGlhcwotK2hvc3Q9JGhvc3QKLSto b3N0X29zPSRob3N0X29zCi0rCi0rIyBUaGUgYnVpbGQgc3lzdGVtLgotK2J1aWxkX2FsaWFzPSRi dWlsZF9hbGlhcwotK2J1aWxkPSRidWlsZAotK2J1aWxkX29zPSRidWlsZF9vcwotKwotKyMgQSBz ZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4KLStTRUQ9JGx0X1NFRAot KwotKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNo bygxKSBvcHRpb25zIGxpa2UgLW4uCi0rWHNlZD0iXCRTRUQgLWUgMXMvXlgvLyIKLSsKLSsjIEEg Z3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzLgotK0dSRVA9JGx0X0dSRVAKLSsK LSsjIEFuIEVSRSBtYXRjaGVyLgotK0VHUkVQPSRsdF9FR1JFUAotKwotKyMgQSBsaXRlcmFsIHN0 cmluZyBtYXRjaGVyLgotK0ZHUkVQPSRsdF9GR1JFUAotKwotKyMgQSBCU0QtIG9yIE1TLWNvbXBh dGlibGUgbmFtZSBsaXN0ZXIuCi0rTk09JGx0X05NCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgc29m dCBvciBoYXJkIGxpbmtzLgotK0xOX1M9JGx0X0xOX1MKLSsKLSsjIFdoYXQgaXMgdGhlIG1heGlt dW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KLSttYXhfY21kX2xlbj0kbWF4X2NtZF9sZW4KLSsKLSsj IE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KLStvYmpleHQ9JGFjX29iamV4dAot KwotKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpLgotK2V4ZWV4dD0kZXhl ZXh0Ci0rCi0rIyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQiLgotK2x0X3Vu c2V0PSRsdF91bnNldAotKwotKyMgdHVybiBzcGFjZXMgaW50byBuZXdsaW5lcy4KLStTUDJOTD0k bHRfbHRfU1AyTkwKLSsKLSsjIHR1cm4gbmV3bGluZXMgaW50byBzcGFjZXMuCi0rTkwyU1A9JGx0 X2x0X05MMlNQCi0rCi0rIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgot K3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwotK3JlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21k cwotKwotKyMgQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXIuCi0rT0JKRFVNUD0kbHRfT0JKRFVNUAot KwotKyMgTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hh cmVkIG9iamVjdHMuCi0rZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0 aG9kCi0rCi0rIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09ICJm aWxlX21hZ2ljIi4KLStmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdpY19jbWQKLSsKLSsjIFRo ZSBhcmNoaXZlci4KLStBUj0kbHRfQVIKLStBUl9GTEFHUz0kbHRfQVJfRkxBR1MKLSsKLSsjIEEg c3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtLgotK1NUUklQPSRsdF9TVFJJUAotKwotKyMgQ29tbWFu ZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgotK1JBTkxJQj0kbHRfUkFO TElCCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xk X3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwotKwotKyMgQSBD IGNvbXBpbGVyLgotK0xUQ0M9JGx0X0NDCi0rCi0rIyBMVENDIGNvbXBpbGVyIGZsYWdzLgotK0xU Q0ZMQUdTPSRsdF9DRkxBR1MKLSsKLSsjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQgcHJvZHVj ZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMuCi0rZ2xvYmFsX3N5bWJvbF9w aXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCi0rCi0rIyBUcmFuc2Zvcm0gdGhl IG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgotK2dsb2JhbF9zeW1ib2xf dG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCi0rCi0rIyBUcmFu c2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIuCi0rZ2xvYmFs X3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y19uYW1lX2FkZHJlc3MKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBu YW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkLgotK2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeAotKwotKyMgVGhlIG5hbWUgb2YgdGhlIGRp cmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgotK29iamRpcj0k b2JqZGlyCi0rCi0rIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgot K1NIRUxMPSRsdF9TSEVMTAotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50 ZXJwcmV0IGJhY2tzbGFzaGVzLgotK0VDSE89JGx0X0VDSE8KLSsKLSsjIFVzZWQgdG8gZXhhbWlu ZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgd2l0aCAiZmlsZSIuCi0rTUFH SUNfQ01EPSRNQUdJQ19DTUQKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNv bXBpbGF0aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIFRvb2wgdG8gbWFu aXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9TIFguCi0r RFNZTVVUSUw9JGx0X0RTWU1VVElMCi0rCi0rIyBUb29sIHRvIGNoYW5nZSBnbG9iYWwgdG8gbG9j YWwgc3ltYm9scyBvbiBNYWMgT1MgWC4KLStOTUVESVQ9JGx0X05NRURJVAotKwotKyMgVG9vbCB0 byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBvbiBNYWMgT1MgWC4KLStMSVBP PSRsdF9MSVBPCi0rCi0rIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIE1hY2gtTyBiaW5hcmll cyBvbiBNYWMgT1MgWC4KLStPVE9PTD0kbHRfT1RPT0wKLSsKLSsjIGxkZC9yZWFkZWxmIGxpa2Ug dG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWCAxMC40LgotK09UT09M NjQ9JGx0X09UT09MNjQKLSsKLSsjIE9sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkgImEiKS4K LStsaWJleHQ9JGxpYmV4dAotKwotKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAi LnNvIikuCi0rc2hyZXh0X2NtZHM9JGx0X3NocmV4dF9jbWRzCi0rCi0rIyBUaGUgY29tbWFuZHMg dG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBhcmNoaXZl LgotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwotKwotKyMg VmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVy IHNjcmlwdHMgYW5kCi0rIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUuCi0rdmFyaWFibGVzX3NhdmVk X2Zvcl9yZWxpbms9JGx0X3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rCi0rCi0rIyBEbyB3ZSBu ZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/Ci0rbmVlZF9saWJfcHJlZml4PSRuZWVk X2xpYl9wcmVmaXgKLSsKLSsjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/Ci0r bmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KLSsKLSsjIExpYnJhcnkgdmVyc2lvbmluZyB0eXBl LgotK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCi0rCi0rIyBTaGFyZWQgbGlicmFyeSBydW50 aW1lIHBhdGggdmFyaWFibGUuCi0rcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFyCi0rCi0rIyBTaGFy ZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgotK3NobGlicGF0aF92YXI9JHNobGlicGF0aF92YXIK LSsKLSsjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFy eSBzZWFyY2ggcGF0aD8KLStzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aAotKwotKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXguCi0r bGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKLSsKLSsjIExpc3Qgb2YgYXJjaGl2ZSBuYW1l cy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCi0rIyBU aGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGggLWxOQU1F Ci0rbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25hbWVzX3NwZWMKLSsKLSsjIFRoZSBj b2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1l LgotK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYwotKwotKyMgQ29tbWFuZCB0byB1c2UgYWZ0 ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCi0rcG9zdGluc3RhbGxfY21kcz0k bHRfcG9zdGluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxs YXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStwb3N0dW5pbnN0YWxsX2NtZHM9JGx0X3Bvc3R1 bmluc3RhbGxfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxp YnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgotK2ZpbmlzaF9jbWRzPSRsdF9maW5p c2hfY21kcwotKwotKyMgQXMgImZpbmlzaF9jbWRzIiwgZXhjZXB0IGEgc2luZ2xlIHNjcmlwdCBm cmFnbWVudCB0byBiZSBldmFsZWQgYnV0Ci0rIyBub3Qgc2hvd24uCi0rZmluaXNoX2V2YWw9JGx0 X2ZpbmlzaF9ldmFsCi0rCi0rIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBh dGhzIGludG8gbGlicmFyaWVzLgotK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVfaW50b19s aWJzCi0rCi0rIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMu Ci0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMK LSsKLSsjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgotK3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYwotKwot KyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zdXBwb3J0PSRlbmFibGVf ZGxvcGVuCi0rCi0rIyBXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0r ZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2VsZgotKwotKyMgV2hldGhlciBkbG9wZW4gb2Yg c3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgotK2Rsb3Blbl9zZWxmX3N0 YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYwotKwotKyMgQ29tbWFuZHMgdG8gc3RyaXAg bGlicmFyaWVzLgotK29sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGliCi0rc3RyaXBsaWI9JGx0 X3N0cmlwbGliCi0rCi0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgot K0xEPSRsdF9MRAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJj aGl2ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCi0rCi0rIyBBIGxh bmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcgotKwotKyMgSXMgdGhl IGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQwotKwotKyMgQ29tcGls ZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KLStub19idWlsdGluX2ZsYWc9 JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCi0rCi0rIyBIb3cgdG8gcGFzcyBh IGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBp bGVyX3dsCi0rCi0rIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJy YXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljCi0rCi0rIyBD b21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2Zs YWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVs dGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9s dF9jdl9wcm9nX2NvbXBpbGVyX2NfbwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBm b3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFy Y2hpdmVfY21kc19uZWVkX2xjCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFy ZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgotK2FsbG93X2xpYnRvb2xfbGli c193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1l cwotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KLStleHBv cnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYwotKwotKyMg Q29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFy Y2hpdmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYwotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9i amVjdHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVk c19vYmplY3QKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVk IGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJv bV9uZXdfY21kcwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRv IGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcwotKwotKyMgQ29tbWFu ZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJj aGl2ZV9jbWRzCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kcwot KwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJl bnQgZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJjaGl2ZS4KLSttb2R1bGVfY21kcz0kbHRf bW9kdWxlX2NtZHMKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kcwot KwotKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90LgotK3dpdGhf Z251X2xkPSRsdF93aXRoX2dudV9sZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGli cmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZp bmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rCi0rIyBGbGFnIHRoYXQgZW5mb3Jj ZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVm aW5lZF9mbGFnCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkg ZHVyaW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMg bm90IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYwotKwotKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFy ZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQotKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11 c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQKLSsKLSsjIFdo ZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJn dW1lbnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVk X2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5n IGJpbmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdAotKwotKyMgU2V0IHRv ICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcg aGFyZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3Vs dGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUg dG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCi0rIyBsaWJyYXJ5 IGlzIHJlbG9jYXRlZC4KLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZQotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnku Ci0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAotKwotKyMgU2V0IHRvICJ5ZXMi IGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIK LSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0k aGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEg c2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSBs aWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtl ZAotKyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRp YwotKwotKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVu ZGVudCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0LgotK2luaGVyaXRfcnBhdGg9 JGluaGVyaXRfcnBhdGgKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFt IGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJz PSRsaW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwkc3JjZmls ZSBmb3IgdGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNmaWxlX3Bh dGgKLSsKLSsjIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4K LSthbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9scwotKwotKyMgVGhl IGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KLStleHBvcnRfc3ltYm9sc19jbWRz PSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCi0rCi0rIyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBi ZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgotK2V4Y2x1ZGVfZXhwc3ltcz0kbHRf ZXhjbHVkZV9leHBzeW1zCi0rCi0rIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0 ZWQuCi0raW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXMKLSsKLSsjIENvbW1hbmRz IG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMpIHdpdGgg dGVtcGxhdGVzLgotK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzCi0rCi0rIyBTcGVjaWZ5 IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCi0rZmlsZV9saXN0X3NwZWM9JGx0X2Zp bGVfbGlzdF9zcGVjCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRo IGludG8gYW4gZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbgot KwotKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVh dGluZyBhIHNoYXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29t cGlsZXJfbGliX3NlYXJjaF9kaXJzCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3Jl IGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsjIGNyZWF0ZSBhIHNoYXJl ZCBsaWJyYXJ5LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cwotK3Bvc3RkZXBf b2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCi0rcHJlZGVwcz0kbHRfcHJlZGVwcwotK3Bvc3Rk ZXBzPSRsdF9wb3N0ZGVwcwotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRl cm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hhcmVkIGxpYnJhcnku Ci0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGgK LSsKLSsjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKLSsKLStfTFRfRU9GCi0rCi0rICBjYXNlICRo b3N0X29zIGluCi0rICBhaXgzKikKLSsgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgot KyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dy YW0uICBGb3Igc29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52 aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBz bW9rZS4KLStpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsg IENPTExFQ1RfTkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwotK2ZpCi0rX0xUX0VPRgot KyAgICA7OwotKyAgZXNhYwotKwotKwotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgot KwotKwotKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQ UCBnZXRzIGNvbmZ1c2VkIGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5 IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwgaXQgcHJvcGVy bHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQotKyAgIyBpcyBy ZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KLSsg IHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS9xJyAiJGx0 bWFpbiIgPj4gIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEp Ci0rCi0rICBjYXNlICR4c2lfc2hlbGwgaW4KLSsgIHllcykKLSsgICAgY2F0IDw8IFxfTFRfRU9G ID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVw bGFjZW1lbnQKLSsjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBh ZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCi0rIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05E SVJfUkVQTEFDRU1FTlQuCi0rZnVuY19kaXJuYW1lICgpCi0rewotKyAgY2FzZSAkezF9IGluCi0r ICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0rICAgICogICkg ZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rIyBmdW5jX2Jh c2VuYW1lIGZpbGUKLStmdW5jX2Jhc2VuYW1lICgpCi0rewotKyAgZnVuY19iYXNlbmFtZV9yZXN1 bHQ9IiR7MSMjKi99IgotK30KLSsKLSsjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBh cHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0rIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1 bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgotKyMgY2FsbDoKLSsjICAgZGlybmFtZTog IENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAotKyMgICAgICAgICAg ICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAotKyMgICAg ICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotKyMgICAgICAgICAgICAgdmFsdWUgcmV0 dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotKyMgICBiYXNlbmFtZTogQ29tcHV0ZSBm aWxlbmFtZSBvZiBGSUxFLgotKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAiJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgotKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9u aXplZCB3aXRoIGZ1bmNfZGlybmFtZQotKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2ll bmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KLSsjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVh ZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KLStmdW5jX2Rpcm5hbWVfYW5kX2Jh c2VuYW1lICgpCi0rewotKyAgY2FzZSAkezF9IGluCi0rICAgICovKikgZnVuY19kaXJuYW1lX3Jl c3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0rICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsz fSIgOzsKLSsgIGVzYWMKLSsgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKLSt9Ci0r Ci0rIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKLSsjIHN0cmlwIFBSRUZJWCBh bmQgU1VGRklYIG9mZiBvZiBOQU1FLgotKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29u dGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCi0rIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBl cmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCi0rIyBkb3QgKGlu IHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgotK2Z1bmNfc3RyaXBuYW1lICgp Ci0rewotKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYg Ym90aCBYIGFuZCBZIGFyZQotKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBv bmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgotKyAgZnVuY19zdHJpcG5hbWVfcmVzdWx0 PSR7M30KLSsgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMi JHsxfSJ9Ci0rICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQl IiR7Mn0ifQotK30KLSsKLSsjIGZ1bmNfb3B0X3NwbGl0Ci0rZnVuY19vcHRfc3BsaXQgKCkKLSt7 Ci0rICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KLSsgIGZ1bmNfb3B0X3NwbGl0X2FyZz0k ezEjKj19Ci0rfQotKwotKyMgZnVuY19sbzJvIG9iamVjdAotK2Z1bmNfbG8ybyAoKQotK3sKLSsg IGNhc2UgJHsxfSBpbgotKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2Jq ZXh0fSA7OwotKyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKLSsgIGVzYWMKLSt9 Ci0rCi0rIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKLStmdW5jX3hmb3JtICgpCi0rewot KyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbwotK30KLSsKLSsjIGZ1bmNfYXJpdGggYXJp dGhtZXRpYy10ZXJtLi4uCi0rZnVuY19hcml0aCAoKQotK3sKLSsgIGZ1bmNfYXJpdGhfcmVzdWx0 PSQoKCAkKiApKQotK30KLSsKLSsjIGZ1bmNfbGVuIHN0cmluZwotKyMgU1RSSU5HIG1heSBub3Qg c3RhcnQgd2l0aCBhIGh5cGhlbi4KLStmdW5jX2xlbiAoKQotK3sKLSsgIGZ1bmNfbGVuX3Jlc3Vs dD0keyMxfQotK30KLSsKLStfTFRfRU9GCi0rICAgIDs7Ci0rICAqKSAjIEJvdXJuZSBjb21wYXRp YmxlIGZ1bmN0aW9ucy4KLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsj IGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSsjIENvbXB1dGUg dGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1 bHQsCi0rIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rZnVu Y19kaXJuYW1lICgpCi0rewotKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1 bWVudC4KLSsgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAi JGRpcm5hbWUiYAotKyAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJYJHsxfSI7 IHRoZW4KLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKLSsgIGVsc2UKLSsgICAgZnVu Y19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgotKyAgZmkKLSt9Ci0r Ci0rIyBmdW5jX2Jhc2VuYW1lIGZpbGUKLStmdW5jX2Jhc2VuYW1lICgpCi0rewotKyAgZnVuY19i YXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKLSt9 Ci0rCi0rCi0rIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKLSsjIHN0cmlwIFBS RUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgotKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBu b3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCi0rIyBjaGFyYWN0ZXJzLCBoYXNo ZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCi0rIyBk b3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgotKyMgZnVuY19zdHJp cF9zdWZmaXggcHJlZml4IG5hbWUKLStmdW5jX3N0cmlwbmFtZSAoKQotK3sKLSsgIGNhc2UgJHsy fSBpbgotKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKLSsg ICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1cJCUlImA7Owot KyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKLSsgICAgICAg ICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwkJSUiYDs7Ci0rICBlc2FjCi0r fQotKwotKyMgc2VkIHNjcmlwdHM6Ci0rbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgtW149XSpcKT0u Ki9cMS87cScKLStteV9zZWRfbG9uZ19hcmc9JzFzL14tW149XSo9Ly8nCi0rCi0rIyBmdW5jX29w dF9zcGxpdAotK2Z1bmNfb3B0X3NwbGl0ICgpCi0rewotKyAgZnVuY19vcHRfc3BsaXRfb3B0PWAk RUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19vcHQiYAotKyAgZnVuY19vcHRf c3BsaXRfYXJnPWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19hcmciYAot K30KLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICBmdW5jX2xv Mm9fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRsbzJvImAKLSt9Ci0rCi0rIyBm dW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKLStmdW5jX3hmb3JtICgpCi0rewotKyAgZnVuY194 Zm9ybV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAncy9cLlteLl0qJC8ubG8vJ2AK LSt9Ci0rCi0rIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgotK2Z1bmNfYXJpdGggKCkK LSt7Ci0rICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJEAiYAotK30KLSsKLSsjIGZ1bmNfbGVu IHN0cmluZwotKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KLStmdW5jX2xl biAoKQotK3sKLSsgIGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJDEiIDogIi4qIiAyPi9kZXYvbnVs bCB8fCBlY2hvICRtYXhfY21kX2xlbmAKLSt9Ci0rCi0rX0xUX0VPRgotK2VzYWMKLSsKLStjYXNl ICRsdF9zaGVsbF9hcHBlbmQgaW4KLSsgIHllcykKLSsgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIk Y2ZnZmlsZSIKLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZBTFVFIHRv IHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0rewotKyAg ZXZhbCAiJDErPVwkMiIKLSt9Ci0rX0xUX0VPRgotKyAgICA7OwotKyAgKikKLSsgICAgY2F0IDw8 IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotKyMg QXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNfYXBw ZW5kICgpCi0rewotKyAgZXZhbCAiJDE9XCQkMVwkMiIKLSt9Ci0rCi0rX0xUX0VPRgotKyAgICA7 OwotKyAgZXNhYwotKwotKwotKyAgc2VkIC1uICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1bmN0aW9u cyBpbnNlcnRlZCBoZXJlLywkcCcgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAotKyAgICB8fCAo cm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotKwotKyAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxl IiB8fAotKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBy bSAtZiAiJGNmZ2ZpbGUiKQotKyAgY2htb2QgK3ggIiRvZmlsZSIKLSsKLSsKLSsgICAgY2F0IDw8 X0xUX0VPRiA+PiAiJG9maWxlIgotKwotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzog Q1hYCi0rCi0rIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgotK0xEPSRsdF9M RF9DWFgKLSsKLSsjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmUu Ci0rb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19DWFgKLSsKLSsjIEEgbGFu Z3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCi0rQ0M9JGx0X2NvbXBpbGVyX0NYWAotKwotKyMgSXMg dGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQ19DWFgKLSsKLSsj IENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCi0rbm9fYnVpbHRp bl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgKLSsKLSsjIEhv dyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCi0rd2w9JGx0X2x0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCi0rIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZv ciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGls ZXJfcGljX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2lu Zy4KLStsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgKLSsK LSsjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9u cz8KLStjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWAotKwotKyMg V2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4K LStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWAotKwotKyMg V2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1lIGxpYnMg YXJlIHN0YXRpYy4KLSthbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXM9JGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYCi0rCi0rIyBDb21waWxlciBmbGFn IHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0k bHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byBn ZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgotK3dob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgKLSsKLSsjIFdo ZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5 LgotK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWAot KwotKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJjaGl2ZS4K LStvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRz X0NYWAotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsg aW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19j bWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgKLSsKLSsjIENvbW1hbmRz IHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KLSthcmNoaXZlX2NtZHM9JGx0X2FyY2hp dmVfY21kc19DWFgKLSthcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5bV9jbWRz X0NYWAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBk aWZmZXJlbnQgZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJjaGl2ZS4KLSttb2R1bGVfY21k cz0kbHRfbW9kdWxlX2NtZHNfQ1hYCi0rbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1bGVfZXhw c3ltX2NtZHNfQ1hYCi0rCi0rIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdOVSBsZCBv ciBub3QuCi0rd2l0aF9nbnVfbGQ9JGx0X3dpdGhfZ251X2xkX0NYWAotKwotKyMgRmxhZyB0aGF0 IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVp bHQuCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWAot KwotKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgotK25vX3VuZGVm aW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19DWFgKLSsKLSsjIEZsYWcgdG8gaGFyZGNv ZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KLSsjIFRoaXMgbXVzdCB3 b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QKLStoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWAotKwotKyMgSWYgbGQgaXMg dXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFy eQotKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRv ZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYCi0rCi0rIyBXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUg Ii1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgotK2hhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYCi0rCi0rIyBTZXQg dG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2lu ZyBoYXJkY29kZXMKLSsjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2Rl X2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5n IERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBE SVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGRl cGVuZGVuY3kgaXMKLSsjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdlIGJ5IHNl dHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCi0rIyBsaWJyYXJ5IGlzIHJlbG9jYXRlZC4K LStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV9DWFgK LSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcgbGlua2lu ZyBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2Rl X21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfQ1hYCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgdXNp bmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgotKyMgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KLStoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSRoYXJkY29k ZV9zaGxpYnBhdGhfdmFyX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hh cmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSBsaWJy YXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAot KyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpY19D WFgKLSsKLSsjIFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBvZiBkZXBl bmRlbnQgbGlicmFyaWVzCi0rIyB0byBydW50aW1lIHBhdGggbGlzdC4KLStpbmhlcml0X3JwYXRo PSRpbmhlcml0X3JwYXRoX0NYWAotKwotKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHBy b2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgotK2xpbmtfYWxsX2Rl cGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCi0rCi0rIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxl IFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgotK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9z cmNmaWxlX3BhdGhfQ1hYCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBh cmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJv bHNfQ1hYCi0rCi0rIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xzLgotK2V4 cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYCi0rCi0rIyBTeW1i b2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgot K2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX0NYWAotKwotKyMgU3ltYm9scyB0 aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVk ZV9leHBzeW1zX0NYWAotKwotKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dy YW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMuCi0rcHJlbGlua19jbWRzPSRs dF9wcmVsaW5rX2NtZHNfQ1hYCi0rCi0rIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5w dXQgZmlsZXMuCi0rZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9zcGVjX0NYWAotKwotKyMg SG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGUu Ci0raGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fQ1hYCi0rCi0rIyBUaGUgZGlyZWN0 b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hhcmVkIGxp YnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJfc2VhcmNo X2RpcnNfQ1hYCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0 aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsjIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5Lgot K3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19DWFgKLStwb3N0ZGVwX29iamVjdHM9 JGx0X3Bvc3RkZXBfb2JqZWN0c19DWFgKLStwcmVkZXBzPSRsdF9wcmVkZXBzX0NYWAotK3Bvc3Rk ZXBzPSRsdF9wb3N0ZGVwc19DWFgKLSsKLSsjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoIHVzZWQg aW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCi0rIyBhIHNoYXJlZCBsaWJy YXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3NlYXJjaF9w YXRoX0NYWAotKwotKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IENYWAotK19MVF9FT0YK LSsKLSsgOzsKLSsKLSsgIGVzYWMKLStkb25lICMgZm9yIGFjX3RhZwotKwotKwotK3sgKGV4aXQg MCk7IGV4aXQgMDsgfQotK19BQ0VPRgotK2NobW9kICt4ICRDT05GSUdfU1RBVFVTCi0rYWNfY2xl YW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKLSsKLSt0ZXN0ICRhY193cml0ZV9mYWlsID0g MCB8fAotKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHdyaXRlIGZhaWx1 cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjI7fQotKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQotKwotKwotKyMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8gY29u ZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4KLSsjIGNvbmZpZy5zdGF0dXMg ZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KLSsjIFVu Zm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtl cHQgb3BlbgotKyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3RhdHVzIHdvbid0IGJlIGFibGUg dG8gd3JpdGUgdG8gaXQ7IGl0cwotKyMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQuICBTbyB3 ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCi0rIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZp Zy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAotKyMgYXBwZW5kZWQg dG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sgdG8gY29uZmlndXJlLCB3ZQot KyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCi0raWYgdGVzdCAiJG5vX2Ny ZWF0ZSIgIT0geWVzOyB0aGVuCi0rICBhY19jc19zdWNjZXNzPToKLSsgIGFjX2NvbmZpZ19zdGF0 dXNfYXJncz0KLSsgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCi0rICAgIGFjX2NvbmZpZ19zdGF0 dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0IgotKyAgZXhlYyA1Pi9kZXYv bnVsbAotKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwg YWNfY3Nfc3VjY2Vzcz1mYWxzZQotKyAgZXhlYyA1Pj5jb25maWcubG9nCi0rICAjIFVzZSB8fCwg bm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAot KyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1 Y3Rpb24uCi0rICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KLStmaQot K2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyIgJiYgdGVzdCAiJGVuYWJsZV9vcHRp b25fY2hlY2tpbmciICE9IG5vOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191 bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KLStmaQotKwotKwotK2VjaG8gIgotKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkgY29uZmlndXJhdGlvbjoKLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLStEaXJlY3RvcmllczoKLSsgIC0gcHJlZml4IC4uLi4u Li4uLi4uLi4uLiA6ICR7cHJlZml4fQotKyAgLSBleGVjX3ByZWZpeCAuLi4uLi4uLi4uIDogJHtl eGVjX3ByZWZpeH0KLSsgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4uLiA6ICR7aW5jbHVkZWRpcn0K LSsgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGlyfQotKyAgLSBkb2NkaXIgLi4u Li4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9Ci0rICAtIG1hbmRpciAuLi4uLi4uLi4uLi4uLi4gOiAk e21hbmRpcn0KLSsgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6ICR7aW5mb2Rpcn0KLSsKLStT d2l0Y2hlczoKLSsgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2V4Y2VwdGlv bnN9Ci0rICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9pbmZvX2RvY30KLSsg IC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0bWxfZG9jfQotKyAgLSBzaGFy ZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQotKyAgLSBzdGF0aWMgLi4uLi4u Li4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQotKwotK0RvY3VtZW50YXRpb24gdG9vbHM6Ci0r ICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9fb2t9Ci0rICAtIGRveHlnZW4g Li4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9Ci0rICAtIGxhdGV4IC4uLi4uLi4uLi4uLi4u Li4gOiAke2xhdGV4X29rfQotKyAgLSBkdmlwcyAuLi4uLi4uLi4uLi4uLi4uIDogJHtkdmlwc19v a30KLSsgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nfb2t9Ci0rCi0rVGVzdGluZyB0 b29sczoKLSsgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZGlmZl9va30KLSsgIC0gc2Vk IC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQotKwotK0NvbXBpbGVyL2xpbmtlciBmbGFn cy9saWJzL2RlZnM6Ci0rICAtIENYWCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke0NYWH0KLSsgIC0g Q1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9Ci0rICAtIENQUEZMQUdTIC4uLi4u Li4uLi4uLi4gOiAke0NQUEZMQUdTfQotKyAgLSBMREZMQUdTIC4uLi4uLi4uLi4uLi4uIDogJHtM REZMQUdTfQotKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtMSUJTfQotKwotK0J1cnJp ZWQgaGVhZGVyIGZpbGVzOgotKyAgLSBTT0NJX0hFQURFUlNfQlVSSUVEIC4uLi4uLi4gOiAke2Vu YWJsZV9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIE1ZU1FMX0hFQURFUlNfQlVSSUVEIC4uLi4uLiA6 ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30KLSsgIC0gUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rCi0rRXh0 ZXJuYWwgbGlicmFyaWVzOgotKyAgLSBCb29zdCAuLi4uLi4uLi4uLi4uLi4uIDoKLSsgICAgbyBC T09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0KLSsgICAgbyBCT09TVF9DRkxB R1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQotKyAgICBvIEJPT1NUX0xJQlMgLi4uLi4uLi4u IDogJHtCT09TVF9MSUJTfQotKyAgICBvIEJPT1NUX0RUX0xJQiAuLi4uLi4uIDogJHtCT09TVF9E QVRFX1RJTUVfTElCfQotKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4uLi4uIDogJHtCT09TVF9QUk9H UkFNX09QVElPTlNfTElCfQotKwotKyAgLSBNeVNRTCBzdXBwb3J0IC4uLi4uLi4uIDogJHtlbmFi bGVfYmFja2VuZF9teXNxbH0KLSsgICAgbyBNWVNRTF9WRVJTSU9OIC4uLi4uLiA6ICR7TVlTUUxf VkVSU0lPTn0KLSsgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6ICR7TVlTUUxfQ0ZMQUdTfQot KyAgICBvIE1ZU1FMX0xERkxBR1MgLi4uLi4uIDogJHtNWVNRTF9MREZMQUdTfQotKwotKyAgLSBQ b3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsfQotKyAg ICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FMX1ZFUlNJT059Ci0rICAgIG8g UE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZMQUdTfQotKyAgICBvIFBPU1RH UkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9Ci0rCi0rICAtIE9yYWNsZSBz dXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVf VkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxB R1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAu Li4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQotKwotKyAgLSBDUFBVbml0IC4uLi4uLi4uLi4u Li4uIDoKLSsgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9OfQot KyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KLSsgICAgbyBD UFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQotIAotLWVjaG8gJycKLS1jZCBi dWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgcGFyc2UtcGFyYW1ldGVycy50Y2wKLS0KLS1lY2hv ICcnCi0tZWNobyAnQ29uZmlndXJlIGRvbmUuJwotLWVjaG8gJ1llcywgaXQgd2FzIHNob3J0LicK LS1lY2hvICcnCi0tZWNobyAnWW91IGNhbiBub3cgcnVuIG1ha2UuJwotKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5kIGlu c3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZ3VyZS5hYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZS5hYwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWd1cmUuYWMJMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsNDAwIEBACi0rIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1 Y2UgYSBjb25maWd1cmUgc2NyaXB0Ci0rIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19QUkVSRVEoMi41OSkKLStB Q19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFrIDxtc29i Y3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkKLStBQ19JTklUKFtTT0NJXSxbMy4wLjBdLFtt c29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2NpXSkKLStBQ19DT05GSUdfSEVBREVS KFtzb2NpL2NvbmZpZy5oXSkKLStBQ19DT05GSUdfU1JDRElSKFtzb2NpL2NvcmUvZXJyb3IuY3Bw XSkKLStBQ19DT05GSUdfQVVYX0RJUihbY29uZmlnXSkKLStBTV9JTklUX0FVVE9NQUtFCi0rQU1f UEFUSF9DUFBVTklUKDEuMTApCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVfQ1BQVU5JVF0sIFt0ZXN0 ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCi0rCi0rIyBSUE0gcmVsZWFzZSBudW1iZXIKLStSUE1f UkVMRUFTRT0iMTMiCi0rQUNfU1VCU1QoUlBNX1JFTEVBU0UpCi0rCi0rIyBTaGFyZWQgbGlicmFy eSB2ZXJzaW9uaW5nCi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6MDowIgotKyMgICAgICAg ICAgICAgICAgICAgICAgICB8IHwgfAotKyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0t LSsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAgICAgICAg Y3VycmVudDpyZXZpc2lvbjphZ2UKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8 Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVy ZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAg ICAgIHNldCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIAotKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAotKyMgICAgICAgICAgICAg ICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsKLSsj ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlzIGlu Y3JlbWVudGVkCi0rIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMg aGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCi0rIyAgICAgICAgICAgICAgICAgICAgb3IgY2hhbmdl ZAotK0FDX1NVQlNUKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotKyMgVXBsb2FkIGNvbW1h bmQgZm9yIFNvdXJjZUZvcmdlCi0rVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9hZC5z b3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgotK0FDX1NVQlNUKFVQTE9BRF9DT01NQU5EKQotKwot KyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBp biBXaW5kb3dzCi0rQUNfQ0FOT05JQ0FMX0hPU1QKLStjYXNlICRob3N0IGluCi0rICAqLSotbXNk b3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0qLWN5Z3dpbiogfCAqLSotd2luZG93 cyopIAotKyAgICBBQ19ESVNBQkxFX1NIQVJFRAotKyAgICBBQ19FTkFCTEVfU1RBVElDCi0rICAg IDs7Ci0rICAqKSAgCi0rICAgIEFDX0VOQUJMRV9TSEFSRUQKLSsgICAgQUNfRElTQUJMRV9TVEFU SUMKLSsgICAgOzsKLStlc2FjCi0rCi0rIyBDaGVja3MgZm9yIHByb2dyYW1zCi0rc2F2ZV9DWFhG TEFHUz0iJENYWEZMQUdTIgotK0FDX1BST0dfQ1hYCi0rQUNfUFJPR19DWFhDUFAKLStDWFhGTEFH Uz0iJHNhdmVfQ1hYRkxBR1MiCi0rQUNfUFJPR19JTlNUQUxMCi0rQUNfUFJPR19MSUJUT09MCi0r QUNfUFJPR19MTl9TCi0rQUNfUFJPR19NQUtFX1NFVAotKwotKyMgU2V0IGRlZmF1bHQgbGFuZ3Vh Z2UgdG8gQysrCi0rQUNfTEFORyhbQysrXSkKLSsKLSsjIENoZWNrIGZvciBleGNlcHRpb25zIHN3 aXRjaAotK0FDX0FSR19FTkFCTEUoZXhjZXB0aW9ucywKLSsgICAgICAgICAgICAgIFtBU19IRUxQ X1NUUklORyhbLS1lbmFibGUtZXhjZXB0aW9uc10sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW2VuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbV0pXSwKLSsgICAgICAg ICAgICAgIFtBQ19ERUZJTkUoW1NPQ0lfRVhDRVBUSU9OU10sIFsxXSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgW0RlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nXSldKQot K3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15 ZXMKLSt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0geG5vICYmIGVuYWJsZV9leGNl cHRpb25zPXllcwotKwotKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMKLStBQ19BUkdfRU5BQkxFKGlu Zm8tZG9jLCAKLSsgICAgICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWluZm8t ZG9jXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZG8gbm90IGdlbmVyYXRlIElu Zm8gZG9jdW1lbnRhdGlvbl0pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vICYm IGVuYWJsZV9pbmZvX2RvYz15ZXMKLSsKLSsKLSsjIENoZWNrIGZvciBodG1sLWRvYyBzd2l0Y2gK LStBQ19BUkdfRU5BQkxFKGh0bWwtZG9jLCAKLSsgICAgICAgICAgICAgIFtBU19IRUxQX1NUUklO RyhbLS1kaXNhYmxlLWh0bWwtZG9jXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb ZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbl0pXSkKLSt0ZXN0ICJ4JGVuYWJsZV9o dG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15ZXMKLSsKLSsKLSsjIFByb3ZpZGUg LS13aXRoLWRvY2RpcgotK0FDX0FSR19XSVRIKGRvY2RpciwKLSsgICAgICAgICAgICBbQVNfSEVM UF9TVFJJTkcoWy0td2l0aC1kb2NkaXI9RElSXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgW3NldCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVJdKV0sCi0rICAgICAgICAgICAg W0RPQ19ESVI9IiR3aXRodmFsIl0sCi0rICAgICAgICAgICAgW0RPQ19ESVI9IiJdKQotK2lmIHRl c3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgotKyAgZG9jZGlyPSIkRE9DX0RJUiIKLStlbHNlCi0r ICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgotK2ZpCi0rQUNfU1VC U1QoZG9jZGlyKQotKwotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3Ig U09DSSBpdHNlbGYpCi0rQUNfQVJHX0VOQUJMRShidXJyaWVkLWhlYWRlcnMsIAotKyBBU19IRUxQ X1NUUklORyhbLS1lbmFibGUtYnVycmllZC1oZWFkZXJzXSwKLSsJCVtpbmNsdWRlIGhlYWRlciBm aWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAotKyBbIGlmIHRlc3QgIiRlbmFibGV2 YWwiID0gbm87IHRoZW4KLSsgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxz ZQotKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rICAgZmkgXSwKLSsgWyBlbmFi bGVfYnVycmllZF9oZWFkZXJzPW5vIF0pCi0rIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBhY2th Z2VzIGdlbmVyYXRpb24KLStlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcwotK0FNX0NPTkRJVElP TkFMKFtTT0NJX0hFQURFUlNfQlVSSUVEXSwgW3Rlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVy cyIgPSB4eWVzXSkKLStBQ19TVUJTVChTT0NJX0hFQURFUlNfQlVSSUVEKQotK2lmIHRlc3QgIngk ZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09D SV9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsjIENoZWNrIGZvciBidXJyaWVk IGhlYWRlciBmaWxlcyAoZm9yIE15U1FMIGNsaWVudCkKLStBQ19BUkdfRU5BQkxFKG15c3FsLWJ1 cnJpZWQtaGVhZGVycywgCi0rIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1teXNxbC1idXJyaWVk LWhlYWRlcnNdLAotKwkJW2luY2x1ZGUgTXlTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rv cnkgc3RydWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKwll bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxzZQotKwllbmFibGVfbXlzcWxf YnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpIF0sCi0rIFsgZW5hYmxlX215c3FsX2J1cnJpZWRf aGVhZGVycz1ubyBdKQotKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0 aW9uCi0rZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLStBTV9DT05ESVRJT05BTChb U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF0sCi0rICAgICAgICAgICAgICAgW3Rlc3QgIngkZW5h YmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKLStBQ19TVUJTVChTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEKQotK2lmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVy cyIgPSB4eWVzOyB0aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJTX0JVUklF RCAkQ1BQRkxBR1MiCi0rZmkKLSsKLSsjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAo Zm9yIFBvc3RHcmVTUUwgY2xpZW50KQotK0FDX0FSR19FTkFCTEUocG9zdGdyZXNxbC1idXJyaWVk LWhlYWRlcnMsIAotKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcG9zdGdyZXNxbC1idXJyaWVk LWhlYWRlcnNdLAotKwkJW2luY2x1ZGUgUG9zdEdyZVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRp cmVjdG9yeSBzdHJ1Y3R1cmVdKSwKLSsgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVu Ci0rCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubwotKyAgIGVsc2UKLSsJZW5h YmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcwotKyAgIGZpIF0sCi0rIFsgZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vIF0pCi0rIyBUZW1wb3JhcnksIGZvciB0aGUg UlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRl cnM9eWVzCi0rQU1fQ09ORElUSU9OQUwoW1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF0s Ci0rICAgICAgICAgICAgICAgW3Rlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFk ZXJzIiA9IHh5ZXNdKQotK0FDX1NVQlNUKFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCkK LStpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0 aGVuCi0rICAgQ1BQRkxBR1M9Ii1EU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEICRDUFBG TEFHUyIKLStmaQotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEJvb3N0IChTVEwgRXh0ZW5zaW9uczogaHR0cDovL3d3 dy5ib29zdC5vcmcpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK0FYX0JPT1NUKFsxLjMzXSkKLStBQ19TVUJTVChCT09TVF9WRVJT SU9OKQotK0FDX1NVQlNUKEJPT1NUX0NGTEFHUykKLStBQ19TVUJTVChCT09TVF9MSUJTKQotK0FD X1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCi0rQUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikKLSsKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBNeVNRTCBiYWNr ZW5kIChDIGNsaWVudCBBUEkpOiBodHRwOi8vd3d3Lm15c3FsLm9yZwotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LStBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLW15c3FsXSwKLSsgICAgQUNfSEVMUF9TVFJJTkcoWy0t ZW5hYmxlLWJhY2tlbmQtbXlzcWxdLAotKyAgICAgICAgW2J1aWxkLWluIE15U1FMIGJhY2tlbmQg c3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdCi0rICAgICksCi0rICAgIFsgaWYgdGVzdCAiJGVu YWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KLSsg ICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMKLSsgICAgICBmaSBdLAotKyAg ICBbIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vIF0KLSspCi0rCi0raWYgdGVzdCAieCRlbmFibGVf YmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBNWVNRTF9ESVJTPSJteXNxbCIKLSsg ICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCi0rICAgQVhfTElCX01ZU1FMKFskTVlTUUxfUkVR X1ZFUlNJT05dKQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoW0hBVkVfTVlTUUxdLCBbdGVzdCAieCRl bmFibGVfYmFja2VuZF9teXNxbCIgPSB4eWVzXSkKLSsjTVlTUUxfRElSUz0ibXlzcWwiCi0rCi0r QUNfU1VCU1QoW01ZU1FMX0RJUlNdKQotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBm b3IgT3JhY2xlIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19BUkdfRU5BQkxFKFtiYWNrZW5k LW9yYWNsZV0sCi0rICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLW9yYWNsZV0s Ci0rCQkgICBbYnVpbGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6 PkBdKSwKLSsgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rICAgICAgCSBl bmFibGVfYmFja2VuZF9vcmFjbGU9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9v cmFjbGU9eWVzCi0rICAgICAgZmkgXSwKLSsgICAgWyBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8g XQotKykKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSAieHllcyI7IHRo ZW4KLSsgICBPUkFDTEVfRElSUz0ib3JhY2xlIgotKyAgIE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT049 IjkuMCIKLSsgICBBWF9MSUJfT1JBQ0xFX09DSSgkT1JBQ0xFX09DSV9SRVFfVkVSU0lPTikKLStm aQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX09SQUNMRV0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5k X29yYWNsZSIgPSB4eWVzXSkKLSsjT1JBQ0xFX0RJUlM9Im9yYWNsZSIKLSsKLStBQ19TVUJTVChb T1JBQ0xFX0RJUlNdKQotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgUG9zdGdyZVNR TCBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfQVJHX0VOQUJMRShbYmFja2VuZC1wb3N0Z3Jl c3FsXSwKLSsgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbF0s Ci0rICAgICAgICBbYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1 bHQ9bm9AOj5AXQotKyAgICApLAotKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRo ZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsgICAgICBlbHNlCi0r CSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcwotKyAgICAgIGZpIF0sCi0rICAgIFsgZW5h YmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubyBdCi0rKQotKwotK2lmIHRlc3QgIngkZW5hYmxlX2Jh Y2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBQT1NUR1JFU1FMX0RJUlM9InBv c3RncmVzcWwiCi0rICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQiCi0rICAgQVhfTElC X1BPU1RHUkVTUUwoJFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04pCi0rZmkKLStBTV9DT05ESVRJT05B TChbSEFWRV9QT1NUR1JFU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIg PSB4eWVzXSkKLSsjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgotKwotK0FDX1NVQlNUKFtQ T1NUR1JFU1FMX0RJUlNdKQotKwotKwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBmb3IgZG9j dW1lbnRhdGlvbgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1 aWxkIHRvb2xzCi0rI0FDX0NIRUNLX1BST0coW3RleGluZm9fb2tdLCBbdGV4aW5mb10sIFt5ZXNd LCBbbm9dKQotKyNpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vOyB0aGVuCi0rIyAg dGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYmIGVuYWJsZV9pbmZvX2RvYz1ubwotKyMgIEFD X1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCi0rI2ZpCi0rQU1fQ09ORElUSU9OQUwoW0lO Rk9fRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXNdKQotKwotKyMgQ2hlY2tz IGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCi0rQUNfQ0hFQ0tfUFJPRyhbZG94eWdlbl9v a10sIFtkb3h5Z2VuXSwgW3llc10sIFtub10pCi0rQUNfQ0hFQ0tfUFJPRyhbbGF0ZXhfb2tdLCBb bGF0ZXhdLCBbeWVzXSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtkdmlwc19va10sIFtkdmlwc10s IFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW2dzX29rXSwgW2dzXSwgW3llc10sIFtub10p Ci0raWYgdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubzsgdGhlbgotKyAgdGVzdCAieCRk b3h5Z2VuX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRsYXRl eF9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkZHZpcHNfb2si ICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGdzX29rIiAhPSB4eWVz ICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgQUNfUEFUSF9QUk9HKFtQRVJMXSwgW3BlcmxdLCBb XSkKLStmaQotK0FNX0NPTkRJVElPTkFMKFtIVE1MX0RPQ10sIFt0ZXN0ICJ4JGVuYWJsZV9odG1s X2RvYyIgPSB4eWVzXSkKLSsKLSsKLSsjIENoZWNrIGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3Ig dGVzdHMKLStBQ19DSEVDS19QUk9HKFtkaWZmX29rXSwgW2RpZmZdLCBbeWVzXSwgW25vXSkKLStB Q19DSEVDS19QUk9HKFtzZWRfb2tdLCBbc2VkXSwgW3llc10sIFtub10pCi0rZW5hYmxlX3Rlc3Rz PXllcwotK3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KLSt0ZXN0 ICJ4JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KLStBTV9DT05ESVRJT05BTChb UlVOX1RFU1RTXSwgW3Rlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5ZXNdKQotKwotKwotKyMgQ2hl Y2tzIGZvciBoZWFkZXIgZmlsZXMKLStBQ19IRUFERVJfU1REQwotK0FDX0hFQURFUl9USU1FCi0r QUNfQ0hFQ0tfSEVBREVSUyhbY21hdGggXAotKyAgZGVxdWUgXAotKyAgZnN0cmVhbSBcCi0rICBp b21hbmlwIFwKLSsgIGlvc3RyZWFtIFwKLSsgIHNzdHJlYW0gXAotKyAgbGltaXRzIFwKLSsgIGxp c3QgXAotKyAgc2V0IFwKLSsgIHZlY3RvciBcCi0rICBtYXAgXAotKyAgcXVldWUgXAotKyAgc3Rk ZXhjZXB0IFwKLSsgIHN0cmluZ10pCi0rCi0rCi0rIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcwot K0FDX0NPTkZJR19GSUxFUygKLSsJTWFrZWZpbGUKLSsJc29jaS1jb25maWcKLSsJc29jaS5wYwot Kwlzb2NpLnNwZWMKLSsJc29jaS9NYWtlZmlsZQotKwlzb2NpL2NvcmUvTWFrZWZpbGUKLSsJc29j aS9jb3JlL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9NYWtlZmlsZQotKwlzb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmls ZQotKwlzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUK LSsJc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQotKwltYW4vTWFrZWZpbGUKLSsg ICAgICAgIGRvYy9NYWtlZmlsZQotKyAgICAgICAgZG9jL2JhY2tlbmRzL01ha2VmaWxlCi0rCWJ1 aWxkL01ha2VmaWxlCi0rCWJ1aWxkL3VuaXgvTWFrZWZpbGUKLSsJYnVpbGQvbXN2YzgwL01ha2Vm aWxlCi0rCWJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKLSsJYnVpbGQvbXN2YzgwL2xpYi9NYWtl ZmlsZSkKLSsKLStBQ19PVVRQVVQKLSsKLStlY2hvICIKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246Ci0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rCi0rRGlyZWN0b3JpZXM6Ci0rICAtIHByZWZpeCAuLi4uLi4uLi4uLi4uLi4g OiAke3ByZWZpeH0KLSsgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhlY19wcmVmaXh9 Ci0rICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9Ci0rICAtIGxpYmRp ciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KLSsgIC0gZG9jZGlyIC4uLi4uLi4uLi4uLi4u LiA6ICR7ZG9jZGlyfQotKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHttYW5kaXJ9Ci0r ICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9Ci0rCi0rU3dpdGNoZXM6Ci0r ICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25zfQotKyAgLSBp bmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9Ci0rICAtIGh0bWwtZG9j IC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KLSsgIC0gc2hhcmVkIC4uLi4uLi4u Li4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KLSsgIC0gc3RhdGljIC4uLi4uLi4uLi4uLi4uLiA6 ICR7ZW5hYmxlX3N0YXRpY30KLSsKLStEb2N1bWVudGF0aW9uIHRvb2xzOgotKyAgLSB0ZXhpbmZv IC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQotKyAgLSBkb3h5Z2VuIC4uLi4uLi4uLi4u Li4uIDogJHtkb3h5Z2VuX29rfQotKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4uIDogJHtsYXRl eF9va30KLSsgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9Ci0rICAtIGdo b3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQotKwotK1Rlc3RpbmcgdG9vbHM6Ci0rICAt IGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9Ci0rICAtIHNlZCAuLi4uLi4uLi4u Li4uLi4uLi4gOiAke3NlZF9va30KLSsKLStDb21waWxlci9saW5rZXIgZmxhZ3MvbGlicy9kZWZz OgotKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9Ci0rICAtIENYWEZMQUdTIC4u Li4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQotKyAgLSBDUFBGTEFHUyAuLi4uLi4uLi4uLi4uIDog JHtDUFBGTEFHU30KLSsgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERGTEFHU30KLSsg IC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KLSsKLStCdXJyaWVkIGhlYWRlciBm aWxlczoKLSsgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFibGVfYnVycmll ZF9oZWFkZXJzfQotKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAke2VuYWJsZV9t eXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rICAtIFBPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgLiA6 ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQotKwotK0V4dGVybmFsIGxpYnJh cmllczoKLSsgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQk9PU1RfVkVSU0lP TiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059Ci0rICAgIG8gQk9PU1RfQ0ZMQUdTIC4uLi4uLi4g OiAke0JPT1NUX0NGTEFHU30KLSsgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6ICR7Qk9PU1Rf TElCU30KLSsgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFURV9USU1FX0xJ Qn0KLSsgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQn0KLSsKLSsgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRf bXlzcWx9Ci0rICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZFUlNJT059Ci0r ICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KLSsgICAgbyBNWVNR TF9MREZMQUdTIC4uLi4uLiA6ICR7TVlTUUxfTERGTEFHU30KLSsKLSsgIC0gUG9zdEdyZVNRTCBz dXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KLSsgICAgbyBQT1NUR1JF U1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQotKyAgICBvIFBPU1RHUkVTUUxf Q0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KLSsgICAgbyBQT1NUR1JFU1FMX0xERkxB R1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfSAKLSsKLSsgIC0gT3JhY2xlIHN1cHBvcnQgLi4u Li4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlfQotKyAgICBvIE9SQUNMRV9WRVJTSU9OIC4u Li4uIDogJHtPUkFDTEVfT0NJX1ZFUlNJT059Ci0rICAgIG8gT1JBQ0xFX0NGTEFHUyAuLi4uLi4g OiAke09SQUNMRV9PQ0lfQ0ZMQUdTfQotKyAgICBvIE9SQUNMRV9MREZMQUdTIC4uLi4uIDogJHtP UkFDTEVfT0NJX0xERkxBR1N9IAotKwotKyAgLSBDUFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKLSsg ICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9OfQotKyAgICBvIENQ UFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KLSsgICAgbyBDUFBVTklUX0xJ QlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQotKwotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot K05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBB Q0tBR0UtJFZFUlNJT04gbGlicmFyeQotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyIKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9DT1BZSU5HIHNvY2ktMy4wLjBfdHJlcDMwMC9DT1BZSU5H Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svQ09QWUlORwkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAw MDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9DT1BZSU5HCTIwMDktMDUtMjIgMjI6 NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMjEsMyArMjEsNCBAQAotIEZPUiBBTlkgREFNQUdF UyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLAotIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSsK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0gc29j aS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUu YW0JMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTYgQEAK LSsjIyBkb2MvYmFja2VuZHMgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rIyMgU291 cmNlIGRpcmVjdG9yeQotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsK LStTVUJESVJTID0KLSsKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0 bWxfYmNrX3NvdXJjZXMpCi0rI2ZpcmViaXJkLmh0bWwgaW5kZXguaHRtbCBteXNxbC5odG1sIG9k YmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0bWwgc3FsaXRlMy5odG1sCi0rCi0rRVhU UkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQotKwotKyNwa2dk YXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRz L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSw1NTkgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBi eSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRA Ci0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK LStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBB VEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9z aF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAk KGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0r SU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1f dHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0r UE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9 IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3Rf dHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQo c3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gZG9jL2JhY2tlbmRzCi0rQUNMT0NBTF9NNCA9 ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215 c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChD T05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJz ID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VS Q0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZl IGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxs LWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNp dmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFs bC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vy c2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUK LStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1y ZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vy c2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChT VUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRF WElORk9TKSAkKEVYVFJBX0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFN VEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBA QVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NU X0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9E QVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1f TElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09T VF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09T VF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9M SUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJA Ci0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFE X0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElC ID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9P U1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTEla QVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdT ID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVO SVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRf Q09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9O ID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0r Q1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BB VEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0r RFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBF Q0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0g QEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQ QAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAot K0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBA SU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBf UFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBM SUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBM SVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZP ID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlT UUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9W RVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAK LStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9 IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AK LStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lf VkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2 NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK LStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxF QVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hF TExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAot K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0g QGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRp bmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2Ft X190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBi aW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0r YnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92 ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIg PSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRp ZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0r ZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9 IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9h bGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBA aG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxk aXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStp bnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGly ID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxv Y2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBs dF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGlu Y2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9 IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9u YW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBA c2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBz cmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJn ZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9i dWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FN X0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0raHRtbF9iY2tf c291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAotKwkkKHRv cF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvbXlzcWwuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29k YmMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9kb2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSAKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElC SUxJVFkgPSAkKGh0bWxfYmNrX3NvdXJjZXMpCi0rI2ZpcmViaXJkLmh0bWwgaW5kZXguaHRtbCBt eXNxbC5odG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0bWwgc3FsaXRlMy5o dG1sCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQot K2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUu aW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24g JChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGlu ICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAq JCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsg dGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJ ICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRP TUFLRSkgLS1nbnUgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGly KSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKy5Q UkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcu c3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0r CWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3Ny Y2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6 Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGli cwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVw ZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBn b2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBg bWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlm IHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3Rh dHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5l cmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBk ZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9U QVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFH UzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkg ICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0r CWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7 IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3Rh cmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJ ZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29t PSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQk ZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFp bD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwlj YXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0 PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0r CWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIg JCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRh cmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAk JHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYm IHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAo Y2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQot K2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJT KSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1 bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElT UCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1p bmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29w dGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJ ICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBc Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRz dWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQk aGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlm IHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0r CSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRB R1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAg ICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1y ZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQo Q1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlx dWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2Rg IFwKLSsJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICQkaGVyZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBH UlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBp biBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBz b3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc Ci0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0r CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkg ICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsg dGhlbiBcCi0rCSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8 fCBleGl0IDE7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3Rk aXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRp cikvJCRmaWxlIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUg XAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3Vi ZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAg ICB8fCBleGl0IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3 ZGA7IFwKLSsJICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdk YDsgXAotKwkgICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAg ICAgZGlzdGRpcj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9 OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAot KwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1h bQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRp cnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGlu c3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0r aW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3Rh bGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNr OiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFN X01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwK LSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFM TF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVj aG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0r bW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1n ZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENP TkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFu LWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0 Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTog ZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwot K2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06 Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhl Yy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStp bnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFs bC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRh aW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwot K21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTog bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVj dXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsK LSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBI T05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFH UyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0 Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3Rk aXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0 YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0 YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1s IGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFs bC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5 Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAot Kwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNwa2dkYXRhZGly ID0gJChodG1sX2Jja19zb3VyY2VzKQotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBH TlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0 ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JU OgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rIHNv Y2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1r CTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDcgQEAKLSto dG1sX2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBc Ci0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFj a2VuZHMvb2RiYy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAotKwkk KHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0bWwKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmls ZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZp bGUuYW0JMjAwOS0wNS0yMyAxMDowNjo1MC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOCBA QAotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNlcy5tawotKwotK1NVQkRJUlMgPSBi YWNrZW5kcwotKwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRtbF9s b2NhbF9zb3VyY2VzKSBcCi0rCSQoY3NzX2xvY2FsX3NvdXJjZXMpICQoaW1nX2xvY2FsX3NvdXJj ZXMpCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZ KQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvZG9jL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2Vm aWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjA2OjU1LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw1NjIgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRv bWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0r IyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50 IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9T RS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRh dGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dp bmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQk e1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRB ID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3Rh bGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFM TF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNm b3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9J TlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQ T1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxl dCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGly KS9NYWtlZmlsZS5pbiBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsKLStzdWJkaXIg PSBkb2MKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9j YWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00 ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9f YWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FM X000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStT T1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vy c2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGlu Zm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1 cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUg aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxs LXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNp dmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUg dW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xl YW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1h aW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MK LStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikg JChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFD TE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NP TkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAot K0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRF X1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIg PSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9J T1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFN X09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhf TElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxT X0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0r Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0g QENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0r Q1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0r REVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERV TVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9 IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9 IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK LStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERG TEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBA TElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBM VExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAot K01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NP TkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNR TF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAK LStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JK RVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0g QE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xE RkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9P TCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAot K1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9 IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFD S0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFD S0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwg PSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0g QFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNA Ci0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FM X1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBN X1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRf TUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVB REVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1B TkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRp ciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3Bf YnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9w X3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hY QAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9f aW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90 ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9f dW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlh cyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0g QGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBA YnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290 ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5f b2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBz X29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hv c3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9z dF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9y QAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5m b2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9 IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2Rp ckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0 ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9w ID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9 IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0g QHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBz YmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3Rh dGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0r dGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9i dWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGly ID0gQHRvcF9zcmNkaXJACi0raHRtbF9sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2Jhc2ljcy5odG1sIFwKLSsJJCh0 b3Bfc3JjZGlyKS9kb2MvYmV5b25kLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9ib29zdC5o dG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvZXJyb3JzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9leGNoYW5nZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvaW5kZXguaHRtbCBcCi0r CSQodG9wX3NyY2RpcikvZG9jL2ludGVyZmFjZXMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9j L211bHRpdGhyZWFkaW5nLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9yYXRpb25hbGUuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3JlZmVyZW5jZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGly KS9kb2Mvc3RhdGVtZW50cy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mvc3RydWN0dXJlLmh0 bWwKLSsKLStjc3NfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0eWxlLmNzcwot K2ltZ19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mvc3RydWN0dXJlLnBuZwotK1NV QkRJUlMgPSBiYWNrZW5kcwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQo aHRtbF9sb2NhbF9zb3VyY2VzKSBcCi0rCSQoY3NzX2xvY2FsX3NvdXJjZXMpICQoaW1nX2xvY2Fs X3NvdXJjZXMpCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJ QklMSVRZKQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2Rpcikv TWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9kb2Mvc291 cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJ ICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJ ICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsg ZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAg ZG9jL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSAgZG9jL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAk KHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNh c2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikg XAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVO REVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0 b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRp cmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhl bSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsj IFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRp dGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmln LnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2Ug dGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsj ICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29t bWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsg XAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkg ICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwK LSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hv ICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJk aXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9z ZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNl IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2Qg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJ ICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4i ID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFt IiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9D TEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1B S0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsg XAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25l OyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSog fCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICop IGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIg aW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2 ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQk dGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2 YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJz aXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIg PSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwK LSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklM RVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUykn OyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIk JGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBk b25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwK LSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsg fTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0 YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMp IFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBc Ci0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+ JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVt cHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAot KwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBl bHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgdGFncz0i JCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChU QUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlm IHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBm aTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0 eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVz KSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQk dW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVl PSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxB R1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3Rh Z3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdz PTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVT KSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYg IiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkg IGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0g XAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBp OyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0r CSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJH UykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19j ZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAot KwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6 Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlz dGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQo dG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSck KERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBl Y2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIg XAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJg OyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8g IiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtz LC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3Ig ZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0 IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVz dCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQg LWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUg JiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGly KS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAg IGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNl IFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAg IHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQo ZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1g JChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1f X2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAot KwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9 IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIi IFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06 IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBc Ci0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2Fs bC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5z dGFsbGRpcnMtYW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6 IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBh bGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0 YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQo SU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNU QUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16 ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBS T0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFu LWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19D TEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWlu ZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3Ig bWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBy ZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2 ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4t YW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxl Ci0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFn cwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJl Y3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0 YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0r cGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsK LStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0 cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9U QVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRp c3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVh bi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0g aW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0 YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWlu Zm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0r CW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmlj IFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1y ZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rIyBUZWxsIHZlcnNpb25z IFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsj IE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNl ZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL3NvdXJj ZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svZG9jL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMubWsJMjAwOS0wNS0yMyAxMDowNjo0 Ni4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTggQEAKLStodG1sX2xvY2FsX3NvdXJjZXMg PSAkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2Mv YmFzaWNzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iZXlvbmQuaHRtbCBcCi0rCSQodG9w X3NyY2RpcikvZG9jL2Jvb3N0Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9lcnJvcnMuaHRt bCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2V4Y2hhbmdlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9pbmRleC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvaW50ZXJmYWNlcy5odG1sIFwK LSsJJCh0b3Bfc3JjZGlyKS9kb2MvbXVsdGl0aHJlYWRpbmcuaHRtbCBcCi0rCSQodG9wX3NyY2Rp cikvZG9jL3JhdGlvbmFsZS5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmVmZXJlbmNlLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zdGF0ZW1lbnRzLmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9zdHJ1Y3R1cmUuaHRtbAotKwotK2Nzc19sb2NhbF9zb3VyY2VzID0gJCh0b3Bfc3Jj ZGlyKS9kb2Mvc3R5bGUuY3NzCi0rCi0raW1nX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIp L2RvYy9zdHJ1Y3R1cmUucG5nCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svSU5TVEFM TCBzb2NpLTMuMC4wX3RyZXAzMDAvSU5TVEFMTAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL0lOU1RB TEwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvSU5TVEFMTAkyMDA5LTA1LTIzIDEwOjAyOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSwyOTEgQEAKLStJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zCi0rKioqKioqKioqKioqKioq KioqKioqKioqKgotKwotK0NvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwgMjAwNCwgMjAwNSwKLSsyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmlsZSBpcyBmcmVlIGRvY3VtZW50YXRp b247IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSt1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rCi0rQmFzaWMgSW5zdGFs bGF0aW9uCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rICAgQnJpZWZseSwgdGhlIHNoZWxsIGNv bW1hbmRzIGAuL2NvbmZpZ3VyZTsgbWFrZTsgbWFrZSBpbnN0YWxsJyBzaG91bGQKLStjb25maWd1 cmUsIGJ1aWxkLCBhbmQgaW5zdGFsbCB0aGlzIHBhY2thZ2UuICBUaGUgZm9sbG93aW5nCi0rbW9y ZS1kZXRhaWxlZCBpbnN0cnVjdGlvbnMgYXJlIGdlbmVyaWM7IHNlZSB0aGUgYFJFQURNRScgZmls ZSBmb3IKLStpbnN0cnVjdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlLgotKwotKyAgIFRo ZSBgY29uZmlndXJlJyBzaGVsbCBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgY29ycmVjdCB2YWx1 ZXMgZm9yCi0rdmFyaW91cyBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyB1c2VkIGR1cmluZyBj b21waWxhdGlvbi4gIEl0IHVzZXMKLSt0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxl JyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KLStJdCBtYXkgYWxzbyBjcmVhdGUg b25lIG9yIG1vcmUgYC5oJyBmaWxlcyBjb250YWluaW5nIHN5c3RlbS1kZXBlbmRlbnQKLStkZWZp bml0aW9ucy4gIEZpbmFsbHksIGl0IGNyZWF0ZXMgYSBzaGVsbCBzY3JpcHQgYGNvbmZpZy5zdGF0 dXMnIHRoYXQKLSt5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJy ZW50IGNvbmZpZ3VyYXRpb24sIGFuZCBhCi0rZmlsZSBgY29uZmlnLmxvZycgY29udGFpbmluZyBj b21waWxlciBvdXRwdXQgKHVzZWZ1bCBtYWlubHkgZm9yCi0rZGVidWdnaW5nIGBjb25maWd1cmUn KS4KLSsKLSsgICBJdCBjYW4gYWxzbyB1c2UgYW4gb3B0aW9uYWwgZmlsZSAodHlwaWNhbGx5IGNh bGxlZCBgY29uZmlnLmNhY2hlJwotK2FuZCBlbmFibGVkIHdpdGggYC0tY2FjaGUtZmlsZT1jb25m aWcuY2FjaGUnIG9yIHNpbXBseSBgLUMnKSB0aGF0IHNhdmVzCi0rdGhlIHJlc3VsdHMgb2YgaXRz IHRlc3RzIHRvIHNwZWVkIHVwIHJlY29uZmlndXJpbmcuICBDYWNoaW5nIGlzCi0rZGlzYWJsZWQg YnkgZGVmYXVsdCB0byBwcmV2ZW50IHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbCB1c2Ugb2Ygc3Rh bGUKLStjYWNoZSBmaWxlcy4KLSsKLSsgICBJZiB5b3UgbmVlZCB0byBkbyB1bnVzdWFsIHRoaW5n cyB0byBjb21waWxlIHRoZSBwYWNrYWdlLCBwbGVhc2UgdHJ5Ci0rdG8gZmlndXJlIG91dCBob3cg YGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAotK2Rp ZmZzIG9yIGluc3RydWN0aW9ucyB0byB0aGUgYWRkcmVzcyBnaXZlbiBpbiB0aGUgYFJFQURNRScg c28gdGhleSBjYW4KLStiZSBjb25zaWRlcmVkIGZvciB0aGUgbmV4dCByZWxlYXNlLiAgSWYgeW91 IGFyZSB1c2luZyB0aGUgY2FjaGUsIGFuZCBhdAotK3NvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScg Y29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3Qgd2FudCB0byBrZWVwLCB5b3UKLSttYXkgcmVtb3Zl IG9yIGVkaXQgaXQuCi0rCi0rICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5hYycgKG9yIGBjb25maWd1 cmUuaW4nKSBpcyB1c2VkIHRvIGNyZWF0ZQotK2Bjb25maWd1cmUnIGJ5IGEgcHJvZ3JhbSBjYWxs ZWQgYGF1dG9jb25mJy4gIFlvdSBuZWVkIGBjb25maWd1cmUuYWMnIGlmCi0reW91IHdhbnQgdG8g Y2hhbmdlIGl0IG9yIHJlZ2VuZXJhdGUgYGNvbmZpZ3VyZScgdXNpbmcgYSBuZXdlciB2ZXJzaW9u Ci0rb2YgYGF1dG9jb25mJy4KLSsKLStUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBw YWNrYWdlIGlzOgotKwotKyAgMS4gYGNkJyB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhl IHBhY2thZ2UncyBzb3VyY2UgY29kZSBhbmQgdHlwZQotKyAgICAgYC4vY29uZmlndXJlJyB0byBj b25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLgotKwotKyAgICAgUnVubmluZyBg Y29uZmlndXJlJyBtaWdodCB0YWtlIGEgd2hpbGUuICBXaGlsZSBydW5uaW5nLCBpdCBwcmludHMK LSsgICAgIHNvbWUgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2lu ZyBmb3IuCi0rCi0rICAyLiBUeXBlIGBtYWtlJyB0byBjb21waWxlIHRoZSBwYWNrYWdlLgotKwot KyAgMy4gT3B0aW9uYWxseSwgdHlwZSBgbWFrZSBjaGVjaycgdG8gcnVuIGFueSBzZWxmLXRlc3Rz IHRoYXQgY29tZSB3aXRoCi0rICAgICB0aGUgcGFja2FnZS4KLSsKLSsgIDQuIFR5cGUgYG1ha2Ug aW5zdGFsbCcgdG8gaW5zdGFsbCB0aGUgcHJvZ3JhbXMgYW5kIGFueSBkYXRhIGZpbGVzIGFuZAot KyAgICAgZG9jdW1lbnRhdGlvbi4KLSsKLSsgIDUuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFt IGJpbmFyaWVzIGFuZCBvYmplY3QgZmlsZXMgZnJvbSB0aGUKLSsgICAgIHNvdXJjZSBjb2RlIGRp cmVjdG9yeSBieSB0eXBpbmcgYG1ha2UgY2xlYW4nLiAgVG8gYWxzbyByZW1vdmUgdGhlCi0rICAg ICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUg cGFja2FnZSBmb3IKLSsgICAgIGEgZGlmZmVyZW50IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBt YWtlIGRpc3RjbGVhbicuICBUaGVyZSBpcwotKyAgICAgYWxzbyBhIGBtYWtlIG1haW50YWluZXIt Y2xlYW4nIHRhcmdldCwgYnV0IHRoYXQgaXMgaW50ZW5kZWQgbWFpbmx5Ci0rICAgICBmb3IgdGhl IHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdl dAotKyAgICAgYWxsIHNvcnRzIG9mIG90aGVyIHByb2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJh dGUgZmlsZXMgdGhhdCBjYW1lCi0rICAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0rCi0rICA2 LiBPZnRlbiwgeW91IGNhbiBhbHNvIHR5cGUgYG1ha2UgdW5pbnN0YWxsJyB0byByZW1vdmUgdGhl IGluc3RhbGxlZAotKyAgICAgZmlsZXMgYWdhaW4uCi0rCi0rQ29tcGlsZXJzIGFuZCBPcHRpb25z Ci0rPT09PT09PT09PT09PT09PT09PT09Ci0rCi0rICAgU29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51 c3VhbCBvcHRpb25zIGZvciBjb21waWxhdGlvbiBvciBsaW5raW5nIHRoYXQKLSt0aGUgYGNvbmZp Z3VyZScgc2NyaXB0IGRvZXMgbm90IGtub3cgYWJvdXQuICBSdW4gYC4vY29uZmlndXJlIC0taGVs cCcKLStmb3IgZGV0YWlscyBvbiBzb21lIG9mIHRoZSBwZXJ0aW5lbnQgZW52aXJvbm1lbnQgdmFy aWFibGVzLgotKwotKyAgIFlvdSBjYW4gZ2l2ZSBgY29uZmlndXJlJyBpbml0aWFsIHZhbHVlcyBm b3IgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzCi0rYnkgc2V0dGluZyB2YXJpYWJsZXMgaW4gdGhl IGNvbW1hbmQgbGluZSBvciBpbiB0aGUgZW52aXJvbm1lbnQuICBIZXJlCi0raXMgYW4gZXhhbXBs ZToKLSsKLSsgICAgIC4vY29uZmlndXJlIENDPWM5OSBDRkxBR1M9LWcgTElCUz0tbHBvc2l4Ci0r Ci0rICAgKk5vdGUgRGVmaW5pbmcgVmFyaWFibGVzOjosIGZvciBtb3JlIGRldGFpbHMuCi0rCi0r Q29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1cmVzCi0rPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0rCi0rICAgWW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZv ciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQgdGhlCi0rc2FtZSB0aW1lLCBieSBw bGFjaW5nIHRoZSBvYmplY3QgZmlsZXMgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlIGluIHRoZWlyCi0r b3duIGRpcmVjdG9yeS4gIFRvIGRvIHRoaXMsIHlvdSBjYW4gdXNlIEdOVSBgbWFrZScuICBgY2Qn IHRvIHRoZQotK2RpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBl eGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCi0rdGhlIGBjb25maWd1cmUnIHNjcmlwdC4gIGBjb25m aWd1cmUnIGF1dG9tYXRpY2FsbHkgY2hlY2tzIGZvciB0aGUKLStzb3VyY2UgY29kZSBpbiB0aGUg ZGlyZWN0b3J5IHRoYXQgYGNvbmZpZ3VyZScgaXMgaW4gYW5kIGluIGAuLicuCi0rCi0rICAgV2l0 aCBhIG5vbi1HTlUgYG1ha2UnLCBpdCBpcyBzYWZlciB0byBjb21waWxlIHRoZSBwYWNrYWdlIGZv ciBvbmUKLSthcmNoaXRlY3R1cmUgYXQgYSB0aW1lIGluIHRoZSBzb3VyY2UgY29kZSBkaXJlY3Rv cnkuICBBZnRlciB5b3UgaGF2ZQotK2luc3RhbGxlZCB0aGUgcGFja2FnZSBmb3Igb25lIGFyY2hp dGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlCi0rcmVjb25maWd1cmluZyBmb3Ig YW5vdGhlciBhcmNoaXRlY3R1cmUuCi0rCi0rICAgT24gTWFjT1MgWCAxMC41IGFuZCBsYXRlciBz eXN0ZW1zLCB5b3UgY2FuIGNyZWF0ZSBsaWJyYXJpZXMgYW5kCi0rZXhlY3V0YWJsZXMgdGhhdCB3 b3JrIG9uIG11bHRpcGxlIHN5c3RlbSB0eXBlcy0ta25vd24gYXMgImZhdCIgb3IKLSsidW5pdmVy c2FsIiBiaW5hcmllcy0tYnkgc3BlY2lmeWluZyBtdWx0aXBsZSBgLWFyY2gnIG9wdGlvbnMgdG8g dGhlCi0rY29tcGlsZXIgYnV0IG9ubHkgYSBzaW5nbGUgYC1hcmNoJyBvcHRpb24gdG8gdGhlIHBy ZXByb2Nlc3Nvci4gIExpa2UKLSt0aGlzOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9ImdjYyAt YXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJjaCBwcGMgLWFyY2ggcHBjNjQiIFwKLSsgICAgICAg ICAgICAgICAgIENYWD0iZysrIC1hcmNoIGkzODYgLWFyY2ggeDg2XzY0IC1hcmNoIHBwYyAtYXJj aCBwcGM2NCIgXAotKyAgICAgICAgICAgICAgICAgQ1BQPSJnY2MgLUUiIENYWENQUD0iZysrIC1F IgotKwotKyAgIFRoaXMgaXMgbm90IGd1YXJhbnRlZWQgdG8gcHJvZHVjZSB3b3JraW5nIG91dHB1 dCBpbiBhbGwgY2FzZXMsIHlvdQotK21heSBoYXZlIHRvIGJ1aWxkIG9uZSBhcmNoaXRlY3R1cmUg YXQgYSB0aW1lIGFuZCBjb21iaW5lIHRoZSByZXN1bHRzCi0rdXNpbmcgdGhlIGBsaXBvJyB0b29s IGlmIHlvdSBoYXZlIHByb2JsZW1zLgotKwotK0luc3RhbGxhdGlvbiBOYW1lcwotKz09PT09PT09 PT09PT09PT09PQotKwotKyAgIEJ5IGRlZmF1bHQsIGBtYWtlIGluc3RhbGwnIGluc3RhbGxzIHRo ZSBwYWNrYWdlJ3MgY29tbWFuZHMgdW5kZXIKLStgL3Vzci9sb2NhbC9iaW4nLCBpbmNsdWRlIGZp bGVzIHVuZGVyIGAvdXNyL2xvY2FsL2luY2x1ZGUnLCBldGMuICBZb3UKLStjYW4gc3BlY2lmeSBh biBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gYC91c3IvbG9jYWwnIGJ5IGdpdmluZwot K2Bjb25maWd1cmUnIHRoZSBvcHRpb24gYC0tcHJlZml4PVBSRUZJWCcuCi0rCi0rICAgWW91IGNh biBzcGVjaWZ5IHNlcGFyYXRlIGluc3RhbGxhdGlvbiBwcmVmaXhlcyBmb3IKLSthcmNoaXRlY3R1 cmUtc3BlY2lmaWMgZmlsZXMgYW5kIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcy4gIElm IHlvdQotK3Bhc3MgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QUkVGSVgnIHRvIGBjb25maWd1 cmUnLCB0aGUgcGFja2FnZSB1c2VzCi0rUFJFRklYIGFzIHRoZSBwcmVmaXggZm9yIGluc3RhbGxp bmcgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcy4KLStEb2N1bWVudGF0aW9uIGFuZCBvdGhlciBkYXRh IGZpbGVzIHN0aWxsIHVzZSB0aGUgcmVndWxhciBwcmVmaXguCi0rCi0rICAgSW4gYWRkaXRpb24s IGlmIHlvdSB1c2UgYW4gdW51c3VhbCBkaXJlY3RvcnkgbGF5b3V0IHlvdSBjYW4gZ2l2ZQotK29w dGlvbnMgbGlrZSBgLS1iaW5kaXI9RElSJyB0byBzcGVjaWZ5IGRpZmZlcmVudCB2YWx1ZXMgZm9y IHBhcnRpY3VsYXIKLStraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9y IGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKLSt5b3UgY2FuIHNldCBhbmQgd2hhdCBraW5kcyBv ZiBmaWxlcyBnbyBpbiB0aGVtLgotKwotKyAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5 b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAotK3dpdGggYW4gZXh0cmEgcHJl Zml4IG9yIHN1ZmZpeCBvbiB0aGVpciBuYW1lcyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCi0r b3B0aW9uIGAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCcgb3IgYC0tcHJvZ3JhbS1zdWZmaXg9U1VG RklYJy4KLSsKLStPcHRpb25hbCBGZWF0dXJlcwotKz09PT09PT09PT09PT09PT09Ci0rCi0rICAg U29tZSBwYWNrYWdlcyBwYXkgYXR0ZW50aW9uIHRvIGAtLWVuYWJsZS1GRUFUVVJFJyBvcHRpb25z IHRvCi0rYGNvbmZpZ3VyZScsIHdoZXJlIEZFQVRVUkUgaW5kaWNhdGVzIGFuIG9wdGlvbmFsIHBh cnQgb2YgdGhlIHBhY2thZ2UuCi0rVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdp dGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFDS0FHRQotK2lzIHNvbWV0aGluZyBsaWtlIGBn bnUtYXMnIG9yIGB4JyAoZm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0pLiAgVGhlCi0rYFJFQURNRScg c2hvdWxkIG1lbnRpb24gYW55IGAtLWVuYWJsZS0nIGFuZCBgLS13aXRoLScgb3B0aW9ucyB0aGF0 IHRoZQotK3BhY2thZ2UgcmVjb2duaXplcy4KLSsKLSsgICBGb3IgcGFja2FnZXMgdGhhdCB1c2Ug dGhlIFggV2luZG93IFN5c3RlbSwgYGNvbmZpZ3VyZScgY2FuIHVzdWFsbHkKLStmaW5kIHRoZSBY IGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNu J3QsCi0reW91IGNhbiB1c2UgdGhlIGBjb25maWd1cmUnIG9wdGlvbnMgYC0teC1pbmNsdWRlcz1E SVInIGFuZAotK2AtLXgtbGlicmFyaWVzPURJUicgdG8gc3BlY2lmeSB0aGVpciBsb2NhdGlvbnMu Ci0rCi0rUGFydGljdWxhciBzeXN0ZW1zCi0rPT09PT09PT09PT09PT09PT09Ci0rCi0rICAgT24g SFAtVVgsIHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgaXMgbm90IEFOU0kgQyBjb21wYXRpYmxlLiAg SWYgR05VCi0rQ0MgaXMgbm90IGluc3RhbGxlZCwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIHRo ZSBmb2xsb3dpbmcgb3B0aW9ucyBpbgotK29yZGVyIHRvIHVzZSBhbiBBTlNJIEMgY29tcGlsZXI6 Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLUFlIgotKwotK2FuZCBpZiB0aGF0IGRvZXNu J3Qgd29yaywgaW5zdGFsbCBwcmUtYnVpbHQgYmluYXJpZXMgb2YgR0NDIGZvciBIUC1VWC4KLSsK LSsgICBPbiBPU0YvMSBhLmsuYS4gVHJ1NjQsIHNvbWUgdmVyc2lvbnMgb2YgdGhlIGRlZmF1bHQg QyBjb21waWxlciBjYW5ub3QKLStwYXJzZSBpdHMgYDx3Y2hhci5oPicgaGVhZGVyIGZpbGUuICBU aGUgb3B0aW9uIGAtbm9kdGsnIGNhbiBiZSB1c2VkIGFzCi0rYSB3b3JrYXJvdW5kLiAgSWYgR05V IENDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHRoZXJlZm9yZSByZWNvbW1lbmRlZAotK3RvIHRy eQotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIgotKwotK2FuZCBpZiB0aGF0IGRvZXNuJ3Qg d29yaywgdHJ5Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLW5vZHRrIgotKwotK1NwZWNp ZnlpbmcgdGhlIFN5c3RlbSBUeXBlCi0rPT09PT09PT09PT09PT09PT09PT09PT09PT0KLSsKLSsg ICBUaGVyZSBtYXkgYmUgc29tZSBmZWF0dXJlcyBgY29uZmlndXJlJyBjYW5ub3QgZmlndXJlIG91 dAotK2F1dG9tYXRpY2FsbHksIGJ1dCBuZWVkcyB0byBkZXRlcm1pbmUgYnkgdGhlIHR5cGUgb2Yg bWFjaGluZSB0aGUgcGFja2FnZQotK3dpbGwgcnVuIG9uLiAgVXN1YWxseSwgYXNzdW1pbmcgdGhl IHBhY2thZ2UgaXMgYnVpbHQgdG8gYmUgcnVuIG9uIHRoZQotK19zYW1lXyBhcmNoaXRlY3R1cmVz LCBgY29uZmlndXJlJyBjYW4gZmlndXJlIHRoYXQgb3V0LCBidXQgaWYgaXQgcHJpbnRzCi0rYSBt ZXNzYWdlIHNheWluZyBpdCBjYW5ub3QgZ3Vlc3MgdGhlIG1hY2hpbmUgdHlwZSwgZ2l2ZSBpdCB0 aGUKLStgLS1idWlsZD1UWVBFJyBvcHRpb24uICBUWVBFIGNhbiBlaXRoZXIgYmUgYSBzaG9ydCBu YW1lIGZvciB0aGUgc3lzdGVtCi0rdHlwZSwgc3VjaCBhcyBgc3VuNCcsIG9yIGEgY2Fub25pY2Fs IG5hbWUgd2hpY2ggaGFzIHRoZSBmb3JtOgotKwotKyAgICAgQ1BVLUNPTVBBTlktU1lTVEVNCi0r Ci0rd2hlcmUgU1lTVEVNIGNhbiBoYXZlIG9uZSBvZiB0aGVzZSBmb3JtczoKLSsKLSsgICAgIE9T IEtFUk5FTC1PUwotKwotKyAgIFNlZSB0aGUgZmlsZSBgY29uZmlnLnN1YicgZm9yIHRoZSBwb3Nz aWJsZSB2YWx1ZXMgb2YgZWFjaCBmaWVsZC4gIElmCi0rYGNvbmZpZy5zdWInIGlzbid0IGluY2x1 ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBhY2thZ2UgZG9lc24ndAotK25lZWQgdG8g a25vdyB0aGUgbWFjaGluZSB0eXBlLgotKwotKyAgIElmIHlvdSBhcmUgX2J1aWxkaW5nXyBjb21w aWxlciB0b29scyBmb3IgY3Jvc3MtY29tcGlsaW5nLCB5b3Ugc2hvdWxkCi0rdXNlIHRoZSBvcHRp b24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUgdHlwZSBvZiBzeXN0ZW0gdGhleSB3aWxs Ci0rcHJvZHVjZSBjb2RlIGZvci4KLSsKLSsgICBJZiB5b3Ugd2FudCB0byBfdXNlXyBhIGNyb3Nz IGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZvciBhCi0rcGxhdGZvcm0gZGlmZmVyZW50 IGZyb20gdGhlIGJ1aWxkIHBsYXRmb3JtLCB5b3Ugc2hvdWxkIHNwZWNpZnkgdGhlCi0rImhvc3Qi IHBsYXRmb3JtIChpLmUuLCB0aGF0IG9uIHdoaWNoIHRoZSBnZW5lcmF0ZWQgcHJvZ3JhbXMgd2ls bAotK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhvc3Q9VFlQRScuCi0rCi0rU2hhcmluZyBE ZWZhdWx0cwotKz09PT09PT09PT09PT09PT0KLSsKLSsgICBJZiB5b3Ugd2FudCB0byBzZXQgZGVm YXVsdCB2YWx1ZXMgZm9yIGBjb25maWd1cmUnIHNjcmlwdHMgdG8gc2hhcmUsCi0reW91IGNhbiBj cmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVz Ci0rZGVmYXVsdCB2YWx1ZXMgZm9yIHZhcmlhYmxlcyBsaWtlIGBDQycsIGBjYWNoZV9maWxlJywg YW5kIGBwcmVmaXgnLgotK2Bjb25maWd1cmUnIGxvb2tzIGZvciBgUFJFRklYL3NoYXJlL2NvbmZp Zy5zaXRlJyBpZiBpdCBleGlzdHMsIHRoZW4KLStgUFJFRklYL2V0Yy9jb25maWcuc2l0ZScgaWYg aXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQotK2BDT05GSUdfU0lURScgZW52aXJvbm1l bnQgdmFyaWFibGUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBzaXRlIHNjcmlwdC4KLStBIHdhcm5p bmc6IG5vdCBhbGwgYGNvbmZpZ3VyZScgc2NyaXB0cyBsb29rIGZvciBhIHNpdGUgc2NyaXB0Lgot KwotK0RlZmluaW5nIFZhcmlhYmxlcwotKz09PT09PT09PT09PT09PT09PQotKwotKyAgIFZhcmlh YmxlcyBub3QgZGVmaW5lZCBpbiBhIHNpdGUgc2hlbGwgc2NyaXB0IGNhbiBiZSBzZXQgaW4gdGhl Ci0rZW52aXJvbm1lbnQgcGFzc2VkIHRvIGBjb25maWd1cmUnLiAgSG93ZXZlciwgc29tZSBwYWNr YWdlcyBtYXkgcnVuCi0rY29uZmlndXJlIGFnYWluIGR1cmluZyB0aGUgYnVpbGQsIGFuZCB0aGUg Y3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKLSt2YXJpYWJsZXMgbWF5IGJlIGxvc3QuICBJbiBv cmRlciB0byBhdm9pZCB0aGlzIHByb2JsZW0sIHlvdSBzaG91bGQgc2V0Ci0rdGhlbSBpbiB0aGUg YGNvbmZpZ3VyZScgY29tbWFuZCBsaW5lLCB1c2luZyBgVkFSPXZhbHVlJy4gIEZvciBleGFtcGxl OgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9L3Vzci9sb2NhbDIvYmluL2djYwotKwotK2NhdXNl cyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQgYXMgdGhlIEMgY29tcGlsZXIgKHVubGVz cyBpdCBpcwotK292ZXJyaWRkZW4gaW4gdGhlIHNpdGUgc2hlbGwgc2NyaXB0KS4KLSsKLStVbmZv cnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5vdCB3b3JrIGZvciBgQ09ORklHX1NIRUxM JyBkdWUgdG8KLSthbiBBdXRvY29uZiBidWcuICBVbnRpbCB0aGUgYnVnIGlzIGZpeGVkIHlvdSBj YW4gdXNlIHRoaXMgd29ya2Fyb3VuZDoKLSsKLSsgICAgIENPTkZJR19TSEVMTD0vYmluL2Jhc2gg L2Jpbi9iYXNoIC4vY29uZmlndXJlIENPTkZJR19TSEVMTD0vYmluL2Jhc2gKLSsKLStgY29uZmln dXJlJyBJbnZvY2F0aW9uCi0rPT09PT09PT09PT09PT09PT09PT09PQotKwotKyAgIGBjb25maWd1 cmUnIHJlY29nbml6ZXMgdGhlIGZvbGxvd2luZyBvcHRpb25zIHRvIGNvbnRyb2wgaG93IGl0Ci0r b3BlcmF0ZXMuCi0rCi0rYC0taGVscCcKLStgLWgnCi0rICAgICBQcmludCBhIHN1bW1hcnkgb2Yg YWxsIG9mIHRoZSBvcHRpb25zIHRvIGBjb25maWd1cmUnLCBhbmQgZXhpdC4KLSsKLStgLS1oZWxw PXNob3J0JwotK2AtLWhlbHA9cmVjdXJzaXZlJwotKyAgICAgUHJpbnQgYSBzdW1tYXJ5IG9mIHRo ZSBvcHRpb25zIHVuaXF1ZSB0byB0aGlzIHBhY2thZ2UncwotKyAgICAgYGNvbmZpZ3VyZScsIGFu ZCBleGl0LiAgVGhlIGBzaG9ydCcgdmFyaWFudCBsaXN0cyBvcHRpb25zIHVzZWQKLSsgICAgIG9u bHkgaW4gdGhlIHRvcCBsZXZlbCwgd2hpbGUgdGhlIGByZWN1cnNpdmUnIHZhcmlhbnQgbGlzdHMg b3B0aW9ucwotKyAgICAgYWxzbyBwcmVzZW50IGluIGFueSBuZXN0ZWQgcGFja2FnZXMuCi0rCi0r YC0tdmVyc2lvbicKLStgLVYnCi0rICAgICBQcmludCB0aGUgdmVyc2lvbiBvZiBBdXRvY29uZiB1 c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJwotKyAgICAgc2NyaXB0LCBhbmQgZXhpdC4K LSsKLStgLS1jYWNoZS1maWxlPUZJTEUnCi0rICAgICBFbmFibGUgdGhlIGNhY2hlOiB1c2UgYW5k IHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3RzIGluIEZJTEUsCi0rICAgICB0cmFkaXRpb25h bGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZhdWx0cyB0byBgL2Rldi9udWxsJyB0bwotKyAg ICAgZGlzYWJsZSBjYWNoaW5nLgotKwotK2AtLWNvbmZpZy1jYWNoZScKLStgLUMnCi0rICAgICBB bGlhcyBmb3IgYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnLgotKwotK2AtLXF1aWV0JwotK2At LXNpbGVudCcKLStgLXEnCi0rICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNo IGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCi0rICAgICBzdXBwcmVzcyBhbGwgbm9ybWFsIG91 dHB1dCwgcmVkaXJlY3QgaXQgdG8gYC9kZXYvbnVsbCcgKGFueSBlcnJvcgotKyAgICAgbWVzc2Fn ZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCi0rCi0rYC0tc3JjZGlyPURJUicKLSsgICAgIExvb2sg Zm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgaW4gZGlyZWN0b3J5IERJUi4gIFVzdWFsbHkK LSsgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUgdGhhdCBkaXJlY3RvcnkgYXV0b21hdGlj YWxseS4KLSsKLStgLS1wcmVmaXg9RElSJwotKyAgICAgVXNlIERJUiBhcyB0aGUgaW5zdGFsbGF0 aW9uIHByZWZpeC4gICpOb3RlIEluc3RhbGxhdGlvbiBOYW1lczo6Ci0rICAgICBmb3IgbW9yZSBk ZXRhaWxzLCBpbmNsdWRpbmcgb3RoZXIgb3B0aW9ucyBhdmFpbGFibGUgZm9yIGZpbmUtdHVuaW5n Ci0rICAgICB0aGUgaW5zdGFsbGF0aW9uIGxvY2F0aW9ucy4KLSsKLStgLS1uby1jcmVhdGUnCi0r YC1uJwotKyAgICAgUnVuIHRoZSBjb25maWd1cmUgY2hlY2tzLCBidXQgc3RvcCBiZWZvcmUgY3Jl YXRpbmcgYW55IG91dHB1dAotKyAgICAgZmlsZXMuCi0rCi0rYGNvbmZpZ3VyZScgYWxzbyBhY2Nl cHRzIHNvbWUgb3RoZXIsIG5vdCB3aWRlbHkgdXNlZnVsLCBvcHRpb25zLiAgUnVuCi0rYGNvbmZp Z3VyZSAtLWhlbHAnIGZvciBtb3JlIGRldGFpbHMuCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svTWFrZWZpbGUgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlCi0tLS0gc29jaS0zLjAu MF80LXBhY2svTWFrZWZpbGUJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLUBAIC0xLDIwICswLDAgQEAKLS1idWlsZF9saWJzIDoKLS0JY2QgYnVpbGQvdW5p eDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBjb3JlIGNvcmUtc28gbXlzcWwgbXlzcWwtc28g cG9zdGdyZXNxbCBwb3N0Z3Jlc3FsLXNvIG9yYWNsZSBvcmFjbGUtc28KLS0KLS10ZXN0cyA6Ci0t CWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBidWlsZC50Y2wgbXlzcWwtdGVzdCBvcmFj bGUtdGVzdCBwb3N0Z3Jlc3FsLXRlc3QKLS0KLS1pbnN0YWxsIDoKLS0JY2QgYnVpbGQvdW5peDsg YGNhdCBsb2NhbC90Y2xgIGluc3RhbGwudGNsCi0tCi0tdW5pbnN0YWxsIDoKLS0JY2QgYnVpbGQv dW5peC9sb2NhbDsgL2Jpbi9zaCB1bmluc3RhbGwuc2gKLS0KLS1jbGVhbiA6Ci0tCWZpbmQgLiAt bmFtZSAnKi5vJyB8IHhhcmdzIHJtCi0tCWZpbmQgLiAtbmFtZSAnKi5hJyB8IHhhcmdzIHJtCi0t CWZpbmQgLiAtbmFtZSAnKi5zbycgfCB4YXJncyBybQotLQlybSAtZiBzcmMvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsCi0tCXJtIC1mIHNyYy9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZQotLQlybSAtZiBzcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbAotLQlybSAtcmYgYnVpbGQvdW5peC9pbmNsdWRlIGJ1aWxkL3VuaXgvbGliIGJ1aWxkL3Vu aXgvdGVzdHMKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAotQEAg LTAsMCArMSw2MiBAQAotKyMjIHRvcCBkaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCi0rCi0rQUNMT0NBTF9BTUZMQUdTID0gLUkgY29uZmlnCi0rCi0rQVVU T01BS0VfT1BUSU9OUyA9IGRpc3QtYnppcDIKLSsKLStpZiBSVU5fVEVTVFMKLSsjICBURVNUX0RJ UiA9IHRlc3QKLStlbmRpZgotKwotK01BTl9ET0NfRElSID0gbWFuCi0rCi0rIyBNYWludGFpbmFu Y2UgZmlsZXMKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluIGFjbG9jYWwubTQg Y29uZmlndXJlIFwKLSsJCQljb25maWctaC5pbiBzaWMvc3RhbXAtaC5pbiBhdXRvZ2VuLnNoIGJv b3RzdHJhcAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX2NvbmZp Z3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkgPSBjb250cmliCi0rCi0rRVhUUkFfRElTVCA9IE1ha2VmaWxlLmNvbW1vbiAkKEVYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBBQ0tBR0VALm00Ci0rCi0rIyBCdWlsZCBpbiB0 aGVzZSBkaXJlY3RvcmllczoKLStTVUJESVJTID0gYnVpbGQgQFBBQ0tBR0VAICQoTUFOX0RPQ19E SVIpIGRvYyAkKFRFU1RfRElSKQotKwotKwotKyMgQ29uZmlndXJhdGlvbiBoZWxwZXJzCi0rYmlu X1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCi0rCi0rcGtnY29uZmlnZGlyID0gJChsaWJkaXIp L3BrZ2NvbmZpZwotK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tBR0VALnBjCi0rCi0rbTRkYXRhZGly ID0gJChkYXRhZGlyKS9hY2xvY2FsCi0rbTRkYXRhX0RBVEEgPSBAUEFDS0FHRUAubTQKLSsKLSsj IFRhcmdldHMKLSt1bmluc3RhbGwtbG9jYWw6Ci0rCXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKLSsKLStkaXN0LWh0bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRt bAotKwotKwotK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAotKwotKwotK3Nu YXBzaG90LXNyYzoKLSsgICAgICAgICQoTUFLRSkgZGlzdCBkaXN0ZGlyPUBQQUNLQUdFX1RBUk5B TUVALWBkYXRlICsiJVklbSVkImAKLSsKLStzbmFwc2hvdC1odG1sOgotKwkkKE1BS0UpIC1DIGRv YyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLWBkYXRl ICsiJVklbSVkImAKLSsKLSt1cGxvYWQ6IHVwbG9hZC1zcmMgdXBsb2FkLWh0bWwKLSsKLSt1cGxv YWQtc3JjOiBkaXN0Ci0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJ T05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuYnoyCi0rCi0r dXBsb2FkLWh0bWw6IGRpc3QtaHRtbAotKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5B TUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAotKwlAUEFDS0FHRV9UQVJOQU1FQC1odG1s LWRvYy1AVkVSU0lPTkAudGFyLmJ6MgotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01h a2VmaWxlLmNvbW1vbiBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuY29tbW9uCi0tLS0gc29j aS0zLjAuMF80LXBhY2svTWFrZWZpbGUuY29tbW9uCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgkyMDA5LTA1 LTIyIDIyOjU0OjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rQFNFVF9NQUtF QAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL01h a2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUu aW4JMjAwOS0wNS0yMyAxMDowMjowMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODA4IEBA Ci0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZp bGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwot KwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK LStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5j bHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQo UEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkg LWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3Rh bGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNU QUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1B TF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JN QUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6 Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNU X0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChzcmNkaXIpL01ha2VmaWxl LmFtIFwKLSsJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb2NpLWNvbmZpZy5pbiBc Ci0rCSQoc3JjZGlyKS9zb2NpLnBjLmluICQoc3JjZGlyKS9zb2NpLnNwZWMuaW4gXAotKwkkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBBVVRIT1JT IFwKLSsJQ09QWUlORyBDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIGNvbmZpZy9jb25maWcuZ3Vlc3Mg XAotKwljb25maWcvY29uZmlnLnN1YiBjb25maWcvZGVwY29tcCBjb25maWcvaW5zdGFsbC1zaCBc Ci0rCWNvbmZpZy9sdG1haW4uc2ggY29uZmlnL21pc3NpbmcKLStzdWJkaXIgPSAuCi0rQUNMT0NB TF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24u bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVw cykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLSthbV9fQ09O RklHX0RJU1RDTEVBTl9GSUxFUyA9IGNvbmZpZy5zdGF0dXMgY29uZmlnLmNhY2hlIGNvbmZpZy5s b2cgXAotKyBjb25maWd1cmUubGluZW5vIGNvbmZpZy5zdGF0dXMubGluZW5vCi0rbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPSBzb2NpLWNvbmZpZyBzb2NpLnBj IHNvY2kuc3BlYwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChiaW5kaXIpIiAiJChE RVNURElSKSQobTRkYXRhZGlyKSIgXAotKwkiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKLSti aW5TQ1JJUFRfSU5TVEFMTCA9ICQoSU5TVEFMTF9TQ1JJUFQpCi0rU0NSSVBUUyA9ICQoYmluX1ND UklQVFMpCi0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9 IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJl Y3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFs bC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwt cmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNp dmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hl Y2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMt cmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhf YWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNl ZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7 Ci0rYW1fX3N0cmlwX2RpciA9IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSttNGRh dGFEQVRBX0lOU1RBTEwgPSAkKElOU1RBTExfREFUQSkKLStwa2djb25maWdEQVRBX0lOU1RBTEwg PSAkKElOU1RBTExfREFUQSkKLStEQVRBID0gJChtNGRhdGFfREFUQSkgJChwa2djb25maWdfREFU QSkKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVh bi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0g JChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAk KFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9O KQotK3RvcF9kaXN0ZGlyID0gJChkaXN0ZGlyKQotK2FtX19yZW1vdmVfZGlzdGRpciA9IFwKLSsg IHsgdGVzdCAhIC1kICQoZGlzdGRpcikgXAotKyAgICB8fCB7IGZpbmQgJChkaXN0ZGlyKSAtdHlw ZSBkICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsnIFwKLSsgICAgICAgICAmJiBy bSAtZnIgJChkaXN0ZGlyKTsgfTsgfQotK0RJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIpLnRhci5n eiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9IC0tYmVzdAotK2Rpc3R1bmluc3RhbGxj aGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStkaXN0Y2xlYW5jaGVja19s aXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0r QU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBB V0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNf TElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStC T09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVS U0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9E RUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxB R1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcg PSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBV TklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0g QENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxB R1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0g QERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0r RUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RA Ci0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAK LStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStH UkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNU QUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxM X1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5T VEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStM SUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAK LStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNA Ci0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NG TEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStN WVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdT QAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQg PSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0r T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9P TEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJT SU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAK LStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVT UUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdS RVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04g PSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0Ug PSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStT SEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK LSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK LSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0r YmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29z QAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJA Ci0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2Rp ZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9z dEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0r aG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxk aXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBp bmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9v a0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSts dF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGly X3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJA Ci0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1f dHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAot K3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0r c3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2Fs aWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVm aXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9z cmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikK LStBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKLStBVVRPTUFLRV9PUFRJT05TID0gZGlzdC1i emlwMgotKwotKyMgIFRFU1RfRElSID0gdGVzdAotK01BTl9ET0NfRElSID0gbWFuCi0rCi0rIyBN YWludGFpbmFuY2UgZmlsZXMKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluIGFj bG9jYWwubTQgY29uZmlndXJlIFwKLSsJCQljb25maWctaC5pbiBzaWMvc3RhbXAtaC5pbiBhdXRv Z2VuLnNoIGJvb3RzdHJhcAotKwotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkgPSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKLStFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkgPSBjb250cmliCi0rRVhUUkFfRElTVCA9IE1ha2VmaWxlLmNvbW1vbiAk KEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBBQ0tBR0VALm00Ci0rCi0rIyBC dWlsZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKLStTVUJESVJTID0gYnVpbGQgQFBBQ0tBR0VAICQo TUFOX0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQotKwotKyMgQ29uZmlndXJhdGlvbiBoZWxwZXJz Ci0rYmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCi0rcGtnY29uZmlnZGlyID0gJChsaWJk aXIpL3BrZ2NvbmZpZwotK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tBR0VALnBjCi0rbTRkYXRhZGly ID0gJChkYXRhZGlyKS9hY2xvY2FsCi0rbTRkYXRhX0RBVEEgPSBAUEFDS0FHRUAubTQKLSthbGw6 IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rYW0tLXJlZnJlc2g6Ci0rCUA6Ci0rJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsg ZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVw KikgXAotKwkgICAgICBlY2hvICcgY2QgJChzcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICc7 IFwKLSsJICAgICAgY2QgJChzcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBcCi0rCQkmJiBl eGl0IDA7IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwll Y2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgTWFrZWZpbGUnOyBc Ci0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBNYWtlZmls ZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmlu ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpj b25maWcuc3RhdHVzKikgXAotKwkgICAgZWNobyAnICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyc7 IFwKLSsJICAgICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1czs7IFwKLSsJICAqKSBcCi0rCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAk KGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNh YzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJJChTSEVMTCkgLi9jb25maWcu c3RhdHVzIC0tcmVjaGVjawotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpCi0rCWNkICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQotKyQoQUNMT0NBTF9N NCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQoc3JjZGlyKSAmJiAkKEFDTE9DQUwp ICQoQUNMT0NBTF9BTUZMQUdTKQotK3NvY2ktY29uZmlnOiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cyAkKHNyY2Rpcikvc29jaS1jb25maWcuaW4KLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAotK3NvY2kucGM6ICQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnBjLmluCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStzb2NpLnNwZWM6ICQodG9wX2J1aWxkZGly KS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9zb2NpLnNwZWMuaW4KLSsJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQAotK2luc3RhbGwtYmluU0NSSVBUUzog JChiaW5fU0NSSVBUUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQoYmluZGly KSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQoYmluZGlyKSIKLSsJQGxpc3Q9JyQoYmluX1ND UklQVFMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhl biBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBpZiB0ZXN0IC1mICQkZCQkcDsg dGhlbiBcCi0rCSAgICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSkn YDsgXAotKwkgICAgZWNobyAiICQoYmluU0NSSVBUX0lOU1RBTEwpICckJGQkJHAnICckKERFU1RE SVIpJChiaW5kaXIpLyQkZiciOyBcCi0rCSAgICAkKGJpblNDUklQVF9JTlNUQUxMKSAiJCRkJCRw IiAiJChERVNURElSKSQoYmluZGlyKS8kJGYiOyBcCi0rCSAgZWxzZSA6OyBmaTsgXAotKwlkb25l Ci0rCi0rdW5pbnN0YWxsLWJpblNDUklQVFM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBs aXN0PSckKGJpbl9TQ1JJUFRTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9YGVjaG8g IiQkcCIgfCBzZWQgJ3N8Xi4qL3x8OyQodHJhbnNmb3JtKSdgOyBcCi0rCSAgZWNobyAiIHJtIC1m ICckKERFU1RESVIpJChiaW5kaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKGJp bmRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1m ICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rZGlz dGNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiBsaWJ0b29sIGNvbmZpZy5sdAotK2luc3RhbGwtbTRk YXRhREFUQTogJChtNGRhdGFfREFUQSkKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXog IiQobTRkYXRhZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQobTRkYXRhZGlyKSIKLSsJ QGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBmPSQo YW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8gIiAkKG00ZGF0YURBVEFfSU5TVEFMTCkgJyQkZCQk cCcgJyQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmJyI7IFwKLSsJICAkKG00ZGF0YURBVEFfSU5T VEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmIjsgXAotKwlkb25lCi0r Ci0rdW5pbnN0YWxsLW00ZGF0YURBVEE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0 PSckKG00ZGF0YV9EQVRBKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGY9JChhbV9fc3Ry aXBfZGlyKSBcCi0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChtNGRhdGFkaXIpLyQkZici OyBcCi0rCSAgcm0gLWYgIiQoREVTVERJUikkKG00ZGF0YWRpcikvJCRmIjsgXAotKwlkb25lCi0r aW5zdGFsbC1wa2djb25maWdEQVRBOiAkKHBrZ2NvbmZpZ19EQVRBKQotKwlAJChOT1JNQUxfSU5T VEFMTCkKLSsJdGVzdCAteiAiJChwa2djb25maWdkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RE SVIpJChwa2djb25maWdkaXIpIgotKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQo c3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQo cGtnY29uZmlnREFUQV9JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnY29uZmlnZGly KS8kJGYnIjsgXAotKwkgICQocGtnY29uZmlnREFUQV9JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNU RElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnY29u ZmlnREFUQToKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQocGtnY29uZmlnX0RB VEEpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJ ICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikvJCRmJyI7IFwKLSsJICBy bSAtZiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSsjIFRo aXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91 IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3Vn aCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlh YmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFi bGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAg ICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4g eW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1 ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0r CUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJ ICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFp bGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1u bzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8gIk1ha2lu ZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7 IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwK LSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAk JGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJ aWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWls IgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsg XAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkg ICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwK LSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGlu IFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NV QkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0r CXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAot KwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8g JEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwK LSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZp OyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIk JGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1 cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VT KSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQo TElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwK LSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rp cikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAx OyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChp IGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFn czogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAg JChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9 OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZl cnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFn cy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9v cHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1 YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1Mg fHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJk aXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQk bGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBl Y2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmls ZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0 eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0IC16ICIk KEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4g IiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAkKEVUQUdT RkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRhZ3MgJCR1 bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1Mp JCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RB R1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RB R1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYg Y2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUK LSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1T IEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJJChhbV9fcmVtb3ZlX2Rp c3RkaXIpCi0rCXRlc3QgLWQgJChkaXN0ZGlyKSB8fCBta2RpciAkKGRpc3RkaXIpCi0rCUBzcmNk aXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9m aWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBz ZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNk aXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGlu IFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAg c2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNv cnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwK LSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2Ug ZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJ ICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8 IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRp cikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGly KS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBc Ci0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9T VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJk aXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAg IHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdk YDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2Rg OyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAg ICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06 IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0r CSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJLWZpbmQgJChkaXN0ZGly KSAtdHlwZSBkICEgLXBlcm0gLTc3NyAtZXhlYyBjaG1vZCBhK3J3eCB7fSBcOyAtbyBcCi0rCSAg ISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8g XAotKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwK LSsJICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1leGVjICQoaW5zdGFsbF9zaCkgLWMgLW0gYSty IHt9IHt9IFw7IFwKLSsJfHwgY2htb2QgLVIgYStyICQoZGlzdGRpcikKLStkaXN0LWd6aXA6IGRp c3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VO VikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0r ZGlzdC1iemlwMjogZGlzdGRpcgotKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwg YnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikK LSsKLStkaXN0LWx6bWE6IGRpc3RkaXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFy KSB8IGx6bWEgLTkgLWMgPiQoZGlzdGRpcikudGFyLmx6bWEKLSsJJChhbV9fcmVtb3ZlX2Rpc3Rk aXIpCi0rCi0rZGlzdC10YXJaOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1f X3RhcikgfCBjb21wcmVzcyAtYyA+JChkaXN0ZGlyKS50YXIuWgotKwkkKGFtX19yZW1vdmVfZGlz dGRpcikKLSsKLStkaXN0LXNoYXI6IGRpc3RkaXIKLSsJc2hhciAkKGRpc3RkaXIpIHwgR1pJUD0k KEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnNoYXIuZ3oKLSsJJChhbV9fcmVtb3ZlX2Rp c3RkaXIpCi0rCi0rZGlzdC16aXA6IGRpc3RkaXIKLSsJLXJtIC1mICQoZGlzdGRpcikuemlwCi0r CXppcCAtcnEgJChkaXN0ZGlyKS56aXAgJChkaXN0ZGlyKQotKwkkKGFtX19yZW1vdmVfZGlzdGRp cikKLSsKLStkaXN0IGRpc3QtYWxsOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQo YW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6Ci0r CXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGly KS50YXIuYnoyCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotKyMgVGhpcyB0YXJnZXQgdW50 YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4K LSsjIGl0IGd1YXJhbnRlZXMgdGhhdCB0aGUgZGlzdHJpYnV0aW9uIGlzIHNlbGYtY29udGFpbmVk IGJ5IG1ha2luZyBhbm90aGVyCi0rIyB0YXJmaWxlLgotK2Rpc3RjaGVjazogZGlzdAotKwljYXNl ICckKERJU1RfQVJDSElWRVMpJyBpbiBcCi0rCSoudGFyLmd6KikgXAotKwkgIEdaSVA9JChHWklQ X0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7XAotKwkq LnRhci5iejIqKSBcCi0rCSAgYnVuemlwMiAtYyAkKGRpc3RkaXIpLnRhci5iejIgfCAkKGFtX191 bnRhcikgOztcCi0rCSoudGFyLmx6bWEqKSBcCi0rCSAgdW5sem1hIC1jICQoZGlzdGRpcikudGFy Lmx6bWEgfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLloqKSBcCi0rCSAgdW5jb21wcmVzcyAt YyAkKGRpc3RkaXIpLnRhci5aIHwgJChhbV9fdW50YXIpIDs7XAotKwkqLnNoYXIuZ3oqKSBcCi0r CSAgR1pJUD0kKEdaSVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFy IDs7XAotKwkqLnppcCopIFwKLSsJICB1bnppcCAkKGRpc3RkaXIpLnppcCA7O1wKLSsJZXNhYwot KwljaG1vZCAtUiBhLXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQoZGlzdGRpcikKLSsJbWtkaXIg JChkaXN0ZGlyKS9fYnVpbGQKLSsJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAotKwljaG1vZCBhLXcg JChkaXN0ZGlyKQotKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2NkKSAkKGRpc3RkaXIpL19pbnN0 ICYmIHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdgIFwKLSsJICAmJiBkY19kZXN0 ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKLSsJICAmJiBjZCAkKGRpc3RkaXIp L19idWlsZCBcCi0rCSAgJiYgLi4vY29uZmlndXJlIC0tc3JjZGlyPS4uIC0tcHJlZml4PSIkJGRj X2luc3RhbGxfYmFzZSIgXAotKwkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdTKSBcCi0r CSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGR2aSBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sgXAotKwkg ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwgXAotKwkgICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGluc3RhbGxjaGVjayBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdW5pbnN0YWxsIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0dW5pbnN0 YWxsY2hlY2tfZGlyPSIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkgICAgICAgIGRpc3R1bmluc3Rh bGxjaGVjayBcCi0rCSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIgXAotKwkg ICYmICh7IFwKLSsJICAgICAgIChjZCAuLi8uLiAmJiB1bWFzayAwNzcgJiYgbWtkaXIgIiQkZGNf ZGVzdGRpciIpIFwKLSsJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9 IiQkZGNfZGVzdGRpciIgaW5zdGFsbCBcCi0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIHVuaW5zdGFsbCBcCi0rCSAgICAgICAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIFwKLSsJICAgICAgICAg ICAgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0YWxsY2hl Y2s7IFwKLSsJICAgICAgfSB8fCB7IHJtIC1yZiAiJCRkY19kZXN0ZGlyIjsgZXhpdCAxOyB9KSBc Ci0rCSAgJiYgcm0gLXJmICIkJGRjX2Rlc3RkaXIiIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBkaXN0IFwKLSsJICAmJiBybSAtcmYgJChESVNUX0FSQ0hJVkVTKSBcCi0rCSAgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdGNsZWFuY2hlY2sKLSsJJChhbV9fcmVtb3ZlX2Rp c3RkaXIpCi0rCUAoZWNobyAiJChkaXN0ZGlyKSBhcmNoaXZlcyByZWFkeSBmb3IgZGlzdHJpYnV0 aW9uOiAiOyBcCi0rCSAgbGlzdD0nJChESVNUX0FSQ0hJVkVTKSc7IGZvciBpIGluICQkbGlzdDsg ZG8gZWNobyAkJGk7IGRvbmUpIHwgXAotKwkgIHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAtZSAxcCAt ZSAxeCAtZSAnJCRwJyAtZSAnJCR4JwotK2Rpc3R1bmluc3RhbGxjaGVjazoKLSsJQGNkICQoZGlz dHVuaW5zdGFsbGNoZWNrX2RpcikgXAotKwkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxjaGVja19s aXN0ZmlsZXMpIHwgd2MgLWxgIC1sZSAxIFwKLSsJICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMg bGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKLSsJICAgICAgICBpZiB0ZXN0IC1uICIkKERFU1RE SVIpIjsgdGhlbiBcCi0rCSAgICAgICAgICBlY2hvICIgIChjaGVjayBERVNURElSIHN1cHBvcnQp IjsgXAotKwkgICAgICAgIGZpIDsgXAotKwkgICAgICAgICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xp c3RmaWxlcykgOyBcCi0rCSAgICAgICAgZXhpdCAxOyB9ID4mMgotK2Rpc3RjbGVhbmNoZWNrOiBk aXN0Y2xlYW4KLSsJQGlmIHRlc3QgJyQoc3JjZGlyKScgPSAuIDsgdGhlbiBcCi0rCSAgZWNobyAi RVJST1I6IGRpc3RjbGVhbmNoZWNrIGNhbiBvbmx5IHJ1biBmcm9tIGEgVlBBVEggYnVpbGQiIDsg XAotKwkgIGV4aXQgMSA7IFwKLSsJZmkKLSsJQHRlc3QgYCQoZGlzdGNsZWFuY2hlY2tfbGlzdGZp bGVzKSB8IHdjIC1sYCAtZXEgMCBcCi0rCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBp biBidWlsZCBkaXJlY3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCi0rCSAgICAgICAkKGRpc3Rj bGVhbmNoZWNrX2xpc3RmaWxlcykgOyBcCi0rCSAgICAgICBleGl0IDE7IH0gPiYyCi0rY2hlY2st YW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQo U0NSSVBUUykgJChEQVRBKQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStp bnN0YWxsZGlycy1hbToKLSsJZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVT VERJUikkKG00ZGF0YWRpcikiICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIjsgZG8gXAotKwkg IHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3Rh bGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1 bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFs bGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3Rj bGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0r CUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIK LSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xz IHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJt IC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwot K2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KLSsK LStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQoYW1fX0NPTkZJR19E SVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4t YW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFn cwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJl Y3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0 YWxsLWRhdGEtYW06IGluc3RhbGwtbTRkYXRhREFUQSBpbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsK LStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFt OiBpbnN0YWxsLWJpblNDUklQVFMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1 cnNpdmUKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5z dGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0r bWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mICQo YW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0rCS1ybSAtcmYgJCh0b3Bfc3JjZGlyKS9hdXRv bTR0ZS5jYWNoZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0 Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06 Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5p bnN0YWxsLWJpblNDUklQVFMgdW5pbnN0YWxsLWxvY2FsIFwKLSsJdW5pbnN0YWxsLW00ZGF0YURB VEEgdW5pbnN0YWxsLXBrZ2NvbmZpZ0RBVEEKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5f VEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3Ry aXAKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVj ay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1y ZWN1cnNpdmUgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKLSsJZGlzdC1nemlwIGRpc3QtbHpt YSBkaXN0LXNoYXIgZGlzdC10YXJaIGRpc3QtemlwIGRpc3RjaGVjayBcCi0rCWRpc3RjbGVhbiBk aXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBcCi0rCWRp c3RjbGVhbmNoZWNrIGRpc3RkaXIgZGlzdHVuaW5zdGFsbGNoZWNrIGR2aSBkdmktYW0gaHRtbCBc Ci0rCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWJpblND UklQVFMgXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW00ZGF0YURBVEEgaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBp bnN0YWxsLXBrZ2NvbmZpZ0RBVEEgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwtcHMtYW0gaW5zdGFs bC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5zdGFsbGRpcnMgaW5z dGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwg dW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1iaW5TQ1JJUFRTIHVuaW5zdGFsbC1sb2NhbCBcCi0rCXVu aW5zdGFsbC1tNGRhdGFEQVRBIHVuaW5zdGFsbC1wa2djb25maWdEQVRBCi0rCi0rQFNFVF9NQUtF QAotKwotKyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJcm0gLXJmICQoREVTVERJUikk KGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoKLSsJJChNQUtFKSAtQyBkb2Mg ZGlzdC1odG1sCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1sCi0rCi0r c25hcHNob3Qtc3JjOgotKyAgICAgICAgJChNQUtFKSBkaXN0IGRpc3RkaXI9QFBBQ0tBR0VfVEFS TkFNRUAtYGRhdGUgKyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0bWw6Ci0rCSQoTUFLRSkgLUMg ZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtYGRh dGUgKyIlWSVtJWQiYAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1cGxvYWQtaHRtbAotKwotK3Vw bG9hZC1zcmM6IGRpc3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1AVkVS U0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZFUlNJT05ALnRhci5iejIKLSsK LSt1cGxvYWQtaHRtbDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQQUNLQUdFX1RBUk5BTUVALWh0 bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBP UlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmFtIHNvY2ktMy4w LjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9tYW4vTWFr ZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDQgQEAKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0gc29jaS1j b25maWcuMQotKwotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxl LmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmls ZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0NDEg QEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtl ZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBh bmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBh cyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdp dGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0r VlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRl ZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRI X1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAt bSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9z aF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExf REFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lO U1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9V TklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLSti dWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK3N1YmRpciA9 IG1hbgotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtl ZmlsZS5pbgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNs b2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUu bTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFt X19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9D QUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVS ID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQot K1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rbWFuMWRpciA9ICQobWFuZGlyKS9tYW4xCi0r YW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKG1hbjFkaXIpIgotK05ST0ZGID0gbnJvZmYK LStNQU5TID0gJChtYW5fTUFOUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAK LStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStB VVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0g QEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9M SUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09T VF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFN U19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dSQU1fT1BUSU9O U19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBA Qk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklB TElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAot K0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9W RVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBN T0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBG TEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJ RyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQ UFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAg PSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhG TEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIg PSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAK LStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9f VEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQ QAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAot K0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElO U1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RB TExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJ TlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAot K0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09M QAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JK U0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxf Q0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxfQ09ORklHQAot K01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1ZU1FMX0xERkxB R1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJ VCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0r T1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xF X09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AK LStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9U T09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FH RV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tB R0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RB Uk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZF UlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJM QAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdS RVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NU R1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lP TiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStSUE1fUkVMRUFT RSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAot K1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JV UklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNR TF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBV UExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFi c19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRp ciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGly QAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAK LStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRf b3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRp ckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0r ZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0r ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBo b3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAK LStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRt bGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0g QGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4 X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAot K2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtk aXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRp ckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJA Ci0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK LStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKLSsKLSsjIE1hbiBwYWdlcwotK21hbl9NQU5TID0gc29jaS1jb25maWcuMQotK0VY VFJBX0RJU1QgPSAkKG1hbl9NQU5TKQotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKyQo c3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmln dXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAg ICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBc Ci0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNk ICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIG1hbi9NYWtlZmlsZSc7IFwKLSsJ Y2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1nbnUgIG1hbi9NYWtlZmls ZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmlu ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpj b25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7 OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQo dG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNM T0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK21vc3RseWNsZWFuLWxp YnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGli cyBfbGlicwotK2luc3RhbGwtbWFuMTogJChtYW4xX01BTlMpICQobWFuX01BTlMpCi0rCUAkKE5P Uk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKG1hbjFkaXIpIiB8fCAkKE1LRElSX1ApICIkKERF U1RESVIpJChtYW4xZGlyKSIKLSsJQGxpc3Q9JyQobWFuMV9NQU5TKSAkKGRpc3RfbWFuMV9NQU5T KSAkKG5vZGlzdF9tYW4xX01BTlMpJzsgXAotKwlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9N QU5TKSAkKG5vZGlzdF9tYW5fTUFOUyknOyBcCi0rCWZvciBpIGluICQkbDI7IGRvIFwKLSsJICBj YXNlICIkJGkiIGluIFwKLSsJICAgICouMSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAt ZiAkJGk7IHRoZW4gZmlsZT0kJGk7IFwKLSsJICBlbHNlIGZpbGU9JChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBleHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxcLi8vJ2A7IFwKLSsJICBjYXNl ICIkJGV4dCIgaW4gXAotKwkgICAgMSopIDs7IFwKLSsJICAgICopIGV4dD0nMScgOzsgXAotKwkg IGVzYWM7IFwKLSsJICBpbnN0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9cXC5bMC05YS16XSokJC8v J2A7IFwKLSsJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKLSsJ ICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKLSsJICBl Y2hvICIgJChJTlNUQUxMX0RBVEEpICckJGZpbGUnICckKERFU1RESVIpJChtYW4xZGlyKS8kJGlu c3QnIjsgXAotKwkgICQoSU5TVEFMTF9EQVRBKSAiJCRmaWxlIiAiJChERVNURElSKSQobWFuMWRp cikvJCRpbnN0IjsgXAotKwlkb25lCi0rdW5pbnN0YWxsLW1hbjE6Ci0rCUAkKE5PUk1BTF9VTklO U1RBTEwpCi0rCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3Rf bWFuMV9NQU5TKSc7IFwKLSsJbDI9JyQobWFuX01BTlMpICQoZGlzdF9tYW5fTUFOUykgJChub2Rp c3RfbWFuX01BTlMpJzsgXAotKwlmb3IgaSBpbiAkJGwyOyBkbyBcCi0rCSAgY2FzZSAiJCRpIiBp biBcCi0rCSAgICAqLjEqKSBsaXN0PSIkJGxpc3QgJCRpIiA7OyBcCi0rCSAgZXNhYzsgXAotKwlk b25lOyBcCi0rCWZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgIGV4dD1gZWNobyAkJGkgfCBzZWQg LWUgJ3MvXi4qXFwuLy8nYDsgXAotKwkgIGNhc2UgIiQkZXh0IiBpbiBcCi0rCSAgICAxKikgOzsg XAotKwkgICAgKikgZXh0PScxJyA7OyBcCi0rCSAgZXNhYzsgXAotKwkgIGluc3Q9YGVjaG8gJCRp IHwgc2VkIC1lICdzL1xcLlswLTlhLXpdKiQkLy8nYDsgXAotKwkgIGluc3Q9YGVjaG8gJCRpbnN0 IHwgc2VkIC1lICdzL14uKlwvLy8nYDsgXAotKwkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkICck KHRyYW5zZm9ybSknYC4kJGV4dDsgXAotKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQobWFu MWRpcikvJCRpbnN0JyI7IFwKLSsJICBybSAtZiAiJChERVNURElSKSQobWFuMWRpcikvJCRpbnN0 IjsgXAotKwlkb25lCi0rdGFnczogVEFHUwotK1RBR1M6Ci0rCi0rY3RhZ3M6IENUQUdTCi0rQ1RB R1M6Ci0rCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJ ZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAg Y3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0 IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkg ICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0 IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVj ay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChNQU5TKQotK2luc3RhbGxkaXJzOgotKwlmb3IgZGly IGluICIkKERFU1RESVIpJChtYW4xZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwg JChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5z dGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1h bQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0r Ci0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAot KwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGlu c3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlz dGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJt IC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK LSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdl bmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNs ZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1s LWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFt OiBpbnN0YWxsLW1hbgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3Rh bGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3Rh bGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46IGluc3RhbGwtbWFuMQot KwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwt cHMtYW0KLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRh aW5lci1jbGVhbi1hbQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBk aXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1v c3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBw cy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgotKwotK3Vu aW5zdGFsbC1tYW46IHVuaW5zdGFsbC1tYW4xCi0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFs bC1zdHJpcAotKwotKy5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVh bi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGlu Zm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1k YXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZv IGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAotKwlpbnN0YWxsLXBk ZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0 cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFp bmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3Rs eWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwK LSsJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCi0r Ci0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNv bmZpZy4xCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3Nv Y2ktY29uZmlnLjEJMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsMzkgQEAKLSsuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5IgotKy5TSCBOQU1FCi0rc29jaS1j b25maWcgLSBzY3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBv ZiB0aGUgaW5zdGFsbGVkIFNPQ0kgbGlicmFyeQotKy5TSCBTWU5PUFNJUwotKy5CIHNvY2ktY29u ZmlnCi0rW1wtXC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3Nd Ci0rLlNIIERFU0NSSVBUSU9OCi0rLlBQCi0rXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRo YXQgaXMgdXNlZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCi0rdGhlIGNvbXBpbGVyIGFuZCBs aW5rZXIgZmxhZ3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCi0rYW5kIGxpbmsgcHJv Z3JhbXMgdGhhdCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKLSt0 byB0aGUgLm00IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGgg XGZJU09DSVxmUC4KLSsuCi0rLlNIIE9QVElPTlMKLSsubAotK1xmSXNvY2ktY29uZmlnXGZQIGFj Y2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgotKy5UUCA4Ci0rLkIgIFwtXC12ZXJzaW9uCi0r UHJpbnQgdGhlIGN1cnJlbnRseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBcZklTT0NJXGZQIG9uIHRo ZSBzdGFuZGFyZCBvdXRwdXQuCi0rLlRQIDgKLSsuQiAgXC1cLWxpYnMKLStQcmludCB0aGUgbGlu a2VyIGZsYWdzIHRoYXQgYXJlIG5lY2Vzc2FyeSB0byBsaW5rIGEgXGZJU09DSVxmUCBwcm9ncmFt LCB3aXRoIGNibGFzCi0rLlRQIDgKLSsuQiAgXC1cLWNmbGFncwotK1ByaW50IHRoZSBjb21waWxl ciBmbGFncyB0aGF0IGFyZSBuZWNlc3NhcnkgdG8gY29tcGlsZSBhIFxmSVNPQ0lcZlAgcHJvZ3Jh bS4KLSsuVFAgOAotKy5CICBcLVwtcHJlZml4Ci0rU2hvdyB0aGUgU09DSSBpbnN0YWxsYXRpb24g cHJlZml4LgotKy5TSCBTRUUgQUxTTwotKy5CUiBndGstY29uZmlnICgxKSwKLSsuQlIgZ25vbWUt Y29uZmlnICgxKQotKy5TSCBDT1BZUklHSFQKLStDb3B5cmlnaHQgXChjbyAgMjAwOSBEZW5pcyBB cm5hdWQKLSsKLStQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0 ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKLStkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBh bmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCi0rcHJvdmlkZWQgdGhhdCB0aGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdAotK2JvdGgg dGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBp bgotK3N1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9ORVdTIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdTCi0tLS0gc29jaS0zLjAuMF80LXBhY2svTkVX UwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9ORVdTCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDMgQEAKLSsKLSsqIFdlZCBNYXIgMjYgMjAwOSBSUE0gcmVsZWFzZSBmb3IgdmVyc2lvbiAzLjAu MAotKwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv TWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsOSBAQAotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLSsjIyBT b3VyY2UgZGlyZWN0b3J5Ci0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgot KwotK1NVQkRJUlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJT QAotKwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZp bGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsNTQ3IEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0 b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwot KyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBP U0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChk YXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtn aW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIk JHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFU QSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0 YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RB TExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1Rf SU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0r UE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBs ZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRp ciA9IHNvY2kvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00 Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9z dGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRv cHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9k ZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwK LSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFO X0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRT ID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwt cmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0 YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRt bC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vy c2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxj aGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlw cy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT ID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4t cmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rRVRBR1MgPSBldGFncwotK0NU QUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChE SVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStB Q0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NP TkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0g QEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AK LStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklM RVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJ QiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStC T09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0r Qk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9O X0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBC T09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJA Ci0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0r Q0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBA Ci0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxB R1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0g QENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NY WCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVA Ci0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZT ID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStE VU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19O QAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVY VEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklD X0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAot K0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RB TExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxM X1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xE RkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAot K0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xU TElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9 IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklH ID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERG TEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAK LStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStP QkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9P Q0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBP UkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVS U0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9 IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BB Q0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9T VFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZF UlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJB VE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVT UUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NU R1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AK LStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBS QU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRf TUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0r VVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAot K2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGly QAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2Rp ciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFgg PSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5j bHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90 QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191 bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAK LStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAot K2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0r YnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGly ID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGly QAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBz X29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0g QGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9z dF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0g QGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1 ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAK LStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIg PSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIg PSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRp ckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGly QAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0r c2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIg PSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5 c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJl Zml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAK LSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxk ZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu Ci0rU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNA Ci0rRVhUUkFfRElTVCA9IAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/ OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRk ZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhl biBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFL RSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3NyY2Rpcikg JiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL01ha2VmaWxlCi0rLlBS RUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5z dGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJ ZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000 KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoK LSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJz Ci0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBl bmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdv aW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBt YWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYg dGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0 dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVy YXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRl c2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RB UkdFVFMpOgotKwlAZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdT OyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAg ICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBl Y2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlk b25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3Qg LXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209 J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRm IGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWls PXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNh c2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9 JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJ ZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAk JHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFy Z2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQk cmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYg dGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0r Y3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMp ICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVu aXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQ KQotKwl0YWdzPTsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWlu Y2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0 aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkg IGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwK LSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1 YmRpci9UQUdTIHx8IFwKLSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRo ZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYg dGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFH UykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAg JCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJl Y3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJ CSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChD VEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdT KSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1 ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAg XAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJH UykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdS VEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNk aXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlte JCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9m aWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBz ZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNk aXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGlu IFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAg c2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNv cnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwK LSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2Ug ZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJ ICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8 IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRp cikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGly KS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBc Ci0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9T VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJk aXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAg IHx8IGV4aXQgMTsgXAotKwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdk YDsgXAotKwkgICAgdG9wX2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2Rg OyBcCi0rCSAgICAoY2QgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAg ICBkaXN0ZGlyPSIkJGRpc3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06 IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0r CSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFt Ci0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGly czogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0raW5zdGFsbDogaW5z dGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStp bnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFs bC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6 IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAot KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLStt b3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdl bmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4t YW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3Rj bGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4t YW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBk dmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0r aW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbToK LSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1leGVj LWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3Rh bGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2lu c3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFu OiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFp bmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0r bW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1 cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwot K3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgaW5zdGFsbC1hbSBcCi0rCWluc3RhbGwtc3RyaXAKLSsKLSsuUEhP Tlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdT IEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmlj IGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3Rj bGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRp ciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3Rh bGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwg aW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxs LW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0r CXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rIyBUZWxsIHZlcnNpb25z IFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsj IE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNl ZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9teXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL2NvbW1vbi5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3Fs L2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCTIwMDktMDUtMjIg MjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtNiw3ICs2LDEzIEBACi0gLy8KLSAKLSAjaW5j bHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgInNvY2ktYmFja2VuZC5oIgotKy8vCi0rI2lmIGRl ZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z b2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2Vu ZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLSAjaW5j bHVkZSA8Y3RpbWU+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9N YWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFr ZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIy OjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyNiBAQAotKyMjIGJhY2tlbmRzL215 c3FsIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u Ci0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0raWYgSEFWRV9NWVNRTAot K2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9teXNxbC5sYQotKwotK2xpYnNvY2lfbXlzcWxfbGFf U09VUkNFUz0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJja19teXNxbF9jY19zb3VyY2VzKSAK LStsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTID0gJChNWVNRTF9DRkxBR1MpCi0rbGlic29jaV9t eXNxbF9sYV9MSUJBREQgPQotK2xpYnNvY2lfbXlzcWxfbGFfTERGTEFHUyA9IFwKLSsJJChCT09T VF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QikgXAotKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rCi0rcGtn aW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2kt bXlzcWwuaAotK2VuZGlmCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwKLStlbHNlCi0rc29jaV9pbmNs dWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStlbmRpZgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lf aW5jbHVkZV9kaXIpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNx bC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlz cWwvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5iYXNpYwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTcgKzAsMCBAQAotLSMg VGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQg dGhlaXIgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50 IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1NWVNRTExJQkRJUiA9IC1M L3Vzci9saWIvbXlzcWwKLS1NWVNRTExJQlMgPSAtbG15c3FsY2xpZW50IC1segotLU1ZU1FMSU5D TFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFr ZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01Q SUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0t Q1hYRkxBR1NTTyA9ICR7Q1hYRkxBR1N9IC1mUElDCi0tSU5DTFVERURJUlMgPSAtSS4uLy4uL2Nv cmUgJHtNWVNRTElOQ0xVREVESVJ9Ci0tCi0tCi0tT0JKRUNUUyA9IGJsb2IubyBmYWN0b3J5Lm8g cm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwKLS0Jc3RhbmRhcmQtdXNl LXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVjdG9yLXVzZS10eXBlLm8g XAotLQljb21tb24ubwotLQotLQotLU9CSkVDVFNTTyA9IGJsb2Itcy5vIGZhY3Rvcnktcy5vIHJv dy1pZC1zLm8gc2Vzc2lvbi1zLm8gXAotLQlzdGFuZGFyZC1pbnRvLXR5cGUtcy5vIHN0YW5kYXJk LXVzZS10eXBlLXMubyBzdGF0ZW1lbnQtcy5vIFwKLS0JdmVjdG9yLWludG8tdHlwZS1zLm8gdmVj dG9yLXVzZS10eXBlLXMubyBjb21tb24tcy5vCi0tCi0tCi0tbGlic29jaV9teXNxbC5hIDogJHtP QkpFQ1RTfQotLQlhciBydiAkQCAkPwotLQlybSAqLm8KLS0KLS0KLS1ibG9iLm8gOiBibG9iLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWNv bW1vbi5vIDogY29tbW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLWZhY3RvcnkubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLm8gOiByb3ctaWQuY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vz c2lvbi5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlw ZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1zdGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBz dGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtD T01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNl LXR5cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zaGFyZWQgOiAke09CSkVDVFNTT30KLS0JJHtDT01Q SUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX215c3FsLnNvICR7T0JKRUNUU1NPfQotLQlybSAqLm8K LS0KLS1ibG9iLXMubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hY RkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1jb21tb24tcy5vIDogY29tbW9uLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t ZmFjdG9yeS1zLm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NY WEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLXMubyA6IHJvdy1pZC5jcHAKLS0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQot LXNlc3Npb24tcy5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS1zLm8gOiBz dGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxB R1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFuZGFy ZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09N UElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0 b3ItaW50by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5 cGUtcy5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAk e0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiBsaWJz b2NpX215c3FsLmEgbGlic29jaV9teXNxbC5zbwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUu aW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODA3IEBA Ci0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZp bGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5k L29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMg bG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRo b3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwot KwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK LStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHta U0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9 ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxs X3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExf SEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9y bV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5T VEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9T VF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQg PSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAk KHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIp L3NvdXJjZXMubWsgXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9 IHNvY2kvYmFja2VuZHMvbXlzcWwKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0 Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf cG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3Vy ZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMp IFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0r Q09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NM RUFOX0ZJTEVTID0KLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4g XAotKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJp cC98fCJgOzsgXAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9 IGBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbGRpcnMgPSAiJChE RVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotK2xpYkxUTElC UkFSSUVTX0lOU1RBTEwgPSAkKElOU1RBTEwpCi0rTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJB UklFUykKLStsaWJzb2NpX215c3FsX2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xpYnNvY2lfbXlz cWxfbGFfU09VUkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2NvbW1vbi5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2kt bXlzcWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCBc Ci0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rYW1fX29iamVjdHNfMSA9 Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBsaWJzb2NpX215c3Fs X2xhLWNvbW1vbi5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbyBsaWJzb2NpX215 c3FsX2xhLXJvdy1pZC5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBcCi0rCWxp YnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9teXNxbF9s YS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCi0rCWxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50Lmxv IFwKLSsJbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9t eXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8KLStASEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lf bXlzcWxfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgXAotK0BIQVZFX01ZU1FMX1RSVUVA CSQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX215c3FsX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNv Y2lfbXlzcWxfbGFfT0JKRUNUUykKLStsaWJzb2NpX215c3FsX2xhX0xJTksgPSAkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIFwKLSsJJChsaWJzb2NpX215c3FsX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKLStA SEFWRV9NWVNRTF9UUlVFQGFtX2xpYnNvY2lfbXlzcWxfbGFfcnBhdGggPSAtcnBhdGggJChsaWJk aXIpCi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikv c29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0r YW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChM SUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENY WEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENY WExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZM QUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykg JChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksgPSAkKExJ QlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwkt LW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBc Ci0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX215c3FsX2xhX1NPVVJD RVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTX0RJU1Qp Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmkt cmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRh LXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJz aXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwK LSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVj dXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUg cGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rYW1f X3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3NvY2ktbXlzcWwuaAotK3BrZ2luY2x1ZGVIRUFERVJTX0lOU1RBTEwgPSAkKElO U1RBTExfSEVBREVSKQotK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLStSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJ XAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VU QUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQot K0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAk KEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLStBQ0xP Q0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYg PSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFV VE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0r Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0r Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA Ci0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9 IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0r Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0g QERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1Q QklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxB R1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJ QlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBN S0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0g QE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFH UyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAK LStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAot K3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2Jp bmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKLStiY2tfbXlzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLSsKLStiY2tfbXlzcWxf Y2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv ZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw Ci0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSAuIHRl c3QKLStASEFWRV9NWVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfbXlzcWwubGEK LStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFfU09VUkNFUyA9ICQoYmNrX215c3Fs X2hfc291cmNlcykgJChiY2tfbXlzcWxfY2Nfc291cmNlcykgCi0rQEhBVkVfTVlTUUxfVFJVRUBs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTID0gJChNWVNRTF9DRkxBR1MpCi0rQEhBVkVfTVlTUUxf VFJVRUBsaWJzb2NpX215c3FsX2xhX0xJQkFERCA9IAotK0BIQVZFX01ZU1FMX1RSVUVAbGlic29j aV9teXNxbF9sYV9MREZMQUdTID0gXAotK0BIQVZFX01ZU1FMX1RSVUVACSQoQk9PU1RfTElCUykg JChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLStA SEFWRV9NWVNRTF9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04p Ci0rCi0rQEhBVkVfTVlTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCi0rQFNPQ0lfSEVBREVSU19CVVJJRURf RkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStAU09DSV9IRUFERVJTX0JV UklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAu Y3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2Vm aWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1r ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBc Ci0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2Jh Y2tlbmRzL215c3FsL01ha2VmaWxlJzsgXAotKwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAk KEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQotKy5QUkVDSU9V UzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVz KikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7 Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGli X0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIp IiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRM SUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRo ZW4gXAotKwkgICAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICAgIGVjaG8gIiAkKExJQlRPT0wp ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJM VExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJyQkcCcgJyQoREVTVERJ UikkKGxpYmRpcikvJCRmJyI7IFwKLSsJICAgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwp ICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAiJCRwIiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBc Ci0rCSAgZWxzZSA6OyBmaTsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVT OgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgcD0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hv ICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11 bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRwJyI7IFwKLSsJICAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBy bSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJHAiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1saWJM VExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChs aWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2Ai OyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0g LWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xv Y2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfbXlzcWwubGE6ICQobGlic29jaV9teXNxbF9s YV9PQkpFQ1RTKSAkKGxpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2Np X215c3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCkgJChsaWJzb2NpX215 c3FsX2xhX09CSkVDVFMpICQobGlic29jaV9teXNxbF9sYV9MSUJBREQpICQoTElCUykKLSsKLStt b3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4t Y29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXNlc3Npb24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X215c3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19x dW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAk QCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUp IC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhf VykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1m ICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rbGlic29j aV9teXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxv Yi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf bXlzcWxfbGEtYmxvYi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1i bG9iLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvICQoREVQ RElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9i LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEt YmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2Iu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvYmxvYi5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIG9iamVjdD0n bGlic29jaV9teXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1v bi5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtZmFjdG9yeS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1mYWN0b3J5 LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9mYWN0b3J5LmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX215 c3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93 LWlkLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9t eXNxbF9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIG9i amVjdD0nbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215 c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXNlc3Np b24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9u LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Nlc3Npb24uY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1p bnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1z dGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2Ut dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5U cG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11 c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlz cWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3Rh dGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt c3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0 PSdsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1l bnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1l bnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlw ZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215 c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29j aV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rCi0rbGlic29jaV9teXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt dmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xh LXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rCi0rbW9zdGx5 Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0g LXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRl X0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVk aXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJQGxpc3Q9 JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgZj0k KGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxM KSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKLSsJICAkKHBr Z2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6Ci0r CUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8g IiBybSAtZiAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKLSsJICBybSAtZiAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFp bGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2Fz ZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwK LSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0 YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVu IFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1h bSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAg Zmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2Nh bF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRl c3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsK LSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJ Zm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9 KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0r CSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJT KScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9 Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBm aTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwg c2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAot KwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAot KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWls IgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZl OgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChM SVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRB R1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAot KwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5j bHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9u PS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwK LSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RB R1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFH U19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVu aXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdT KSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVl OyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykg JChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFn cyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxB R1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgot KwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQo dG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0r ZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFU SCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJ ZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAg Y3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0 IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkg ICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0 IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8 ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAot KwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgdG9w X2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAoY2Qg JCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAg ICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJGRp c3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lw X2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQg MTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNr LXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQot K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLSsJ Zm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwK LSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl Ci0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFt Ci0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRh LWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1z dHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5l cmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFu LXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElCUkFS SUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlz dGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdl bmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2 aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZl Ci0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCi0rCi0raW5zdGFsbC1odG1sOiBpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJz aXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNo ZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl Ci0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1j bGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3Rs eWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJz aXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxs LXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wg Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1w ZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKLSsJaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAotKwlpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAotKwltb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0r CXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCi0rCXVuaW5zdGFs bC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStAU0VUX01B S0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBv cnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1Yg YXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJMjAwOS0wNS0yMyAxMzozNzow OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9zb2NpLW15c3FsLmgJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBA IC0yMywxMiArMjMsMjMgQEAKLSAjaWZuZGVmIFNPQ0lfTVlTUUxfREVDTAotICMgZGVmaW5lIFNP Q0lfTVlTUUxfREVDTAotICNlbmRpZgotLQotLSNpbmNsdWRlICJzb2NpLWJhY2tlbmQuaCIKLSsv LwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2Vu ZC5oPgotKyNlbmRpZgotKy8vCi0gI2lmZGVmIF9XSU4zMgotICNpbmNsdWRlIDx3aW5zb2NrLmg+ IC8vIFNPQ0tFVAotICNlbmRpZiAvLyBfV0lOMzIKLS0jaW5jbHVkZSA8bXlzcWwuaD4gLy8gTXlT UUwgQ2xpZW50Ci0rLy8KLSsvLyBNeVNRTCBDbGllbnQKLSsjaWYgZGVmaW5lZChTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8bXlzcWwvbXlzcWwuaD4KLSsjZWxz ZQotKyMJaW5jbHVkZSA8bXlzcWwuaD4KLSsjZW5kaWYKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAot IAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNl cy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCi0t LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwxNCBAQAotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotK2Jja19t eXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9jb21tb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvcm93LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAw MDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAy MDAKLUBAIC04LDggKzgsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2lu Y2x1ZGUgInNvY2ktbXlzcWwuaCIKLS0jaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotICNpbmNs dWRlICJjb21tb24uaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlp bmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0 Nj4KLSAjaW5jbHVkZSA8Y2Fzc2VydD4KLSAjaW5jbHVkZSA8Y3RpbWU+Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJ MjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDcgKzksMTIgQEAKLSAj ZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5j bHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotKyNpZiBk ZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv c29jaS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0r I2VuZGlmCi0gLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8bGltaXRzPgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmls ZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl LmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIy IDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxOCBAQAotKyMjIGJhY2tlbmQv bXlzcWwvdGVzdCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xF QU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0raWYgUlVOX1RFU1RTCi0rICBub2luc3RfUFJPR1JB TVMgPSB0ZXN0X215c3FsCi0rZW5kaWYKLSsKLSt0ZXN0X215c3FsX1NPVVJDRVMgPSAkKG15c3Fs X3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X215c3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1Mp Ci0rdGVzdF9teXNxbF9MREFERCA9Ci0rdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRk aXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkkKHRvcF9idWlsZGRpcikv c29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKLSsJCSQoTVlTUUxfTERGTEFH UykKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJj ZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rl c3QvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAy MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMiAr MCwwIEBACi0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3BlY2lmaWMgdG8gdGhpcyBi YWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIg ZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU1ZU1FM TElCRElSID0gLUwvdXNyL2xpYi9teXNxbAotLU1ZU1FMTElCUyA9IC1sbXlzcWxjbGllbnQgLWx6 Ci0tTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwKLS0KLS0jIFRoZSByZXN0 IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50 LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1s b25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlICR7TVlTUUxJTkNM VURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAke01ZU1FMTElCRElSfQot LUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfbXlzcWwgLWxkbCAke01ZU1FMTElCU30KLS0KLS0K LS10ZXN0LW15c3FsIDogdGVzdC1teXNxbC5jcHAKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4g OgotLQlybSAtZiB0ZXN0LW15c3FsCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDUyNCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTAu MiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdo dCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BT RVRfTUFLRUAKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikv QFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVk aXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZF UlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGlu c3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkg LWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURF UiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwg PSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5J TlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhv c3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2Vm aWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KLStAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BST0dSQU1TID0gdGVzdF9teXNxbCQoRVhF RVhUKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdAotK0FDTE9DQUxfTTQgPSAk KHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNx bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09O RklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9 ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kv Y29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK1BST0dSQU1TID0gJChub2luc3RfUFJP R1JBTVMpCi0rYW1fX29iamVjdHNfMSA9IHRlc3RfbXlzcWwtdGVzdC1teXNxbC4kKE9CSkVYVCkK LSthbV90ZXN0X215c3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCi0rdGVzdF9teXNxbF9P QkpFQ1RTID0gJChhbV90ZXN0X215c3FsX09CSkVDVFMpCi0rdGVzdF9teXNxbF9ERVBFTkRFTkNJ RVMgPQotK3Rlc3RfbXlzcWxfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3Rf bXlzcWxfQ1hYRkxBR1MpIFwKLSsJJChDWFhGTEFHUykgJCh0ZXN0X215c3FsX0xERkxBR1MpICQo TERGTEFHUykgLW8gJEAKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9w X2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmln L2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK0NYWENPTVBJTEUgPSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENP TVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9k ZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykg XAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQot K0RJU1RfU09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0VUQUdTID0gZXRhZ3MKLStD VEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIg PSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0r Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAot K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0g QEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JF R0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9U SFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9 IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VS SUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStD RkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0r Q1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQ VU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZF UlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQ UEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0r Q1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJ UkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19D ID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdS RVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0g QEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBP ID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFL RUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9 IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9E SVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01Z U1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1F RElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9E SVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZM QUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xF X09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStP VE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA Ci0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAot K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19D T05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBN X1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9 IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0r U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAot K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19j dF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBC SU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9f bGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVA Ci0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGly ID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlh c0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1 aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0 YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sg PSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9v a0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJl Zml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLSto b3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9v cyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBA aHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGly QAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLSts aWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIg PSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hP ID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0r b2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJl Zml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNm b3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9v ayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGly ID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0g QHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0r dG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJA Ci0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStteXNx bF90ZXN0X2hfc291cmNlcyA9IAotK215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotK3Rlc3RfbXlzcWxfU09VUkNFUyA9ICQobXlzcWxfdGVz dF9jY19zb3VyY2VzKQotK3Rlc3RfbXlzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKLSt0 ZXN0X215c3FsX0xEQUREID0gCi0rdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCi0rCQkkKHRvcF9idWlsZGRpcikvc29j aS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwKLSsJCSQoTVlTUUxfTERGTEFHUykK LSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5v IC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29u ZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29u ZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkg ICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9 OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAn IGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRP TUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZQotKy5QUkVDSU9V UzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxk ZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVz KikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxl c19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25m aWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7 Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmln dXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2Rpcikv Y29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAk KGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlA bGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj1g ZWNobyAkJHB8c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAotKwkgIGVjaG8gIiBybSAtZiAkJHAg JCRmIjsgXAotKwkgIHJtIC1mICQkcCAkJGYgOyBcCi0rCWRvbmUKLSt0ZXN0X215c3FsJChFWEVF WFQpOiAkKHRlc3RfbXlzcWxfT0JKRUNUUykgJCh0ZXN0X215c3FsX0RFUEVOREVOQ0lFUykgCi0r CUBybSAtZiB0ZXN0X215c3FsJChFWEVFWFQpCi0rCSQodGVzdF9teXNxbF9MSU5LKSAkKHRlc3Rf bXlzcWxfT0JKRUNUUykgJCh0ZXN0X215c3FsX0xEQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xl YW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6 Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5Qb0BhbV9fcXVvdGVACi0rCi0r LmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQg LU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5v IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSsu Y3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1E IC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQq LlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmpl Y3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkg LWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQq LlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK3Rlc3RfbXlzcWwtdGVzdC1t eXNxbC5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3Fs LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNx bF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vIC1NRCAt TVAgLU1GICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvIC1jIC1vIHRlc3RfbXlz cWwtdGVzdC1teXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5UcG8gJChERVBE SVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215c3FsLXRlc3QtbXlzcWwubycgbGlidG9vbD1u byBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA Ci0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv dGVzdC90ZXN0LW15c3FsLmNwcAotKwotK3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmo6ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiAtTUQgLU1QIC1NRiAkKERF UERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlz cWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICck KHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNx bC5jcHAnOyBmaWAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5Qbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215 c3FsLXRlc3QtbXlzcWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0 ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVs c2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBmaWAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgot Kwktcm0gLWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMK LSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwK LSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVS UykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAk KExJU1ApCi0rCXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXog IiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAt biAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAk JHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNP VVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkK LSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1 ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENU QUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1g JChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiBjZCAkKHRvcF9zcmNk aXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVyZQotKwotK2Rpc3RjbGVh bi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwot KwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBl Y2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJ bGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlz dDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlw L3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGly KS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1Ap IGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3Rk aXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwK LSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUg fHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkg IGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUi IHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2Rpcikv JCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1wUiAk KHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICAgIGZpOyBc Ci0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0r CSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGNw IC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0r CSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSth bGwtYW06IE1ha2VmaWxlICQoUFJPR1JBTVMpCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5z dGFsbC1hbQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBp bnN0YWxsLWRhdGEtYW0KLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06 IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1z dHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5l cmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFu LWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2lu c3RQUk9HUkFNUyBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4t YW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4t YW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlz dGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1s LWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFt OgotKwotK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZXhlYy1hbToK LSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwtaW5mbzogaW5z dGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwt cGRmLWFtCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGxjaGVjay1h bToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYg Li8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlz dGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0 bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3Rs eWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0K LSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFt OgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IENUQUdT IEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0r CWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJ ZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAot KwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5m by1hbSBcCi0rCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCi0rCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGlu c3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCi0rCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGlu c3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCi0rCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAotKwlwZGYgcGRmLWFtIHBzIHBz LWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQotKwotK0BTRVRfTUFLRUAKLSsKLSsjbm9k aXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJjZXMpCi0rIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsMiBAQAotK215c3FsX3Rlc3RfaF9zb3VyY2VzID0KLStteXNxbF90ZXN0X2NjX3Nv dXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3Fs LmNwcAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC90ZXN0LW15c3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICsw MjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0 LW15c3FsLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTYsOSAr NiwxNyBAQAotIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKLSAvLwot IAotLSNpbmNsdWRlICJzb2NpLmgiCi0tI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLS0jaW5jbHVk ZSAidGVzdC9jb21tb24tdGVzdHMuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19C VVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5j bHVkZSA8c29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmg+Ci0rIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29j aS5oPgotKyMJaW5jbHVkZSA8c29jaS1teXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8dGVzdC9j b21tb24tdGVzdHMuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVhbT4KLSAjaW5j bHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSA8c3RyaW5nPgotQEAgLTE4LDggKzI2LDE0IEBACi0g I2luY2x1ZGUgPGN0aW1lPgotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNpbmNsdWRlIDxjc3RkbGli PgotLSNpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KLS0jaW5jbHVkZSA8ZXJybXNnLmg+Ci0rLy8g TXlTUUwgQ2xpZW50Ci0rI2lmIGRlZmluZWQoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkKLSsj ICAgICAgIGluY2x1ZGUgPG15c3FsL215c3FsZF9lcnJvci5oPgotKyMgICAgICAgaW5jbHVkZSA8 bXlzcWwvZXJybXNnLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUgPG15c3FsZF9lcnJvci5o PgotKyMgICAgICAgaW5jbHVkZSA8ZXJybXNnLmg+Ci0rI2VuZGlmCi0gCi0gdXNpbmcgbmFtZXNw YWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOwotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAK LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAJMjAwOS0w NS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDcgKzksMTMgQEAKLSAjZGVmaW5l IFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5jbHVkZSAi Y29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotKyNpZiBkZWZpbmVk KFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1w bGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rI2VuZGlm Ci0rLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAKLSAjaWZkZWYgX01TQ19WRVIKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBl LmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVz ZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAw OS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC05LDcgKzksMTIgQEAKLSAjZGVm aW5lIFNPQ0lfTVlTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5jbHVk ZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29j aS1wbGF0Zm9ybS5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rI2Vu ZGlmCi0gLy8KLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8bGltaXRzPgotZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIwMDktMDUtMjMgMTM6Mzc6 MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Jsb2IuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAt Nyw3ICs3LDEzIEBACi0gCi0gI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCi0gI2luY2x1ZGUgImVy cm9yLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4K LSsjZWxzZQotKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+Ci0rI2VuZGlmCi0rLy8KLSAjaW5jbHVk ZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDI3IEBACi0rIyMgYmFja2VuZHMvb3JhY2xlIHN1Yi1kaXJl Y3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAk KHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KLSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0raWYgSEFWRV9PUkFDTEUKLStsaWJfTFRMSUJS QVJJRVM9IGxpYnNvY2lfb3JhY2xlLmxhCi0rCi0rbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUz0g JChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2NjX3NvdXJjZXMpIAotK2xpYnNv Y2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFHUykKLStsaWJzb2NpX29y YWNsZV9sYV9MSUJBREQgPQotK2xpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9P U1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUIpIFwKLSsJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQotKwotK25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLStlbmRpZgotK2lm IFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLWRpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNp YyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMK LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNp YwkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsOTUgKzAsMCBAQAotLSMgVGhlIGZvbGxvd2luZyB2 YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2 YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0 IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3IvbGliL29yYWNs ZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJsaWMKLS0KLS0j IFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVu dmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50 aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKLS1JTkNM VURFRElSUyA9IC1JLi4vLi4vY29yZSAke09SQUNMRUlOQ0xVREVESVJ9Ci0tCi0tT0JKRUNUUyA9 IGJsb2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5v IFwKLS0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8g dmVjdG9yLXVzZS10eXBlLm8gXAotLQllcnJvci5vCi0tCi0tT0JKRUNUU1NPID0gYmxvYi1zLm8g ZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCi0tCXN0YW5kYXJkLWludG8tdHlw ZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAotLQl2ZWN0b3ItaW50 by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGVycm9yLXMubwotLQotLWxpYnNvY2lfb3Jh Y2xlLmEgOiAke09CSkVDVFN9Ci0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLXNvY2ktb3Jh Y2xlLm8gOiBzb2NpLW9yYWNsZS5jcHAgCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCQotLWJsb2IubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tZXJyb3IubyA6IGVycm9yLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWZhY3Rv cnkubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tcm93LWlkLm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFu ZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0g LWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS5v IDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8t dHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2Ut dHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS0KLS1zaGFyZWQgOiAke09CSkVDVFNTT30KLS0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBs aWJzb2NpX29yYWNsZS5zbyAke09CSkVDVFNTT30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBi bG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tZXJyb3Itcy5vIDogZXJyb3IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5LXMubyA6IGZhY3Rv cnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURF RElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNz aW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVE RURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0t c3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDog dmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNl LXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mICoubyBsaWJzb2NpX29yYWNsZS5hIGxp YnNvY2lfb3JhY2xlLnNvCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4JMjAwOS0w NS0yMyAxMDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsODExIEBACi0rIyBNYWtl ZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0r IyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBU aGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJk aXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lP TisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFs bF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwot K2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0g JChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQot K05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoK LStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RB TEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAK LStESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlNfRElTVCkgXAot KwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNk aXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBz b2NpL2JhY2tlbmRzL29yYWNsZQotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJl X2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykg XAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStD T05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xF QU5fRklMRVMgPQotK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChz cmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwotK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBc Ci0rICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlw L3x8ImA7OyBcCi0rICAgICopIGY9JCRwOzsgXAotKyAgZXNhYzsKLSthbV9fc3RyaXBfZGlyID0g YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERF U1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rbGliTFRMSUJS QVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFS SUVTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX2xpYnNvY2lfb3Jh Y2xlX2xhX1NPVVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZXJyb3IuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29j aS1vcmFjbGUuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5j cHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAgXAotKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAotKwkkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKwkkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rYW1f X29iamVjdHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8g bGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5 LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXNl c3Npb24ubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAot KwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCi0rCWxpYnNvY2lfb3Jh Y2xlX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5 cGUubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8KLStASEFWRV9P UkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18x KSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACSQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX29yYWNs ZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTKQotK2xpYnNvY2lf b3JhY2xlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg XAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQobGlic29jaV9vcmFjbGVfbGFf TERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0BIQVZFX09SQUNMRV9UUlVFQGFtX2xpYnNvY2lf b3JhY2xlX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQotK0RFRkFVTFRfSU5DTFVERVMgPSAt SS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkg JCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZp bGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQot K0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxFID0gJChD QykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp IFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09V UkNFUyA9ICQobGlic29jaV9vcmFjbGVfbGFfU09VUkNFUykKLStESVNUX1NPVVJDRVMgPSAkKGFt X19saWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJU1QpCi0rUkVDVVJTSVZFX1RBUkdFVFMgPSBh bGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1 cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwt ZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZl IGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJl Y3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rYW1fX25vYmFzZV9wa2dpbmNsdWRlX0hFQURF UlNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAotK25vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChpbnN0YWxsX3No X0RBVEEpCi0rSEVBREVSUyA9ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKLStSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJ XAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VU QUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQot K0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAk KEVYVFJBX0RJU1QpCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLStBQ0xP Q0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYg PSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFV VE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9P U1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09T VF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0r Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S S19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NE RVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0r Q1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NA Ci0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQ UFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9 IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0r Q1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0g QERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1Q QklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAot K0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAK LStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJ QlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lO U1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExf UFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NU UklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxB R1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJ QlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElC T0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUtESVJfUCA9IEBN S0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ09ORklHID0g QE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTERGTEFH UyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStO TSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpF WFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQ QUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0gQFNFREAKLStTRVRfTUFL RSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAot K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFuZGlyID0gQG1hbmRpckAK LStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAot K3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2Jp bmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKLStiY2tfb3JhY2xlX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKLSsKLStiY2tfb3Jh Y2xlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Jsb2IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZXJyb3IuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZmFjdG9yeS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVtZW50LmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LXVzZS10eXBlLmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStT VUJESVJTID0gLiB0ZXN0Ci0rQEhBVkVfT1JBQ0xFX1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGli c29jaV9vcmFjbGUubGEKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9TT1VS Q0VTID0gJChiY2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2NjX3NvdXJjZXMpIAot K0BIQVZFX09SQUNMRV9UUlVFQGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVf T0NJX0NGTEFHUykKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9MSUJBREQg PSAKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2NpX29yYWNsZV9sYV9MREZMQUdTID0gXAotK0BI QVZFX09SQUNMRV9UUlVFQAkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9USU1FX0xJQikgJChC T09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACSQoT1JBQ0xF X09DSV9MREZMQUdTKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACS12ZXJzaW9uLWluZm8gJChHRU5F UklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9PUkFDTEVfVFJVRUBub2Jhc2VfcGtnaW5j bHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9y YWNsZS5oCi0rQFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQo aW5jbHVkZWRpcikKLStAU09DSV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIg PSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlCi0rYWxsOiBhbGwtcmVjdXJzaXZl Ci0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGly KS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2Vm aWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJ QGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0 ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhp dCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGly KSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUnOyBc Ci0rCWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2Jh Y2tlbmRzL29yYWNsZS9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTog JChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBj YXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICop IFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcu c3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2Nv bmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBF TkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmln dXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0r CWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aAotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JN QUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RE SVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRs aXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAgZj0kKGFtX19zdHJp cF9kaXIpIFwKLSsJICAgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElO U1RBTExfU1RSSVBfRkxBRykgJyQkcCcgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKLSsJ ICAgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAi JCRwIiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0rCSAgZWxzZSA6OyBmaTsgXAotKwlk b25lCi0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxM KQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0r CSAgcD0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJ UikkKGxpYmRpcikvJCRwJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGly KS8kJHAiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXog IiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0 PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBl Y2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9 ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9u c1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xp YnNvY2lfb3JhY2xlLmxhOiAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9v cmFjbGVfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX29yYWNsZV9sYV9MSU5LKSAkKGFt X2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoKSAkKGxpYnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQo bGlic29jaV9vcmFjbGVfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGls ZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAt ZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt ZXJyb3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG9A YW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0r Ci0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAt TUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsK LSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdg Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIp LyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBv YmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElM RSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIp LyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJ UikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfb3JhY2xl X2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNs ZV9sYS1ibG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9i LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1ibG9iLlRwbyAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9i bG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0r QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9ibG9iLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvOiAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gLWMgLW8gbGli c29jaV9vcmFjbGVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAlt diAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1lcnJvci5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAn IG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1l cnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJv ci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvZXJyb3IuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvIC1jIC1v IGxpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuVHBvICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2ZhY3RvcnkuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCi0rCi0rbGlic29jaV9vcmFj bGVfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1p ZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X29yYWNsZV9sYS1yb3ctaWQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXJvdy1pZC5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLlBsbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEt cm93LWlkLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAotKwotK2xp YnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zZXNz aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Np b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lv bi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9u LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfb3Jh Y2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YW5kYXJkLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11 c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11 c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNl LXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5k YXJkLXVzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3Jh Y2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3RhdGVt ZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1lbnQu VHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXN0YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5QbG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfb3Jh Y2xlX2xhLXN0YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8 fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVf bGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFj bGVfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtdmVjdG9y LWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8t dHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGli c29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9v cmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJz b2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLlRw byAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0 b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUu bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3It dXNlLXR5cGUuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsK LStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1ub2Jhc2Vf cGtnaW5jbHVkZUhFQURFUlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9S TUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIgotKwlAJChhbV9fdnBhdGhfYWRqX3NldHVwKSBc Ci0rCWxpc3Q9JyQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8i OyBmaTsgXAotKwkgICQoYW1fX3ZwYXRoX2FkaikgXAotKwkgIGVjaG8gIiAkKG5vYmFzZV9wa2dp bmNsdWRlSEVBREVSU19JTlNUQUxMKSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVkZWRp cikvJCRmJyI7IFwKLSsJICAkKG5vYmFzZV9wa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRk JCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5p bnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkK LSsJQCQoYW1fX3ZwYXRoX2Fkal9zZXR1cCkgXAotKwlsaXN0PSckKG5vYmFzZV9wa2dpbmNsdWRl X0hFQURFUlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgJChhbV9fdnBhdGhfYWRqKSBc Ci0rCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYnIjsgXAot KwkgIHJtIC1mICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsK LSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVu dDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcg dGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2Un IHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUg dmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycK LSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVk IHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJl ZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VU Uyk6Ci0rCUBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRv IFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICpr KikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rf c2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKLSsJICBmaTsgXAotKwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7 IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAi JCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbGNvbT0nZXhp dCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4g XAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAi JEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChE SVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2Fj OyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2 IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9 YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7 IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAot KwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFn cy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKGNkICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChT T1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVl Ci0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0r CXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlpZiB0ZXN0 IC16ICIkKEVUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRl c3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAkJHRh Z3MgJCR1bmlxdWU7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJz aXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChU QUdTX0ZJTEVTKSAkKExJU1ApCi0rCXRhZ3M9OyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQo QU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0r Ci0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0r CSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAk JGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdT IEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0 cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAot Kwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxc Kl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVz PWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAt ZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0 cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAot KwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQg Jy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAt dWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkg IGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQo c3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAg ZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlm IHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4g XAotKwkgICAgICBjcCAtcFIgJChzcmNkaXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhp dCAxOyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQk ZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQk ZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJ ICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIg XAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwg ZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGlyPWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBc Ci0rCSAgICB0b3BfZGlzdGRpcj1gJChhbV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwK LSsJICAgIChjZCAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRp c3RkaXI9IiQkZGlzdGRpci8kJHN1YmRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAot KwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAg ICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStj aGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFSSUVTKSAk KEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxk aXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQo cGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkg IiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxs LWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUK LStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0 ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1T VFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwot K2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENP TkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21h aW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRl ZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0 IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1B SU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStj bGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlz dGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJt IC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJz aXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raW5mbzogaW5m by1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2luc3RhbGwtZGF0YS1hbTogaW5zdGFsbC1u b2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCi0rCi0r aW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6 IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJz aXZlCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWlu ZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2Vm aWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4t Z2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToK LSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmlu c3RhbGwtbGliTFRMSUJSQVJJRVMgXAotKwl1bmluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVIRUFE RVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RB UkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0r CWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFu LWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJ ZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlo dG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJ aW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBc Ci0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwt aW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwt bWFuIFwKLSsJaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wZGYgaW5z dGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBp bnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMt YW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZl IHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5p bnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAKLSsjIFRlbGwg dmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFi bGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5 IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDA5LTA1LTIzIDEzOjM3OjA5LjAwMDAw MDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9z b2NpLW9yYWNsZS5oCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMjIs OSArMjIsMTQgQEAKLSAjaWZuZGVmIFNPQ0lfT1JBQ0xFX0RFQ0wKLSAjIGRlZmluZSBTT0NJX09S QUNMRV9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNpbmNs dWRlIDxvY2kuaD4gLy8gT0NJCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0r IwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxvY2ku aD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQotICNpbmNsdWRlIDx2ZWN0b3I+Ci0gCi0gI2lmZGVm IF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291 cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvdXJj ZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkyMDA5LTA1LTIyIDIyOjU0 OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxNCBAQAotK2Jja19vcmFjbGVfaF9zb3Vy Y2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJv ci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAotK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0 ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlw ZS5jcHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5 LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsMTAgKzcsMTggQEAKLSAKLSAj ZGVmaW5lIFNPQ0lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNp bmNsdWRlICJibG9iLmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgi Ci0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJT X0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBp bmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9z dGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAg aW5jbHVkZSA8cm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRp ZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRl IDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6 MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE5LjAwMDAwMDAw MCArMDIwMAotQEAgLTcsMTAgKzcsMTggQEAKLSAKLSAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJD RQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJibG9iLmgiCi0gI2luY2x1 ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5o IgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQu aD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMg ICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjICAg ICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlw ZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMDktMDUt MjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOS4wMDAwMDAw MDAgKzAyMDAKLUBAIC05LDcgKzksMTMgQEAKLSAKLSAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIK LSAjaW5jbHVkZSAiZXJyb3IuaCIKLS0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rLy8KLSsj aWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9j b3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4K LSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAj aW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAt MCwwICsxLDIyIEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0raWYgSEFWRV9PUkFDTEUKLSsg IFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUKLSsKLStpZiBSVU5fVEVTVFMKLSsgIG5vaW5zdF9Q Uk9HUkFNUyA9ICQoVEVTVF9PUkFDTEUpCi0rZW5kaWYKLSsKLSt0ZXN0X29yYWNsZV9TT1VSQ0VT ID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQotK3Rlc3Rfb3JhY2xlX0NYWEZMQUdTID0gJChC T09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rdGVzdF9vcmFjbGVfTERBREQgPQot K3Rlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lf Y29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9s aWJzb2NpX29yYWNsZS5sYSBcCi0rCQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKLStlbmRpZgotKwot KyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMpCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtl ZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjMgKzAs MCBAQAotLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tl bmQgYW5kIGl0cyBjb3JyZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJv bm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlOQ0xV REVESVIgPSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3Nl cnZlci9yZGJtcy9wdWJsaWMgCi0tT1JBQ0xFTElCRElSID0gLUwvdXNyL2xpYi9vcmFjbGUveGUv YXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAotLU9SQUNMRUxJQlMgPSAtbGNs bnRzaCAtbG5uejEwCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRl bnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZM QUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAtSS4u IC1JLi4vLi4vLi4vY29yZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAke09SQUNMRUlOQ0xVREVESVJ9 Ci0tTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7T1JBQ0xFTElCRElSfQotLUxJQlMg PSAtbHNvY2lfY29yZSAtbHNvY2lfb3JhY2xlIC1sZGwgLWxib29zdF9kYXRlX3RpbWUgJHtPUkFD TEVMSUJTfQotLQotLQotLXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFjbGUuY3BwIAotLSMuLi8uLi8u Li9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhG TEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgot LQlybSAtZiAqLm8gdGVzdC1vcmFjbGUKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS90ZXN0L01ha2VmaWxlLmluCTIwMDktMDUtMjMgMTA6MDI6MDIuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDUyOCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTAuMiBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwot KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgot KwotK0BTRVRfTUFLRUAKLSsKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0 YWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2lu Y2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7 WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEg PSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFs bF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxM X0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lO U1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BP U1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0 ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIp L01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KLStASEFWRV9PUkFDTEVfVFJVRUBAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BS T0dSQU1TID0gJChhbV9fRVhFRVhUXzEpCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdAotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2Nh bF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29y YWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQg JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19h Y2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxf TTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0BI QVZFX09SQUNMRV9UUlVFQGFtX19FWEVFWFRfMSA9IHRlc3Rfb3JhY2xlJChFWEVFWFQpCi0rUFJP R1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNU ID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3Jh Y2xlLmNwcAotK2FtX19vYmplY3RzXzEgPSB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS4kKE9CSkVY VCkKLStASEFWRV9PUkFDTEVfVFJVRUBhbV90ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV9fb2Jq ZWN0c18xKQotK3Rlc3Rfb3JhY2xlX09CSkVDVFMgPSAkKGFtX3Rlc3Rfb3JhY2xlX09CSkVDVFMp Ci0rdGVzdF9vcmFjbGVfREVQRU5ERU5DSUVTID0KLSt0ZXN0X29yYWNsZV9MSU5LID0gJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0t bW9kZT1saW5rICQoQ1hYTEQpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpIFwKLSsJJChDWFhGTEFH UykgJCh0ZXN0X29yYWNsZV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNM VURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAk KFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJl ID0gZGVwZmlsZXMKLStDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0g JChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJD RVMgPSAkKHRlc3Rfb3JhY2xlX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChhbV9fdGVzdF9v cmFjbGVfU09VUkNFU19ESVNUKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBA QVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAot K0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQ0ZMQUdTID0gQEJP T1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJA Ci0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1Rf SU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9P U1RfTElCU0AKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BU SU9OU19MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9T RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdO QUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAot K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0r Q0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAot K0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0g QENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStEU1lNVVRJTCA9IEBE U1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hP X04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhF RVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lP TiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9 IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9H UkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQ VEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xE ID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElC UyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9 IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9A Ci0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0r TVlTUUxfQ09ORklHID0gQE1ZU1FMX0NPTkZJR0AKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNA Ci0rTVlTUUxfTERGTEFHUyA9IEBNWVNRTF9MREZMQUdTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlT UUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBA T0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJT QAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lf TERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9S QUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRA Ci0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVH UkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcg PSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAK LStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0g QFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklH QAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxf RElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVT UUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAot K1JBTkxJQiA9IEBSQU5MSUJACi0rUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACi0rU0VEID0g QFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAg PSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9 IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9 IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSth YnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AK LSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJ TkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1f X2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9f dGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWls ZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBA YnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWls ZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAot K2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2Nk aXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZp ZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4 QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3Rf YWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hv c3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRl ZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBA aW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAot K2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xv Y2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLStsdF9FQ0hPID0gQGx0X0VDSE9ACi0rbWFu ZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBv bGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStw cm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIg PSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hh cmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNj b25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0 b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRv cF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAt SSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStvcmFjbGVfdGVzdF9oX3NvdXJjZXMg PSAKLStvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KLStASEFWRV9PUkFDTEVfVFJVRUBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCi0r QEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nf c291cmNlcykKLStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9P U1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lfQ0ZMQUdTKQotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rf b3JhY2xlX0xEQUREID0gCi0rQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfTERGTEFHUyA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotK0BIQVZF X09SQUNMRV9UUlVFQAkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNv Y2lfb3JhY2xlLmxhIFwKLStASEFWRV9PUkFDTEVfVFJVRUAJCSQoT1JBQ0xFX09DSV9MREZMQUdT KQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8g Lm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19j b25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19j b25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0r CSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7 IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hv ICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChB VVRPTUFLRSkgLS1nbnUgIHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKLSsuUFJF Q0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0 YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwll c2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLStjbGVhbi1ub2luc3RQUk9HUkFNUzoK LSsJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkg IGY9YGVjaG8gJCRwfHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJICBlY2hvICIgcm0gLWYg JCRwICQkZiI7IFwKLSsJICBybSAtZiAkJHAgJCRmIDsgXAotKwlkb25lCi0rdGVzdF9vcmFjbGUk KEVYRUVYVCk6ICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0X29yYWNsZV9ERVBFTkRFTkNJ RVMpIAotKwlAcm0gLWYgdGVzdF9vcmFjbGUkKEVYRUVYVCkKLSsJJCh0ZXN0X29yYWNsZV9MSU5L KSAkKHRlc3Rfb3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFjbGVfTERBREQpICQoTElCUykKLSsK LSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xl YW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuUG9AYW1f X3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5Qbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSck QCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1v ICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElM RSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFU SF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxvOgot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS5vOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xl LXRlc3Qtb3JhY2xlLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3Jh Y2xlLlRwbyAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVz dC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS90ZXN0 X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl LlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0n dGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNs ZS5jcHAKLSsKLSt0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmo6ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90 ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUu b2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAn JChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAnOyBmaWAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL3Rl c3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUuUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCcgb2JqZWN0 PSd0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vYmogYGlmIHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyB0aGVu ICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rl c3Qtb3JhY2xlLmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IGZpYAotKwotK21v c3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1yZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQ KSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MK LSsKLStUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc Ci0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAot KwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwK LSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7 IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUg fCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkg ICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9 J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6 OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBc Ci0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJH UykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RB R1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQo VEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFH U19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAk KEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQot KwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAot KwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykg JCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFH UyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJz dHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwK LSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxl cz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQg LWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJz dHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwK LSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2Vk ICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQg LXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJ ICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0k KHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAg IGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBp ZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVu IFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4 aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikk JGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8k JGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0r CSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQot K2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykKLStpbnN0YWxs ZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt YW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxs LWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBp bnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxs Y2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNU QUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMg XAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9H UkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5l cmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0 IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVT KQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIGNsZWFuLW5vaW5zdFBST0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStk aXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBN YWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNs ZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZp LWFtOgotKwotK2h0bWw6IGh0bWwtYW0KLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToK LSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0r Ci0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0r Ci0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStp bnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFt Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXIt Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWlu dGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0r Ci0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3Rs eWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRv b2wKLSsKLStwZGY6IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1h bToKLSsKLSt1bmluc3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJp cAotKwotKy5QSE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBj dGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBk aXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBo dG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwt ZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0 YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1h bSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1w ZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1z dHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRh aW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0 bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBc Ci0rCXBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0r QFNFVF9NQUtFQAotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVz dF9oX3NvdXJjZXMpCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRv IG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAo Zm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1r IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMubWsK LS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMu bWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6 NTQ6MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStvcmFjbGVfdGVzdF9oX3Nv dXJjZXMgPQotK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAwOS0wNS0y MiAyMjo1NDoxOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC01LDkgKzUsMTcgQEAKLSAvLyBodHRwOi8v d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCi0gLy8KLSAKLS0jaW5jbHVkZSAic29jaS5o IgotLSNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIK LSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9vcmFj bGUvc29jaS1vcmFjbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1v bi10ZXN0cy5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLmg+Ci0rIwlpbmNsdWRlIDxzb2Np LW9yYWNsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KLSsjZW5k aWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVhbT4KLSAjaW5jbHVkZSA8c3RyaW5nPgotICNpbmNs dWRlIDxjYXNzZXJ0PgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6 MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv b3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTkuMDAwMDAwMDAw ICswMjAwCi1AQCAtNyw4ICs3LDE0IEBACi0gCi0gI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UK LSAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLS0jaW5jbHVkZSAic3RhdGVtZW50LmgiCi0gI2lu Y2x1ZGUgImVycm9yLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQot KyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgotKyNlbHNlCi0rIwlpbmNs dWRlIDxzdGF0ZW1lbnQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2lu Y2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTIzIDEz OjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCAr MDIwMAotQEAgLTYsNyArNiwxMiBAQAotIC8vCi0gCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNp bmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19C VVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+Ci0rI2Vs c2UKLSsjCWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKyNlbmRpZgotIC8vCi0gI2luY2x1ZGUg PGNzdGRsaWI+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMzAgQEAKLSsjIyBiYWNrZW5kcy9wb3N0Z3Jlc3FsIHN1Yi1kaXJlY3Rv cnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAkKHNy Y2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K LSsKLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJ TElUWSA9IC5fY29tbW9uLmgKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkpCi0rCi0raWYgSEFWRV9QT1NUR1JFU1FMCi0rbGliX0xUTElCUkFSSUVT PSBsaWJzb2NpX3Bvc3RncmVzcWwubGEKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNF Uz0gJChiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMpICQoYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNl cykgCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQT1NUR1JFU1FMX0NGTEFH UykKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0KLStsaWJzb2NpX3Bvc3RncmVzcWxf bGFfTERGTEFHUyA9IFwKLSsJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19M SUJSQVJZX1ZFUlNJT04pCi0rCi0rcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStlbmRpZgotK2lmIFNP Q0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwKLStlbHNlCi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikKLStlbmRpZgotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxl LmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv TWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0yMyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2lj CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw5NSArMCwwIEBACi0t IyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQg aXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAt IGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0tCi0tUEdTUUxJTkNMVURFRElSID0g LUkvdXNyL2luY2x1ZGUKLS0KLS0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVu dGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hY RkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKLS1DWFhGTEFHU1NPID0gJHtD WFhGTEFHU30gLWZQSUMKLS1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke1BHU1FMSU5DTFVE RURJUn0KLS0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9u Lm8gc3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVu dC5vIHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCi0tCWNvbW1vbi5vCi0t Ci0tT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMu byBcCi0tCXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRl bWVudC1zLm8gXAotLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNv bW1vbi1zLm8KLS0KLS0KLS1saWJzb2NpX3Bvc3RncmVzcWwuYSA6ICR7T0JKRUNUU30KLS0JYXIg cnYgJEAgJD8KLS0Jcm0gKi5vCi0tCi0tCi0tYmxvYi5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1jb21tb24ubyA6IGNvbW1v bi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0K LS1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVS fSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNlc3Npb24ubyA6IHNlc3Np b24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNl LXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rv ci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0 b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tCi0tc2hhcmVkIDogJHtPQkpFQ1RTU099Ci0tCSR7Q09NUElMRVJ9IC1zaGFy ZWQgLW8gbGlic29jaV9wb3N0Z3Jlc3FsLnNvICR7T0JKRUNUU1NPfQotLQlybSAqLm8KLS0KLS1i bG9iLXMubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NT T30gJHtJTkNMVURFRElSU30KLS0KLS1jb21tb24tcy5vIDogY29tbW9uLmNwcAotLQkke0NPTVBJ TEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tZmFjdG9y eS1zLm8gOiBmYWN0b3J5LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLXMubyA6IHJvdy1pZC5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXNlc3Np b24tcy5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFH U1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2Ut dHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQotLQotLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItaW50 by10eXBlLXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5cGUtcy5v IDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiBsaWJzb2NpX3Bv c3RncmVzcWwuYSBsaWJzb2NpX3Bvc3RncmVzcWwuc28KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAxMDowMjowMi4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsODEzIEBACi0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0 b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwot KyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRl ZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQu Ci0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVu dCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBP U0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGly ID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VA Ci0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAm JiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFs bF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChp bnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNm b3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BS RV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgot K1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9 IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX3Br Z2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAotKwkkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbAotK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9u Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGly KS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2Rl cHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0 YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRk aXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK2FtX192cGF0aF9hZGpf c2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwot K2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQoc3JjZGlyKS8qKSBmPWBlY2hv ICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCi0rICAgICopIGY9JCRwOzsg XAotKyAgZXNhYzsKLSthbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98 fCdgOwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikiCi0rbGliTFRMSUJSQVJJRVNfSU5TVEFMTCA9ICQoSU5TVEFMTCkK LStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfcG9zdGdyZXNxbF9s YV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFU19ESVNU ID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmgg XAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVz cWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3Bw IFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBc Ci0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwK LSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSthbV9fb2Jq ZWN0c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gXAotKwlsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8g XAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxv IFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfcG9z dGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9saWJzb2NpX3Bv c3RncmVzcWxfbGFfT0JKRUNUUyA9ICBcCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkkKGFtX19v YmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNU UyA9ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpCi0rbGlic29jaV9wb3N0Z3Jl c3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAot KwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGFt X2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBcCi0rQEhBVkVfUE9TVEdSRVNR TF9UUlVFQAkkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29u ZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK0NYWENPTVBJTEUg PSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENY WENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1f Q1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0t bW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFH UykgXAotKwkkKExERkxBR1MpIC1vICRACi0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1Mp ICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUND ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAk KENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0Mp Ci0rTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAk KEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfcG9z dGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCi0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJz aXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5m by1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vy c2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBp bnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwt cHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2 ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1 bmluc3RhbGwtcmVjdXJzaXZlCi0rYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKLSsJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgK LStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKLStIRUFERVJT ID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0 bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNp dmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBj dGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09N TU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK3BrZ2luY2x1 ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFS ID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFE RVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAot K0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBC T09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVT WVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAK LStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9 IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9S RUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1Rf VEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04g PSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NF UklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0r Q0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAot K0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQ UFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9W RVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhD UFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAot K0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBE SVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9f QyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VH UkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9 IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9E QVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJ UFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExf U1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JK UyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQ TyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01B S0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStN WVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5N RURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVf RElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NG TEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNM RV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0r T1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JF UE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1F QAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9 IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAK LStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdf Q09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NG TEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxf TERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBP U1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQ TV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwg PSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAot K1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAK LStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9D T01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxk ZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFi c190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNf Y3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1Q QklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1f X2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3Rl QAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRp ciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxp YXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLSti dWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2Rh dGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29r ID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5f b2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3By ZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0r aG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rf b3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0g QGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2Rp ckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0r bGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGly ID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNI TyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAot K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3By ZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRf b2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2Rp ciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAot K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rYmNr X3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLSsKLStiY2tfcG9zdGdyZXNx bF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRh cmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwot K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0r Ci0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKLStFWFRS QV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rQEhBVkVfUE9T VEdSRVNRTF9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQotK0BI QVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUyA9ICQoYmNr X3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAotK0BI QVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBP U1RHUkVTUUxfQ0ZMQUdTKQotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVz cWxfbGFfTElCQUREID0gCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9MREZMQUdTID0gXAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAk KEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BI QVZFX1BPU1RHUkVTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OKQotKwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK0BT T0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIp Ci0rQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRl ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsu U1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2Vm aWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRl cCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkg ICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYg JEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBc Ci0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQo QVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUnOyBcCi0r CWNkICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6 ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlA Y2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAq KSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQ RU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQot KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKLStpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKLSsJQCQoTk9S TUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobGliZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNU RElSKSQobGliZGlyKSIKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQk bGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKLSsJICAgIGY9JChhbV9fc3Ry aXBfZGlyKSBcCi0rCSAgICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQobGliTFRMSUJSQVJJRVNfSU5TVEFMTCkgJChJ TlNUQUxMX1NUUklQX0ZMQUcpICckJHAnICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCi0r CSAgICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykg IiQkcCIgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJ ZG9uZQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFM TCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAot KwkgIHA9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RE SVIpJChsaWJkaXIpLyQkcCciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRp cikvJCRwIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16 ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlz dD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJg ZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAh PSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlv bnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLSts aWJzb2NpX3Bvc3RncmVzcWwubGE6ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQo bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9wb3N0Z3Jl c3FsX2xhX0xJTkspICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX3JwYXRoKSAkKGxpYnNvY2lf cG9zdGdyZXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSUJBREQpICQo TElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsK LStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBA YW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xh LWJsb2IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG9AYW1fX3F1b3Rl QAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt cm93LWlkLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGF0ZW1lbnQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG9A YW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5Q bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0 PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1j IC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09N UElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lH UEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxv OgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBA QU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBE SVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0r QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSts aWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12 IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5UcG8gJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9i bG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Jsb2IuY3BwCi0rCi0rbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLWNvbW1vbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9jb21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvY29tbW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24ubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAK LSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5 LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCcgb2JqZWN0PSdsaWJz b2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jl c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt ZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXJvdy1pZC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlk LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93 LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9y b3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93 LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vz c2lvbi5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlBsbwotK0BB TURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc2Vzc2lvbi5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lv bi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10 eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBl LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFu ZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVz ZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2Ut dHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBl LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGF0ZW1lbnQuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlBs bwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rv ci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10 eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3It aW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRv LXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1v IGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LXVzZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1j IC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElS KS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZl Y3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwot K21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoK LSsJLXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtn aW5jbHVkZV9IRUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dp bmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0r CUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAot KwkgIGY9JChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNf SU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0r CSAgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtn aW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURF UlMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJ ICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAg cm0gLWYgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotKyMg VGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5 b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJv dWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFy aWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJp YWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMg ICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hl biB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZh bHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToK LSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAot KwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBm YWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVu PW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlz dD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFr aW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0Ijsg XAotKwkgIGZpOyBcCi0rCSAgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAot KwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZh aWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsY29tPSdleGl0IDEn OyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0r CSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIg aW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1Rf U1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwK LSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNo byAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8g XAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1h bSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAg Zmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2Nh bF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXog IiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJl Y3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJD RVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0 YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMp ICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFn cz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0t dmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0 YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRl X29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFH UyB8fCBcCi0rCSAgICAgIHRhZ3M9IiQkdGFncyAkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1 YmRpci9UQUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCWlmIHRlc3QgLXog IiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAt biAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICQkdGFncyAk JHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUg JChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1Nf RklMRVMpICQoTElTUCkKLSsJdGFncz07IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJH UykkJHRhZ3MkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9D VEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHRhZ3MgJCR1bmlxdWUKLSsKLStH VEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAm JiBjZCAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICQkaGVy ZQotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZ TVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9 YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRv cHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9c XFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZv ciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJz fF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAv fCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAg Ki8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wv LyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7 OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYg dGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNk aXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9 YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVz dCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0r CSAgICAgIGNwIC1wUiAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7 IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIg fHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICQoZGlzdGRpcikvJCRmaWxl IFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAg fHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlsaXN0PSckKERJU1RfU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0r CSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0 IDE7IFwKLSsJICAgIGRpc3RkaXI9YCQoYW1fX2NkKSAkKGRpc3RkaXIpICYmIHB3ZGA7IFwKLSsJ ICAgIHRvcF9kaXN0ZGlyPWAkKGFtX19jZCkgJCh0b3BfZGlzdGRpcikgJiYgcHdkYDsgXAotKwkg ICAgKGNkICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAot KwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJHRvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRp cj0iJCRkaXN0ZGlyLyQkc3ViZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0rCQlh bV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNr OiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVB REVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMt YW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRk aXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhl YzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJl Y3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06 IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2lu c3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xl YW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCi0rbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZv ciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5 IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRB SU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFu OiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJM VExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xl YW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYg TWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3Rj bGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUK LSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStpbmZvOiBpbmZvLXJl Y3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2lu Y2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsK LSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFu LWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBz LXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLWxpYkxU TElCUkFSSUVTIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotKy5NQUtFOiAkKFJFQ1VS U0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBpbnN0YWxsLWFtIFwKLSsJ aW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNr LWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1s aWJ0b29sIGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29t cGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10 YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWlu c3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWlu c3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwK LSsJaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50 YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJ bW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMt YW0gXAotKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1 bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0r QFNFVF9NQUtFQAotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBu b3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZv ciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVz cWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9z dGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3NvY2ktcG9zdGdyZXNxbC5oCTIwMDktMDUtMjMgMTM6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0r Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3Rn cmVzcWwuaAkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCArMDIwMAotQEAgLTIyLDkgKzIy LDE0IEBACi0gI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAotICMgZGVmaW5lIFNPQ0lfUE9T VEdSRVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotLSNp bmNsdWRlIDxsaWJwcS1mZS5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklF RCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQot KyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGli cHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKLSAjaW5jbHVkZSA8dmVjdG9yPgotIAotICNp ZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2Vz Lm1rCTIwMDktMDUtMjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE0IEBA Ci0rYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKLStiY2tfcG9zdGdy ZXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6 Mzc6MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjIgMjI6NTQ6MTgu MDAwMDAwMDAwICswMjAwCi1AQCAtOCw5ICs4LDE2IEBACi0gI2RlZmluZSBTT0NJX1BPU1RHUkVT UUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgotICNpbmNsdWRlICJjb21t b24uaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0jaW5jbHVkZSAiYmxvYi5oIgotLSNpbmNsdWRl IDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8 YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNs dWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQpCi0gI2lu Y2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6Mzc6 MDkuMDAwMDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAw MDAwMDAgKzAyMDAKLUBAIC03LDggKzcsMTQgQEAKLSAKLSAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNR TF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgInJvd2lk LmgiCi0tI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCi0rLy8KLSsjaWYgZGVm aW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jv d2lkLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1ZGUgPHJvd2lkLmg+Ci0rI2VuZGlmCi0rLy8K LSsjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50 KQotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0 cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE4LjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSwxOCBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0r Ci0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwot KyAgbm9pbnN0X1BST0dSQU1TID0gdGVzdF9wb3N0Z3Jlc3FsCi0rZW5kaWYKLSsKLSt0ZXN0X3Bv c3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMpCi0rdGVzdF9w b3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9wb3N0Z3Jlc3FsX0xE QUREID0KLSt0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv cmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9saWJzb2NpX3Bvc3RncmVzcWwubGEgXAotKwkJJChQT1NUR1JFU1FMX0xE RkxBR1MpCi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHBvc3RncmVzcWxfdGVz dF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAwOS0wNS0y MyAxMzozNzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDIyICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFy aWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMgdmFs dWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBp dCBhY2NvcmRpbmdseS4KLS0KLS1QR1NRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZQotLVBH U1FMTElCRElSID0gLUwvdXNyL2xpYgotLVBHU1FMTElCUyA9IC1scHEKLS0KLS0jIFRoZSByZXN0 IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50 LgotLQotLUNPTVBJTEVSID0gZysrCi0tQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMgLVduby1s b25nLWxvbmcKLS1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9jb3JlL3Rlc3QgLUkuLi8u Li8uLi9jb3JlICR7UEdTUUxJTkNMVURFRElSfQotLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4v Y29yZSAke1BHU1FMTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfcG9zdGdyZXNx bCAtbGRsICR7UEdTUUxMSUJTfQotLQotLQotLXRlc3QtcG9zdGdyZXNxbCA6IHRlc3QtcG9zdGdy ZXNxbC5jcHAKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiB0ZXN0LXBvc3Rn cmVzcWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAyLjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSw1MjUgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAx LjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5 cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEs IDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1p dHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsK LStAU0VUX01BS0VACi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFk aXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pT SF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0g JChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxf c2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9I RUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNU QUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NU X1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9 IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9N YWtlZmlsZS5pbiBcCi0rCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZp bGUuY29tbW9uCi0rQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdy ZXNxbCQoRVhFRVhUKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0Ci0r QUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2Rl cHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29j aS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGli dG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZl cnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxf bTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStt a2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9i dWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rUFJPR1JBTVMg PSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fb2JqZWN0c18xID0gdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC4kKE9CSkVYVCkKLSthbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUyA9ICQo YW1fX29iamVjdHNfMSkKLSt0ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9wb3N0 Z3Jlc3FsX09CSkVDVFMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0RFUEVOREVOQ0lFUyA9Ci0rdGVzdF9w b3N0Z3Jlc3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg XAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKHRlc3RfcG9z dGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKHRlc3RfcG9zdGdyZXNxbF9MREZM QUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0Ag LUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIp L2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKLStDWFhDT01Q SUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0r CSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0r TFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xE RkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNx bF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMpCi0r RVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9O KSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBA QUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRP Q09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VA Ci0rQVdLID0gQEFXS0AKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RB VEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJ QiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NU X0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9SRUdF WF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05B TFNfTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAK LStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUg PSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFH UyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBV TklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9M SUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAK LStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFH UyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AK LStERVBESVIgPSBAREVQRElSQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBA RFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19U ID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQ ID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9W RVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9E QVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFN QAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJP R1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBM REZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9 IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0g QExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNS0RJUl9QID0gQE1LRElSX1BA Ci0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DT05GSUcgPSBATVlTUUxf Q09ORklHQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MREZMQUdTID0gQE1Z U1FMX0xERkxBR1NACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5N QAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBP QkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1Mg PSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lf TERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09U T09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VA Ci0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1F ID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQ QUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQ QUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVS TCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1Mg PSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElS U0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVT UUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStS UE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFTRUAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNF VF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9I RUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09N TUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxk ZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3Rv cF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190 b3Bfc3JjZGlyQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9D WFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFt X19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1 b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFt X191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2Fs aWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3Mg PSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9 IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJv b3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdl bl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZp cHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0r aG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBo b3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5k b3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStp bmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29r ID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVj ZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0 YXRlZGlyQAotK2x0X0VDSE8gPSBAbHRfRUNIT0AKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGly X3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGly ID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUg PSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0g QHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRz dGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAK LSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9w X2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNk aXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0 b3Bfc3JjZGlyKQotK3Bvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMgPSAKLStwb3N0Z3Jlc3FsX3Rl c3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KLSt0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUyA9ICQocG9zdGdyZXNxbF90ZXN0X2NjX3NvdXJj ZXMpCi0rdGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpCi0rdGVzdF9w b3N0Z3Jlc3FsX0xEQUREID0gCi0rdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAkKHRvcF9idWls ZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxhIFwKLSsJCSQo UE9TVEdSRVNRTF9MREZMQUdTKQotKwotK2FsbDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5T VUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikv c291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwK LSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwK LSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQg MDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdu dSAgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9w X3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChz cmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNl ICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwK LSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFt X19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRF TkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj1gZWNobyAkJHB8c2VkICdzLyQoRVhFRVhUKSQk Ly8nYDsgXAotKwkgIGVjaG8gIiBybSAtZiAkJHAgJCRmIjsgXAotKwkgIHJtIC1mICQkcCAkJGYg OyBcCi0rCWRvbmUKLSt0ZXN0X3Bvc3RncmVzcWwkKEVYRUVYVCk6ICQodGVzdF9wb3N0Z3Jlc3Fs X09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0RFUEVOREVOQ0lFUykgCi0rCUBybSAtZiB0ZXN0 X3Bvc3RncmVzcWwkKEVYRUVYVCkKLSsJJCh0ZXN0X3Bvc3RncmVzcWxfTElOSykgJCh0ZXN0X3Bv c3RncmVzcWxfT0JKRUNUUykgJCh0ZXN0X3Bvc3RncmVzcWxfTERBREQpICQoTElCUykKLSsKLStt b3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4t Y29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5Q b0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQq LlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmpl Y3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkg LWMgLW8gJEAgJDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhD T01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChD WUdQQVRIX1cpICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8k Ki5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotKwotKy5jcHAu bG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1N UCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAltdiAtZiAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwot K3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubzogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gLU1EIC1NUCAt TUYgJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1vIHRl c3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBE SVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvICQoREVQRElSKS90ZXN0X3Bv c3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCcgb2JqZWN0PSd0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0 Z3Jlc3FsLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVz dC1wb3N0Z3Jlc3FsLmNwcAotKwotK3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwub2Jq OiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdy ZXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rf cG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3RfcG9zdGdyZXNxbC10ZXN0 LXBvc3RncmVzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm9i aiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGVsc2Ug JChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJzsgZmlgCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACW12IC1mICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRwbyAk KERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5QbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnIG9iamVjdD0ndGVzdF9wb3N0 Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmonIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogYGlmIHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0 Z3Jlc3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9X KSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGZpYAotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotKwot K0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9 JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1 ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVj aG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkg ICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5E IHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0r CW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFERVJTKSAk KFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElT UCkKLSsJdGFncz07IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxp c3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNo byAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVz WyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkp IHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChF VEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIk JHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZM QUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5p cXVlOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0 YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJ TEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3Qg LWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAot KwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7 IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmlu dCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBc Ci0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1Nf QVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFt X19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2Rpcikg XAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRh Z3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0r ZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3Jj ZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJ ICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBl bHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAg JCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBm aTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1h bTogTWFrZWZpbGUgJChQUk9HUkFNUykKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxs LWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3Rh bGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxs LWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1k YXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlw OgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQ X1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQ KScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RS SVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6 Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0K LSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdFBS T0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQot Kwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xl YW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtYW0K LSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0r Ci0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwot K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxs LWluZm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYt YW0KLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNrLWFtOgot KwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQo REVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xl YW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1hbQotKwot K3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06Ci0r Ci0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9OWTogQ1RBR1MgR1RB R1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xl YW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xlYW4gXAotKwlkaXN0 Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCi0rCWRp c3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFt IFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5z dGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFt IGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1p bmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gaW5zdGFs bC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFs bGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNs ZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCi0rCXBkZiBwZGYtYW0gcHMgcHMtYW0g dGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyNub2Rpc3Rf cGtnaW5jbHVkZV9IRUFERVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQotKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9zb3VyY2VzLm1rCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDox OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMiBAQAotK3Bvc3RncmVzcWxfdGVzdF9oX3Nv dXJjZXMgPQotK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0 Z3Jlc3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAJMjAwOS0wNS0yMyAxMzozNzow OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDA5LTA1LTIyIDIyOjU0OjE4LjAw MDAwMDAwMCArMDIwMAotQEAgLTUsOSArNSwxNyBAQAotIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3Jn L0xJQ0VOU0VfMV8wLnR4dCkKLSAvLwotIAotLSNpbmNsdWRlICJzb2NpLmgiCi0tI2luY2x1ZGUg InNvY2ktcG9zdGdyZXNxbC5oIgotLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKLSsvLwotKyNp ZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2Nv cmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nv Y2ktcG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9u LXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjCWluY2x1ZGUgPHNvY2kt cG9zdGdyZXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KLSsj ZW5kaWYKLSsvLwotICNpbmNsdWRlIDxpb3N0cmVhbT4KLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAj aW5jbHVkZSA8c3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29uZmln LmguaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29uZmlnLmguaW4KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2NvbmZpZy5oLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29uZmlnLmguaW4JMjAwOS0wNS0yMyAx MDowMjowMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTQ2IEBACi0rLyogc29jaS9jb25m aWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8K LSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0IGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3Vu ZGVmIEhBVkVfQk9PU1QKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9EQVRFX1RJTUUKLSsKLSsv KiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlICov Ci0rI3VuZGVmIEhBVkVfQk9PU1RfRklMRVNZU1RFTQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9v c3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NU X0lPU1RSRUFNUwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlBST0dSQU1fT1BUSU9OUyBs aWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9O UwotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxl ICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfUkVHRVgKLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0 OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9P U1RfU0VSSUFMSVpBVElPTgotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNpZ25hbHMgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9TSUdOQUxTCi0rCi0rLyog ZGVmaW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3Vu ZGVmIEhBVkVfQk9PU1RfVEhSRUFECi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90 ZXN0X2ZyYW1ld29yayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NU X1VOSVRfVEVTVF9GUkFNRVdPUksKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PGNtYXRoPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9DTUFUSAotKwotKy8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZGVxdWU+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBI QVZFX0RFUVVFCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBo ZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9ETEZDTl9ICi0rCi0rLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIDxmc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9G U1RSRUFNCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBo ZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9JTlRUWVBFU19ICi0rCi0rLyogRGVmaW5lIHRv IDEgaWYgeW91IGhhdmUgdGhlIDxpb21hbmlwPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFW RV9JT01BTklQCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb3N0cmVhbT4g aGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfSU9TVFJFQU0KLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgPGxpbWl0cz4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVf TElNSVRTCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaXN0PiBoZWFkZXIg ZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9MSVNUCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxtYXA+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX01BUAotKwotKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwotKyN1 bmRlZiBIQVZFX01FTU9SWV9ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgTXlTUUwgbGlicmFyaWVz IGFyZSBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9NWVNRTAotKwotKy8qIERlZmluZSB0byAx IGlmIHRoZSBPcmFjbGUgT0NJIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVf T1JBQ0xFCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgUG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2 YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX1BPU1RHUkVTUUwKLSsKLSsvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgPHF1ZXVlPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9RVUVV RQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2V0PiBoZWFkZXIgZmlsZS4g Ki8KLSsjdW5kZWYgSEFWRV9TRVQKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PHNzdHJlYW0+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NTVFJFQU0KLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGV4Y2VwdD4gaGVhZGVyIGZpbGUuICovCi0r I3VuZGVmIEhBVkVfU1RERVhDRVBUCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RESU5UX0gKLSsKLSsv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8K LSsjdW5kZWYgSEFWRV9TVERMSUJfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8c3RyaW5nPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TVFJJTkcKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCi0r I3VuZGVmIEhBVkVfU1RSSU5HU19ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RSSU5HX0gKLSsKLSsv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAq LwotKyN1bmRlZiBIQVZFX1NZU19TVEFUX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TWVNfVFlQ RVNfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRl ciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1VOSVNURF9ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDx2ZWN0b3I+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1ZFQ1RP UgotKwotKy8qIERlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBpbiB3aGljaCBsaWJ0b29sIHN0 b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuCi0rICAgKi8KLSsjdW5kZWYgTFRfT0JKRElSCi0r Ci0rLyogTmFtZSBvZiBwYWNrYWdlICovCi0rI3VuZGVmIFBBQ0tBR0UKLSsKLSsvKiBEZWZpbmUg dG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQg YmUgc2VudC4gKi8KLSsjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKLSsKLSsvKiBEZWZpbmUgdG8g dGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfTkFNRQot KwotKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2Fn ZS4gKi8KLSsjdW5kZWYgUEFDS0FHRV9TVFJJTkcKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIG9uZSBz eW1ib2wgc2hvcnQgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVEFS TkFNRQotKwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCi0r I3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgotKwotKy8qIERlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRp b25zIGhhbmRsaW5nICovCi0rI3VuZGVmIFNPQ0lfRVhDRVBUSU9OUwotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotKyN1bmRlZiBTVERD X0hFQURFUlMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJv dGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KLSsjdW5kZWYgVElNRV9XSVRIX1NZU19U SU1FCi0rCi0rLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLwotKyN1bmRlZiBWRVJTSU9O Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmFtCTIwMDktMDUt MjIgMjI6NTQ6MTguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDI5IEBACi0rIyMgY29yZSBz dWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK2lu Y2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNpbXBs ZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbGliX0xUTElCUkFSSUVTPSBsaWJzb2NpX2NvcmUu bGEKLSsKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUz0gJChjb3JlX2hfc291cmNlcykgJChjb3Jl X2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFHUyA9Ci0rbGlic29jaV9jb3Jl X2xhX0xJQkFERCA9Ci0rbGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBcCi0rCSQoQk9PU1RfTElC UykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpIFwK LSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK3BrZ2luY2x1 ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAot K3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvY29yZQotK2Vsc2UKLStzb2Np X2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQo c29jaV9pbmNsdWRlX2RpcikKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Nv cmUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5i YXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5iYXNpYwkyMDA5 LTA1LTIzIDEzOjM3OjA5LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xLDc2ICswLDAgQEAKLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwg LXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAKLS1PQkpTID0gIHNlc3Np b24ubyBzdGF0ZW1lbnQubyByb3cubyB2YWx1ZXMubyBcCi0tCWludG8tdHlwZS5vIHVzZS10eXBl Lm8gXAotLQlibG9iLm8gcm93aWQubyBwcm9jZWR1cmUubyByZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8ubyByZWYtY291bnRlZC1zdGF0ZW1lbnQubyBcCi0tCW9uY2UtdGVtcC10eXBlLm8gcHJlcGFy ZS10ZW1wLXR5cGUubyBlcnJvci5vIHRyYW5zYWN0aW9uLm8gYmFja2VuZC1sb2FkZXIubyBcCi0t CWNvbm5lY3Rpb24tcG9vbC5vIHNvY2ktc2ltcGxlLm8KLS0KLS0KLS1saWJzb2NpX2NvcmUuYSA6 ICR7T0JKU30gCi0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQotLXNoYXJlZCA6ICR7T0JKU30g Ci0tCSR7Q09NUElMRVJ9IC1mUElDIC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t CSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9jb3JlLnNvICR7T0JKU30gCi0tCXJtICou bwotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93Lm8g OiByb3cuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tdmFsdWVzLm8gOiB2YWx1ZXMuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9Ci0tCi0taW50by10eXBlLm8gOiBpbnRvLXR5cGUuY3BwCi0tCSR7 Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdXNlLXR5cGUu byA6IHVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQkKLS1ibG9iLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9yLm8gOiBlcnJvci5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3dpZC5vIDogcm93 aWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tcHJvY2VkdXJlLm8gOiBwcm9jZWR1cmUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLm8gOiBy ZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQtc3RhdGVtZW50Lm8gOiByZWYtY291 bnRlZC1zdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tb25jZS10ZW1wLXR5cGUubyA6IG9uY2UtdGVtcC10eXBlLmNwcAotLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXByZXBhcmUt dGVtcC10eXBlLm8gOiBwcmVwYXJlLXRlbXAtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8g JHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS10cmFuc2FjdGlvbi5vIDogdHJhbnNhY3Rp b24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0t Ci0tYmFja2VuZC1sb2FkZXIubyA6IGJhY2tlbmQtbG9hZGVyLmNwcAotLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWNvbm5lY3Rpb24tcG9vbC5vIDog Y29ubmVjdGlvbi1wb29sLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXNvY2ktc2ltcGxlLm8gOiBzb2NpLXNpbXBsZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0t CXJtIC1mIGxpYnNvY2lfY29yZS5hIGxpYnNvY2lfY29yZS5zbwotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxl LmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgkyMDA5LTA1LTIzIDEwOjAyOjAzLjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSw5MDUgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBh dXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0r Ci0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIw MDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0 ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVS UE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFk aXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FH RUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUiki ICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0 YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAk KGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFu c2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0r UFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6 Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0 ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChwa2dp bmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtl ZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCi0rc3ViZGlyID0gc29jaS9jb3JlCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rpcikv YWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NP TkZJR19DTEVBTl9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2Ug JCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3Jj ZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJp cF9kaXIgPSBgZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7Ci0rYW1fX2luc3RhbGxkaXJz ID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSts aWJMVExJQlJBUklFU19JTlNUQUxMID0gJChJTlNUQUxMKQotK0xUTElCUkFSSUVTID0gJChsaWJf TFRMSUJSQVJJRVMpCi0rbGlic29jaV9jb3JlX2xhX0RFUEVOREVOQ0lFUyA9Ci0rYW1fX29iamVj dHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5s byBcCi0rCWxpYnNvY2lfY29yZV9sYS1ibG9iLmxvIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9u LXBvb2wubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gbGlic29jaV9jb3JlX2xhLWlu dG8tdHlwZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBcCi0rCWxp YnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1w cm9jZWR1cmUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv LmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBcCi0rCWxp YnNvY2lfY29yZV9sYS1yb3cubG8gbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIFwKLSsJbGlic29j aV9jb3JlX2xhLXNlc3Npb24ubG8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIFwKLSsJ bGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24u bG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gbGlic29jaV9jb3JlX2xhLXZhbHVl cy5sbwotK2FtX2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSAkKGFt X19vYmplY3RzXzIpCi0rbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfY29y ZV9sYV9PQkpFQ1RTKQotK2xpYnNvY2lfY29yZV9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQo Q1hYTEQpIFwKLSsJJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJ JChsaWJzb2NpX2NvcmVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0RFRkFVTFRfSU5D TFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBjb21wID0g JChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxlc19tYXli ZSA9IGRlcGZpbGVzCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9 ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFH UykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01Q SUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09N UElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdT KSAkKENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xE KSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1v ICRACi0rU09VUkNFUyA9ICQobGlic29jaV9jb3JlX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VT ID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNFUykKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1y ZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2 ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmkt cmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJz aXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5z dGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVj dXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJz aXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJ TlNUQUxMX0hFQURFUikKLStIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZl CVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStF VEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykK LStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykg JChFWFRSQV9ESVNUKQotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rQUNM T0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05G ID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBB VVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0r Qk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVT WVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIg PSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JP T1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9P U1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAot K0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFM SVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0ND REVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAot K0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdT QAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBD UFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFgg PSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAot K0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9 IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVN UEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAK LStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRA Ci0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZM QUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStM SUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1AgPSBA TUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJRyA9 IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xERkxB R1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0r Tk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JK RVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBA UEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNL QUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RS SU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9WRVJT SU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRP UkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FM X0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdS RVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0r UE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFO TElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VUX01B S0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQ TE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSth YnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAK LSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIg PSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0g QGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1 ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAK LSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50 YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0r YnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLSti dWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1 aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9 IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAK LStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19v ayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBn c19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3Rf Y3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBo b3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRl ZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0r bGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0g QGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0g QGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5kaXJA Ci0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAK LStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3Ni aW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0g QHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNj b25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZp eCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0r dG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRp cikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Jsb2IuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9i bG9iLWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qt Z3JlZ29yaWFuLWRhdGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29z dC1mdXNpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1vcHRp b25hbC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxlLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmggXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9pbnRvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvaW50by10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10 ZW1wLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRl bXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUt aW5mby5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0 YXRlbWVudC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yb3dzZXQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNz aW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5kLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9zb2NpLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNh Y3Rpb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNp b24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24t dHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xkZXIu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3VzZS10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvdmFsdWVzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLWV4 Y2hhbmdlLmgKLSsKLStjb3JlX2NjX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvYmxvYi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29u bmVjdGlvbi1wb29sLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJv ci5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQu Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zdGF0ZW1lbnQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5z YWN0aW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotKwotK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0r I0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2ktc2lt cGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92YWx1ZXMtZXhjaGFuZ2UuaAotK0VYVFJBX0RJU1Qg PSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLStsaWJfTFRMSUJSQVJJRVMg PSBsaWJzb2NpX2NvcmUubGEKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUyA9ICQoY29yZV9oX3Nv dXJjZXMpICQoY29yZV9jY19zb3VyY2VzKSAKLStsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MgPSAK LStsaWJzb2NpX2NvcmVfbGFfTElCQUREID0gCi0rbGlic29jaV9jb3JlX2xhX0xERkxBR1MgPSBc Ci0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O KQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0rQFNPQ0lfSEVB REVSU19CVVJJRURfRkFMU0VAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStAU09D SV9IRUFERVJTX0JVUklFRF9UUlVFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3Nv Y2kvY29yZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6 IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFr ZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMu bWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2Fz ZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAg ICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZy ZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2Ug YnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7 IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kv Y29yZS9NYWtlZmlsZSc7IFwKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFL RSkgLS1nbnUgIHNvY2kvY29yZS9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtl ZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz Ci0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAot KwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRk aXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRV U19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9f Y29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2Rl cHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlA JChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIk KERFU1RESVIpJChsaWJkaXIpIgotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAgZj0kKGFt X19zdHJpcF9kaXIpIFwKLSsJICAgIGVjaG8gIiAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChsaWJMVExJQlJBUklFU19JTlNUQUxM KSAkKElOU1RBTExfU1RSSVBfRkxBRykgJyQkcCcgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7 IFwKLSsJICAgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9aW5zdGFsbCAkKGxpYkxUTElCUkFSSUVTX0lOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9G TEFHKSAiJCRwIiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0rCSAgZWxzZSA6OyBmaTsg XAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JNQUxfVU5J TlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCi0rCSAgcD0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQo REVTVERJUikkKGxpYmRpcikvJCRwJyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQo bGliZGlyKS8kJHAiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRl c3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0r CUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBk aXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRk aXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xv Y2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9u ZQotK2xpYnNvY2lfY29yZS5sYTogJChsaWJzb2NpX2NvcmVfbGFfT0JKRUNUUykgJChsaWJzb2Np X2NvcmVfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX2NvcmVfbGFfTElOSykgLXJwYXRo ICQobGliZGlyKSAkKGxpYnNvY2lfY29yZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV9sYV9M SUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9C SkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLWJhY2tlbmQtbG9hZGVyLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNs dWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlBsb0BhbV9f cXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xh LWVycm9yLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAK LStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJl LXRlbXAtdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlBsb0BhbV9fcXVv dGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uUGxvQGFtX19xdW90ZUAKLStA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9j b3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93 LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt c2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuUGxvQGFtX19xdW90 ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9jb3JlX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rp b24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS12YWx1ZXMuUGxvQGFtX19xdW90ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8g LWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIpLyQqLlRw byAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYg LWYgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICck PCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUp IC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSck QCcgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1j IC1vICRAICQ8Ci0rCi0rbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIuVHBvIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5U cG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5QbG8KLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmFja2VuZC1sb2FkZXIuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxv YWRlci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCi0rCi0rbGlic29j aV9jb3JlX2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1ibG9i LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5UcG8gLWMgLW8g bGlic29jaV9jb3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9i bG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvYmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWJsb2IubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAot KwotK2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5UcG8gLWMgLW8gbGli c29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5UcG8g JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuUGxvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Nvbm5lY3Rpb24tcG9vbC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24t cG9vbC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICckKHNyY2Rp cikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCi0rCi0rbGli c29jaV9jb3JlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAK LStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xh LWVycm9yLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtZXJyb3IuVHBv IC1jIC1vIGxpYnNvY2lfY29yZV9sYS1lcnJvci5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvZXJyb3IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJbXYgLWYgJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJv ci5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1lcnJv ci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt YyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvZXJyb3IuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9p bnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8t dHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVf bGEtb25jZS10ZW1wLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10 eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1vbmNlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLW9uY2UtdGVt cC10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2Ut dGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LW9uY2UtdGVtcC10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAnIG9iamVj dD0nbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1vbmNl LXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1w LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9v bmNlLXRlbXAtdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUu bG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcHJlcGFy ZS10ZW1wLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVw YXJlLXRlbXAtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUt dGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXByZXBhcmUtdGVtcC10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVf bGEtcHJvY2VkdXJlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1w cm9jZWR1cmUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1 cmUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUuVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXBy b2NlZHVyZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJl LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG86ICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1Mp ICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29j aV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJlZi1j b3VudGVkLXByZXBhcmUtaW5mby5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJl Zi1jb3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRl ZC1wcmVwYXJlLWluZm8uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlz b3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5j cHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJl LWluZm8uY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcmVmLWNv dW50ZWQtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt cmVmLWNvdW50ZWQtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291 bnRlZC1zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlRw byAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5QbG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1z dGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVk LXN0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcm93Lmxv OiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcm93LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyBvYmplY3Q9J2xp YnNvY2lfY29yZV9sYS1yb3cubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJvdy5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1yb3dpZC5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvd2lkLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cm93aWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQu VHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuUGxvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lk LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJv d2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAotKwotK2xp YnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9u LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2Nv cmVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNl c3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ bXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXNlc3Npb24uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyBvYmplY3Q9 J2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAKLSsKLStsaWJzb2Np X2NvcmVfbGEtc29jaS1zaW1wbGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2lt cGxlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X2NvcmVfbGEtc29jaS1zaW1wbGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29y ZV9sYS1zb2NpLXNpbXBsZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNv Y2ktc2ltcGxlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLlBsbwot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXNvY2kt c2ltcGxlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVf bGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1z dGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1l bnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJbXYgLWYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0 YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50 LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtdHJhbnNhY3Rpb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5z YWN0aW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dHJhbnNhY3Rpb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEt dHJhbnNhY3Rpb24uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3Vy Y2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcCcgb2JqZWN0PSdsaWJz b2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAot KwotK2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACW12IC1mICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10 eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK LStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3Jl X2xhLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10 eXBlLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS12YWx1ZXMubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ZhbHVlcy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXZhbHVlcy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAltdiAtZiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIG9i amVjdD0nbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCi0rCi0rbW9zdGx5 Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0g LXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRl X0hFQURFUlMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVk aXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJQGxpc3Q9 JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgZj0k KGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIgJChwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxM KSAnJCRkJCRwJyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKLSsJICAkKHBr Z2luY2x1ZGVIRUFERVJTX0lOU1RBTEwpICIkJGQkJHAiICIkKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6Ci0r CUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyBm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBmPSQoYW1fX3N0cmlwX2RpcikgXAotKwkgIGVjaG8g IiBybSAtZiAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmJyI7IFwKLSsJICBybSAtZiAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRmIjsgXAotKwlkb25lCi0rCi0rIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFp bGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2Fz ZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwK LSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0 YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVu IFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1h bSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAg Zmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2Nh bF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRl c3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsK LSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJ Zm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9 KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0r CSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJT KScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9 Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBm aTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwg c2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAot KwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAot KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWls IgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZl OgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChM SVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRB R1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAot KwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5j bHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9u PS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwK LSsJICAgICAgdGFncz0iJCR0YWdzICQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RB R1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7 IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAk KHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQk MF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsg Zm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFH U19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVu aXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdT KSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVl OyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURF UlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykg JChMSVNQKQotKwl0YWdzPTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFn cyQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxB R1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgot KwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQo dG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0r ZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFU SCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJ ZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAg Y3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGNwIC1wUiAkJGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0 IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkg ICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0 IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCWxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8 ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAot KwkgICAgZGlzdGRpcj1gJChhbV9fY2QpICQoZGlzdGRpcikgJiYgcHdkYDsgXAotKwkgICAgdG9w X2Rpc3RkaXI9YCQoYW1fX2NkKSAkKHRvcF9kaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICAoY2Qg JCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAg ICAgdG9wX2Rpc3RkaXI9IiQkdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJGRp c3RkaXIvJCRzdWJkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lw X2xlbmd0aF9jaGVjaz06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQg MTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNr LXJlY3Vyc2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQot K2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLSsJ Zm9yIGRpciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwK LSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl Ci0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFt Ci0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRh LWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1z dHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5l cmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsKLSttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFu LXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxUTElCUkFS SUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlz dGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdl bmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJlY3Vyc2l2ZQotKwotK2R2 aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86IGluZm8tcmVjdXJzaXZl Ci0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlMKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1leGVjLWFtOiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTCi0rCi0raW5zdGFsbC1odG1sOiBpbnN0 YWxsLWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJz aXZlCi0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbGNo ZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl Ci0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1j bGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3Rs eWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJz aXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxs LXN0cmlwCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wg Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1w ZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKLSsJaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAotKwlpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAotKwltb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0r CXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCi0rCXVuaW5zdGFs bC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStAU0VUX01B S0VACi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBv cnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1Yg YXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9jb3JlL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv Y29yZS9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvdXJjZXMu bWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3Ry ZXAzMDAvc29jaS9jb3JlL3NvdXJjZXMubWsJMjAwOS0wNS0yMiAyMjo1NDoxOC4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsNTggQEAKLStjb3JlX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2Jsb2ItZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9i b29zdC1ncmVnb3JpYW4tZGF0ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Jvb3N0LWZ1c2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0 LW9wdGlvbmFsLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtdHVw bGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wu aCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2V4Y2hhbmdlLXRyYWl0cy5oIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9pbnRvLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9v bmNlLXRlbXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBh cmUtdGVtcC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2Vk dXJlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJl cGFyZS1pbmZvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50 ZWQtc3RhdGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93Lmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LWV4Y2hhbmdlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuaCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yb3dpZC1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvd3NldC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3Nlc3Npb24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWJhY2tl bmQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWNvbmZpZy5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5oIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2kuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90 cmFuc2FjdGlvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29u dmVyc2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVy c2lvbi10cmFpdHMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWhv bGRlci5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtcHRyLmggXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLmggXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS92YWx1ZXMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1 ZXMtZXhjaGFuZ2UuaAotK2NvcmVfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9j b25uZWN0aW9uLXBvb2wuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vy cm9yLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVu dC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJh bnNhY3Rpb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBl LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmggc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgJMjAwOS0wNS0yMyAxMzoz NzowOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rl c3QvY29tbW9uLXRlc3RzLmgJMjAwOS0wNS0yMiAyMjo1NDoxNy4wMDAwMDAwMDAgKzAyMDAKLUBA IC04LDE2ICs4LDMwIEBACi0gI2lmbmRlZiBTT0NJX0NPTU1PTl9URVNUU19IX0lOQ0xVREVECi0g I2RlZmluZSBTT0NJX0NPTU1PTl9URVNUU19IX0lOQ0xVREVECi0gCi0tI2luY2x1ZGUgInNvY2ku aCIKLS0jaW5jbHVkZSAic29jaS1jb25maWcuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVB REVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktY29uZmlnLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9i b29zdC10dXBsZS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlh bi1kYXRlLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUg PHNvY2ktY29uZmlnLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxib29zdC1vcHRpb25hbC5oPgotKyMg ICAgICAgaW5jbHVkZSA8Ym9vc3QtdHVwbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPGJvb3N0LWdy ZWdvcmlhbi1kYXRlLmg+Ci0rI2VuZGlmCi0rLy8KLSAKLSAvLyBleHBsaWNpdGx5IHB1bGwgY29u dmVyc2lvbnMgZm9yIEJvb3N0J3Mgb3B0aW9uYWwsIHR1cGxlIGFuZCBmdXNpb246Ci0gI2luY2x1 ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotLSNpbmNsdWRlIDxib29zdC1vcHRpb25hbC5oPgotLSNp bmNsdWRlIDxib29zdC10dXBsZS5oPgotLSNpbmNsdWRlIDxib29zdC1ncmVnb3JpYW4tZGF0ZS5o PgotICNpZiBkZWZpbmVkKEJPT1NUX1ZFUlNJT04pICYmIEJPT1NUX1ZFUlNJT04gPj0gMTAzNTAw Ci0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjaW5jbHVkZSA8c29jaS9jb3Jl L2Jvb3N0LWZ1c2lvbi5oPgotKyNlbHNlCi0gI2luY2x1ZGUgPGJvb3N0LWZ1c2lvbi5oPgotKyNl bmRpZgotICNlbmRpZiAvLyBCT09TVF9WRVJTSU9OCi0gCi0gI2luY2x1ZGUgPGFsZ29yaXRobT4K LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9N YWtlZmlsZS5hbQkyMDA5LTA1LTIyIDIyOjU0OjE3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCAr MSwyNiBAQAotKyMjIGNvcmUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9Ci0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01Q QVRJQklMSVRZKQotKwotK25vaW5zdF9MVExJQlJBUklFUz0gbGlic29jaV9jb3JlX3Rlc3QubGEK LSsKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTPSAkKGNvcmVfdGVzdF9oX3NvdXJjZXMp Ci0rbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxBR1MgPQotK2xpYnNvY2lfY29yZV90ZXN0X2xh X0xJQkFERCA9Ci0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZv ICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFH UyA9Ci0rCi0rcGtnaW5jbHVkZV9IRUFERVJTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQotK2lm IFNPQ0lfSEVBREVSU19CVVJJRUQKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9z b2NpL2NvcmUvdGVzdAotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQot K2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9NYWtlZmlsZS5p bgkyMDA5LTA1LTIzIDEwOjAyOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1MTYgQEAK LSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjEwLjIgZnJvbSBNYWtlZmls ZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5 OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAy MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhv dXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0r Ci0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAot K3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pT SF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0g JChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxf c2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9I RUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3Jt X25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNU QUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NU X1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9 IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURFUlMpICQoc3JjZGlyKS9N YWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2Rpcikvc291cmNlcy5t ayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaS9jb3Jl L3Rlc3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9j YWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9v cmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00 ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9f YWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FM X000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9 ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStM VExJQlJBUklFUyA9ICQobm9pbnN0X0xUTElCUkFSSUVTKQotK2xpYnNvY2lfY29yZV90ZXN0X2xh X0RFUEVOREVOQ0lFUyA9Ci0rYW1fX29iamVjdHNfMSA9Ci0rYW1fbGlic29jaV9jb3JlX3Rlc3Rf bGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpF Q1RTID0gJChhbV9saWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKQotK2xpYnNvY2lfY29yZV90 ZXN0X2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSBcCi0r CSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykgXAotKwkkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAK LStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2Np Ci0rQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSBcCi0rCSQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykK LStMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFN X0NGTEFHUykgJChDRkxBR1MpCi0rQ0NMRCA9ICQoQ0MpCi0rTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5r ICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJJChMREZM QUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMpCi0r RElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTKQotK2FtX192cGF0 aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58 ZydgOwotK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCi0rICAgICQoc3JjZGlyKS8qKSBm PWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCi0rICAgICopIGY9 JCRwOzsgXAotKyAgZXNhYzsKLSthbV9fc3RyaXBfZGlyID0gYGVjaG8gJCRwIHwgc2VkIC1lICdz fF4uKi98fCdgOwotK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSIKLStwa2dpbmNsdWRlSEVBREVSU19JTlNUQUxMID0gJChJTlNUQUxMX0hFQURFUikKLStIRUFE RVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3Rh Z3MKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZP UykgJChFWFRSQV9ESVNUKQotK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0r QUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9D T05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9 IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NA Ci0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJ TEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19M SUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0r Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAot K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElC QAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFN RVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAot K0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQ QAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZM QUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9 IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStD WFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RF QAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVG UyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0r RFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9f TkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVF WFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJ Q19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAK LStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNU QUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFM TF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStM REZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AK LStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStM VExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01LRElSX1Ag PSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NPTkZJ RyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xE RkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05A Ci0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0r T0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVf T0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBA T1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZF UlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0Ug PSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQ QUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0Vf U1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9W RVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFS QVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JF U1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9T VEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NA Ci0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBA UkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBTRURACi0rU0VU X01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklF RCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAot K1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAK LSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2Rp ckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNk aXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hY ID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2lu Y2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2Rv dEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9f dW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRA Ci0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAK LStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAot K2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRp ciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2Rp ckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlw c19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9 IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hv c3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9 IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNs dWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hA Ci0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGly ID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGly ID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRpciA9IEBtYW5k aXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRp ckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAot K3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGly ID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBz eXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3By ZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJA Ci0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWls ZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3RfY2Nfc291cmNlcyA9 IAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJ X0NPTVBBVElCSUxJVFkpCi0rbm9pbnN0X0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlX3Rlc3Qu bGEKLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2Vz KQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0gCi0rbGlic29jaV9jb3JlX3Rlc3Rf bGFfTElCQUREID0gCi0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1p bmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTERG TEFHUyA9IAotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKLStA U09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVk ZWRpcikvc29jaS9jb3JlL3Rlc3QKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNy Y2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMp Ci0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMp JyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsg aWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAg IGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlJzsgXAot KwljZCAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSAgc29jaS9jb3Jl L3Rlc3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGly KS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8n IGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAg ICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVT KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLStj bGVhbi1ub2luc3RMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobm9pbnN0X0xUTElCUkFSSUVT KSIgfHwgcm0gLWYgJChub2luc3RfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKG5vaW5zdF9MVExJ QlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNl ZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRp cj0uOyBcCi0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkg IHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfY29yZV90 ZXN0LmxhOiAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX3Rl c3RfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LKSAgJChs aWJzb2NpX2NvcmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0xJQkFE RCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JKRVhU KQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK21vc3RseWNs ZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1y ZiAubGlicyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9I RUFERVJTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGly KSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSck KHBrZ2luY2x1ZGVfSEVBREVSUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGY9JChh bV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQocGtnaW5jbHVkZUhFQURFUlNfSU5TVEFMTCkg JyQkZCQkcCcgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgJChwa2dp bmNsdWRlSEVBREVSU19JTlNUQUxMKSAiJCRkJCRwIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRp cikvJCRmIjsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgotKwlA JChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgZm9y IHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZj0kKGFtX19zdHJpcF9kaXIpIFwKLSsJICBlY2hvICIg cm0gLWYgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiciOyBcCi0rCSAgcm0gLWYgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZiI7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAk JHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJdGFncz07 IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQk dGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwg dW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VU QUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCi0rCWZp Ci0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIiBcCi0rCSAgfHwgJChD VEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkg ICAgICQkdGFncyAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3Bf YnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmIGNkICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0 YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAt ZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChE SVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUg JChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1wUiAk JGQvJCRmaWxlICQoZGlzdGRpcikkJGRpciB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAg IHRlc3QgLWYgJChkaXN0ZGlyKS8kJGZpbGUgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAk KGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25l Ci0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUg JChMVExJQlJBUklFUykgJChIRUFERVJTKQotK2luc3RhbGxkaXJzOgotKwlmb3IgZGlyIGluICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwg JChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5z dGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1h bQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0r Ci0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAot KwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGlu c3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlz dGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJt IC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK LSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwg cm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVh bi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVT IFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0g LWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwot K2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raW5mbzogaW5mby1hbQotKwotK2luZm8t YW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0r aW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2lu c3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWlu Zm8tYW0KLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0K LSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwot K21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxl Ci0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFt OiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVh bi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0r Ci0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMK LSsKLSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBH VEFHUyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwlj bGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCi0r CWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwK LSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGlu Zm8tYW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1h bSBpbnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0 YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBp bnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGlu c3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJz IG1haW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB1bmluc3RhbGwgdW5pbnN0 YWxsLWFtIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAKLSsjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv dGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291 cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDUtMjIgMjI6NTQ6MTcu MDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStjb3JlX3Rlc3RfaF9zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAotK2NvcmVfdGVzdF9j Y19zb3VyY2VzID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCTIwMDktMDUtMjIgMjI6NTQ6 MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStpbmNsdWRlICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gY29yZSBiYWNrZW5kcwot KwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZp bGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAwOS0wNS0yMyAx MDowMjowMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTY1IEBACi0rIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMC4yIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29u ZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIE1h a2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0r IyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAK LStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRp cikvQFBBQ0tBR0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0r YW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBj ZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9z aF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0 YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3Jt ID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9J TlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BS RV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBi dWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9N YWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHNyY2RpcikvY29uZmlnLmgu aW4gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBzb2NpCi0rQUNMT0NB TF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5t NCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24u bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVw cykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3Rh bGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSBjb25maWcuaAotK0NP TkZJR19DTEVBTl9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0rRElTVF9TT1VSQ0VTID0KLStSRUNVUlNJ VkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUg XAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlp bnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAot KwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJz aXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAg ZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0VUQUdTID0g ZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFS QAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStB VVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0NGTEFHUyA9IEBCT09T VF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAot K0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lP U1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NU X0xJQlNACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VS SUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFM U19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9U SFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStC T09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0ND ID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStD UFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQ UFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVO SVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVS U0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBD WFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRI X1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRFNZTVVUSUwgPSBARFNZ TVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19O ID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVY VCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04g PSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBA SU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JB TSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRA Ci0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9 IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMg PSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBA TE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAot K01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01Z U1FMX0NPTkZJRyA9IEBNWVNRTF9DT05GSUdACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAot K01ZU1FMX0xERkxBR1MgPSBATVlTUUxfTERGTEFHU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9C SkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AK LStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xE RkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFD TEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAot K1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0r UEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQ QVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AK LStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJ UlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FM X0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStS QU5MSUIgPSBAUkFOTElCQAotK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAotK1NFRCA9IEBT RURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0g QFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBA VkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0r YWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5A Ci0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19s ZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3Rh ckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQg PSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1 aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRf dmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStk YXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGly ID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRp ckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAK LStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2Fs aWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0 X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRp ciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGlu c3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLSts aWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2Nh bHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbHRfRUNITyA9IEBsdF9FQ0hPQAotK21hbmRp ciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xk aW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0g QHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJl ZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29u ZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9w X2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3Bf YnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkk KHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotK1NVQkRJUlMgPSBjb3JlIGJhY2tlbmRzCi0rRVhUUkFfRElTVCA9IAotK2Fs bDogY29uZmlnLmgKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYWxsLXJlY3Vyc2l2ZQotKwot Ky5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0r CUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBp biBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYg dGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4 aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2Rp cikgJiYgJChBVVRPTUFLRSkgLS1nbnUgIHNvY2kvTWFrZWZpbGUnOyBcCi0rCWNkICQodG9wX3Ny Y2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251ICBzb2NpL01ha2VmaWxlCi0rLlBSRUNJ T1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0 dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZp bGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNh YzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGly KS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTog ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rCi0rY29uZmlnLmg6IHN0YW1wLWgxCi0rCUBp ZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAotKwkgIHJtIC1mIHN0YW1wLWgxOyBcCi0rCSAgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IFwKLSsJZWxzZSA6OyBmaQotKwotK3N0YW1wLWgx OiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJ QHJtIC1mIHN0YW1wLWgxCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZp Zy5zdGF0dXMgc29jaS9jb25maWcuaAotKyQoc3JjZGlyKS9jb25maWcuaC5pbjogICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKSAKLSsJY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9IRUFERVIpCi0rCXJt IC1mIHN0YW1wLWgxCi0rCXRvdWNoICRACi0rCi0rZGlzdGNsZWFuLWhkcjoKLSsJLXJtIC1mIGNv bmZpZy5oIHN0YW1wLWgxCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8K LSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFp bGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2Fz ZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwK LSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0 YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVu IFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1h bSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAg Zmk7IFwKLSsJICAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2Nh bF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRl c3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsK LSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWxjb209J2V4aXQgMSc7IFwKLSsJ Zm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9 KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAg ZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0r CSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJT KScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9 Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBm aTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwg c2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAg ZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAot KwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAot KwkgIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rhcmdl dCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWls IgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZl OgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0 ZXN0ICIkJHN1YmRpciIgPSAuIHx8IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChM SVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRB R1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmln LmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0r CXRhZ3M9OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVk ZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249 LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5j bHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGly L1RBR1MgfHwgXAotKwkgICAgICB0YWdzPSIkJHRhZ3MgJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAot KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc Ci0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSI7IHRoZW4gOjsgZWxz ZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkg ICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwK LSsJICAgICQkdGFncyAkJHVuaXF1ZTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBj dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19E RVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwl0YWdzPTsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0r CSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR0YWdzJCR1bmlxdWUiIFwK LSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19B UkdTKSBcCi0rCSAgICAgJCR0YWdzICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1f X2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgY2QgJCh0b3Bfc3JjZGlyKSBc Ci0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAkJGhlcmUKLSsKLStkaXN0Y2xlYW4tdGFn czoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStk aXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmls ZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtcFIgJChzcmNk aXIpLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCi0rCSAgICBmaTsgXAotKwkg ICAgY3AgLXBSICQkZC8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAotKwkgIGVs c2UgXAotKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCi0rCSAgICB8fCBjcCAtcCAk JGQvJCRmaWxlICQoZGlzdGRpcikvJCRmaWxlIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZp OyBcCi0rCWRvbmUKLSsJbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkg ICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAi JChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgICBkaXN0ZGly PWAkKGFtX19jZCkgJChkaXN0ZGlyKSAmJiBwd2RgOyBcCi0rCSAgICB0b3BfZGlzdGRpcj1gJChh bV9fY2QpICQodG9wX2Rpc3RkaXIpICYmIHB3ZGA7IFwKLSsJICAgIChjZCAkJHN1YmRpciAmJiBc Ci0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRp cj0iJCR0b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkZGlzdGRpci8kJHN1YmRp ciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7 IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0r YWxsLWFtOiBNYWtlZmlsZSBjb25maWcuaAotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1 cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2lu c3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFs bC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVj LWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vy c2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0r CSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1f RU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6 Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXog IiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0r Ci0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGlu dGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVz IHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXog IiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVT KQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBj bGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVj dXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLXJl Y3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwotK2luZm86 IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0r aW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZXhlYy1hbToK LSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxs LXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFp bnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1j bGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3Rs eWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZl Ci0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmlu c3RhbGwtYW06Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFH UyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4t Z2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRh Z3MgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0 YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwt ZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0 YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1h bSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMg aW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVj ay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCi0rCW1haW50YWluZXItY2xlYW4gbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3Mt cmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS1jb25maWcuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS1jb25maWcuaW4JMjAwOS0wNS0y MiAyMjo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNzYgQEAKLSsjIS9iaW4vc2gK LSsKLStwcmVmaXg9QHByZWZpeEAKLStleGVjX3ByZWZpeD0ke3ByZWZpeH0KLStsaWJkaXI9QGxp YmRpckAKLStpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAotKwotK3VzYWdlKCkKLSt7Ci0rICBjYXQg PDxFT0YKLStVc2FnZTogQFBBQ0tBR0VALWNvbmZpZyBbT1BUSU9OXQotKwotK0tub3duIHZhbHVl cyBmb3IgT1BUSU9OIGFyZToKLSsKLSsgIC0tcHJlZml4ICAgICAgICBwcmludCBAUEFDS0FHRV9O QU1FQCBpbnN0YWxsYXRpb24gcHJlZml4Ci0rICAtLWxpYnMgICAgICAgICAgcHJpbnQgbGlicmFy eSBsaW5raW5nIGluZm9ybWF0aW9uCi0rICAtLWNmbGFncyAgICAgICAgcHJpbnQgcHJlLXByb2Nl c3NvciBhbmQgY29tcGlsZXIgZmxhZ3MKLSsgIC0taGVscCAgICAgICAgICBkaXNwbGF5IHRoaXMg aGVscCBhbmQgZXhpdAotKyAgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2ZXJzaW9uIGluZm9ybWF0 aW9uCi0rRU9GCi0rICBleGl0ICQxCi0rfQotKwotK2lmIHRlc3QgJCMgLWVxIDA7IHRoZW4KLSsg IHVzYWdlIDEKLStmaQotKwotK2NmbGFncz1mYWxzZQotK2xpYnM9ZmFsc2UKLSsKLSt3aGlsZSB0 ZXN0ICQjIC1ndCAwOyBkbwotKyAgY2FzZSAiJDEiIGluCi0rICAtKj0qKSBvcHRhcmc9YGVjaG8g IiQxIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0rICAqKSBvcHRhcmc9IDs7Ci0r ICBlc2FjCi0rCi0rICBjYXNlICQxIGluCi0rICAgIC0tcHJlZml4PSopCi0rICAgICAgcHJlZml4 PSRvcHRhcmcKLSsgICAgICA7OwotKwotKyAgICAtLXByZWZpeCkKLSsgICAgICBlY2hvICRwcmVm aXgKLSsgICAgICA7OwotKwotKyAgICAtLXZlcnNpb24pCi0rICAgICAgZWNobyBAVkVSU0lPTkAK LSsgICAgICA7OwotKwotKyAgICAtLWhlbHApCi0rICAgICAgdXNhZ2UgMAotKyAgICAgIDs7Ci0r Ci0rICAgIC0tY2ZsYWdzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRo ZW4KLSsgICAgICAgIGVjaG8gLUkke2luY2x1ZGVkaXJ9Ci0rICAgICAgZWxzZQotKyAgICAgICAg ZWNobwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgLS1saWJzKQotKyAgICAgIGlmIFsg IiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUwke2xpYmRpcn0g LWxAUEFDS0FHRUAKLSsgICAgICBlbHNlCi0rICAgICAgICBlY2hvIC1sQFBBQ0tBR0VACi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIHVzYWdlCi0rICAgICAgZXhpdCAx Ci0rICAgICAgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kubTQgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0r Kysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQJMjAwOS0wNS0yMiAyMjo1NDoyMi4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsMTE4IEBACi0rZG5sIEBzeW5vcHNpcyBBWF9TT0NJCi0rZG5s IAotK2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgU29jaSBDIEFQSSBoZWFkZXIgYW5kIGxp YnJhcnkgbG9jYXRpb25zLgotK2RubAotK2RubCBXZSBkZWZpbmUgdGhlIGZvbGxvd2luZyBjb25m aWd1cmUgc2NyaXB0IGZsYWdzOgotK2RubAotK2RubAktLXdpdGgtc29jaTogR2l2ZSBwcmVmaXgg Zm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQotK2RubAkJICAgICB0byBndWVz cyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9yIGVhY2guICAoZS5nLiBhZGQgL2xpYiBhbmQKLStkbmwJ CSAgICAgL2luY2x1ZGUgb250byBnaXZlbiBkaXIgbmFtZXMsIGFuZCBvdGhlciBjb21tb24gc2No ZW1lcy4pCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMywgMjAwOS8wNS8wMgotK2RubCBAYXV0aG9y IERlbmlzIEFybmF1ZCA8ZGVuaXNfYXJuYXVkQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLStkbmwK LStkbmwgQHZlcnNpb24gMS4yLCAyMDA3LzAyLzIwCi0rZG5sIEBhdXRob3IgV2FycmVuIFlvdW5n IDxzb2NpcHBAZXRyLXVzYS5jb20+Ci0rCi0rQUNfREVGVU4oW0FYX1NPQ0ldLAotK1sKLSsjCi0r IyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKLSsjCi0rQUNfQVJHX1dJVEgoc29jaSwK LSsJWy0td2l0aC1zb2NpPTxwYXRoPiAgICAgcm9vdCBkaXJlY3RvcnkgcGF0aCBvZiBTb2NpIGlu c3RhbGxhdGlvbl0sCi0rCVtTT0NJX2xpYl9jaGVjaz0iJHdpdGhfc29jaS9saWI2NC9zb2NpICR3 aXRoX3NvY2kvbGliL3NvY2kgJHdpdGhfc29jaS9saWI2NCAkd2l0aF9zb2NpL2xpYiIKLSsJU09D SV9pbmNfY2hlY2s9IiR3aXRoX3NvY2kvaW5jbHVkZSAkd2l0aF9zb2NpL2luY2x1ZGUvc29jaSJd LAotKwlbU09DSV9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9saWIgL3Vzci9saWI2NC9zb2Np IC91c3IvbGliL3NvY2kgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2FsL2xpYiAvb3B0L3NvY2kv bGliNjQgL29wdC9zb2NpL2xpYiAvdXNyL2xvY2FsL2xpYjY0L3NvY2kgL3Vzci9sb2NhbC9saWIv c29jaSAvdXNyL2xvY2FsL3NvY2kvbGliNjQgL3Vzci9sb2NhbC9zb2NpL2xpYiAvb3B0L3NvY2kv bGliNjQvc29jaSAvb3B0L3NvY2kvbGliL3NvY2kiCi0rCVNPQ0lfaW5jX2NoZWNrPSIvdXNyL2lu Y2x1ZGUgL3Vzci9pbmNsdWRlL3NvY2kgL3Vzci9sb2NhbC9pbmNsdWRlIC9vcHQvc29jaS9pbmNs dWRlIC91c3IvbG9jYWwvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvc29jaS9pbmNsdWRlIC91c3Iv bG9jYWwvc29jaS9pbmNsdWRlL3NvY2kgL29wdC9zb2NpL2luY2x1ZGUvc29jaSJdKQotKwotKyMg U09DSSBsaWJyYXJ5Ci0rU09DSV9DT1JFX0xJQj1zb2NpX2NvcmUKLStTT0NJX01ZU1FMX0xJQj1z b2NpX215c3FsCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQSSBsaWJyYXJ5Ci0rIwot K0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgbGlicmFyeSBkaXJlY3RvcnldKQotK1NPQ0lfbGli ZGlyPQotK2ZvciBtIGluICRTT0NJX2xpYl9jaGVjawotK2RvCi0rCWlmIHRlc3QgLWQgIiRtIiAm JiBcCi0rCQkodGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09SRV9MSUIuc28iIHx8IHRlc3QgLWYgIiRt L2xpYiRTT0NJX0NPUkVfTElCLmEiKQotKwl0aGVuCi0rCQlTT0NJX2xpYmRpcj0kbQotKwkJYnJl YWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lfbGliZGlyIgotK3RoZW4KLSsJ QUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkU09DSV9DT1JFX0xJQiBsaWJyYXJ5IGluICckU09D SV9saWJfY2hlY2snXSkKLStmaQotKwotK2Nhc2UgIiRTT0NJX2xpYmRpciIgaW4KLSsJLyogKSA7 OwotKwkqICkgIEFDX01TR19FUlJPUihbVGhlIFNvY2kgbGlicmFyeSBkaXJlY3RvcnkgKCRTT0NJ X2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rZXNhYwotKwotK0FDX01T R19SRVNVTFQoWyRTT0NJX2xpYmRpcl0pCi0rCi0rY2FzZSAiJFNPQ0lfbGliZGlyIiBpbgotKyAg L3Vzci9saWI2NCkgOzsKLSsgIC91c3IvbGliKSA7OwotKyAgKikgU09DSV9MSUJTPSItTCR7U09D SV9saWJkaXJ9IiA7OwotK2VzYWMKLStMREZMQUdTPSIkTERGTEFHUyAke1NPQ0lfTElCU30iCi0r Ci0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQSSBoZWFkZXJzCi0rIwotK0FDX01TR19D SEVDS0lORyhbZm9yIFNvY2kgaW5jbHVkZSBkaXJlY3RvcnldKQotK1NPQ0lfaW5jZGlyPQotK2Zv ciBtIGluICRTT0NJX2luY19jaGVjawotK2RvCi0rCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1m ICIkbS9zb2NpL2NvcmUvc29jaS5oIgotKwl0aGVuCi0rCQlTT0NJX2luY2Rpcj0kbQotKwkJYnJl YWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lfaW5jZGlyIgotK3RoZW4KLSsJ QUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgU29jaSBpbmNsdWRlIGRpciBpbiAnJFNPQ0lf aW5jX2NoZWNrJ10pCi0rZmkKLSsKLStjYXNlICIkU09DSV9pbmNkaXIiIGluCi0rCS8qICkgOzsK LSsJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5ICgkU09DSV9p bmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotK2VzYWMKLSsKLStBQ19NU0df UkVTVUxUKFskU09DSV9pbmNkaXJdKQotKwotK2Nhc2UgIiRTT0NJX2luY2RpciIgaW4KLSsgIC91 c3IvaW5jbHVkZSkgOzsKLSsgICopIFNPQ0lfQ0ZMQUdTPSItSSR7U09DSV9pbmNkaXJ9IiA7Owot K2VzYWMKLSsKLStTT0NJX0xJQlM9IiR7U09DSV9MSUJTfSAtbCR7U09DSV9DT1JFX0xJQn0gLWwk e1NPQ0lfTVlTUUxfTElCfSAtbGRsIgotKwotK0FDX1NVQlNUKFNPQ0lfQ0ZMQUdTKQotK0FDX1NV QlNUKFNPQ0lfTElCUykKLSsKLSsjIFRlc3QgbGlua2luZyB3aXRoIHNvY2kgKG5vdGUgdGhhdCBp dCBuZWVkcyBNeVNRTCBjbGllbnQgdG8gaGF2ZSBiZWVuIGRlZmluZWQKLSsjIGJlZm9yZSkKLStz YXZlX0xJQlM9IiRMSUJTIgotK2lmIHRlc3QgLXogIiRNWVNRTF9MSUJTIgotK3RoZW4KLSsJTVlT UUxfTElCUz0iLUwvdXNyL2xpYjY0L215c3FsIC1ML3Vzci9saWIvbXlzcWwgLWxteXNxbGNsaWVu dCIKLStmaQotK0xJQlM9IiRMSUJTICRNWVNRTF9MSUJTICRTT0NJX0xJQlMiCi0rQUNfQ0hFQ0tf TElCKCRTT0NJX0NPUkVfTElCLCBzb2NpX2JlZ2luLAotKwkgICAgIFtdLCAKLSsgICAgICAgICAg ICAgW0FDX01TR19FUlJPUihbQ291bGQgbm90IGZpbmQgd29ya2luZyBTb2NpIGNsaWVudCBsaWJy YXJ5IV0pXQotKwkgICAgICkKLStMSUJTPSIkc2F2ZV9MSUJTIgotK0FDX1NVQlNUKFNPQ0lfQ09S RV9MSUIpCi0rXSkgZG5sIEFYX1NPQ0kKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np LnBjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS5wYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCTIwMDktMDUtMjIgMjI6NTQ6MjIuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rcHJlZml4PUBwcmVmaXhACi0rZXhlY19wcmVmaXg9 QGV4ZWNfcHJlZml4QAotK2xpYmRpcj1AbGliZGlyQAotK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJA Ci0rCi0rTmFtZTogQFBBQ0tBR0VfTkFNRUAKLStEZXNjcmlwdGlvbjogVGhlIGRhdGFiYXNlIGFj Y2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKLStWZXJzaW9uOiBAUEFDS0FHRV9WRVJT SU9OQAotK1VSTDogaHR0cDovL0BQQUNLQUdFQC5zb3VyY2Vmb3JnZS5uZXQKLStMaWJzOiAtTCR7 bGliZGlyfSAtbEBQQUNLQUdFQF9jb3JlIEBMREZMQUdTQCBATElCU0AKLStDZmxhZ3M6IC1JJHtp bmNsdWRlZGlyfQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kuc3BlYy5pbiBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS5zcGVjLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS5z cGVjLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kuc3BlYy5pbgkyMDA5LTA1LTIzIDA5OjU4OjM4LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSwzMjcgQEAKLSsjCi0rIyMKLSsjIERlZmF1bHQgdmFsdWVzIGFyZSAtLXdp dGggbXlzcWwgLS13aXRoIHBvc3RncmVzcWwgLS13aXRob3V0IG9yYWNsZSAKLSsjIE5vdGUgdGhh dCwgZm9yIE9yYWNsZSwgd2hlbiBlbmFibGVkLCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgc2hvdWxk Ci0rIyBhbHNvIGJlIGdpdmVuOgotKyMgLS13aXRoLW9yYWNsZS1pbmNsdWRlPS9vcHQvb3JhY2xl L2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMS9yZGJtcy9wdWJsaWMKLSsjIC0td2l0aC1v cmFjbGUtbGliPS9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJfMS9saWIK LSsjIElmIHRoZSBtYWNyb3MgYXJlIGRlZmluZWQsIHJlZGVmaW5lIHRoZW0gd2l0aCB0aGUgY29y cmVjdCBjb21waWxhdGlvbiBmbGFncy4KLSslYmNvbmRfd2l0aG91dCBteXNxbAotKyViY29uZF93 aXRob3V0IHBvc3RncmVzcWwKLSslYmNvbmRfd2l0aCBvcmFjbGUKLSsKLSslZGVmaW5lIF9kZWZh dWx0X29yYWNsZV9kaXIgL29wdC9vcmFjbGUvYXBwL29yYWNsZS9wcm9kdWN0LzExLjEuMC9kYl8x Ci0rJXshP193aXRoX29yYWNsZV9pbmNkaXI6ICVkZWZpbmUgX3dpdGhfb3JhY2xlX2luY2RpciAt LXdpdGgtb3JhY2xlLWluY2x1ZGU9JXtfZGVmYXVsdF9vcmFjbGVfZGlyfS9yZGJtcy9wdWJsaWN9 Ci0rJXshP193aXRoX29yYWNsZV9saWJkaXI6ICVkZWZpbmUgX3dpdGhfb3JhY2xlX2xpYmRpciAt LXdpdGgtb3JhY2xlLWxpYj0le19kZWZhdWx0X29yYWNsZV9kaXJ9L2xpYn0KLSsjCi0rIyMKLSsj Ci0rTmFtZTogICAgICAgICAgIEBQQUNLQUdFQAotK1ZlcnNpb246ICAgICAgICBAVkVSU0lPTkAK LStSZWxlYXNlOiAgICAgICAgQFJQTV9SRUxFQVNFQCV7P2Rpc3R9Ci0rCi0rU3VtbWFyeTogICAg ICAgIFRoZSBkYXRhYmFzZSBhY2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJzCi0rCi0r R3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKLStMaWNlbnNlOiAg ICAgICAgQm9vc3QKLStVUkw6ICAgICAgICAgICAgaHR0cDovLyV7bmFtZX0uc291cmNlZm9yZ2Uu bmV0Ci0rU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3Nv Y2kvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negotKyMgVGhhdCBwYXRjaCB3aWxsIGJlIHN1Ym1p dHRlZCB1cHN0cmVhbQotK1BhdGNoMDogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0tZml4LWdj YzQzLWNvbXBhdGliaWxpdHkucGF0Y2gKLSsjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJtaXR0ZWQg dXBzdHJlYW0KLStQYXRjaDE6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LWZpeC1nbnUtYXV0 b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKLStCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0v JXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKLSsKLStC dWlsZFJlcXVpcmVzOiAgYm9vc3QtZGV2ZWwKLSsjQnVpbGRSZXF1aXJlczogIGNwcHVuaXQtZGV2 ZWwgPj0gMS4xMAotK0J1aWxkUmVxdWlyZXM6ICBsaWJ0b29sCi0rI1JlcXVpcmVzOiAgICAgICAK LSsKLSslZGVzY3JpcHRpb24KLStAUEFDS0FHRV9OQU1FQCBpcyBhIEMrKyBkYXRhYmFzZSBhY2Nl c3MgbGlicmFyeSB0aGF0IHByb3ZpZGVzIHRoZQotK2lsbHVzaW9uIG9mIGVtYmVkZGluZyBTUUwg aW4gcmVndWxhciBDKysgY29kZSwgc3RheWluZyBlbnRpcmVseSB3aXRoaW4KLSt0aGUgQysrIHN0 YW5kYXJkLgotKwotKwotKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2UgICAgICAgIG15c3FsCi0rU3Vt bWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAg U3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9ID0g JXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0rQnVpbGRSZXF1aXJlczogIG15c3FsLWRldmVsID49IDUu MAotKwotKyVkZXNjcmlwdGlvbiAgICBteXNxbAotK1RoaXMgcGFja2FnZSBjb250YWlucyB0aGUg TXlTUUwgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCi0rZHluYW1pYyBsaWJyYXJ5 IHNwZWNpZmljIHRvIHRoZSBNeVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KLSt1 c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIE15U1FMLCB5b3Ugd2lsbCBu ZWVkIHRvCi0raW5zdGFsbCAle25hbWV9LW15c3FsLn0KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6 JXBhY2thZ2UgICAgICAgIHBvc3RncmVzcWwKLStTdW1tYXJ5OiAgICAgICAgUG9zdEdyZVNRTCBi YWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9M aWJyYXJpZXMKLStSZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQotK0J1aWxkUmVxdWlyZXM6ICBwb3N0Z3Jlc3FsLWRldmVsID49IDcuMQotKwotKyVkZXNjcmlw dGlvbiAgICBwb3N0Z3Jlc3FsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBQb3N0R3JlU1FM IGJhY2tlbmQgZm9yIEBQQUNLQUdFX05BTUVALCBpLmUuLAotK2R5bmFtaWMgbGlicmFyeSBzcGVj aWZpYyB0byB0aGUgUG9zdEdyZVNRTCBkYXRhYmFzZS4gSWYgeW91IHdvdWxkIGxpa2UKLSt0byB1 c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBwcm9ncmFtcyB3aXRoIFBvc3RHcmVTUUwsIHlvdSB3 aWxsIG5lZWQgdG8KLStpbnN0YWxsICV7bmFtZX0tcG9zdGdyZXNxbC59Ci0rCi0rJXs/d2l0aF9v cmFjbGU6JXBhY2thZ2UgICAgICAgIG9yYWNsZQotK1N1bW1hcnk6ICAgICAgICBPcmFjbGUgYmFj a2VuZCBmb3IgJXtuYW1lfQotK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGli cmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0K LSsKLSslZGVzY3JpcHRpb24gICAgb3JhY2xlCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBP cmFjbGUgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAsIGkuZS4sCi0rZHluYW1pYyBsaWJyYXJ5 IHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlvdSB3b3VsZCBsaWtlIHRvCi0r dXNlIEBQQUNLQUdFX05BTUVAIGluIHlvdXIgcHJvZ3JhbXMgd2l0aCBPcmFjbGUsIHlvdSB3aWxs IG5lZWQgdG8gaW5zdGFsbAotKyV7bmFtZX0tb3JhY2xlLn0KLSsKLSsKLSslcGFja2FnZSAgICAg ICAgZGV2ZWwKLStTdW1tYXJ5OiAgICAgICAgSGVhZGVyIGZpbGVzLCBsaWJyYXJpZXMgYW5kIGRl dmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgRGV2 ZWxvcG1lbnQvTGlicmFyaWVzCi0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KLStSZXF1aXJlczogICAgICAgcGtnY29uZmlnCi0rCi0rJWRlc2NyaXB0aW9u ICAgIGRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBoZWFkZXIgZmlsZXMsIGR5bmFt aWMgbGlicmFyaWVzIGFuZAotK2RldmVsb3BtZW50IGRvY3VtZW50YXRpb24gZm9yICV7bmFtZX0u IElmIHlvdSB3b3VsZCBsaWtlIHRvIGRldmVsb3AKLStwcm9ncmFtcyB1c2luZyAle25hbWV9LCB5 b3Ugd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1kZXZlbC4KLSsKLSslez93aXRoX215c3Fs OiVwYWNrYWdlICAgICAgICBteXNxbC1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBNeVNRTCBiYWNr ZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xpYnJhcmllcwot K1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0r UmVxdWlyZXM6ICAgICAgICV7bmFtZX0tbXlzcWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStS ZXF1aXJlczogICAgICAgbXlzcWwtZGV2ZWwgPj0gNS4wCi0rCi0rJWRlc2NyaXB0aW9uICAgIG15 c3FsLWRldmVsCi0rVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNRTCBiYWNrZW5kIGZvciAl e25hbWV9LCBpLmUuLCBoZWFkZXIKLStmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lm aWMgdG8gdGhlIE15U1FMIGRhdGFiYXNlLiBJZiB5b3UKLSt3b3VsZCBsaWtlIHRvIGRldmVsb3Ag cHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgTXlTUUwsIHlvdSB3aWxsIG5lZWQKLSt0byBpbnN0 YWxsICV7bmFtZX0tbXlzcWwufQotKwotKyV7P3dpdGhfcG9zdGdyZXNxbDolcGFja2FnZSAgICAg ICAgcG9zdGdyZXNxbC1kZXZlbAotK1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQg Zm9yICV7bmFtZX0KLStHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCi0rUmVx dWlyZXM6ICAgICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLStSZXF1 aXJlczogICAgICAgJXtuYW1lfS1wb3N0Z3Jlc3FsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0r UmVxdWlyZXM6ICAgICAgIHBvc3RncmVzcWwtZGV2ZWwgPj0gNy4xCi0rCi0rJWRlc2NyaXB0aW9u ICAgIHBvc3RncmVzcWwtZGV2ZWwKLStUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVT UUwgYmFja2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCi0rZmlsZXMgYW5kIGR5bmFtaWMg bGlicmFyaWVzIHNwZWNpZmljIHRvIHRoZSBQb3N0R3JlU1FMIGRhdGFiYXNlLiBJZgotK3lvdSB3 b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtuYW1lfSBhbmQgUG9zdEdyZVNR TCwgeW91Ci0rd2lsbCBuZWVkIHRvIGluc3RhbGwgJXtuYW1lfS1wb3N0Z3Jlc3FsLn0KLSsKLSsl ez93aXRoX29yYWNsZTolcGFja2FnZSAgICAgICAgb3JhY2xlLWRldmVsCi0rU3VtbWFyeTogICAg ICAgIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9Ci0rR3JvdXA6ICAgICAgICAgIERldmVsb3Bt ZW50L0xpYnJhcmllcwotK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRldmVsID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci0rUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tb3JhY2xlID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci0rCi0rJWRlc2NyaXB0aW9uICAgIG9yYWNsZS1kZXZlbAotK1RoaXMgcGFj a2FnZSBjb250YWlucyB0aGUgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRl cgotK2ZpbGVzIGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgT3JhY2xlIGRh dGFiYXNlLiBJZiB5b3UKLSt3b3VsZCBsaWtlIHRvIGRldmVsb3AgcHJvZ3JhbXMgdXNpbmcgJXtu YW1lfSBhbmQgT3JhY2xlLCB5b3Ugd2lsbCBuZWVkCi0rdG8gaW5zdGFsbCAle25hbWV9LW9yYWNs ZS59Ci0rCi0rCi0rJXBhY2thZ2UgZG9jCi0rU3VtbWFyeTogICAgICAgIEhUTUwgZG9jdW1lbnRh dGlvbiBmb3IgdGhlIEBQQUNLQUdFX05BTUVAIGxpYnJhcnkKLStHcm91cDogICAgICAgICAgRG9j dW1lbnRhdGlvbgotKyVpZiAwJXs/ZmVkb3JhfSA+PSAxMAotK0J1aWxkQXJjaDogICAgICBub2Fy Y2gKLSsjQnVpbGRSZXF1aXJlczogIHRleGxpdmUtbGF0ZXgsIHRleGxpdmUtZHZpcHMKLSslZW5k aWYKLSsjQnVpbGRSZXF1aXJlczogIHRldGV4LWxhdGV4LCB0ZXRleC1kdmlwcwotKyNCdWlsZFJl cXVpcmVzOiAgZG94eWdlbiwgZ2hvc3RzY3JpcHQKLSsKLSslZGVzY3JpcHRpb24gZG9jCi0rVGhp cyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBkb2N1bWVudGF0aW9uIGluIHRoZSBIVE1MIGZvcm1hdCBv ZiB0aGUgQFBBQ0tBR0VfTkFNRUAKLStsaWJyYXJ5LiBUaGUgZG9jdW1lbnRhdGlvbiBpcyB0aGUg c2FtZSBhcyBhdCB0aGUgQFBBQ0tBR0VfTkFNRUAgd2ViIHBhZ2UuCi0rCi0rCi0rJXByZXAKLSsl c2V0dXAgLXEKLSsKLSsjIEFwcGx5IHRoZSBnKysgNC4zIGNvbXBhdGliaWxpdHkgcGF0Y2gKLSsl cGF0Y2gwIC1wMQotKwotKyMgUmVuYW1lIGNoYW5nZS1sb2cgYW5kIGxpY2Vuc2UgZmlsZSwgc28g dGhhdCB0aGV5IGNvbXBseSB3aXRoCi0rIyBwYWNrYWdpbmcgc3RhbmRhcmQKLSttdiBDSEFOR0VT IENoYW5nZUxvZwotK212IExJQ0VOU0VfMV8wLnR4dCBDT1BZSU5HCi0rcm0gLWYgSU5TVEFMTAot KwotKyMgUmVtb3ZlIE1hY09TWCBjb21wYXRpYmlsaXR5IGJ1aWxkaW5nIGZpbGVzCi0rcm0gLWYg YnVpbGQvdW5peC8uXyoudGNsCi0rcm0gLWYgLl9NYWtlZmlsZSAuX2NvbmZpZ3VyZQotK3JtIC1m IHNyYy9jb3JlLy5fKi5oIHNyYy9jb3JlLy5fKi5jcHAKLStybSAtZiBzcmMvYmFja2VuZHMvcG9z dGdyZXNxbC8uXyouaAotK3JtIC1mIGRvYy8uXyouaHRtbAotKwotKyMgUmVuYW1lIHRoZSBzb3Vy Y2UgY29kZSBkaXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbGVzIChlLmcsIGhlYWRlcgotKyMgZmls ZXMpIGNhbiBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW50byB7X3N0YW5kYXJkX2Rpcn0vJXtuYW1l fQotK212IHNyYyAle25hbWV9Ci0rCi0rIyBBcHBseSB0aGUgR05VIEF1dG90b29scyBjb21wYXRp YmlsaXR5IHBhdGNoCi0rJXBhdGNoMSAtcDEKLSsKLSsjIEZpeCBzb21lIHBlcm1pc3Npb25zIGFu ZCBmb3JtYXRzCi0rZmluZCAuL2RvYyAtdHlwZSBmIC1wZXJtIDc1NSAtZXhlYyBjaG1vZCA2NDQg e30gXDsKLStjaG1vZCAteCBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0r IyBmaW5kIC4gLXR5cGUgZiAtbmFtZSAnKi5baGNdcHAnIC1leGVjIGNobW9kIDY0NCB7fSBcOwot KwotKwotKyVidWlsZAotKyVjb25maWd1cmUgLS1kaXNhYmxlLXN0YXRpYyBcCi0rJXs/d2l0aF9t eXNxbDotLWVuYWJsZS1iYWNrZW5kLW15c3FsfSBcCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOi0tZW5h YmxlLWJhY2tlbmQtcG9zdGdyZXNxbH0gXAotKyV7P3dpdGhfb3JhY2xlOi0tZW5hYmxlLWJhY2tl bmQtb3JhY2xlICV7P193aXRoX29yYWNsZV9pbmNkaXJ9ICV7P193aXRoX29yYWNsZV9saWJkaXJ9 fQotK21ha2UgJXs/X3NtcF9tZmxhZ3N9Ci0rCi0rJWluc3RhbGwKLStybSAtcmYgJFJQTV9CVUlM RF9ST09UCi0rbWFrZSBpbnN0YWxsIERFU1RESVI9JFJQTV9CVUlMRF9ST09UCi0rIyMKLSsjICBS ZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKLStybSAtZiAkUlBNX0JV SUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2NvbmZpZy5oCi0rcm0gLWYgJFJQTV9CVUlM RF9ST09UJXtfbGliZGlyfS9saWIle25hbWV9XyoubGEKLSsjIwotKyMjCi0rIyAgRHVwbGljYXRl IHRoZSBoZWFkZXIgZmlsZXMsIHNvIGFzIHRvIGtlZXAgdGhlIGNvbXBhdGliaWxpdHksIGZvcgot KyMgIGRldmVsb3BlcnMgdXNpbmcgdGhlIFNPQ0kgbGlicmFyeSwgd2l0aCB0aGUgbm9uLXBhY2th Z2VkIHZlcnNpb24gb2YKLSsjICB0aGF0IGxpYnJhcnkuCi0rZm9yIGhlYWRlcl9maWxlIGluICRS UE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmg7IGRvCi0rICBjcCAk e2hlYWRlcl9maWxlfSAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9Ci0rZG9u ZQotKyV7P3dpdGhfbXlzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1l fS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRp cn0vJXtuYW1lfX0KLSslez93aXRoX3Bvc3RncmVzcWw6Y3AgJFJQTV9CVUlMRF9ST09UJXtfaW5j bHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oICRS UE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX19Ci0rJXs/d2l0aF9vcmFjbGU6Y3Ag JFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUvc29j aS1vcmFjbGUuaCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQotKwotKwot KyVjbGVhbgotK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKLSsKLSslcG9zdCAtcCAvc2Jpbi9sZGNv bmZpZwotKwotKyVwb3N0dW4gLXAgL3NiaW4vbGRjb25maWcKLSsKLSslez93aXRoX215c3FsOiVw b3N0IG15c3FsIC1wIC9zYmluL2xkY29uZmlnCi0rCi0rJXBvc3R1biBteXNxbCAtcCAvc2Jpbi9s ZGNvbmZpZ30KLSsKLSslez93aXRoX3Bvc3RncmVzcWw6JXBvc3QgcG9zdGdyZXNxbCAtcCAvc2Jp bi9sZGNvbmZpZwotKwotKyVwb3N0dW4gcG9zdGdyZXNxbCAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsK LSslez93aXRoX29yYWNsZTolcG9zdCBvcmFjbGUgLXAgL3NiaW4vbGRjb25maWcKLSsKLSslcG9z dHVuIG9yYWNsZSAtcCAvc2Jpbi9sZGNvbmZpZ30KLSsKLSsKLSsKLSslZmlsZXMKLSslZGVmYXR0 cigtLHJvb3Qscm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJF QURNRQotKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9jb3JlLnNvLioKLSsKLSslez93aXRoX215c3Fs OiVmaWxlcyBteXNxbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENo YW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJXtfbGliZGlyfS9saWIle25hbWV9X215c3Fs LnNvLip9Ci0rCi0rJXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsCi0rJWRlZmF0 dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBS RUFETUUKLSsle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5zby4qfQotKwotKyV7P3dp dGhfb3JhY2xlOiVmaWxlcyBvcmFjbGUKLSslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQotKyVkb2Mg QVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyV7X2xpYmRpcn0vbGliJXtu YW1lfV9vcmFjbGUuc28uKn0KLSsKLSsKLSslZmlsZXMgZGV2ZWwKLSslZGVmYXR0cigtLHJvb3Qs cm9vdCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQotKyVk aXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQotKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9j b3JlCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS8qLmgKLSsle19pbmNsdWRlZGlyfS8le25hbWV9 L2NvcmUvKi5oCi0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9jb3JlL3Rlc3QKLSsle19iaW5kaXJ9 LyV7bmFtZX0tY29uZmlnCi0rJXtfbGliZGlyfS9saWIle25hbWV9X2NvcmUuc28KLSsle19saWJk aXJ9L3BrZ2NvbmZpZy8le25hbWV9LnBjCi0rJXtfZGF0YWRpcn0vYWNsb2NhbC8le25hbWV9Lm00 Ci0rJXtfbWFuZGlyfS9tYW4xLyV7bmFtZX0tY29uZmlnLjEuKgotKwotKyV7P3dpdGhfbXlzcWw6 JWZpbGVzIG15c3FsLWRldmVsCi0rJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKLSslZG9jIEFVVEhP UlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKLSslZGlyICV7X2luY2x1ZGVkaXJ9LyV7 bmFtZX0KLSsle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL215c3FsCi0rJXtfbGliZGly fS9saWIle25hbWV9X215c3FsLnNvfQotKwotKyV7P3dpdGhfcG9zdGdyZXNxbDolZmlsZXMgcG9z dGdyZXNxbC1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENo YW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9 Ci0rJXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9wb3N0Z3Jlc3FsCi0rJXtfbGliZGly fS9saWIle25hbWV9X3Bvc3RncmVzcWwuc299Ci0rCi0rJXs/d2l0aF9vcmFjbGU6JWZpbGVzIG9y YWNsZS1kZXZlbAotKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCi0rJWRvYyBBVVRIT1JTIENoYW5n ZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCi0rJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9Ci0r JXtfaW5jbHVkZWRpcn0vJXtuYW1lfS9iYWNrZW5kcy9vcmFjbGUKLSsle19saWJkaXJ9L2xpYiV7 bmFtZX1fb3JhY2xlLnNvfQotKwotKwotKyVmaWxlcyBkb2MKLSslZGVmYXR0cigtLHJvb3Qscm9v dCwtKQotKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRSBkb2MKLSsK LSsKLSslY2hhbmdlbG9nCi0rKiBTYXQgTWF5IDA5IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5h cm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEzCi0rLSBJbnRyb2R1Y2VkIGRpc3RpbmN0IGRl cGVuZGVuY2llcyBmb3IgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbnMKLSsKLSsqIFR1ZSBNYXkgMDUg MjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTIK LSstIFJlbW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gdGhlIHZlcnNpb24gb2YgQm9vc3QsIGFuZCBv biBDUFBVbml0Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5h dWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTExCi0rLSBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5IG9u IExhdGV4IGZvciBkb2N1bWVudGF0aW9uIGRlbGl2ZXJ5Ci0rCi0rKiBUdWUgTWF5IDA1IDIwMDkg RGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEwCi0rLSBC dXJyaWVkIHRoZSBCb29zdCBGdXNpb24gaGVhZGVyIGluY2x1ZGUgZm9yIGNvcmUvdGVzdC9jb21t b24tdGVzdHMuaAotKwotKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJu YXVkX2ZlZG9yYUBtNHgub3JnPiAzLjAuMC05Ci0rLSBBZGRlZCBhIG1pc3NpbmcgY3N0ZGlvIGhl YWRlciBpbmNsdWRlIGZvciBnKystNC40IGNvbXBhdGliaWxpdHkKLSsKLSsqIFR1ZSBNYXkgMDUg MjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtOAot Ky0gQWRkZWQgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGVzIGZvciBnKystNC40IGNvbXBh dGliaWxpdHkKLSsKLSsqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1 ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNwotKy0gQWRkZWQgYSBtaXNzaW5nIGNzdGRpbyBoZWFk ZXIgaW5jbHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5Ci0rCi0rKiBTYXQgTWF5IDAyIDIw MDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTYKLSst IFJlbW92ZWQgdGhlIHVudXNlZCBidWlsZCBjb25kaXRpb25hbHMKLSsKLSsqIFR1ZSBBcHIgMjgg MjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNQot Ky0gU2ltcGxpZmllZCB0aGUgY29uZGl0aW9uYWwgYnVpbGQgcnVsZXMgd2l0aGluIHRoZSBSUE0g c3BlY2lmaWNhdGlvbiBmaWxlCi0rCi0rKiBTYXQgQXByIDE4IDIwMDkgRGVuaXMgQXJuYXVkIDxk ZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTQKLSstIEZpeGVkIGFuIGlzc3VlIGFi b3V0IE9QVEZMQUdTIGNvbXBpbGF0aW9uCi0rCi0rKiBUdWUgQXByIDE0IDIwMDkgRGVuaXMgQXJu YXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTMKLSstIFJlc3RhcnRlZCBm cm9tIHByaXN0aW5lIHZlcnNpb24gMy4wLjAgb2YgdXBzdHJlYW0gKFNPQ0kpIHByb2plY3QKLSsK LSsqIFNhdCBBcHIgIDQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4 Lm9yZz4gMy4wLjAtMgotKy0gU3BlY2lmaWMgUlBNIGZvciBlYWNoIGJhY2tlbmQKLSsKLSsqIEZy aSBNYXIgMjcgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4g My4wLjAtMQotKy0gRmlyc3QgUlBNIHJlbGVhc2UKCmRpZmYgLS1naXQgYS9zb2NpLTMuMC4wLTE2 LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC0xNi1maXgtZ2NjNDQt Y29tcGF0aWJpbGl0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j OGUxYzU1Ci0tLSAvZGV2L251bGwKKysrIGIvc29jaS0zLjAuMC0xNi1maXgtZ2NjNDQtY29tcGF0 aWJpbGl0eS5wYXRjaApAQCAtMCwwICsxLDYyMyBAQAorZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3Jj L2JhY2tlbmRzL215c3FsL2NvbW1vbi5oIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9t eXNxbC9jb21tb24uaAorLS0tIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5o CTIwMDgtMDctMDMgMDk6MjI6NTcuMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBh Y2svc3JjL2JhY2tlbmRzL215c3FsL2NvbW1vbi5oCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAw MDAwICswMTAwCitAQCAtMTAsNiArMTAsNyBAQAorIAorICNpbmNsdWRlIDxzc3RyZWFtPgorICNp bmNsdWRlICJzb2NpLW15c3FsLmgiCisrI2luY2x1ZGUgPGN0aW1lPgorIAorIG5hbWVzcGFjZSBz b2NpCisgeworZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24u Y3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAorLS0t IHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCTIwMDgtMDUtMTUgMTU6 NTg6MzguMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRz L215c3FsL3Nlc3Npb24uY3BwCTIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCitA QCAtMTEsNyArMTEsOCBAQAorICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNlcnJubz4K KyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKy0KKysjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjaW5jbHVkZSA8 Y2xpbWl0cz4KKyAKKyAjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0 MzU1KQorZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWlu dG8tdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCTIwMDgtMDUtMzAgMTM6MzM6NDUuMDAwMDAwMDAwICswMjAwCisrKysg c29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5j cHAJMjAxMC0wMS0yMyAxMzoxNzoyOC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw2ICsxMiw4IEBA CisgI2luY2x1ZGUgImNvbW1vbi5oIgorICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxj YXNzZXJ0PgorKyNpbmNsdWRlIDxjdGltZT4KKysjaW5jbHVkZSA8Y3N0cmluZz4KKyAKKyAjaWZk ZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQorZGlmZiAtTnVyIHNv Y2ktMy4wLjAvc3JjL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistLS0g c29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDgt MDUtMTUgMTU6NTg6MzguMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3Jj L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4 LjAwMDAwMDAwMCArMDEwMAorQEAgLTEwLDggKzEwLDEwIEBACisgI2luY2x1ZGUgInNvY2ktbXlz cWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCisgI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4K KysvLworICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxsaW1pdHM+CisrI2luY2x1ZGUg PGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KKyAKKyAjaWZkZWYgX01TQ19WRVIKK2RpZmYg LU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNv Y2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCist LS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAkyMDA4 LTA1LTE1IDE1OjU4OjM4LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2ktMy4wLjBfNC1wYWNrL3Ny Yy9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTM6MTc6Mjgu MDAwMDAwMDAwICswMTAwCitAQCAtMTAsOSArMTAsMTIgQEAKKyAjaW5jbHVkZSAic29jaS1teXNx bC5oIgorICNpbmNsdWRlICJjb21tb24uaCIKKyAjaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgor Ky8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGxpbWl0cz4KKysjaW5jbHVkZSA8 Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorKyNpbmNsdWRlIDxjdGltZT4KKyAKKyAjaWZk ZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzU1KQorZGlmZiAtTnVyIHNv Y2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wXzQt cGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCistLS0gc29jaS0zLjAuMC9z cmMvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIwMDgtMDYtMjcgMTY6Mzg6MDUuMDAw MDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4LjAwMDAwMDAwMCArMDEwMAorQEAgLTcs NyArNyw5IEBACisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorICNpbmNsdWRlIDxzb2NpLWJhY2tl bmQuaD4KKysvLworICNpbmNsdWRlIDxjc3RkbGliPgorKyNpbmNsdWRlIDxjc3RkaW8+CisgI2lu Y2x1ZGUgPGN0aW1lPgorIAorIAorZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorLS0tIHNvY2ktMy4w LjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMDgt MDYtMDUgMjI6NDE6NTguMDAwMDAwMDAwICswMjAwCisrKysgc29jaS0zLjAuMF80LXBhY2svc3Jj L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMTAtMDEtMjMg MTM6MTc6MjguMDAwMDAwMDAwICswMTAwCitAQCAtMTUsNiArMTUsNyBAQAorICNpbmNsdWRlIDxj bWF0aD4KKyAjaW5jbHVkZSA8Y3RpbWU+CisgI2luY2x1ZGUgPGNzdGRsaWI+CisrI2luY2x1ZGUg PGNzdHJpbmc+CisgCisgdXNpbmcgbmFtZXNwYWNlIHNvY2k7CisgdXNpbmcgbmFtZXNwYWNlIHNv Y2k6OnRlc3RzOworZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcKKy0tLSBzb2NpLTMu MC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcC5vcmln CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF80LXBh Y2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwLm9yaWcJ MjAxMC0wMS0yMyAxMzoxNzoyOC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNTE3IEBACisr Ly8KKysvLyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCBNYWNpZWogU29iY3phaywgU3RlcGhlbiBI dXR0b24KKysvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwg VmVyc2lvbiAxLjAuCisrLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQg b3IgY29weSBhdAorKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKysv LworKworKyNpbmNsdWRlICJzb2NpLmgiCisrI2luY2x1ZGUgInNvY2ktcG9zdGdyZXNxbC5oIgor KyNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKKysjaW5jbHVkZSA8aW9zdHJlYW0+CisrI2luY2x1 ZGUgPHNzdHJlYW0+CisrI2luY2x1ZGUgPHN0cmluZz4KKysjaW5jbHVkZSA8Y2Fzc2VydD4KKysj aW5jbHVkZSA8Y21hdGg+CisrI2luY2x1ZGUgPGN0aW1lPgorKyNpbmNsdWRlIDxjc3RkbGliPgor KworK3VzaW5nIG5hbWVzcGFjZSBzb2NpOworK3VzaW5nIG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsK KysKKytzdGQ6OnN0cmluZyBjb25uZWN0U3RyaW5nOworK2JhY2tlbmRfZmFjdG9yeSBjb25zdCAm YmFja0VuZCA9IHBvc3RncmVzcWw7CisrCisrLy8gUG9zdGdyZXMtc3BlY2lmaWMgdGVzdHMKKysK KytzdHJ1Y3Qgb2lkX3RhYmxlX2NyZWF0b3IgOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9iYXNlCisr eworKyAgICBvaWRfdGFibGVfY3JlYXRvcihzZXNzaW9uJiBzcWwpCisrICAgIDogdGFibGVfY3Jl YXRvcl9iYXNlKHNxbCkKKysgICAgeworKyAgICAgICAgc3FsIDw8ICJjcmVhdGUgdGFibGUgc29j aV90ZXN0ICgiCisrICAgICAgICAgICAgICAgICIgaWQgaW50ZWdlciwiCisrICAgICAgICAgICAg ICAgICIgbmFtZSB2YXJjaGFyKDEwMCkiCisrICAgICAgICAgICAgICAgICIpIHdpdGggb2lkcyI7 CisrICAgIH0KKyt9OworKworKy8vIFJPV0lEIHRlc3QKKysvLyBOb3RlOiBpbiBQb3N0Z3JlU1FM LCB0aGVyZSBpcyBubyBST1dJRCwgdGhlcmUgaXMgT0lELgorKy8vIEl0IGlzIHN0aWxsIHByb3Zp ZGVkIGFzIGEgc2VwYXJhdGUgdHlwZSBmb3IgInBvcnRhYmlsaXR5IiwKKysvLyB3aGF0ZXZlciB0 aGF0IG1lYW5zLgorK3ZvaWQgdGVzdDEoKQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBz cWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAgICBvaWRfdGFibGVfY3JlYXRv ciB0YWJsZUNyZWF0b3Ioc3FsKTsKKysKKysgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29j aV90ZXN0KGlkLCBuYW1lKSB2YWx1ZXMoNywgXCdKb2huXCcpIjsKKysKKysgICAgICAgIHJvd2lk IHJpZChzcWwpOworKyAgICAgICAgc3FsIDw8ICJzZWxlY3Qgb2lkIGZyb20gc29jaV90ZXN0IHdo ZXJlIGlkID0gNyIsIGludG8ocmlkKTsKKysKKysgICAgICAgIGludCBpZDsKKysgICAgICAgIHN0 ZDo6c3RyaW5nIG5hbWU7CisrCisrI2lmbmRlZiBTT0NJX1BHU1FMX05PUEFSQU1TCisrCisrICAg ICAgICBzcWwgPDwgInNlbGVjdCBpZCwgbmFtZSBmcm9tIHNvY2lfdGVzdCB3aGVyZSBvaWQgPSA6 cmlkIiwKKysgICAgICAgICAgICBpbnRvKGlkKSwgaW50byhuYW1lKSwgdXNlKHJpZCk7CisrCisr I2Vsc2UKKysgICAgICAgIC8vIE9sZGVyIFBvc3RncmVTUUwgZG9lcyBub3Qgc3VwcG9ydCB1c2Ug ZWxlbWVudHMuCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3Jvd2lkX2JhY2tlbmQgKnJiZQorKyAg ICAgICAgICAgID0gc3RhdGljX2Nhc3Q8cG9zdGdyZXNxbF9yb3dpZF9iYWNrZW5kICo+KHJpZC5n ZXRfYmFja2VuZCgpKTsKKysKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgb2lkID0gcmJlLT52YWx1 ZV87CisrCisrICAgICAgICBzcWwgPDwgInNlbGVjdCBpZCwgbmFtZSBmcm9tIHNvY2lfdGVzdCB3 aGVyZSBvaWQgPSAiIDw8IG9pZCwKKysgICAgICAgICAgICBpbnRvKGlkKSwgaW50byhuYW1lKTsK KysKKysjZW5kaWYgLy8gU09DSV9QR1NRTF9OT1BBUkFNUworKworKyAgICAgICAgYXNzZXJ0KGlk ID09IDcpOworKyAgICAgICAgYXNzZXJ0KG5hbWUgPT0gIkpvaG4iKTsKKysgICAgfQorKworKyAg ICBzdGQ6OmNvdXQgPDwgInRlc3QgMSBwYXNzZWQiIDw8IHN0ZDo6ZW5kbDsKKyt9CisrCisrLy8g ZnVuY3Rpb24gY2FsbCB0ZXN0CisrY2xhc3MgZnVuY3Rpb25fY3JlYXRvciA6IGZ1bmN0aW9uX2Ny ZWF0b3JfYmFzZQorK3sKKytwdWJsaWM6CisrCisrICAgIGZ1bmN0aW9uX2NyZWF0b3Ioc2Vzc2lv biYgc2Vzc2lvbikKKysgICAgOiBmdW5jdGlvbl9jcmVhdG9yX2Jhc2Uoc2Vzc2lvbikKKysgICAg eworKyAgICAgICAgLy8gYmVmb3JlIGEgbGFuZ3VhZ2UgY2FuIGJlIHVzZWQgaXQgbXVzdCBiZSBk ZWZpbmVkCisrICAgICAgICAvLyBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgdGhlbiBh biBlcnJvciB3aWxsIG9jY3VyCisrICAgICAgICB0cnkgeyBzZXNzaW9uIDw8ICJjcmVhdGUgbGFu Z3VhZ2UgcGxwZ3NxbCI7IH0KKysgICAgICAgIGNhdGNoIChzb2NpX2Vycm9yIGNvbnN0ICYpIHt9 IC8vIGlnbm9yZSBpZiBlcnJvcgorKworKyNpZm5kZWYgU09DSV9QR1NRTF9OT1BBUkFNUworKwor KyAgICAgICAgc2Vzc2lvbiAgPDwKKysgICAgICAgICAgICAiY3JlYXRlIG9yIHJlcGxhY2UgZnVu Y3Rpb24gc29jaV90ZXN0KG1zZyB2YXJjaGFyKSAiCisrICAgICAgICAgICAgInJldHVybnMgdmFy Y2hhciBhcyAkJCAiCisrICAgICAgICAgICAgImJlZ2luICIKKysgICAgICAgICAgICAiICByZXR1 cm4gbXNnOyAiCisrICAgICAgICAgICAgImVuZCAkJCBsYW5ndWFnZSBwbHBnc3FsIjsKKysjZWxz ZQorKworKyAgICAgICBzZXNzaW9uIDw8CisrICAgICAgICAgICAgImNyZWF0ZSBvciByZXBsYWNl IGZ1bmN0aW9uIHNvY2lfdGVzdCh2YXJjaGFyKSAiCisrICAgICAgICAgICAgInJldHVybnMgdmFy Y2hhciBhcyBcJyAiCisrICAgICAgICAgICAgImJlZ2luICIKKysgICAgICAgICAgICAiICByZXR1 cm4gJDE7ICIKKysgICAgICAgICAgICAiZW5kIFwnIGxhbmd1YWdlIHBscGdzcWwiOworKyNlbmRp ZgorKyAgICB9CisrCisrcHJvdGVjdGVkOgorKworKyAgICBzdGQ6OnN0cmluZyBkcm9wX3N0YXRl bWVudCgpCisrICAgIHsKKysgICAgICAgIHJldHVybiAiZHJvcCBmdW5jdGlvbiBzb2NpX3Rlc3Qo dmFyY2hhcikiOworKyAgICB9CisrfTsKKysKKyt2b2lkIHRlc3QyKCkKKyt7CisrICAgIHsKKysg ICAgICAgIHNlc3Npb24gc3FsKGJhY2tFbmQsIGNvbm5lY3RTdHJpbmcpOworKworKyAgICAgICAg ZnVuY3Rpb25fY3JlYXRvciBmdW5jdGlvbkNyZWF0b3Ioc3FsKTsKKysKKysgICAgICAgIHN0ZDo6 c3RyaW5nIGluKCJteSBtZXNzYWdlIik7CisrICAgICAgICBzdGQ6OnN0cmluZyBvdXQ7CisrCisr I2lmbmRlZiBTT0NJX1BHU1FMX05PUEFSQU1TCisrCisrICAgICAgICBzdGF0ZW1lbnQgc3QgPSAo c3FsLnByZXBhcmUgPDwKKysgICAgICAgICAgICAic2VsZWN0IHNvY2lfdGVzdCg6aW5wdXQpIiwK KysgICAgICAgICAgICBpbnRvKG91dCksCisrICAgICAgICAgICAgdXNlKGluLCAiaW5wdXQiKSk7 CisrCisrI2Vsc2UKKysgICAgICAgIC8vIE9sZGVyIFBvc3RncmVTUUwgZG9lcyBub3Qgc3VwcG9y dCB1c2UgZWxlbWVudHMuCisrCisrICAgICAgICBzdGF0ZW1lbnQgc3QgPSAoc3FsLnByZXBhcmUg PDwKKysgICAgICAgICAgICAic2VsZWN0IHNvY2lfdGVzdChcJyIgPDwgaW4gPDwgIlwnKSIsCisr ICAgICAgICAgICAgaW50byhvdXQpKTsKKysKKysjZW5kaWYgLy8gU09DSV9QR1NRTF9OT1BBUkFN UworKworKyAgICAgICAgc3QuZXhlY3V0ZSh0cnVlKTsKKysgICAgICAgIGFzc2VydChvdXQgPT0g aW4pOworKworKyAgICAgICAgLy8gZXhwbGljaXQgcHJvY2VkdXJlIHN5bnRheAorKyAgICAgICAg eworKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGluKCJteSBtZXNzYWdlMiIpOworKyAgICAgICAg ICAgIHN0ZDo6c3RyaW5nIG91dDsKKysKKysjaWZuZGVmIFNPQ0lfUEdTUUxfTk9QQVJBTVMKKysK KysgICAgICAgICAgICBwcm9jZWR1cmUgcHJvYyA9IChzcWwucHJlcGFyZSA8PAorKyAgICAgICAg ICAgICAgICAic29jaV90ZXN0KDppbnB1dCkiLAorKyAgICAgICAgICAgICAgICBpbnRvKG91dCks IHVzZShpbiwgImlucHV0IikpOworKworKyNlbHNlCisrICAgICAgICAvLyBPbGRlciBQb3N0Z3Jl U1FMIGRvZXMgbm90IHN1cHBvcnQgdXNlIGVsZW1lbnRzLgorKworKyAgICAgICAgICAgIHByb2Nl ZHVyZSBwcm9jID0gKHNxbC5wcmVwYXJlIDw8CisrICAgICAgICAgICAgICAgICJzb2NpX3Rlc3Qo XCciIDw8IGluIDw8ICJcJykiLCBpbnRvKG91dCkpOworKworKyNlbmRpZiAvLyBTT0NJX1BHU1FM X05PUEFSQU1TCisrCisrICAgICAgICAgICAgcHJvYy5leGVjdXRlKHRydWUpOworKyAgICAgICAg ICAgIGFzc2VydChvdXQgPT0gaW4pOworKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIHN0ZDo6 Y291dCA8PCAidGVzdCAyIHBhc3NlZCIgPDwgc3RkOjplbmRsOworK30KKysKKysvLyBCTE9CIHRl c3QKKytzdHJ1Y3QgYmxvYl90YWJsZV9jcmVhdG9yIDogcHVibGljIHRhYmxlX2NyZWF0b3JfYmFz ZQorK3sKKysgICAgYmxvYl90YWJsZV9jcmVhdG9yKHNlc3Npb24mIHNlc3Npb24pCisrICAgIDog dGFibGVfY3JlYXRvcl9iYXNlKHNlc3Npb24pCisrICAgIHsKKysgICAgICAgIHNlc3Npb24gPDwK KysgICAgICAgICAgICAgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3QgKCIKKysgICAgICAgICAgICAg IiAgICBpZCBpbnRlZ2VyLCIKKysgICAgICAgICAgICAgIiAgICBpbWcgb2lkIgorKyAgICAgICAg ICAgICAiKSI7CisrICAgIH0KKyt9OworKworK3ZvaWQgdGVzdDMoKQorK3sKKysgICAgeworKyAg ICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAgICBi bG9iX3RhYmxlX2NyZWF0b3IgdGFibGVDcmVhdG9yKHNxbCk7CisrICAgICAgICAKKysgICAgICAg IGNoYXIgYnVmW10gPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOworKworKyAgICAgICAg c3FsIDw8ICJpbnNlcnQgaW50byBzb2NpX3Rlc3QoaWQsIGltZykgdmFsdWVzKDcsIGxvX2NyZWF0 KC0xKSkiOworKworKyAgICAgICAgLy8gaW4gUG9zdGdyZVNRTCwgQkxPQiBvcGVyYXRpb25zIG11 c3QgYmUgd2l0aGluIHRyYW5zYWN0aW9uIGJsb2NrCisrICAgICAgICB0cmFuc2FjdGlvbiB0cihz cWwpOworKworKyAgICAgICAgeworKyAgICAgICAgICAgIGJsb2IgYihzcWwpOworKworKyAgICAg ICAgICAgIHNxbCA8PCAic2VsZWN0IGltZyBmcm9tIHNvY2lfdGVzdCB3aGVyZSBpZCA9IDciLCBp bnRvKGIpOworKyAgICAgICAgICAgIGFzc2VydChiLmdldF9sZW4oKSA9PSAwKTsKKysKKysgICAg ICAgICAgICBiLndyaXRlKDAsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworKyAgICAgICAgICAgIGFzc2Vy dChiLmdldF9sZW4oKSA9PSBzaXplb2YoYnVmKSk7CisrCisrICAgICAgICAgICAgYi5hcHBlbmQo YnVmLCBzaXplb2YoYnVmKSk7CisrICAgICAgICAgICAgYXNzZXJ0KGIuZ2V0X2xlbigpID09IDIg KiBzaXplb2YoYnVmKSk7CisrICAgICAgICB9CisrICAgICAgICB7CisrICAgICAgICAgICAgYmxv YiBiKHNxbCk7CisrICAgICAgICAgICAgc3FsIDw8ICJzZWxlY3QgaW1nIGZyb20gc29jaV90ZXN0 IHdoZXJlIGlkID0gNyIsIGludG8oYik7CisrICAgICAgICAgICAgYXNzZXJ0KGIuZ2V0X2xlbigp ID09IDIgKiBzaXplb2YoYnVmKSk7CisrICAgICAgICAgICAgY2hhciBidWYyWzEwMF07CisrICAg ICAgICAgICAgYi5yZWFkKDAsIGJ1ZjIsIDEwKTsKKysgICAgICAgICAgICBhc3NlcnQoc3RybmNt cChidWYyLCAiYWJjZGVmZ2hpaiIsIDEwKSA9PSAwKTsKKysgICAgICAgIH0KKysKKysgICAgICAg IHVuc2lnbmVkIGxvbmcgb2lkOworKyAgICAgICAgc3FsIDw8ICJzZWxlY3QgaW1nIGZyb20gc29j aV90ZXN0IHdoZXJlIGlkID0gNyIsIGludG8ob2lkKTsKKysgICAgICAgIHNxbCA8PCAic2VsZWN0 IGxvX3VubGluaygiIDw8IG9pZCA8PCAiKSI7CisrICAgIH0KKysKKysgICAgc3RkOjpjb3V0IDw8 ICJ0ZXN0IDMgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7CisrfQorKworK3N0cnVjdCBsb25nbG9uZ190 YWJsZV9jcmVhdG9yIDogdGFibGVfY3JlYXRvcl9iYXNlCisreworKyAgICBsb25nbG9uZ190YWJs ZV9jcmVhdG9yKHNlc3Npb24gJiBzcWwpCisrICAgICAgICA6IHRhYmxlX2NyZWF0b3JfYmFzZShz cWwpCisrICAgIHsKKysgICAgICAgIHNxbCA8PCAiY3JlYXRlIHRhYmxlIHNvY2lfdGVzdCh2YWwg aW50OCkiOworKyAgICB9CisrfTsKKysKKysvLyBsb25nIGxvbmcgdGVzdAorK3ZvaWQgdGVzdDQo KQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmlu Zyk7CisrCisrICAgICAgICBsb25nbG9uZ190YWJsZV9jcmVhdG9yIHRhYmxlQ3JlYXRvcihzcWwp OworKworKyAgICAgICAgbG9uZyBsb25nIHYxID0gMTAwMDAwMDAwMDAwMExMOworKyAgICAgICAg YXNzZXJ0KHYxIC8gMTAwMDAwMCA9PSAxMDAwMDAwKTsKKysKKysgICAgICAgIHNxbCA8PCAiaW5z ZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNlKHYxKTsKKysKKysgICAg ICAgIGxvbmcgbG9uZyB2MiA9IDBMTDsKKysgICAgICAgIHNxbCA8PCAic2VsZWN0IHZhbCBmcm9t IHNvY2lfdGVzdCIsIGludG8odjIpOworKworKyAgICAgICAgYXNzZXJ0KHYyID09IHYxKTsKKysg ICAgfQorKworKyAgICAvLyB2ZWN0b3I8bG9uZyBsb25nPgorKyAgICB7CisrICAgICAgICBzZXNz aW9uIHNxbChiYWNrRW5kLCBjb25uZWN0U3RyaW5nKTsKKysKKysgICAgICAgIGxvbmdsb25nX3Rh YmxlX2NyZWF0b3IgdGFibGVDcmVhdG9yKHNxbCk7CisrCisrICAgICAgICBzdGQ6OnZlY3Rvcjxs b25nIGxvbmc+IHYxOworKyAgICAgICAgdjEucHVzaF9iYWNrKDEwMDAwMDAwMDAwMDBMTCk7Cisr ICAgICAgICB2MS5wdXNoX2JhY2soMTAwMDAwMDAwMDAwMUxMKTsKKysgICAgICAgIHYxLnB1c2hf YmFjaygxMDAwMDAwMDAwMDAyTEwpOworKyAgICAgICAgdjEucHVzaF9iYWNrKDEwMDAwMDAwMDAw MDNMTCk7CisrICAgICAgICB2MS5wdXNoX2JhY2soMTAwMDAwMDAwMDAwNExMKTsKKysKKysgICAg ICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNl KHYxKTsKKysKKysgICAgICAgIHN0ZDo6dmVjdG9yPGxvbmcgbG9uZz4gdjIoMTApOworKyAgICAg ICAgc3FsIDw8ICJzZWxlY3QgdmFsIGZyb20gc29jaV90ZXN0IG9yZGVyIGJ5IHZhbCBkZXNjIiwg aW50byh2Mik7CisrCisrICAgICAgICBhc3NlcnQodjIuc2l6ZSgpID09IDUpOworKyAgICAgICAg YXNzZXJ0KHYyWzBdID09IDEwMDAwMDAwMDAwMDRMTCk7CisrICAgICAgICBhc3NlcnQodjJbMV0g PT0gMTAwMDAwMDAwMDAwM0xMKTsKKysgICAgICAgIGFzc2VydCh2MlsyXSA9PSAxMDAwMDAwMDAw MDAyTEwpOworKyAgICAgICAgYXNzZXJ0KHYyWzNdID09IDEwMDAwMDAwMDAwMDFMTCk7CisrICAg ICAgICBhc3NlcnQodjJbNF0gPT0gMTAwMDAwMDAwMDAwMExMKTsKKysgICAgfQorKworKyAgICBz dGQ6OmNvdXQgPDwgInRlc3QgNCBwYXNzZWQiIDw8IHN0ZDo6ZW5kbDsKKyt9CisrCisrc3RydWN0 IGJvb2xlYW5fdGFibGVfY3JlYXRvciA6IHRhYmxlX2NyZWF0b3JfYmFzZQorK3sKKysgICAgYm9v bGVhbl90YWJsZV9jcmVhdG9yKHNlc3Npb24gJiBzcWwpCisrICAgICAgICA6IHRhYmxlX2NyZWF0 b3JfYmFzZShzcWwpCisrICAgIHsKKysgICAgICAgIHNxbCA8PCAiY3JlYXRlIHRhYmxlIHNvY2lf dGVzdCh2YWwgYm9vbGVhbikiOworKyAgICB9CisrfTsKKysKKyt2b2lkIHRlc3Q1KCkKKyt7Cisr ICAgIHsKKysgICAgICAgIHNlc3Npb24gc3FsKGJhY2tFbmQsIGNvbm5lY3RTdHJpbmcpOworKwor KyAgICAgICAgYm9vbGVhbl90YWJsZV9jcmVhdG9yIHRhYmxlQ3JlYXRvcihzcWwpOworKworKyAg ICAgICAgaW50IGkxID0gMDsKKysKKysgICAgICAgIHNxbCA8PCAiaW5zZXJ0IGludG8gc29jaV90 ZXN0KHZhbCkgdmFsdWVzKDp2YWwpIiwgdXNlKGkxKTsKKysKKysgICAgICAgIGludCBpMiA9IDc7 CisrICAgICAgICBzcWwgPDwgInNlbGVjdCB2YWwgZnJvbSBzb2NpX3Rlc3QiLCBpbnRvKGkyKTsK KysKKysgICAgICAgIGFzc2VydChpMiA9PSBpMSk7CisrCisrICAgICAgICBzcWwgPDwgInVwZGF0 ZSBzb2NpX3Rlc3Qgc2V0IHZhbCA9IHRydWUiOworKyAgICAgICAgc3FsIDw8ICJzZWxlY3QgdmFs IGZyb20gc29jaV90ZXN0IiwgaW50byhpMik7CisrICAgICAgICBhc3NlcnQoaTIgPT0gMSk7Cisr ICAgIH0KKysKKysgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDUgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7 CisrfQorKworKy8vIGR5bmFtaWMgYmFja2VuZCB0ZXN0Cisrdm9pZCB0ZXN0NigpCisreworKyAg ICB0cnkKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoIm5vc3VjaGJhY2tlbmQ6Ly8iICsg Y29ubmVjdFN0cmluZyk7CisrICAgICAgICBhc3NlcnQoZmFsc2UpOworKyAgICB9CisrICAgIGNh dGNoIChzb2NpX2Vycm9yIGNvbnN0ICYgZSkKKysgICAgeworKyAgICAgICAgYXNzZXJ0KGUud2hh dCgpID09IHN0ZDo6c3RyaW5nKCJGYWlsZWQgdG8gb3BlbjogbGlic29jaV9ub3N1Y2hiYWNrZW5k LnNvIikpOworKyAgICB9CisrCisrICAgIHsKKysgICAgICAgIGR5bmFtaWNfYmFja2VuZHM6OnJl Z2lzdGVyX2JhY2tlbmQoInBnc3FsIiwgYmFja0VuZCk7CisrCisrICAgICAgICBzdGQ6OnZlY3Rv cjxzdGQ6OnN0cmluZz4gYmFja2VuZHMgPSBkeW5hbWljX2JhY2tlbmRzOjpsaXN0X2FsbCgpOwor KyAgICAgICAgYXNzZXJ0KGJhY2tlbmRzLnNpemUoKSA9PSAxKTsKKysgICAgICAgIGFzc2VydChi YWNrZW5kc1swXSA9PSAicGdzcWwiKTsKKysKKysgICAgICAgIHsKKysgICAgICAgICAgICBzZXNz aW9uIHNxbCgicGdzcWw6Ly8iICsgY29ubmVjdFN0cmluZyk7CisrICAgICAgICB9CisrCisrICAg ICAgICBkeW5hbWljX2JhY2tlbmRzOjp1bmxvYWQoInBnc3FsIik7CisrCisrICAgICAgICBiYWNr ZW5kcyA9IGR5bmFtaWNfYmFja2VuZHM6Omxpc3RfYWxsKCk7CisrICAgICAgICBhc3NlcnQoYmFj a2VuZHMuZW1wdHkoKSk7CisrICAgIH0KKysKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwo InBvc3RncmVzcWw6Ly8iICsgY29ubmVjdFN0cmluZyk7CisrICAgIH0KKysKKysgICAgc3RkOjpj b3V0IDw8ICJ0ZXN0IDYgcGFzc2VkIiA8PCBzdGQ6OmVuZGw7CisrfQorKworK3ZvaWQgdGVzdDco KQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBzcWwoYmFja0VuZCwgY29ubmVjdFN0cmlu Zyk7CisrCisrICAgICAgICBpbnQgaTsKKysgICAgICAgIHNxbCA8PCAic2VsZWN0IDEyMyIsIGlu dG8oaSk7CisrICAgICAgICBhc3NlcnQoaSA9PSAxMjMpOworKworKyAgICAgICAgdHJ5CisrICAg ICAgICB7CisrICAgICAgICAgICAgc3FsIDw8ICJzZWxlY3QgJ0FCQyciLCBpbnRvIChpKTsKKysg ICAgICAgICAgICBhc3NlcnQoZmFsc2UpOworKyAgICAgICAgfQorKyAgICAgICAgY2F0Y2ggKHNv Y2lfZXJyb3IgY29uc3QgJiBlKQorKyAgICAgICAgeworKyAgICAgICAgICAgIGFzc2VydChlLndo YXQoKSA9PSBzdGQ6OnN0cmluZygiQ2Fubm90IGNvbnZlcnQgZGF0YS4iKSk7CisrICAgICAgICB9 CisrICAgIH0KKysKKysgICAgc3RkOjpjb3V0IDw8ICJ0ZXN0IDcgcGFzc2VkIiA8PCBzdGQ6OmVu ZGw7CisrfQorKworK3ZvaWQgdGVzdDgoKQorK3sKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiBz cWwoYmFja0VuZCwgY29ubmVjdFN0cmluZyk7CisrCisrICAgICAgICBhc3NlcnQoc3FsLmdldF9i YWNrZW5kX25hbWUoKSA9PSAicG9zdGdyZXNxbCIpOworKyAgICB9CisrCisrICAgIHN0ZDo6Y291 dCA8PCAidGVzdCA4IHBhc3NlZCIgPDwgc3RkOjplbmRsOworK30KKysKKysvLyBEREwgQ3JlYXRp b24gb2JqZWN0cyBmb3IgY29tbW9uIHRlc3RzCisrc3RydWN0IHRhYmxlX2NyZWF0b3Jfb25lIDog cHVibGljIHRhYmxlX2NyZWF0b3JfYmFzZQorK3sKKysgICAgdGFibGVfY3JlYXRvcl9vbmUoc2Vz c2lvbiYgc2Vzc2lvbikKKysgICAgICAgIDogdGFibGVfY3JlYXRvcl9iYXNlKHNlc3Npb24pCisr ICAgIHsKKysgICAgICAgIHNlc3Npb24gPDwgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3QoaWQgaW50 ZWdlciwgdmFsIGludGVnZXIsIGMgY2hhciwgIgorKyAgICAgICAgICAgICAgICAgInN0ciB2YXJj aGFyKDIwKSwgc2ggaW50MiwgdWwgbnVtZXJpYygyMCksIGQgZmxvYXQ4LCAiCisrICAgICAgICAg ICAgICAgICAidG0gdGltZXN0YW1wLCBpMSBpbnRlZ2VyLCBpMiBpbnRlZ2VyLCBpMyBpbnRlZ2Vy LCAiCisrICAgICAgICAgICAgICAgICAibmFtZSB2YXJjaGFyKDIwKSkiOworKyAgICB9CisrfTsK KysKKytzdHJ1Y3QgdGFibGVfY3JlYXRvcl90d28gOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9iYXNl CisreworKyAgICB0YWJsZV9jcmVhdG9yX3R3byhzZXNzaW9uJiBzZXNzaW9uKQorKyAgICAgICAg OiB0YWJsZV9jcmVhdG9yX2Jhc2Uoc2Vzc2lvbikKKysgICAgeworKyAgICAgICAgc2Vzc2lvbiAg PDwgImNyZWF0ZSB0YWJsZSBzb2NpX3Rlc3QobnVtX2Zsb2F0IGZsb2F0OCwgbnVtX2ludCBpbnRl Z2VyLCIKKysgICAgICAgICAgICAgICAgICAgICAiIG5hbWUgdmFyY2hhcigyMCksIHNvbWV0aW1l IHRpbWVzdGFtcCwgY2hyIGNoYXIpIjsKKysgICAgfQorK307CisrCisrc3RydWN0IHRhYmxlX2Ny ZWF0b3JfdGhyZWUgOiBwdWJsaWMgdGFibGVfY3JlYXRvcl9iYXNlCisreworKyAgICB0YWJsZV9j cmVhdG9yX3RocmVlKHNlc3Npb24mIHNlc3Npb24pCisrICAgICAgICA6IHRhYmxlX2NyZWF0b3Jf YmFzZShzZXNzaW9uKQorKyAgICB7CisrICAgICAgICBzZXNzaW9uIDw8ICJjcmVhdGUgdGFibGUg c29jaV90ZXN0KG5hbWUgdmFyY2hhcigxMDApIG5vdCBudWxsLCAiCisrICAgICAgICAgICAgInBo b25lIHZhcmNoYXIoMTUpKSI7CisrICAgIH0KKyt9OworKworKy8vCisrLy8gU3VwcG9ydCBmb3Ig c29jaSBDb21tb24gVGVzdHMKKysvLworKworK2NsYXNzIHRlc3RfY29udGV4dCA6IHB1YmxpYyB0 ZXN0X2NvbnRleHRfYmFzZQorK3sKKytwdWJsaWM6CisrICAgIHRlc3RfY29udGV4dChiYWNrZW5k X2ZhY3RvcnkgY29uc3QgJmJhY2tFbmQsCisrICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGNv bnN0ICZjb25uZWN0U3RyaW5nKQorKyAgICAgICAgOiB0ZXN0X2NvbnRleHRfYmFzZShiYWNrRW5k LCBjb25uZWN0U3RyaW5nKSB7fQorKworKyAgICB0YWJsZV9jcmVhdG9yX2Jhc2UqIHRhYmxlX2Ny ZWF0b3JfMShzZXNzaW9uJiBzKSBjb25zdAorKyAgICB7CisrICAgICAgICByZXR1cm4gbmV3IHRh YmxlX2NyZWF0b3Jfb25lKHMpOworKyAgICB9CisrCisrICAgIHRhYmxlX2NyZWF0b3JfYmFzZSog dGFibGVfY3JlYXRvcl8yKHNlc3Npb24mIHMpIGNvbnN0CisrICAgIHsKKysgICAgICAgIHJldHVy biBuZXcgdGFibGVfY3JlYXRvcl90d28ocyk7CisrICAgIH0KKysKKysgICAgdGFibGVfY3JlYXRv cl9iYXNlKiB0YWJsZV9jcmVhdG9yXzMoc2Vzc2lvbiYgcykgY29uc3QKKysgICAgeworKyAgICAg ICAgcmV0dXJuIG5ldyB0YWJsZV9jcmVhdG9yX3RocmVlKHMpOworKyAgICB9CisrCisrICAgIHN0 ZDo6c3RyaW5nIHRvX2RhdGVfdGltZShzdGQ6OnN0cmluZyBjb25zdCAmZGF0ZHRfc3RyaW5nKSBj b25zdAorKyAgICB7CisrICAgICAgICByZXR1cm4gInRpbWVzdGFtcHR6KFwnIiArIGRhdGR0X3N0 cmluZyArICJcJykiOworKyAgICB9CisrCisrfTsKKysKKysKKytpbnQgbWFpbihpbnQgYXJnYywg Y2hhcioqIGFyZ3YpCisreworKworKyNpZmRlZiBfTVNDX1ZFUgorKyAgICAvLyBSZWRpcmVjdCBl cnJvcnMsIHVucmVjb3ZlcmFibGUgcHJvYmxlbXMsIGFuZCBhc3NlcnQoKSBmYWlsdXJlcyB0byBT VERFUlIsCisrICAgIC8vIGluc3RlYWQgb2YgZGVidWcgbWVzc2FnZSB3aW5kb3cuCisrICAgIC8v IFRoaXMgaGFjayBpcyByZXF1aXJlZCB0byBydW4gYXNzZXIoKS1kcml2ZW4gdGVzdHMgYnkgQnVp bGRib3QuCisrICAgIC8vIE5PVEU6IENvbW1lbnQgdGhpcyAyIGxpbmVzIGZvciBkZWJ1Z2dpbmcg d2l0aCBWaXN1YWwgQysrIGRlYnVnZ2VyIHRvIGNhdGNoIGFzc2VydGlvbnMgaW5zaWRlLgorKyAg ICBfQ3J0U2V0UmVwb3J0TW9kZShfQ1JUX0VSUk9SLCBfQ1JUREJHX01PREVfRklMRSk7CisrICAg IF9DcnRTZXRSZXBvcnRGaWxlKF9DUlRfRVJST1IsIF9DUlREQkdfRklMRV9TVERFUlIpOworKyNl bmRpZiAvL19NU0NfVkVSCisrCisrICAgIGlmIChhcmdjID09IDIpCisrICAgIHsKKysgICAgICAg IGNvbm5lY3RTdHJpbmcgPSBhcmd2WzFdOworKyAgICB9CisrICAgIGVsc2UKKysgICAgeworKyAg ICAgICAgc3RkOjpjb3V0IDw8ICJ1c2FnZTogIiA8PCBhcmd2WzBdCisrICAgICAgICAgICAgPDwg IiBjb25uZWN0c3RyaW5nXG4iCisrICAgICAgICAgICAgPDwgImV4YW1wbGU6ICIgPDwgYXJndlsw XQorKyAgICAgICAgICAgIDw8ICIgXCdjb25uZWN0X3N0cmluZ19mb3JfUG9zdGdyZVNRTFwnXG4i OworKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKysgICAgfQorKworKyAgICB0cnkKKysg ICAgeworKyAgICAgICAgdGVzdF9jb250ZXh0IHRjKGJhY2tFbmQsIGNvbm5lY3RTdHJpbmcpOwor KyAgICAgICAgY29tbW9uX3Rlc3RzIHRlc3RzKHRjKTsKKysgICAgICAgIHRlc3RzLnJ1bigpOwor KworKyAgICAgICAgc3RkOjpjb3V0IDw8ICJcblNPQ0kgUG9zdGdyZXMgVGVzdHM6XG5cbiI7Cisr CisrICAgICAgICB0ZXN0MSgpOworKyAgICAgICAgdGVzdDIoKTsKKysgICAgICAgIHRlc3QzKCk7 CisrICAgICAgICB0ZXN0NCgpOworKyAgICAgICAgdGVzdDUoKTsKKysKKysvLyAgICAgICAgIHRl c3Q2KCk7CisrICAgICAgICBzdGQ6OmNvdXQgPDwgInRlc3QgNiBza2lwcGVkIChkeW5hbWljIGJh Y2tlbmQpXG4iOworKworKyAgICAgICAgdGVzdDcoKTsKKysgICAgICAgIHRlc3Q4KCk7CisrCisr ICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuT0ssIGFsbCB0ZXN0cyBwYXNzZWQuXG5cbiI7CisrICAg ICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOworKyAgICB9CisrICAgIGNhdGNoIChzdGQ6OmV4Y2Vw dGlvbiBjb25zdCAmIGUpCisrICAgIHsKKysgICAgICAgIHN0ZDo6Y291dCA8PCBlLndoYXQoKSA8 PCAnXG4nOworKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKysgICAgfQorK30KK2RpZmYg LU51ciBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcCBzb2NpLTMuMC4wXzQtcGFj ay9zcmMvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBzb2NpLTMuMC4wL3NyYy9jb3JlL3NvY2kt c2ltcGxlLmNwcAkyMDA4LTA3LTAxIDA5OjQyOjI1LjAwMDAwMDAwMCArMDIwMAorKysrIHNvY2kt My4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDEwLTAxLTIzIDEzOjE3OjI4 LjAwMDAwMDAwMCArMDEwMAorQEAgLTksNiArOSw4IEBACisgCisgI2luY2x1ZGUgInNvY2ktc2lt cGxlLmgiCisgI2luY2x1ZGUgInNvY2kuaCIKKysvLworKyNpbmNsdWRlIDxjc3RkaW8+CisgCisg dXNpbmcgbmFtZXNwYWNlIHNvY2k7CisgCgpkaWZmIC0tZ2l0IGEvc29jaS0zLjAuMC0xNi1maXgt Z251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoIGIvc29jaS0zLjAuMC0xNi1maXgtZ251 LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjkyZjlmM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zb2NpLTMuMC4wLTE2LWZpeC1n bnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2gKQEAgLTAsMCArMSw2MjMzOSBAQAorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2FjbG9jYWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2Fj bG9jYWwubTQKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00CTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2FjbG9jYWwubTQJ MjAxMC0wMS0yMyAxNDo0NDo0Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOTYxIEBACisr IyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTEuMSAtKi0gQXV0b2NvbmYg LSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDIsIDIwMDMsIDIwMDQsCisrIyAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgor KworK200X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCisrICBbbTRfY29weShbbTRfUEFD S0FHRV9WRVJTSU9OXSwgW0FDX0FVVE9DT05GX1ZFUlNJT05dKV0pZG5sCisrbTRfaWYobTRfZGVm bihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pLCBbMi42M10sLAorK1ttNF93YXJuaW5nKFt0aGlzIGZp bGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42My4KKytZb3UgaGF2ZSBhbm90aGVyIHZl cnNpb24gb2YgYXV0b2NvbmYuICBJdCBtYXkgd29yaywgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRv LgorK0lmIHlvdSBoYXZlIHByb2JsZW1zLCB5b3UgbWF5IG5lZWQgdG8gcmVnZW5lcmF0ZSB0aGUg YnVpbGQgc3lzdGVtIGVudGlyZWx5LgorK1RvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1 bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKKysKKysj IENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBBTV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBBdXRvbWFrZSBYLlkgdHJhY2VzIHRoaXMgbWFjcm8gdG8gZW5zdXJlIGFjbG9j YWwubTQgaGFzIGJlZW4KKysjIGdlbmVyYXRlZCBmcm9tIHRoZSBtNCBmaWxlcyBhY2NvbXBhbnlp bmcgQXV0b21ha2UgWC5ZLgorKyMgKFRoaXMgcHJpdmF0ZSBtYWNybyBzaG91bGQgbm90IGJlIGNh bGxlZCBvdXRzaWRlIHRoaXMgZmlsZS4pCisrQUNfREVGVU4oW0FNX0FVVE9NQUtFX1ZFUlNJT05d LAorK1thbV9fYXBpX3ZlcnNpb249JzEuMTEnCisrZG5sIFNvbWUgdXNlcnMgZmluZCBBTV9BVVRP TUFLRV9WRVJTSU9OIGFuZCBtaXN0YWtlIGl0IGZvciBhIHdheSB0bworK2RubCByZXF1aXJlIHNv bWUgbWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUgcmlnaHQgbWFjcm8uCisrbTRf aWYoWyQxXSwgWzEuMTEuMV0sIFtdLAorKyAgICAgIFtBQ19GQVRBTChbRG8gbm90IGNhbGwgJDAs IHVzZSBBTV9JTklUX0FVVE9NQUtFKFskMV0pLl0pXSlkbmwKKytdKQorKworKyMgX0FNX0FVVE9D T05GX1ZFUlNJT04oVkVSU0lPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBhY2xvY2FsIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGZpbmQgdGhlIEF1dG9jb25mIHZlcnNpb24u CisrIyBUaGlzIGlzIGEgcHJpdmF0ZSBtYWNybyB0b28uICBVc2luZyBtNF9kZWZpbmUgc2ltcGxp ZmllcworKyMgdGhlIGxvZ2ljIGluIGFjbG9jYWwsIHdoaWNoIGNhbiBzaW1wbHkgaWdub3JlIHRo aXMgZGVmaW5pdGlvbi4KKyttNF9kZWZpbmUoW19BTV9BVVRPQ09ORl9WRVJTSU9OXSwgW10pCisr CisrIyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisrIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBDYWxsIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIEFNX0FVVE9N QUtFX1ZFUlNJT04gc28gdGhleSBjYW4gYmUgdHJhY2VkLgorKyMgVGhpcyBmdW5jdGlvbiBpcyBB Q19SRVFVSVJFZCBieSBBTV9JTklUX0FVVE9NQUtFLgorK0FDX0RFRlVOKFtBTV9TRVRfQ1VSUkVO VF9BVVRPTUFLRV9WRVJTSU9OXSwKKytbQU1fQVVUT01BS0VfVkVSU0lPTihbMS4xMS4xXSlkbmwK KyttNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAorKyAgW200X2NvcHkoW200X1BBQ0tB R0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAorK19BTV9BVVRPQ09ORl9W RVJTSU9OKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSldKQorKworKyMgQU1fQVVYX0RJ Ul9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRv Y29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBG b3IgcHJvamVjdHMgdXNpbmcgQUNfQ09ORklHX0FVWF9ESVIoW2Zvb10pLCBBdXRvY29uZiBzZXRz CisrIyAkYWNfYXV4X2RpciB0byBgJHNyY2Rpci9mb28nLiAgSW4gb3RoZXIgcHJvamVjdHMsIGl0 IGlzIHNldCB0bworKyMgYCRzcmNkaXInLCBgJHNyY2Rpci8uLicsIG9yIGAkc3JjZGlyLy4uLy4u Jy4KKysjCisrIyBPZiBjb3Vyc2UsIEF1dG9tYWtlIG11c3QgaG9ub3IgdGhpcyB2YXJpYWJsZSB3 aGVuZXZlciBpdCBjYWxscyBhCisrIyB0b29sIGZyb20gdGhlIGF1eGlsaWFyeSBkaXJlY3Rvcnku ICBUaGUgcHJvYmxlbSBpcyB0aGF0ICRzcmNkaXIgKGFuZAorKyMgdGhlcmVmb3JlICRhY19hdXhf ZGlyIGFzIHdlbGwpIGNhbiBiZSBlaXRoZXIgYWJzb2x1dGUgb3IgcmVsYXRpdmUsCisrIyBkZXBl bmRpbmcgb24gaG93IGNvbmZpZ3VyZSBpcyBydW4uICBUaGlzIGlzIHByZXR0eSBhbm5veWluZywg c2luY2UKKysjIGl0IG1ha2VzICRhY19hdXhfZGlyIHF1aXRlIHVudXNhYmxlIGluIHN1YmRpcmVj dG9yaWVzOiBpbiB0aGUgdG9wCisrIyBzb3VyY2UgZGlyZWN0b3J5LCBhbnkgZm9ybSB3aWxsIHdv cmsgZmluZSwgYnV0IGluIHN1YmRpcmVjdG9yaWVzIGEKKysjIHJlbGF0aXZlIHBhdGggbmVlZHMg dG8gYmUgYWRqdXN0ZWQgZmlyc3QuCisrIworKyMgJGFjX2F1eF9kaXIvbWlzc2luZworKyMgICAg ZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpZiAkYWNfYXV4X2RpciBpcyBy ZWxhdGl2ZQorKyMgJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZworKyMgICAgZmFpbHMg aWYgJGFjX2F1eF9kaXIgaXMgYWJzb2x1dGUsCisrIyAgICBmYWlscyB3aGVuIGNhbGxlZCBmcm9t IGEgc3ViZGlyZWN0b3J5IGluIGEgVlBBVEggYnVpbGQgd2l0aAorKyMgICAgICAgICAgYSByZWxh dGl2ZSAkYWNfYXV4X2RpcgorKyMKKysjIFRoZSByZWFzb24gb2YgdGhlIGxhdHRlciBmYWlsdXJl IGlzIHRoYXQgJHRvcF9zcmNkaXIgYW5kICRhY19hdXhfZGlyCisrIyBhcmUgYm90aCBwcmVmaXhl ZCBieSAkc3JjZGlyLiAgSW4gYW4gaW4tc291cmNlIGJ1aWxkIHRoaXMgaXMgdXN1YWxseQorKyMg aGFybWxlc3MgYmVjYXVzZSAkc3JjZGlyIGlzIGAuJywgYnV0IHRoaW5ncyB3aWxsIGJyb2tlIHdo ZW4geW91CisrIyBzdGFydCBhIFZQQVRIIGJ1aWxkIG9yIHVzZSBhbiBhYnNvbHV0ZSAkc3JjZGly LgorKyMKKysjIFNvIHdlIGNvdWxkIHVzZSBzb21ldGhpbmcgc2ltaWxhciB0byAkdG9wX3NyY2Rp ci8kYWNfYXV4X2Rpci9taXNzaW5nLAorKyMgaWZmIHdlIHN0cmlwIHRoZSBsZWFkaW5nICRzcmNk aXIgZnJvbSAkYWNfYXV4X2Rpci4gIFRoYXQgd291bGQgYmU6CisrIyAgIGFtX2F1eF9kaXI9J1wk KHRvcF9zcmNkaXIpLydgZXhwciAiJGFjX2F1eF9kaXIiIDogIiRzcmNkaXIvLypcKC4qXCkiYAor KyMgYW5kIHRoZW4gd2Ugd291bGQgZGVmaW5lICRNSVNTSU5HIGFzCisrIyAgIE1JU1NJTkc9Ilwk e1NIRUxMfSAkYW1fYXV4X2Rpci9taXNzaW5nIgorKyMgVGhpcyB3aWxsIHdvcmsgYXMgbG9uZyBh cyBNSVNTSU5HIGlzIG5vdCBjYWxsZWQgZnJvbSBjb25maWd1cmUsIGJlY2F1c2UKKysjIHVuZm9y dHVuYXRlbHkgJCh0b3Bfc3JjZGlyKSBoYXMgbm8gbWVhbmluZyBpbiBjb25maWd1cmUuCisrIyBI b3dldmVyIHRoZXJlIGFyZSBvdGhlciB2YXJpYWJsZXMsIGxpa2UgQ0MsIHdoaWNoIGFyZSBvZnRl biB1c2VkIGluCisrIyBjb25maWd1cmUsIGFuZCBjb3VsZCB0aGVyZWZvcmUgbm90IHVzZSB0aGlz ICJmaXhlZCIgJGFjX2F1eF9kaXIuCisrIworKyMgQW5vdGhlciBzb2x1dGlvbiwgdXNlZCBoZXJl LCBpcyB0byBhbHdheXMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuCisrIyBhYnNvbHV0ZSBQQVRI LiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgdXNpbmcgYWJzb2x1dGUgcGF0aHMgcHJldmVudCBhCisr IyBjb25maWd1cmVkIHRyZWUgdG8gYmUgbW92ZWQgd2l0aG91dCByZWNvbmZpZ3VyYXRpb24uCisr CisrQUNfREVGVU4oW0FNX0FVWF9ESVJfRVhQQU5EXSwKKytbZG5sIFJlbHkgb24gYXV0b2NvbmYg dG8gc2V0IHVwIENEUEFUSCBwcm9wZXJseS4KKytBQ19QUkVSRVEoWzIuNTBdKWRubAorKyMgZXhw YW5kICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKKythbV9hdXhfZGlyPWBjZCAkYWNf YXV4X2RpciAmJiBwd2RgCisrXSkKKysKKysjIEFNX0NPTkRJVElPTkFMICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5 cmlnaHQgKEMpIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgK KysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyMgc2VyaWFsIDkKKysKKysjIEFNX0NPTkRJVElPTkFMKE5BTUUsIFNIRUxMLUNP TkRJVElPTikKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIERl ZmluZSBhIGNvbmRpdGlvbmFsLgorK0FDX0RFRlVOKFtBTV9DT05ESVRJT05BTF0sCisrW0FDX1BS RVJFUSgyLjUyKWRubAorKyBpZmVsc2UoWyQxXSwgW1RSVUVdLCAgW0FDX0ZBVEFMKFskMDogaW52 YWxpZCBjb25kaXRpb246ICQxXSldLAorKwlbJDFdLCBbRkFMU0VdLCBbQUNfRkFUQUwoWyQwOiBp bnZhbGlkIGNvbmRpdGlvbjogJDFdKV0pZG5sCisrQUNfU1VCU1QoWyQxX1RSVUVdKWRubAorK0FD X1NVQlNUKFskMV9GQUxTRV0pZG5sCisrX0FNX1NVQlNUX05PVE1BS0UoWyQxX1RSVUVdKWRubAor K19BTV9TVUJTVF9OT1RNQUtFKFskMV9GQUxTRV0pZG5sCisrbTRfZGVmaW5lKFtfQU1fQ09ORF9W QUxVRV8kMV0sIFskMl0pZG5sCisraWYgJDI7IHRoZW4KKysgICQxX1RSVUU9CisrICAkMV9GQUxT RT0nIycKKytlbHNlCisrICAkMV9UUlVFPScjJworKyAgJDFfRkFMU0U9CisrZmkKKytBQ19DT05G SUdfQ09NTUFORFNfUFJFKAorK1tpZiB0ZXN0IC16ICIkeyQxX1RSVUV9IiAmJiB0ZXN0IC16ICIk eyQxX0ZBTFNFfSI7IHRoZW4KKysgIEFDX01TR19FUlJPUihbW2NvbmRpdGlvbmFsICIkMSIgd2Fz IG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp bnZva2VkIGNvbmRpdGlvbmFsbHkuXV0pCisrZmldKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5 OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDkKKysjIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNv ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRo b3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgor KworKyMgc2VyaWFsIDEwCisrCisrIyBUaGVyZSBhcmUgYSBmZXcgZGlydHkgaGFja3MgYmVsb3cg dG8gYXZvaWQgbGV0dGluZyBgQUNfUFJPR19DQycgYmUKKysjIHdyaXR0ZW4gaW4gY2xlYXIsIGlu IHdoaWNoIGNhc2UgYXV0b21ha2UsIHdoZW4gcmVhZGluZyBhY2xvY2FsLm00LAorKyMgd2lsbCB0 aGluayBpdCBzZWVzIGEgKnVzZSosIGFuZCB0aGVyZWZvcmUgd2lsbCB0cmlnZ2VyIGFsbCBpdCdz CisrIyBDIHN1cHBvcnQgbWFjaGluZXJ5LiAgQWxzbyBub3RlIHRoYXQgaXQgbWVhbnMgdGhhdCBh dXRvc2Nhbiwgc2VlaW5nCisrIyBDQyBldGMuIGluIHRoZSBNYWtlZmlsZSwgd2lsbCBhc2sgZm9y IGFuIEFDX1BST0dfQ0MgdXNlLi4uCisrCisrCisrIyBfQU1fREVQRU5ERU5DSUVTKE5BTUUpCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTZWUgaG93IHRoZSBjb21waWxlciBpbXBsZW1l bnRzIGRlcGVuZGVuY3kgY2hlY2tpbmcuCisrIyBOQU1FIGlzICJDQyIsICJDWFgiLCAiR0NKIiwg b3IgIk9CSkMiLgorKyMgV2UgdHJ5IGEgZmV3IHRlY2huaXF1ZXMgYW5kIHVzZSB0aGF0IHRvIHNl dCBhIHNpbmdsZSBjYWNoZSB2YXJpYWJsZS4KKysjCisrIyBXZSBkb24ndCBBQ19SRVFVSVJFIHRo ZSBjb3JyZXNwb25kaW5nIEFDX1BST0dfQ0Mgc2luY2UgdGhlIGxhdHRlciB3YXMKKysjIG1vZGlm aWVkIHRvIGludm9rZSBfQU1fREVQRU5ERU5DSUVTKENDKTsgd2Ugd291bGQgaGF2ZSBhIGNpcmN1 bGFyCisrIyBkZXBlbmRlbmN5LCBhbmQgZ2l2ZW4gdGhhdCB0aGUgdXNlciBpcyBub3QgZXhwZWN0 ZWQgdG8gcnVuIHRoaXMgbWFjcm8sCisrIyBqdXN0IHJlbHkgb24gQUNfUFJPR19DQy4KKytBQ19E RUZVTihbX0FNX0RFUEVOREVOQ0lFU10sCisrW0FDX1JFUVVJUkUoW0FNX1NFVF9ERVBESVJdKWRu bAorK0FDX1JFUVVJUkUoW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSlkbmwKKytBQ19S RVFVSVJFKFtBTV9NQUtFX0lOQ0xVREVdKWRubAorK0FDX1JFUVVJUkUoW0FNX0RFUF9UUkFDS10p ZG5sCisrCisraWZlbHNlKFskMV0sIENDLCAgIFtkZXBjYz0iJENDIiAgIGFtX2NvbXBpbGVyX2xp c3Q9XSwKKysgICAgICAgWyQxXSwgQ1hYLCAgW2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlz dD1dLAorKyAgICAgICBbJDFdLCBPQkpDLCBbZGVwY2M9IiRPQkpDIiBhbV9jb21waWxlcl9saXN0 PSdnY2MzIGdjYyddLAorKyAgICAgICBbJDFdLCBVUEMsICBbZGVwY2M9IiRVUEMiICBhbV9jb21w aWxlcl9saXN0PV0sCisrICAgICAgIFskMV0sIEdDSiwgIFtkZXBjYz0iJEdDSiIgIGFtX2NvbXBp bGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisrICAgICAgICAgICAgICAgICAgIFtkZXBjYz0iJCQxIiAg IGFtX2NvbXBpbGVyX2xpc3Q9XSkKKysKKytBQ19DQUNIRV9DSEVDSyhbZGVwZW5kZW5jeSBzdHls ZSBvZiAkZGVwY2NdLAorKyAgICAgICAgICAgICAgIFthbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZV0sCisrW2lmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1f ZGVwY29tcCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRo ZXJlLiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRo YXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisrICAjIGluc3Rh bmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1 cAorKyAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1l YW5zIGBwdXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgor KyAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZp bmQgaXQgaWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisrICBjcCAi JGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3QuZGlyCisrICAjIFdlIHdp bGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1 c2UKKysgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVz LiAgRm9yIGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1E IHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxh dGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisrICAjIHRoZSBjdXJy ZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKKysg ICMgZGlyZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl8kMV9kZXBlbmRlbmNpZXNf Y29tcGlsZXJfdHlwZT1ub25lCisrICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsg dGhlbgorKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uIFsncy9eIypcKFthLXpBLVowLTld KlwpKSQvXDEvcCddIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGFtX191bml2ZXJzYWw9ZmFsc2UK KysgIG00X2Nhc2UoWyQxXSwgW0NDXSwKKysgICAgW2Nhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAg ICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVz YWNdLAorKyAgICBbQ1hYXSwKKysgICAgW2Nhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAgKlwg LWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWNdKQor KworKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAg YSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwor KyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAo d2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUg d2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVj cmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAg ICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21t YW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBj b21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQg NSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2Nv bmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9u bHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4v c2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAi JHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+ IGNvbmZtZgorKworKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNh a2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQg dGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUg YC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisr ICAgICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBh bV9fb2JqPXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAk YW1fX29iaiIKKysgICAgY2FzZSAkZGVwbW9kZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlz IGRlcG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAg ICB0ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7Cisr ICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFy ZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3 aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5k ZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwli cmVhaworKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykK KysgICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhl IG1pbnVzbyB0ZXN0IGhhcworKyAgICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBh cmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRo ZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1j b25mdGVzdC4ke09CSkVYVC1vfQorKyAgICAgIGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysg ICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwK KysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAg IGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisr ICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25m dGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAg IGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYK KysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwg Mj4mMSAmJgorKyAgICAgICBncmVwICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVs bCAyPiYxICYmCisrICAgICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwg Mj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25z LCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4g d2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAg ICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAg ICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6Cisr ICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0n OyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGlu IGljYyA4LjA6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICct TVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25m dGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJy KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfJDFfZGVwZW5k ZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisrICAgICAgZmkK KysgICAgZmkKKysgIGRvbmUKKysKKysgIGNkIC4uCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisr ZWxzZQorKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisr XSkKKytBQ19TVUJTVChbJDFERVBNT0RFXSwgW2RlcG1vZGU9JGFtX2N2XyQxX2RlcGVuZGVuY2ll c19jb21waWxlcl90eXBlXSkKKytBTV9DT05ESVRJT05BTChbYW1fX2Zhc3RkZXAkMV0sIFsKKysg IHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0 ICIkYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID0gZ2NjM10pCisrXSkKKysK KysKKysjIEFNX1NFVF9ERVBESVIKKysjIC0tLS0tLS0tLS0tLS0KKysjIENob29zZSBhIGRpcmVj dG9yeSBuYW1lIGZvciBkZXBlbmRlbmN5IGZpbGVzLgorKyMgVGhpcyBtYWNybyBpcyBBQ19SRVFV SVJFZCBpbiBfQU1fREVQRU5ERU5DSUVTCisrQUNfREVGVU4oW0FNX1NFVF9ERVBESVJdLAorK1tB Q19SRVFVSVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK0FDX1NVQlNUKFtERVBESVJdLCBb IiR7YW1fX2xlYWRpbmdfZG90fWRlcHMiXSlkbmwKKytdKQorKworKworKyMgQU1fREVQX1RSQUNL CisrIyAtLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbQU1fREVQX1RSQUNLXSwKKytbQUNfQVJHX0VO QUJMRShkZXBlbmRlbmN5LXRyYWNraW5nLAorK1sgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNr aW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKKysgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJh Y2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzXSkKKytpZiB0 ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2Rl cGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisrICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQor K0FNX0NPTkRJVElPTkFMKFtBTURFUF0sIFt0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNr aW5nIiAhPSB4bm9dKQorK0FDX1NVQlNUKFtBTURFUEJBQ0tTTEFTSF0pZG5sCisrX0FNX1NVQlNU X05PVE1BS0UoW0FNREVQQkFDS1NMQVNIXSlkbmwKKytdKQorKworKyMgR2VuZXJhdGUgY29kZSB0 byBzZXQgdXAgZGVwZW5kZW5jeSB0cmFja2luZy4gICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAt Ki0KKysKKysjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAw NCwgMjAwNSwgMjAwOAorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K KysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrI3NlcmlhbCA1CisrCisrIyBfQU1fT1VUUFVUX0RFUEVO REVOQ1lfQ09NTUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RF RlVOKFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorK1t7CisrICAjIEF1dG9jb25m IDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9yIGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxl cworKyAgIyBhcmUgbGlzdGVkIHdpdGhvdXQgLS1maWxlLiAgTGV0J3MgcGxheSBzYWZlIGFuZCBv bmx5IGVuYWJsZSB0aGUgZXZhbAorKyAgIyBpZiB3ZSBkZXRlY3QgdGhlIHF1b3RpbmcuCisrICBj YXNlICRDT05GSUdfRklMRVMgaW4KKysgICpcJyopIGV2YWwgc2V0IHggIiRDT05GSUdfRklMRVMi IDs7CisrICAqKSAgIHNldCB4ICRDT05GSUdfRklMRVMgOzsKKysgIGVzYWMKKysgIHNoaWZ0Cisr ICBmb3IgbWYKKysgIGRvCisrICAgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5h bWUgb2YgdGhlIGZpbGUuCisrICAgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydg CisrICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtl ZmlsZSBvciBub3QuCisrICAgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1l ZCBgTWFrZWZpbGUuaW4nLCBidXQKKysgICAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28g aW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisrICAgICMgR3JlcCdpbmcgdGhl IGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCisrICAg ICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmls ZSB0byBzYXkgc28uCisrICAgICMgR3JlcCdpbmcgdGhlIHdob2xlIGZpbGUgaXMgbm90IGdvb2Qg ZWl0aGVyOiBBSVggZ3JlcCBoYXMgYSBsaW5lCisrICAgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFs bCBzZWQncyB3ZSBrbm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgorKyAgICBpZiBz ZWQgLW4gJ3MsXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZS4qLFgscCcgIiRtZiIgfCBncmVwIFgg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgZGlycGFydD1gQVNfRElSTkFNRSgiJG1mIilg CisrICAgIGVsc2UKKysgICAgICBjb250aW51ZQorKyAgICBmaQorKyAgICAjIEV4dHJhY3QgdGhl IGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQorKyAgICAj IGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisrICAgIERFUERJUj1g c2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisrICAgIHRlc3QgLXogIiRERVBESVIi ICYmIGNvbnRpbnVlCisrICAgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0g Ly9wJyA8ICIkbWYiYAorKyAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKysg ICAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKKysgICAg IyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBl eHBhbmQgaXQKKysgICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorKyAgICAjIEZp bmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3 aXRoCisrICAgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2lj ZSBiZWNhdXNlIGl0IGlzIHRoZQorKyAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5n ICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorKyAgICAjIGV4cGFuc2lvbi4K KysgICAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisrICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9f cXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisrCSBz ZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cnYDsg ZG8KKysgICAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKysgICAgICB0ZXN0 IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKysgICAgICBmZGlyPWBBU19ESVJOQU1F KFsiJGZpbGUiXSlgCisrICAgICAgQVNfTUtESVJfUChbJGRpcnBhcnQvJGZkaXJdKQorKyAgICAg ICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisrICAgICAgZWNobyAnIyBkdW1teScg PiAiJGRpcnBhcnQvJGZpbGUiCisrICAgIGRvbmUKKysgIGRvbmUKKyt9CisrXSkjIF9BTV9PVVRQ VVRfREVQRU5ERU5DWV9DT01NQU5EUworKworKworKyMgQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09N TUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBUaGlzIG1hY3JvIHNo b3VsZCBvbmx5IGJlIGludm9rZWQgb25jZSAtLSB1c2UgdmlhIEFDX1JFUVVJUkUuCisrIworKyMg VGhpcyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFj a2luZworKyMgaXMgZW5hYmxlZC4gIEZJWE1FLiAgVGhpcyBjcmVhdGVzIGVhY2ggYC5QJyBmaWxl IHRoYXQgd2Ugd2lsbAorKyMgbmVlZCBpbiBvcmRlciB0byBib290c3RyYXAgdGhlIGRlcGVuZGVu Y3kgaGFuZGxpbmcgY29kZS4KKytBQ19ERUZVTihbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFO RFNdLAorK1tBQ19DT05GSUdfQ09NTUFORFMoW2RlcGZpbGVzXSwKKysgICAgIFt0ZXN0IHgiJEFN REVQX1RSVUUiICE9IHgiIiB8fCBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorKyAg ICAgW0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciJdKQor K10pCisrCisrIyBEbyBhbGwgdGhlIHdvcmsgZm9yIEF1dG9tYWtlLiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorKworKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LAorKyMgMjAwNSwg MjAwNiwgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBU aGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor KyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBp dCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90 aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIHNlcmlhbCAxNgorKworKyMgVGhpcyBtYWNybyBhY3R1 YWxseSBkb2VzIHRvbyBtdWNoLiAgU29tZSBjaGVja3MgYXJlIG9ubHkgbmVlZGVkIGlmCisrIyB5 b3VyIHBhY2thZ2UgZG9lcyBjZXJ0YWluIHRoaW5ncy4gIEJ1dCB0aGlzIGlzbid0IHJlYWxseSBh IGJpZyBkZWFsLgorKworKyMgQU1fSU5JVF9BVVRPTUFLRShQQUNLQUdFLCBWRVJTSU9OLCBbTk8t REVGSU5FXSkKKysjIEFNX0lOSVRfQVVUT01BS0UoW09QVElPTlNdKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFRoZSBjYWxsIHdpdGggUEFD S0FHRSBhbmQgVkVSU0lPTiBhcmd1bWVudHMgaXMgdGhlIG9sZCBzdHlsZQorKyMgY2FsbCAocHJl IGF1dG9jb25mLTIuNTApLCB3aGljaCBpcyBiZWluZyBwaGFzZWQgb3V0LiAgUEFDS0FHRQorKyMg YW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNfSU5JVCBhbmQgcmVtb3ZlZCBm cm9tCisrIyB0aGUgY2FsbCB0byBBTV9JTklUX0FVVE9NQUtFLgorKyMgV2Ugc3VwcG9ydCBib3Ro IGNhbGwgc3R5bGVzIGZvciB0aGUgdHJhbnNpdGlvbi4gIEFmdGVyCisrIyB0aGUgbmV4dCBBdXRv bWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNfSU5JVAorKyMgYXJndW1lbnRz IG1hbmRhdG9yeSwgYW5kIHRoZW4gd2UgY2FuIGRlcGVuZCBvbiBhIG5ldyBBdXRvY29uZgorKyMg cmVsZWFzZSBhbmQgZHJvcCB0aGUgb2xkIGNhbGwgc3VwcG9ydC4KKytBQ19ERUZVTihbQU1fSU5J VF9BVVRPTUFLRV0sCisrW0FDX1BSRVJFUShbMi42Ml0pZG5sCisrZG5sIEF1dG9jb25mIHdhbnRz IHRvIGRpc2FsbG93IEFNXyBuYW1lcy4gIFdlIGV4cGxpY2l0bHkgYWxsb3cKKytkbmwgdGhlIG9u ZXMgd2UgY2FyZSBhYm91dC4KKyttNF9wYXR0ZXJuX2FsbG93KFteQU1fW0EtWl0rRkxBR1MkXSlk bmwKKytBQ19SRVFVSVJFKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OXSlkbmwKKytB Q19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorK2lmIHRlc3QgImBjZCAkc3JjZGlyICYm IHB3ZGAiICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hlbiAk KHNyY2RpcikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAjIGlzIG5vdCBwb2xsdXRl ZCB3aXRoIHJlcGVhdGVkICItSS4iCisrICBBQ19TVUJTVChbYW1fX2lzcmNdLCBbJyAtSSQoc3Jj ZGlyKSddKV9BTV9TVUJTVF9OT1RNQUtFKFthbV9faXNyY10pZG5sCisrICAjIHRlc3QgdG8gc2Vl IGlmIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQKKysgIGlmIHRlc3QgLWYgJHNyY2Rpci9jb25m aWcuc3RhdHVzOyB0aGVuCisrICAgIEFDX01TR19FUlJPUihbc291cmNlIGRpcmVjdG9yeSBhbHJl YWR5IGNvbmZpZ3VyZWQ7IHJ1biAibWFrZSBkaXN0Y2xlYW4iIHRoZXJlIGZpcnN0XSkKKysgIGZp CisrZmkKKysKKysjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKKytpZiB0ZXN0IC16ICIk Q1lHUEFUSF9XIjsgdGhlbgorKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+ L2Rldi9udWxsOyB0aGVuCisrICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKKysgIGVsc2UKKysg ICAgQ1lHUEFUSF9XPWVjaG8KKysgIGZpCisrZmkKKytBQ19TVUJTVChbQ1lHUEFUSF9XXSkKKysK KysjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCisrZG5sIERpc3Rpbmd1aXNo IGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2FsbHMuCisrbTRfaWZ2YWwoWyQyXSwK KytbbTRfaWZ2YWwoWyQzXSwgW19BTV9TRVRfT1BUSU9OKFtuby1kZWZpbmVdKV0pZG5sCisrIEFD X1NVQlNUKFtQQUNLQUdFXSwgWyQxXSlkbmwKKysgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJDJdKV0s CisrW19BTV9TRVRfT1BUSU9OUyhbJDFdKWRubAorK2RubCBEaWFnbm9zZSBvbGQtc3R5bGUgQUNf SU5JVCB3aXRoIG5ldy1zdHlsZSBBTV9BVVRPTUFLRV9JTklULgorK200X2lmKG00X2lmZGVmKFtB Q19QQUNLQUdFX05BTUVdLCAxKW00X2lmZGVmKFtBQ19QQUNLQUdFX1ZFUlNJT05dLCAxKSwgMTEs LAorKyAgW200X2ZhdGFsKFtBQ19JTklUIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBwYWNrYWdlIGFu ZCB2ZXJzaW9uIGFyZ3VtZW50c10pXSlkbmwKKysgQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJ0FDX1BB Q0tBR0VfVEFSTkFNRSddKWRubAorKyBBQ19TVUJTVChbVkVSU0lPTl0sIFsnQUNfUEFDS0FHRV9W RVJTSU9OJ10pXSlkbmwKKysKKytfQU1fSUZfT1BUSU9OKFtuby1kZWZpbmVdLCwKKytbQUNfREVG SU5FX1VOUVVPVEVEKFBBQ0tBR0UsICIkUEFDS0FHRSIsIFtOYW1lIG9mIHBhY2thZ2VdKQorKyBB Q19ERUZJTkVfVU5RVU9URUQoVkVSU0lPTiwgIiRWRVJTSU9OIiwgW1ZlcnNpb24gbnVtYmVyIG9m IHBhY2thZ2VdKV0pZG5sCisrCisrIyBTb21lIHRvb2xzIEF1dG9tYWtlIG5lZWRzLgorK0FDX1JF UVVJUkUoW0FNX1NBTklUWV9DSEVDS10pZG5sCisrQUNfUkVRVUlSRShbQUNfQVJHX1BST0dSQU1d KWRubAorK0FNX01JU1NJTkdfUFJPRyhBQ0xPQ0FMLCBhY2xvY2FsLSR7YW1fX2FwaV92ZXJzaW9u fSkKKytBTV9NSVNTSU5HX1BST0coQVVUT0NPTkYsIGF1dG9jb25mKQorK0FNX01JU1NJTkdfUFJP RyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259KQorK0FNX01JU1NJTkdfUFJP RyhBVVRPSEVBREVSLCBhdXRvaGVhZGVyKQorK0FNX01JU1NJTkdfUFJPRyhNQUtFSU5GTywgbWFr ZWluZm8pCisrQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKKytBQ19SRVFVSVJF KFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdKWRubAorK0FDX1JFUVVJUkUoW0FNX1BST0dfTUtESVJf UF0pZG5sCisrIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3Rl bSAiYXdrIiBpcyBiYWQgb24KKysjIHNvbWUgcGxhdGZvcm1zLgorK0FDX1JFUVVJUkUoW0FDX1BS T0dfQVdLXSlkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX01BS0VfU0VUXSlkbmwKKytBQ19SRVFV SVJFKFtBTV9TRVRfTEVBRElOR19ET1RdKWRubAorK19BTV9JRl9PUFRJT04oW3Rhci11c3Rhcl0s IFtfQU1fUFJPR19UQVIoW3VzdGFyXSldLAorKwkgICAgICBbX0FNX0lGX09QVElPTihbdGFyLXBh eF0sIFtfQU1fUFJPR19UQVIoW3BheF0pXSwKKysJCQkgICAgIFtfQU1fUFJPR19UQVIoW3Y3XSld KV0pCisrX0FNX0lGX09QVElPTihbbm8tZGVwZW5kZW5jaWVzXSwsCisrW0FDX1BST1ZJREVfSUZF TFNFKFtBQ19QUk9HX0NDXSwKKysJCSAgW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSwKKysJCSAgW2Rl ZmluZShbQUNfUFJPR19DQ10sCisrCQkJICBkZWZuKFtBQ19QUk9HX0NDXSlbX0FNX0RFUEVOREVO Q0lFUyhDQyldKV0pZG5sCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKKysJCSAg W19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0sCisrCQkgIFtkZWZpbmUoW0FDX1BST0dfQ1hYXSwKKysJ CQkgIGRlZm4oW0FDX1BST0dfQ1hYXSlbX0FNX0RFUEVOREVOQ0lFUyhDWFgpXSldKWRubAorK0FD X1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX09CSkNdLAorKwkJICBbX0FNX0RFUEVOREVOQ0lFUyhP QkpDKV0sCisrCQkgIFtkZWZpbmUoW0FDX1BST0dfT0JKQ10sCisrCQkJICBkZWZuKFtBQ19QUk9H X09CSkNdKVtfQU1fREVQRU5ERU5DSUVTKE9CSkMpXSldKWRubAorK10pCisrX0FNX0lGX09QVElP Tihbc2lsZW50LXJ1bGVzXSwgW0FDX1JFUVVJUkUoW0FNX1NJTEVOVF9SVUxFU10pXSlkbmwKKytk bmwgVGhlIGBwYXJhbGxlbC10ZXN0cycgZHJpdmVyIG1heSBuZWVkIHRvIGtub3cgYWJvdXQgRVhF RVhULCBzbyBhZGQgdGhlCisrZG5sIGBhbV9fRVhFRVhUJyBjb25kaXRpb25hbCBpZiBfQU1fQ09N UElMRVJfRVhFRVhUIHdhcyBzZWVuLiAgVGhpcyBtYWNybworK2RubCBpcyBob29rZWQgb250byBf QUNfQ09NUElMRVJfRVhFRVhUIGVhcmx5LCBzZWUgYmVsb3cuCisrQUNfQ09ORklHX0NPTU1BTkRT X1BSRShkbmwKKytbbTRfcHJvdmlkZV9pZihbX0FNX0NPTVBJTEVSX0VYRUVYVF0sCisrICBbQU1f Q09ORElUSU9OQUwoW2FtX19FWEVFWFRdLCBbdGVzdCAtbiAiJEVYRUVYVCJdKV0pXSlkbmwKKytd KQorKworK2RubCBIb29rIGludG8gYF9BQ19DT01QSUxFUl9FWEVFWFQnIGVhcmx5IHRvIGxlYXJu IGl0cyBleHBhbnNpb24uICBEbyBub3QKKytkbmwgYWRkIHRoZSBjb25kaXRpb25hbCByaWdodCBo ZXJlLCBhcyBfQUNfQ09NUElMRVJfRVhFRVhUIG1heSBiZSBmdXJ0aGVyCisrZG5sIG1hbmdsZWQg YnkgQXV0b2NvbmYgYW5kIHJ1biBpbiBhIHNoZWxsIGNvbmRpdGlvbmFsIHN0YXRlbWVudC4KKytt NF9kZWZpbmUoW19BQ19DT01QSUxFUl9FWEVFWFRdLAorK200X2RlZm4oW19BQ19DT01QSUxFUl9F WEVFWFRdKVttNF9wcm92aWRlKFtfQU1fQ09NUElMRVJfRVhFRVhUXSldKQorKworKworKyMgV2hl biBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVzdCB1cGRhdGUgdGhlIHN0 YW1wLWggZmlsZS4KKysjIFRoaXMgZmlsZSByZXNpZGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBh cyB0aGUgY29uZmlnIGhlYWRlcgorKyMgdGhhdCBpcyBnZW5lcmF0ZWQuICBUaGUgc3RhbXAgZmls ZXMgYXJlIG51bWJlcmVkIHRvIGhhdmUgZGlmZmVyZW50IG5hbWVzLgorKworKyMgQXV0b2NvbmYg Y2FsbHMgX0FDX0FNX0NPTkZJR19IRUFERVJfSE9PSyAod2hlbiBkZWZpbmVkKSBpbiB0aGUKKysj IGxvb3Agd2hlcmUgY29uZmlnLnN0YXR1cyBjcmVhdGVzIHRoZSBoZWFkZXJzLCBzbyB3ZSBjYW4g Z2VuZXJhdGUKKysjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KKytBQ19ERUZVTihbX0FDX0FNX0NP TkZJR19IRUFERVJfSE9PS10sCisrWyMgQ29tcHV0ZSAkMSdzIGluZGV4IGluICRjb25maWdfaGVh ZGVycy4KKytfYW1fYXJnPSQxCisrX2FtX3N0YW1wX2NvdW50PTEKKytmb3IgX2FtX2hlYWRlciBp biAkY29uZmlnX2hlYWRlcnMgOjsgZG8KKysgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKysgICAgJF9h bV9hcmcgfCAkX2FtX2FyZzoqICkKKysgICAgICBicmVhayA7OworKyAgICAqICkKKysgICAgICBf YW1fc3RhbXBfY291bnQ9YGV4cHIgJF9hbV9zdGFtcF9jb3VudCArIDFgIDs7CisrICBlc2FjCisr ZG9uZQorK2VjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1f YXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKysKKysjIENvcHlyaWdodCAoQykg MjAwMSwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr IworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3Ry aWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0 aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBBTV9QUk9HX0lOU1RBTExfU0gKKysjIC0t LS0tLS0tLS0tLS0tLS0tLQorKyMgRGVmaW5lICRpbnN0YWxsX3NoLgorK0FDX0RFRlVOKFtBTV9Q Uk9HX0lOU1RBTExfU0hdLAorK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCisr aWYgdGVzdCB4IiR7aW5zdGFsbF9zaH0iICE9IHhzZXQ7IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9k aXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBpbnN0YWxsX3NoPSJcJHtTSEVMTH0gJyRhbV9h dXhfZGlyL2luc3RhbGwtc2gnIiA7OworKyAgKikKKysgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9 ICRhbV9hdXhfZGlyL2luc3RhbGwtc2giCisrICBlc2FjCisrZmkKKytBQ19TVUJTVChpbnN0YWxs X3NoKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDIK KysKKysjIENoZWNrIHdoZXRoZXIgdGhlIHVuZGVybHlpbmcgZmlsZS1zeXN0ZW0gc3VwcG9ydHMg ZmlsZW5hbWVzCisrIyB3aXRoIGEgbGVhZGluZyBkb3QuICBGb3IgaW5zdGFuY2UgTVMtRE9TIGRv ZXNuJ3QuCisrQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCisrW3JtIC1yZiAudHN0IDI+ L2Rldi9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRzdDsgdGhl bgorKyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVhZGluZ19kb3Q9XworK2Zp Cisrcm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorK0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0p CisrCisrIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAg ICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAw MywgMjAwNSwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhp cyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysj IGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQs CisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGlj ZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgNAorKworKyMgQU1fTUFLRV9JTkNMVURFKCkK KysjIC0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVjayB0byBzZWUgaG93IG1ha2UgdHJlYXRzIGlu Y2x1ZGVzLgorK0FDX0RFRlVOKFtBTV9NQUtFX0lOQ0xVREVdLAorK1thbV9tYWtlPSR7TUFLRS1t YWtlfQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoKKysJQGVjaG8gdGhpcyBp cyB0aGUgYW1fX2RvaXQgdGFyZ2V0CisrLlBIT05ZOiBhbV9fZG9pdAorK0VORAorKyMgSWYgd2Ug ZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29k ZS4KKytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21h a2VdKQorK2FtX19pbmNsdWRlPSIjIgorK2FtX19xdW90ZT0KKytfYW1fcmVzdWx0PW5vbmUKKysj IEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorK2VjaG8gImluY2x1ZGUgY29uZmlu YyIgPiBjb25mbWYKKysjIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJv bSBgbWFrZScuCisrY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4g IygKKysqdGhlXCBhbV9fZG9pdFwgdGFyZ2V0KikKKysgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysg IGFtX19xdW90ZT0KKysgIF9hbV9yZXN1bHQ9R05VCisrICA7OworK2VzYWMKKysjIE5vdyB0cnkg QlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0 aGVuCisrICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGNhc2UgYCRh bV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMoCisrICAgKnRoZVwgYW1fX2Rv aXRcIHRhcmdldCopCisrICAgICBhbV9faW5jbHVkZT0uaW5jbHVkZQorKyAgICAgYW1fX3F1b3Rl PSJcIiIKKysgICAgIF9hbV9yZXN1bHQ9QlNECisrICAgICA7OworKyAgIGVzYWMKKytmaQorK0FD X1NVQlNUKFthbV9faW5jbHVkZV0pCisrQUNfU1VCU1QoW2FtX19xdW90ZV0pCisrQUNfTVNHX1JF U1VMVChbJF9hbV9yZXN1bHRdKQorK3JtIC1mIGNvbmZpbmMgY29uZm1mCisrXSkKKysKKysjIEZh a2UgdGhlIGV4aXN0ZW5jZSBvZiBwcm9ncmFtcyB0aGF0IEdOVSBtYWludGFpbmVycyB1c2UuICAt Ki0gQXV0b2NvbmYgLSotCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2VyaWFsIDYKKysKKysjIEFN X01JU1NJTkdfUFJPRyhOQU1FLCBQUk9HUkFNKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrQUNfREVGVU4oW0FNX01JU1NJTkdfUFJPR10sCisrW0FDX1JFUVVJUkUoW0FNX01J U1NJTkdfSEFTX1JVTl0pCisrJDE9JHskMS0iJHthbV9taXNzaW5nX3J1bn0kMiJ9CisrQUNfU1VC U1QoJDEpXSkKKysKKysKKysjIEFNX01JU1NJTkdfSEFTX1JVTgorKyMgLS0tLS0tLS0tLS0tLS0t LS0tCisrIyBEZWZpbmUgTUlTU0lORyBpZiBub3QgZGVmaW5lZCBzbyBmYXIgYW5kIHRlc3QgaWYg aXQgc3VwcG9ydHMgLS1ydW4uCisrIyBJZiBpdCBkb2VzLCBzZXQgYW1fbWlzc2luZ19ydW4gdG8g dXNlIGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCisrQUNfREVGVU4oW0FNX01JU1NJTkdfSEFT X1JVTl0sCisrW0FDX1JFUVVJUkUoW0FNX0FVWF9ESVJfRVhQQU5EXSlkbmwKKytBQ19SRVFVSVJF X0FVWF9GSUxFKFttaXNzaW5nXSlkbmwKKytpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9IHhz ZXQ7IHRoZW4KKysgIGNhc2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBN SVNTSU5HPSJcJHtTSEVMTH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7CisrICAqKQorKyAg ICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIgOzsKKysgIGVzYWMKKytm aQorKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAorK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVu IHRydWUiOyB0aGVuCisrICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorK2Vsc2UK KysgIGFtX21pc3NpbmdfcnVuPQorKyAgQUNfTVNHX1dBUk4oW2BtaXNzaW5nJyBzY3JpcHQgaXMg dG9vIG9sZCBvciBtaXNzaW5nXSkKKytmaQorK10pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDMs IDIwMDQsIDIwMDUsIDIwMDYgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u CisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19NS0RJUl9QCisrIyAtLS0tLS0tLS0t LS0tLS0KKysjIENoZWNrIGZvciBgbWtkaXIgLXAnLgorK0FDX0RFRlVOKFtBTV9QUk9HX01LRElS X1BdLAorK1tBQ19QUkVSRVEoWzIuNjBdKWRubAorK0FDX1JFUVVJUkUoW0FDX1BST0dfTUtESVJf UF0pZG5sCisrZG5sIEF1dG9tYWtlIDEuOCB0byAxLjkuNiB1c2VkIHRvIGRlZmluZSBta2Rpcl9w LiAgV2Ugbm93IHVzZSBNS0RJUl9QLAorK2RubCB3aGlsZSBrZWVwaW5nIGEgZGVmaW5pdGlvbiBv ZiBta2Rpcl9wIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK2RubCBATUtESVJfUEAgaXMg bWFnaWM6IEFDX09VVFBVVCBhZGp1c3RzIGl0cyB2YWx1ZSBmb3IgZWFjaCBNYWtlZmlsZS4KKytk bmwgSG93ZXZlciB3ZSBjYW5ub3QgZGVmaW5lIG1rZGlyX3AgYXMgJChNS0RJUl9QKSBmb3IgdGhl IHNha2Ugb2YKKytkbmwgTWFrZWZpbGUuaW5zIHRoYXQgZG8gbm90IGRlZmluZSBNS0RJUl9QLCBz byB3ZSBkbyBvdXIgb3duCisrZG5sIGFkanVzdG1lbnQgdXNpbmcgdG9wX2J1aWxkZGlyICh3aGlj aCBpcyBkZWZpbmVkIG1vcmUgb2Z0ZW4gdGhhbgorK2RubCBNS0RJUl9QKS4KKytBQ19TVUJTVChb bWtkaXJfcF0sIFsiJE1LRElSX1AiXSlkbmwKKytjYXNlICRta2Rpcl9wIGluCisrICBbW1xcLyRd XSogfCA/OltbXFwvXV0qKSA7OworKyAgKi8qKSBta2Rpcl9wPSJcJCh0b3BfYnVpbGRkaXIpLyRt a2Rpcl9wIiA7OworK2VzYWMKKytdKQorKworKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9u IGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysKKysjIENv cHlyaWdodCAoQykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNSwgMjAwOCAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRv IGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0 aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwg NAorKworKyMgX0FNX01BTkdMRV9PUFRJT04oTkFNRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKKytbW19BTV9PUFRJT05fXW00X2Jw YXRzdWJzdCgkMSwgW1teYS16QS1aMC05X11dLCBbX10pXSkKKysKKysjIF9BTV9TRVRfT1BUSU9O KE5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNldCBvcHRpb24g TkFNRS4gIFByZXNlbnRseSB0aGF0IG9ubHkgbWVhbnMgZGVmaW5pbmcgYSBmbGFnIGZvciB0aGlz IG9wdGlvbi4KKytBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAorK1ttNF9kZWZpbmUoX0FNX01B TkdMRV9PUFRJT04oWyQxXSksIDEpXSkKKysKKysjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgT1BUSU9OUyBpcyBhIHNw YWNlLXNlcGFyYXRlZCBsaXN0IG9mIEF1dG9tYWtlIG9wdGlvbnMuCisrQUNfREVGVU4oW19BTV9T RVRfT1BUSU9OU10sCisrW200X2ZvcmVhY2hfdyhbX0FNX09wdGlvbl0sIFskMV0sIFtfQU1fU0VU X09QVElPTihfQU1fT3B0aW9uKV0pXSkKKysKKysjIF9BTV9JRl9PUFRJT04oT1BUSU9OLCBJRi1T RVQsIFtJRi1OT1QtU0VUXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYtU0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQg b3RoZXJ3aXNlLgorK0FDX0RFRlVOKFtfQU1fSUZfT1BUSU9OXSwKKytbbTRfaWZzZXQoX0FNX01B TkdMRV9PUFRJT04oWyQxXSksIFskMl0sIFskM10pXSkKKysKKysjIENoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGF0IHRoZSBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLiAgICAtKi0gQXV0b2NvbmYgLSot CisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUs IDIwMDgKKysjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmls ZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMg d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMg cHJlc2VydmVkLgorKworKyMgc2VyaWFsIDUKKysKKysjIEFNX1NBTklUWV9DSEVDSworKyMgLS0t LS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0FNX1NBTklUWV9DSEVDS10sCisrW0FDX01TR19DSEVD S0lORyhbd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lXSkKKysjIEp1c3QgaW4gY2Fz ZQorK3NsZWVwIDEKKytlY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0LmZpbGUKKysjIFJlamVjdCB1 bnNhZmUgY2hhcmFjdGVycyBpbiAkc3JjZGlyIG9yIHRoZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVj dG9yeQorKyMgbmFtZS4gIEFjY2VwdCBzcGFjZSBhbmQgdGFiIG9ubHkgaW4gdGhlIGxhdHRlci4K KythbV9sZj0nCisrJworK2Nhc2UgYHB3ZGAgaW4KKysgICpbW1xcXCJcI1wkXCZcJ1xgJGFtX2xm XV0qKQorKyAgICBBQ19NU0dfRVJST1IoW3Vuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9y eSBuYW1lXSk7OworK2VzYWMKKytjYXNlICRzcmNkaXIgaW4KKysgICpbW1xcXCJcI1wkXCZcJ1xg JGFtX2xmXCBcCV1dKikKKysgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUgc3JjZGlyIHZhbHVlOiBg JHNyY2RpciddKTs7CisrZXNhYworKworKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBk b24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKKysjIGFyZ3VtZW50cy4gIE11c3QgdHJ5 IC1MIGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEKKysjIHN5bWxpbms7IHNv bWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtz CisrIyAoZWcgRnJlZUJTRCByZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNv bnRhaW5pbmcKKysjIGRpcmVjdG9yeSkuCisraWYgKAorKyAgIHNldCBYIGBscyAtTHQgIiRzcmNk aXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKysgICBpZiB0ZXN0ICIk WypdIiA9ICJYIjsgdGhlbgorKyAgICAgICMgLUwgZGlkbid0IHdvcmsuCisrICAgICAgc2V0IFgg YGxzIC10ICIkc3JjZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZWAKKysgICBmaQorKyAgIHJt IC1mIGNvbmZ0ZXN0LmZpbGUKKysgICBpZiB0ZXN0ICIkWypdIiAhPSAiWCAkc3JjZGlyL2NvbmZp Z3VyZSBjb25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJFsqXSIgIT0gIlggY29uZnRl c3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKysKKysgICAgICAjIElmIG5laXRoZXIg bWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCisrICAg ICAgIyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMgYmFzaCBhbmQgaXQgaW5oZXJp dHMgYQorKyAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhp cyBoYXMgYWN0dWFsbHkKKysgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBu b3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCisrICAgICAgQUNfTVNHX0VSUk9SKFtscyAtdCBhcHBl YXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCisrYWxpYXMgaW4g eW91ciBlbnZpcm9ubWVudF0pCisrICAgZmkKKysKKysgICB0ZXN0ICIkWzJdIiA9IGNvbmZ0ZXN0 LmZpbGUKKysgICApCisrdGhlbgorKyAgICMgT2suCisrICAgOgorK2Vsc2UKKysgICBBQ19NU0df RVJST1IoW25ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVz IQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrXSkKKytmaQorK0FDX01TR19SRVNVTFQoeWVzKV0p CisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgQU1fUFJPR19J TlNUQUxMX1NUUklQCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIE9uZSBpc3N1ZSB3aXRo IHZlbmRvciBgaW5zdGFsbCcgKGV2ZW4gR05VKSBpcyB0aGF0IHlvdSBjYW4ndAorKyMgc3BlY2lm eSB0aGUgcHJvZ3JhbSB1c2VkIHRvIHN0cmlwIGJpbmFyaWVzLiAgVGhpcyBpcyBlc3BlY2lhbGx5 CisrIyBhbm5veWluZyBpbiBjcm9zcy1jb21waWxpbmcgZW52aXJvbm1lbnRzLCB3aGVyZSB0aGUg YnVpbGQncyBzdHJpcAorKyMgaXMgdW5saWtlbHkgdG8gaGFuZGxlIHRoZSBob3N0J3MgYmluYXJp ZXMuCisrIyBGb3J0dW5hdGVseSBpbnN0YWxsLXNoIHdpbGwgaG9ub3IgYSBTVFJJUFBST0cgdmFy aWFibGUsIHNvIHdlCisrIyBhbHdheXMgdXNlIGluc3RhbGwtc2ggaW4gYG1ha2UgaW5zdGFsbC1z dHJpcCcsIGFuZCBpbml0aWFsaXplCisrIyBTVFJJUFBST0cgd2l0aCB0aGUgdmFsdWUgb2YgdGhl IFNUUklQIHZhcmlhYmxlIChzZXQgYnkgdGhlIHVzZXIpLgorK0FDX0RFRlVOKFtBTV9QUk9HX0lO U1RBTExfU1RSSVBdLAorK1tBQ19SRVFVSVJFKFtBTV9QUk9HX0lOU1RBTExfU0hdKWRubAorKyMg SW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVkIHVzaW5nIGBzdHJpcCcgd2hl biB0aGUgdXNlcgorKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAn IG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKKysjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0 aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisrIyB3aWxsIGhvbm9yIHRoZSBg U1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMgcHJvZ3JhbS4KKytk bmwgRG9uJ3QgdGVzdCBmb3IgJGNyb3NzX2NvbXBpbGluZyA9IHllcywgYmVjYXVzZSBpdCBtaWdo dCBiZSBgbWF5YmUnLgorK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCisr ICBBQ19DSEVDS19UT09MKFtTVFJJUF0sIFtzdHJpcF0sIDopCisrZmkKKytJTlNUQUxMX1NUUklQ X1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgorK0FDX1NVQlNUKFtJTlNUQUxMX1NUUklQ X1BST0dSQU1dKV0pCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgc2Vy aWFsIDIKKysKKysjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQorKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBQcmV2ZW50IEF1dG9tYWtlIGZyb20gb3V0cHV0dGluZyBWQVJJ QUJMRSA9IEBWQVJJQUJMRUAgaW4gTWFrZWZpbGUuaW4uCisrIyBUaGlzIG1hY3JvIGlzIHRyYWNl ZCBieSBBdXRvbWFrZS4KKytBQ19ERUZVTihbX0FNX1NVQlNUX05PVE1BS0VdKQorKworKyMgQU1f U1VCU1RfTk9UTUFLRShWQVJJQUJMRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyMgUHVibGljIHNpc3RlciBvZiBfQU1fU1VCU1RfTk9UTUFLRS4KKytBQ19ERUZVTihbQU1fU1VC U1RfTk9UTUFLRV0sIFtfQU1fU1VCU1RfTk9UTUFLRSgkQCldKQorKworKyMgQ2hlY2sgaG93IHRv IGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29u ZiAtKi0KKysKKysjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrIworKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBzZXJpYWwgMgor KworKyMgX0FNX1BST0dfVEFSKEZPUk1BVCkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBD aGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbCBpbiBmb3JtYXQgRk9STUFULgorKyMgRk9STUFU IHNob3VsZCBiZSBvbmUgb2YgYHY3JywgYHVzdGFyJywgb3IgYHBheCcuCisrIworKyMgU3Vic3Rp dHV0ZSBhIHZhcmlhYmxlICQoYW1fX3RhcikgdGhhdCBpcyBhIGNvbW1hbmQKKysjIHdyaXRpbmcg dG8gc3Rkb3V0IGEgRk9STUFULXRhcmJhbGwgY29udGFpbmluZyB0aGUgZGlyZWN0b3J5CisrIyAk dGFyZGlyLgorKyMgICAgIHRhcmRpcj1kaXJlY3RvcnkgJiYgJChhbV9fdGFyKSA+IHJlc3VsdC50 YXIKKysjCisrIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFj dCBzdWNoCisrIyBhIHRhcmJhbGwgcmVhZCBmcm9tIHN0ZGluLgorKyMgICAgICQoYW1fX3VudGFy KSA8IHJlc3VsdC50YXIKKytBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKKytbIyBBbHdheXMgZGVm aW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorK0FNX01JU1NJTkdfUFJPRyhb QU1UQVJdLCBbdGFyXSkKKyttNF9pZihbJDFdLCBbdjddLAorKyAgICAgW2FtX190YXI9JyR7QU1U QVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FNVEFSfSB4ZiAtJ10sCisrICAg ICBbbTRfY2FzZShbJDFdLCBbdXN0YXJdLCwgW3BheF0sLAorKyAgICAgICAgICAgICAgW200X2Zh dGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCisrQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gY3Jl YXRlIGEgJDEgdGFyIGFyY2hpdmVdKQorKyMgTG9vcCBvdmVyIGFsbCBrbm93biBtZXRob2RzIHRv IGNyZWF0ZSBhIHRhciBhcmNoaXZlIHVudGlsIG9uZSB3b3Jrcy4KKytfYW1fdG9vbHM9J2dudXRh ciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBub25lJworK19hbV90 b29scz0ke2FtX2N2X3Byb2dfdGFyXyQxLSRfYW1fdG9vbHN9CisrIyBEbyBub3QgZm9sZCB0aGUg YWJvdmUgdHdvIGxpbmUgaW50byBvbmUsIGJlY2F1c2UgVHJ1NjQgc2ggYW5kCisrIyBTb2xhcmlz IHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgorK2ZvciBfYW1fdG9v bCBpbiAkX2FtX3Rvb2xzCisrZG8KKysgIGNhc2UgJF9hbV90b29sIGluCisrICBnbnV0YXIpCisr ICAgIGZvciBfYW1fdGFyIGluIHRhciBnbnV0YXIgZ3RhcjsKKysgICAgZG8KKysgICAgICBBTV9S VU5fTE9HKFskX2FtX3RhciAtLXZlcnNpb25dKSAmJiBicmVhaworKyAgICBkb25lCisrICAgIGFt X190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFd KSAtY2hmIC0gIiciJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0iJF9hbV90YXIgLS1mb3JtYXQ9 bTRfaWYoWyQxXSwgW3BheF0sIFtwb3NpeF0sIFskMV0pIC1jaGYgLSAiJyIkdGFyZGlyIicKKysg ICAgYW1fX3VudGFyPSIkX2FtX3RhciAteGYgLSIKKysgICAgOzsKKysgIHBsYWludGFyKQorKyAg ICAjIE11c3Qgc2tpcCBHTlUgdGFyOiBpZiBpdCBkb2VzIG5vdCBzdXBwb3J0IC0tZm9ybWF0PSBp dCBkb2Vzbid0IGNyZWF0ZQorKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVyLgorKyAgICAodGFy IC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxICYmIGNvbnRpbnVlCisrICAgIGFtX190YXI9J3Rh ciBjaGYgLSAiJCR0YXJkaXIiJworKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicK KysgICAgYW1fX3VudGFyPSd0YXIgeGYgLScKKysgICAgOzsKKysgIHBheCkKKysgICAgYW1fX3Rh cj0ncGF4IC1MIC14ICQxIC13ICIkJHRhcmRpciInCisrICAgIGFtX190YXJfPSdwYXggLUwgLXgg JDEgLXcgIiR0YXJkaXIiJworKyAgICBhbV9fdW50YXI9J3BheCAtcicKKysgICAgOzsKKysgIGNw aW8pCisrICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQx IC1MJworKyAgICBhbV9fdGFyXz0nZmluZCAiJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAk MSAtTCcKKysgICAgYW1fX3VudGFyPSdjcGlvIC1pIC1IICQxIC1kJworKyAgICA7OworKyAgbm9u ZSkKKysgICAgYW1fX3Rhcj1mYWxzZQorKyAgICBhbV9fdGFyXz1mYWxzZQorKyAgICBhbV9fdW50 YXI9ZmFsc2UKKysgICAgOzsKKysgIGVzYWMKKysKKysgICMgSWYgdGhlIHZhbHVlIHdhcyBjYWNo ZWQsIHN0b3Agbm93LiAgV2UganVzdCB3YW50ZWQgdG8gaGF2ZSBhbV9fdGFyCisrICAjIGFuZCBh bV9fdW50YXIgc2V0LgorKyAgdGVzdCAtbiAiJHthbV9jdl9wcm9nX3Rhcl8kMX0iICYmIGJyZWFr CisrCisrICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNv bW1hbmQgd29ya3MKKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKysgIG1rZGlyIGNvbmZ0ZXN0LmRp cgorKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQorKyAgQU1fUlVOX0xPRyhbdGFy ZGlyPWNvbmZ0ZXN0LmRpciAmJiBldmFsICRhbV9fdGFyXyA+Y29uZnRlc3QudGFyXSkKKysgIHJt IC1yZiBjb25mdGVzdC5kaXIKKysgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFyOyB0aGVuCisrICAg IEFNX1JVTl9MT0coWyRhbV9fdW50YXIgPGNvbmZ0ZXN0LnRhcl0pCisrICAgIGdyZXAgR3JlcE1l IGNvbmZ0ZXN0LmRpci9maWxlID4vZGV2L251bGwgMj4mMSAmJiBicmVhaworKyAgZmkKKytkb25l Cisrcm0gLXJmIGNvbmZ0ZXN0LmRpcgorKworK0FDX0NBQ0hFX1ZBTChbYW1fY3ZfcHJvZ190YXJf JDFdLCBbYW1fY3ZfcHJvZ190YXJfJDE9JF9hbV90b29sXSkKKytBQ19NU0dfUkVTVUxUKFskYW1f Y3ZfcHJvZ190YXJfJDFdKV0pCisrQUNfU1VCU1QoW2FtX190YXJdKQorK0FDX1NVQlNUKFthbV9f dW50YXJdKQorK10pICMgX0FNX1BST0dfVEFSCisrCisrbTRfaW5jbHVkZShbY29uZmlnL2F4X2Jv b3N0Lm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfbXlzcWwubTRdKQorK200X2luY2x1ZGUo W2NvbmZpZy9heF9vcmFjbGVfb2NpLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvYXhfcG9zdGdy ZXNxbC5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2NwcHVuaXQubTRdKQorK200X2luY2x1ZGUo W2NvbmZpZy9saWJ0b29sLm00XSkKKyttNF9pbmNsdWRlKFtjb25maWcvbHRvcHRpb25zLm00XSkK KyttNF9pbmNsdWRlKFtjb25maWcvbHRzdWdhci5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0 dmVyc2lvbi5tNF0pCisrbTRfaW5jbHVkZShbY29uZmlnL2x0fm9ic29sZXRlLm00XSkKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9BVVRIT1JTIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JT CistLS0gc29jaS0zLjAuMF80LXBhY2svQVVUSE9SUwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9BVVRIT1JTCTIwMDktMDQtMTYgMTk6 Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkgQEAKKysKKytEYXZpZCBDb3VydG5l eSwgRGV2ZWxvcGVyLCBkYWNvdXJ0bmV5IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK01hdGV1 c3ogTG9za290LCBEZXZlbG9wZXIsIG1sb3Nrb3QgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Cisr TWFjaWVqIFNvYmN6YWssIEFkbWluIFByb2plY3QgTWFuYWdlciwgbXNvYmN6YWsgYXQgdXNlcnMu c291cmNlZm9yZ2UubmV0CisrUGF3ZWwgQWxla3NhbmRlciBGZWRvcnluc2tpLCBEZXZlbG9wZXIs IHBmZWRvciBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKKytSYWZhbCBCb2Jyb3dza2ksIERldmVs b3BlciwgcmJvYnJvIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK0plYW4tTWFyYywgRGV2ZWxv cGVyLCBzaWRqdGFsIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAorK1N0ZXBoZW4gSHV0dG9uLCBE ZXZlbG9wZXIsIHN0ZXBoZW5odXR0b24gYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0CisrCitkaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVw MzAwL2J1aWxkL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZp bGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowOC4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsNyBAQAorKyMjIGJ1aWxkIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRl ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgorKworK1NVQkRJUlMgPSB1bml4IG1zdmM4MAorKworZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWls ZC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCitA QCAtMCwwICsxLDYxNiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0 ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVS UE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAk KGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNL QUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0g JChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9O Ky59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxs X3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisr aW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAk KElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisr Tk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgor K05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFM TCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAor K0RJU1RfQ09NTU9OID0gUkVBRE1FICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gXAorKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGJ1 aWxkCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9N NCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09O RklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JF Q1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vy c2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1y ZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlc CisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1f UkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisr CSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBD VEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1Rf U1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAor KyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBc CisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14v XSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hp bGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNl ZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRo ZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysg ICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAor KyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIk JHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7 IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9y ZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBc CisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysg ICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1l ICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK0FDTE9D QUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVU T01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NU X01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09T VF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElC QAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIg PSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1f TElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytC T09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBA Q0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9 IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklU X0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJT QAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytD WFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9 IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytE RVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVN UEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0g QEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0g QEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRB ID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAor K0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JB TSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZM QUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBM SUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExU TElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisr TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJ QkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJT QAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQg PSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisr T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9P TEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJT SU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAK KytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVT UUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdS RVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04g PSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0Ug PSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytT SEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK KythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK KythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisr YmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29z QAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJA CisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2Rp ZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9z dEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisr aG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxk aXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBp bmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9v a0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyts dF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGly X3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJA CisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1f dHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAor K3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisr c3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2Fs aWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVm aXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9z cmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IHVuaXggbXN2 YzgwCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBj YXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAg ICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJl ZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxz ZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBidWls ZC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVU T01BS0UpIC0tZ251IGJ1aWxkL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2Vm aWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMK KysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRv cF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisr CSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2Nv bmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVT X0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19j b25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVw cykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29s OgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xp YnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRl cGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQg Z29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2Yg YG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBp ZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0 YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2Vu ZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUg ZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVf VEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7 IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQk ZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhl biBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7 IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFH UzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkg ICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWlu dGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9 JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAor KwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJl dj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0 IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisr CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBl dmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vy c2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChM SVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRB R1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAor KwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9u PS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwK KysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdT IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3Qg LXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAt biAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1n dCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwK KysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFH UworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3Qg LXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKwor K0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkg ICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAg IHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK KysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisr CSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNy Y2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9 JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRp cikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQo ZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAg bmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9w X2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3Bf ZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIp IjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIi IFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rp c3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2Rl X2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2 ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZl CisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxs LWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0 YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxs LWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUK KytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dS QU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0 ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1T VFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKwor K2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENP TkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVz dCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMp IiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNs ZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50 YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWly ZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFu LXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9z dGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1m IE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0 Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1s OiBodG1sLXJlY3Vyc2l2ZQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUK KysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5z dGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVj LWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysK KytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGlu c3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6 IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hl Y2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUK KysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1 cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVh bi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBw cy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5Q SE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RB R1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlz dGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0 ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5z dGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5z dGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRt bCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3Rh bGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxs LXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGlu c3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVy LWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3Rs eWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwK KysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVy c2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVz LgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJl IGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWls ZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAv ZGxsL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9N YWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6 Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBACisrIyMgYnVpbGQvbXN2Yzgw L2RsbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNU ID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVz cWwudmNwcm9qIFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9q IGNsZWFuLmJhdCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNw cm9qIG9kYmMudmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29y ZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFj bGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190 ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfZGxsLnZzcHJvcHMKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvZGxsL01h a2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsx LDQyMCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9t IE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdodCAoQykg MTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysj IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2Fy ZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1p c3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1p dHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysK KytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIp L0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVj ZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRI X1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAt bSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9z aF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExf REFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lO U1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9V TklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKyti dWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09N TU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQvbXN2YzgwL2RsbAor K0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9k ZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9v Y2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xp YnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2 ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2Fs X200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisr bWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3Bf YnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19D TEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytESVNURklM RVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9E SVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAK KytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVU T01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1Rf Q0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytC T09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NU UkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9M SUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9O X0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElC ID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09T VF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9P U1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1Rf U0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBC T09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAK KytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVX T1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklB TElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytD Q0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAK KytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFH U0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBA Q1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hY ID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAK KytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMg PSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RV TVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05A CisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhU QAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisr SU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFM TF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExf U1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERG TEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisr TElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRM SUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0g QE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9 IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9 IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBO TUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBA T0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdT ID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJ X0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytP VE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdF QAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFN RSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisr UEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBA UEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BF UkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdT ID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJ UlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JF U1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisr UlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBT RVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lf SEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NP TU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWls ZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190 b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNf dG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3Rf Q1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBh bV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19x dW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBh bV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9h bGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29z ID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIg PSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFy b290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHln ZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2 aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAor K2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBA aG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVu ZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisr aW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9v ayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhl Y2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxz dGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rp cl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRp ciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1l ID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9 IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVk c3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJA CisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRv cF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3Jj ZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQo dG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrRVhUUkFf RElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0 Z3Jlc3FsLnZjcHJvaiBcCisrCXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZj cHJvaiBjbGVhbi5iYXQgXAorKwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNz LnZjcHJvaiBvZGJjLnZjcHJvaiBcCisrCXBvc3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9q IGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCisrCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2og b3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfZGxsLnNsbiBcCisrCWVtcHR5X3Rlc3QudmNwcm9qIG9k YmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2NpX2RsbC52c3Byb3BzCisrCisr YWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChz cmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2Nv bmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2Nv bmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJ ICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsg fTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8g JyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9kbGwv TWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9N QUtFKSAtLWdudSBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmls ZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7 IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05G SUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6 ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9j YWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVh bi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYg LmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFH UzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIk KHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJz dHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBp biAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNk aXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9i dWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChN S0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58 JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwll c2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYg JCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7 IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIv JCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQo ZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxl IiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAg Zmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAk KHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxl IiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAg Zmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0 IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisr CSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwg ZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazog Y2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5z dGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBp bnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06 IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1z dHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RB TExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9T VFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChT VFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSck KFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5l cmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5f RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNy Y2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYg JChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj OgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1 c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0 b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8 fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2Ns ZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytk aXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06 IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisrCisrZHZpOiBkdmktYW0KKysKKytkdmktYW06 CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwtYW06CisrCisraW5mbzogaW5mby1hbQorKwor K2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxs LWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytp bnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytp bnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytp bnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxs LXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1h bToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0 Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3Rs eWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1h bQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFsbC1hbSBp bnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFu IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2Vu ZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2aSBcCisrCWR2aS1hbSBodG1sIGh0bWwt YW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisrCWluc3RhbGwtZGF0YSBpbnN0 YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gXAorKwlpbnN0YWxsLWV4ZWMg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxs LWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFs bC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgXAorKwlpbnN0 YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1haW50YWluZXItY2xlYW4gXAor KwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJp YyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSB1bmluc3RhbGwg dW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisr Lk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIv TWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUu YW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvbGliL01ha2VmaWxlLmFtCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNy4wMDAwMDAw MDAgKzAyMDAKK0BAIC0wLDAgKzEsMTEgQEAKKysjIyBidWlsZC9tc3ZjODAvbGliIHN1Yi1kaXJl Y3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrCisrTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK0VYVFJBX0RJU1QgPSBidWlsZC5iYXQg ZW1wdHkudmNwcm9qIG1ha2V0ZXN0Lm1hayBvZGJjX3Rlc3RfcG9zdGdyZXNxbC52Y3Byb2ogXAor Kwlwb3N0Z3Jlc3FsX3Rlc3QudmNwcm9qIHNxbGl0ZTNfdGVzdC52Y3Byb2ogY2xlYW4uYmF0IFwK KysJZmlyZWJpcmRfdGVzdC52Y3Byb2ogb2RiY190ZXN0X2FjY2Vzcy52Y3Byb2ogb2RiYy52Y3By b2ogXAorKwlwb3N0Z3Jlc3FsLnZjcHJvaiBzcWxpdGUzLnZjcHJvaiBjb3JlLnZjcHJvaiBmaXJl YmlyZC52Y3Byb2ogXAorKwlvZGJjX3Rlc3RfbXNzcWwudmNwcm9qIG9yYWNsZV90ZXN0LnZjcHJv aiBzb2NpX2xpYi5zbG4gXAorKwllbXB0eV90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfbXlzcWwudmNw cm9qIG9yYWNsZS52Y3Byb2ogc29jaV9saWIudnNwcm9wcworZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2J1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9t c3ZjODAvbGliL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4JMjAx MC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNDIwIEBACisrIyBN YWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0u CisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwg MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAor KyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsg d2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAK KytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisr cGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChs aWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdF QAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIg JiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3Rh bGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQo aW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5z Zm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQ UkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoK KytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQg PSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9N YWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAvbGliCisrQUNMT0NBTF9NNCA9 ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215 c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChD T05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJz ID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK0RJU1RGSUxFUyA9ICQoRElTVF9D T01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrQUNMT0NB TCA9IEBBQ0xPQ0FMQAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0g QEFVVE9DT05GQAorK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRP TUFLRUAKKytBV0sgPSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9P U1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNU RU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBA Qk9PU1RfSU9TVFJFQU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1Rf TVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NU X01QSV9QWVRIT05fTElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJA CisrQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9M SUJACisrQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JP T1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBD Q0RFUE1PREVACisrQ0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0g QENQUEZMQUdTQAorK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRf Q09ORklHID0gQENQUFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNA CisrQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NY WENQUCA9IEBDWFhDUFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0g QENYWEZMQUdTQAorK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RF UERJUiA9IEBERVBESVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1Q QklOQAorK0VDSE9fQyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBA RUNIT19UQAorK0VHUkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBA RkdSRVBACisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJ T05ACisrR1JFUCA9IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEg PSBASU5TVEFMTF9EQVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisr SU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFN ID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxB R1NACisrTElCT0JKUyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJ QlRPT0xACisrTElQTyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRM SUJPQkpTQAorK01BS0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytN WVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElC QAorK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNA CisrTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9 IEBOTUVESVRACisrT0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JB Q0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09D SV9DRkxBR1NACisrT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytP UkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09M QAorK09UT09MNjQgPSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9C VUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0Vf TkFNRUAKKytQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5B TUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJ T05ACisrUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAor K1BHX0NPTkZJRyA9IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNR TF9DRkxBR1NACisrUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JF U1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9 IEBQT1NUR1JFU1FMX1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9 IEBSUE1fUkVMRUFTRUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NI RUxMID0gQFNIRUxMQAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklF REAKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURACisrU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFREAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExP QURfQ09NTUFOREAKKytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19i dWlsZGRpckAKKythYnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9 IEBhYnNfdG9wX2J1aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAor K2FjX2N0X0NDID0gQGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3Rf RFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAor K2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19x dW90ZUAKKythbV9fdGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKyti aW5kaXIgPSBAYmluZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxk X2FsaWFzQAorK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NA CisrYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAK KytkYXRhZGlyID0gQGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlm Zl9vayA9IEBkaWZmX29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5 Z2VuX29rQAorK2R2aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhl Y19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0 QAorK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKyto b3N0X29zID0gQGhvc3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRp ciA9IEBodG1sZGlyQAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGlu Zm9kaXJACisraW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29r QAorK2xpYmRpciA9IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2Fs ZWRpciA9IEBsb2NhbGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0 X0VDSE8gPSBAbHRfRUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJf cEAKKytvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAK KytwcmVmaXggPSBAcHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisr c2VkX29rID0gQHNlZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytz cmNkaXIgPSBAc3JjZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxp YXMgPSBAdGFyZ2V0X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZp eEAKKyt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3Ny Y2RpckAKKytBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQor K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0gYnVpbGQu YmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9q IFwKKysJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJh dCBcCisrCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMu dmNwcm9qIFwKKysJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2og ZmlyZWJpcmQudmNwcm9qIFwKKysJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52 Y3Byb2ogc29jaV9saWIuc2xuIFwKKysJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3Fs LnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJvcHMKKysKKythbGw6IGFsbC1hbQor KworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMp CisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMp JyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsg aWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAg IGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3Ny Y2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSc7IFwK KysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1 aWxkL21zdmM4MC9saWIvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6 ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlA Y2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAq KSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAg JChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQ RU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZp Z3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKworK21vc3RseWNsZWFuLWxpYnRvb2w6Cisr CS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicwor K3RhZ3M6IFRBR1MKKytUQUdTOgorKworK2N0YWdzOiBDVEFHUworK0NUQUdTOgorKworKworK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0n JChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZp bGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8 fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAg Y3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVs c2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJ ICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2Fs bC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0YWxsLWFtCisraW5z dGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1h bQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisr CisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0cmlwOgorKwkkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0p IiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAor KwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGlu c3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlz dGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJt IC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVz dCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVB Tl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJU aGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8g Iml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVp bGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJ TlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFu LWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlz dGNsZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlz dGNsZWFuLWdlbmVyaWMKKysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBo dG1sLWFtCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysK KytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisr aW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDog aW5zdGFsbC1odG1sLWFtCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLWFtCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgor KworK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwtcGRmLWFtOgorKwor K2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3Rh bGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisr CS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWlu dGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysK Kyttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s CisrCisrcGRmOiBwZGYtYW0KKysKKytwZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06 CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAK KysKKysuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJp YyBjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVh bi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8t YW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0 YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0 YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5 Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0K KysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBt YWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBs aW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtIHNvY2kt My4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDggQEAKKysj IyBidWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtl ZmlsZS5jb21tb24KKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisr RVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCisrCisrU1VCRElSUyA9IGRsbCBs aWIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4g c29jaS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZp bGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjE3 IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFr ZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0 LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAw MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lv biB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVk IGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BT RVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBB Q0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGli ZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIp L0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQ QVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0 NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1ND UklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRB KQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFM TCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5T VEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxk X3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04g PSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBidWlsZC9tc3ZjODAKKytBQ0xPQ0FM X000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQo dG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rpcikv Y29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBz KSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFs bGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGly KS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBB VEhfRklMRVMgPQorK1NPVVJDRVMgPQorK0RJU1RfU09VUkNFUyA9CisrUkVDVVJTSVZFX1RBUkdF VFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRt bC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVj dXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisr CXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVh bi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFS R0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKysJZGlz dGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChT VUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRF WElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2Rg OyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0 PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsg XAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIk JGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9m aXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAg aWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQk ZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1g ZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBc CisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7 IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAg ICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAg ICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZp OyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisr ICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3Qi YDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrQUNMT0NBTCA9IEBBQ0xPQ0FM QAorK0FNVEFSID0gQEFNVEFSQAorK0FSID0gQEFSQAorK0FVVE9DT05GID0gQEFVVE9DT05GQAor K0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKKytBVVRPTUFLRSA9IEBBVVRPTUFLRUAKKytBV0sg PSBAQVdLQAorK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACisrQk9PU1RfREFURV9USU1F X0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAorK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJP T1NUX0ZJTEVTWVNURU1fTElCQAorK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJF QU1TX0xJQkAKKytCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACisrQk9PU1RfTVBJX0xJQiA9IEBC T09TVF9NUElfTElCQAorK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05f TElCQAorK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQkAKKytCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACisrQk9PU1RfUkVH RVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKKytCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKKytCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdO QUxTX0xJQkAKKytCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACisrQk9PU1Rf VEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAorK0JPT1NUX1ZFUlNJT04g PSBAQk9PU1RfVkVSU0lPTkAKKytCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NF UklBTElaQVRJT05fTElCQAorK0NDID0gQENDQAorK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACisr Q0ZMQUdTID0gQENGTEFHU0AKKytDUFAgPSBAQ1BQQAorK0NQUEZMQUdTID0gQENQUEZMQUdTQAor K0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAorK0NQUFVOSVRfQ09ORklHID0gQENQ UFVOSVRfQ09ORklHQAorK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACisrQ1BQVU5JVF9W RVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKKytDWFggPSBAQ1hYQAorK0NYWENQUCA9IEBDWFhD UFBACisrQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAorK0NYWEZMQUdTID0gQENYWEZMQUdTQAor K0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACisrREVGUyA9IEBERUZTQAorK0RFUERJUiA9IEBERVBE SVJACisrRFNZTVVUSUwgPSBARFNZTVVUSUxACisrRFVNUEJJTiA9IEBEVU1QQklOQAorK0VDSE9f QyA9IEBFQ0hPX0NACisrRUNIT19OID0gQEVDSE9fTkAKKytFQ0hPX1QgPSBARUNIT19UQAorK0VH UkVQID0gQEVHUkVQQAorK0VYRUVYVCA9IEBFWEVFWFRACisrRkdSRVAgPSBARkdSRVBACisrR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACisrR1JFUCA9 IEBHUkVQQAorK0lOU1RBTEwgPSBASU5TVEFMTEAKKytJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9E QVRBQAorK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACisrSU5TVEFMTF9TQ1JJ UFQgPSBASU5TVEFMTF9TQ1JJUFRACisrSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExf U1RSSVBfUFJPR1JBTUAKKytMRCA9IEBMREAKKytMREZMQUdTID0gQExERkxBR1NACisrTElCT0JK UyA9IEBMSUJPQkpTQAorK0xJQlMgPSBATElCU0AKKytMSUJUT09MID0gQExJQlRPT0xACisrTElQ TyA9IEBMSVBPQAorK0xOX1MgPSBATE5fU0AKKytMVExJQk9CSlMgPSBATFRMSUJPQkpTQAorK01B S0VJTkZPID0gQE1BS0VJTkZPQAorK01LRElSX1AgPSBATUtESVJfUEAKKytNWVNRTF9DRkxBR1Mg PSBATVlTUUxfQ0ZMQUdTQAorK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAorK01ZU1FMX0RJ UlMgPSBATVlTUUxfRElSU0AKKytNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACisrTVlTUUxfVkVS U0lPTiA9IEBNWVNRTF9WRVJTSU9OQAorK05NID0gQE5NQAorK05NRURJVCA9IEBOTUVESVRACisr T0JKRFVNUCA9IEBPQkpEVU1QQAorK09CSkVYVCA9IEBPQkpFWFRACisrT1JBQ0xFX0RJUlMgPSBA T1JBQ0xFX0RJUlNACisrT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACisr T1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKKytPUkFDTEVfT0NJX1ZF UlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAorK09UT09MID0gQE9UT09MQAorK09UT09MNjQg PSBAT1RPT0w2NEAKKytQQUNLQUdFID0gQFBBQ0tBR0VACisrUEFDS0FHRV9CVUdSRVBPUlQgPSBA UEFDS0FHRV9CVUdSRVBPUlRACisrUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKKytQQUNL QUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKKytQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FH RV9UQVJOQU1FQAorK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACisrUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACisrUEVSTCA9IEBQRVJMQAorK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACisrUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACisr UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKKytQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAorK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACisrUkFOTElCID0gQFJBTkxJQkAKKytSUE1fUkVMRUFTRSA9IEBSUE1fUkVMRUFT RUAKKytTRUQgPSBAU0VEQAorK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorK1NIRUxMID0gQFNIRUxM QAorK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKKytTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACisrU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF REAKKytTVFJJUCA9IEBTVFJJUEAKKytVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAK KytWRVJTSU9OID0gQFZFUlNJT05ACisrYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKKyth YnNfc3JjZGlyID0gQGFic19zcmNkaXJACisrYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1 aWxkZGlyQAorK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorK2FjX2N0X0NDID0g QGFjX2N0X0NDQAorK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACisrYWNfY3RfRFVNUEJJTiA9IEBh Y19jdF9EVU1QQklOQAorK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAorK2FtX19sZWFkaW5n X2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACisrYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKKythbV9f dGFyID0gQGFtX190YXJACisrYW1fX3VudGFyID0gQGFtX191bnRhckAKKytiaW5kaXIgPSBAYmlu ZGlyQAorK2J1aWxkID0gQGJ1aWxkQAorK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorK2J1 aWxkX2NwdSA9IEBidWlsZF9jcHVACisrYnVpbGRfb3MgPSBAYnVpbGRfb3NACisrYnVpbGRfdmVu ZG9yID0gQGJ1aWxkX3ZlbmRvckAKKytidWlsZGRpciA9IEBidWlsZGRpckAKKytkYXRhZGlyID0g QGRhdGFkaXJACisrZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACisrZGlmZl9vayA9IEBkaWZm X29rQAorK2RvY2RpciA9IEBkb2NkaXJACisrZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAorK2R2 aWRpciA9IEBkdmlkaXJACisrZHZpcHNfb2sgPSBAZHZpcHNfb2tACisrZXhlY19wcmVmaXggPSBA ZXhlY19wcmVmaXhACisrZ3Nfb2sgPSBAZ3Nfb2tACisraG9zdCA9IEBob3N0QAorK2hvc3RfYWxp YXMgPSBAaG9zdF9hbGlhc0AKKytob3N0X2NwdSA9IEBob3N0X2NwdUAKKytob3N0X29zID0gQGhv c3Rfb3NACisraG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACisraHRtbGRpciA9IEBodG1sZGly QAorK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKKytpbmZvZGlyID0gQGluZm9kaXJACisraW5z dGFsbF9zaCA9IEBpbnN0YWxsX3NoQAorK2xhdGV4X29rID0gQGxhdGV4X29rQAorK2xpYmRpciA9 IEBsaWJkaXJACisrbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAorK2xvY2FsZWRpciA9IEBsb2Nh bGVkaXJACisrbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAorK2x0X0VDSE8gPSBAbHRf RUNIT0AKKyttYW5kaXIgPSBAbWFuZGlyQAorK21rZGlyX3AgPSBAbWtkaXJfcEAKKytvbGRpbmNs dWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACisrcGRmZGlyID0gQHBkZmRpckAKKytwcmVmaXggPSBA cHJlZml4QAorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFt ZUAKKytwc2RpciA9IEBwc2RpckAKKytzYmluZGlyID0gQHNiaW5kaXJACisrc2VkX29rID0gQHNl ZF9va0AKKytzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKKytzcmNkaXIgPSBAc3Jj ZGlyQAorK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKKyt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0 X2FsaWFzQAorK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKKyt0b3BfYnVp bGRkaXIgPSBAdG9wX2J1aWxkZGlyQAorK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKKytBTV9D UFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorK01BSU5UQUlORVJD TEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytFWFRSQV9ESVNUID0gUkVBRE1FLnR4dCBzb2NpLnZz cHJvcHMKKytTVUJESVJTID0gZGxsIGxpYgorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZG SVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3Ig ZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisr CSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAt ZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7 IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYg JChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL01h a2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZp bGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisr CSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAn IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIp LyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0 b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr CisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisr JChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2Nh bF9tNF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKwor K2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0 b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAor KyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1h a2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5z dGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0 IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2gg d2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBg bWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhl IGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBm YWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBj YXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsg XAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAk JHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRo ZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0 LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJ ICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBc CisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQk ZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209 J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRm IGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWls PXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNh c2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9 JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJ ZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAk JHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFy Z2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQk cmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQk dGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7 IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01B S0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlk b25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0g LiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3Mp OyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9u ZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisr CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisr CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwg XAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJl Y3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJ CSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlm ICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2Zp eD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVt cHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwK KysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIk JGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRv bmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJ ICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCok JHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1 ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQo RVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJ ICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlx dWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1 cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkk KFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisr CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVu aXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAk KENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFt X19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9z cmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlz dGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0 YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChz cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3Ry aXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsg XAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4g JCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGly c3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVp bGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtE SVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQo ZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNh YzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQk ZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBc CisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQk ZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRp c3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIg LXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZp OyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChz cmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3Rk aXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIg LXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZp OyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAx OyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkg ICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4 aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhl biA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAg IHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsg XAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBl bHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBc CisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7 IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAg JChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAor KwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3Bf ZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsg XAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhf Y2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAg ICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGly PSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tp cF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBk aXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVj ay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUK KytpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06Cisr aW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1y ZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3Rh bGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytp bnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dS QU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwg XAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJg IGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisr ZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwg dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19D TEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hv ICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVj aG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJl YnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQo TUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFu LWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0 Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKworK2R2aTog ZHZpLXJlY3Vyc2l2ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKwor K2h0bWwtYW06CisrCisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2lu c3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisr CisraW5zdGFsbC1kdmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRt bDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0 YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06Cisr CisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQor KworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZl CisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5l ci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisr bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVh bi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBw ZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1h bToKKysKKyt1bmluc3RhbGwtYW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdF VFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtYW0g aW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisr CWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlk aXN0Y2xlYW4tbGlidG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBc CisrCWh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEg XAorKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1l eGVjIFwKKysJaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5z dGFsbC1pbmZvIFwKKysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGlu c3RhbGwtcGRmLWFtIFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAg aW5zdGFsbGNoZWNrIFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJz LWFtIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFs bC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2Yg R05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lz dGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9S VDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC91bml4L01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80 LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2VmaWxlLmFtCTIw MDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBACisrIyMg YnVpbGQvdW5peCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKysjRVhU UkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gIC5fZmluZC1ib29zdC50Y2wgLl9idWls ZC1teXNxbC50Y2wgLl9idWlsZC1wb3N0Z3Jlc3FsLnRjbCAuX2V4ZWN1dGUudGNsIC5fYnVpbGQt Y29yZS50Y2wgLl9pbnN0YWxsLnRjbCAuX3BhcnNlLXBhcmFtZXRlcnMudGNsCisrCisrRVhUUkFf RElTVCA9IGJ1aWxkLWNvcmUudGNsIGJ1aWxkLW9yYWNsZS50Y2wgYnVpbGQudGNsIGluc3RhbGwu dGNsIFwKKysJcGFyc2UtcGFyYW1ldGVycy50Y2wgZmluZC1ib29zdC50Y2wgYnVpbGQtbXlzcWwu dGNsIFwKKysJYnVpbGQtcG9zdGdyZXNxbC50Y2wgZXhlY3V0ZS50Y2wgXAorKwkkKEVYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9i dWlsZC91bml4L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC91bml4L01ha2Vm aWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbgkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9i dWlsZC91bml4L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAw CitAQCAtMCwwICsxLDQyMCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGly ID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j CisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp CisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0g OgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5T VEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0 QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmls ZS5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gYnVpbGQv dW5peAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2Nh bF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29y YWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29u ZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQg JCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19h Y2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxf TTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0g JCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NP TkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytE SVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChF WFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9 IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA CisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBA Qk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJ QkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09T VF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBC T09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElf UFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9 IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJA CisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisr Qk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJ QiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFE X0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1Rf V1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBD Q0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0g QENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklU X0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJ QlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05A CisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQ TU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAor K0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElM QAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBF Q0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBA RVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdF TkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RB TExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBA SU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lO U1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERA CisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJ QlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NA CisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJ Ul9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9D X0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxf TElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytO TSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpF WFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lf Q0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFD TEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lP TkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQ QUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tB R0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJ TkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5M SUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFL RSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0g QFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBM T0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fi c19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAor K2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9 IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBA YWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAor K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRh ciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKyti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1 aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVp bGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAor K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29r ID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdz X29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9j cHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKyts YXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAK Kytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAor K3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9y bV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2Jp bmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBA c2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2Nv bmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4 ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0 b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGly KSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisr CisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNs IC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9zdGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAu X2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wgLl9wYXJzZS1wYXJhbWV0ZXJzLnRjbAorK0VY VFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBidWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0 YWxsLnRjbCBcCisrCXBhcnNlLXBhcmFtZXRlcnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15 c3FsLnRjbCBcCisrCWJ1aWxkLXBvc3RncmVzcWwudGNsIGV4ZWN1dGUudGNsIFwKKysJJChFWFRS QV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrCisrYWxsOiBhbGwtYW0KKysKKysuU1VG RklYRVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9y IGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAor KwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3Qg LWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7 OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYm ICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL3VuaXgvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC91bml4L01ha2Vm aWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUu aW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAg KmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRA ICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJl KTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisr JCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChB Q0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9t NF9kZXBzKToKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2Ns ZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKyt0YWdzOiBUQUdTCisrVEFHUzoK KysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykK KysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJ ICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwg XAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4k JHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3Rf ZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwK KysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisr CQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxl czsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9 LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRo ZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7 IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAg IGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1v ZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIp LyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBS ICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAg IGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1v ZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYg IiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3Rk aXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2No ZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlCisraW5z dGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1l eGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5z dGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg SU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxs X3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFH PS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExf UFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4t Z2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwkt dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9G SUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisr bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQor K2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRv b2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQorKwktcm0gLWYg TWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljCisrCisr ZHZpOiBkdmktYW0KKysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwtYW06 CisrCisraW5mbzogaW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgor KworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKwor K2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKwor K2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKwor K2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5z dGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxs LXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLWYgTWFrZWZpbGUKKytt YWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj CisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisr CisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToK KysKKysuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBhbGwgYWxs LWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisr CWRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBkaXN0ZGlyIGR2 aSBcCisrCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1h bSBcCisrCWluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1k dmktYW0gXAorKwlpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0 YWxsLWh0bWwtYW0gXAorKwlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFu IGluc3RhbGwtcGRmIFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFt IGluc3RhbGwtc3RyaXAgXAorKwlpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxk aXJzIG1haW50YWluZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5 Y2xlYW4gbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBk Zi1hbSBwcyBwcy1hbSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKwor KyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFs bCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxl YXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2NvbmZpZy9heF9ib29zdC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X2Jv b3N0Lm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X2Jvb3N0Lm00CTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9heF9ib29zdC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw3NTQgQEAKKytkbmwgQHN5bm9wc2lzIEFYX0JPT1NUKFtNSU5JTVVNLVZFUlNJT05dLCBb QUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorK2RubAorK2RubCBUZXN0 IGZvciB0aGUgQm9vc3QgQysrIGxpYnJhcmllcyBvZiBhIHBhcnRpY3VsYXIgdmVyc2lvbiAob3Ig bmV3ZXIpCisrZG5sCisrZG5sIElmIG5vIHBhdGggdG8gdGhlIGluc3RhbGxlZCBib29zdCBsaWJy YXJ5IGlzIGdpdmVuIHRoZSBtYWNybworK2RubCBzZWFyY2hzIHVuZGVyIC91c3IsIC91c3IvbG9j YWwsIGFuZCAvb3B0LCBhbmQgZXZhbHVhdGVzIHRoZQorK2RubCAkQk9PU1RfUk9PVCBlbnZpcm9u bWVudCB2YXJpYWJsZS4KKytkbmwKKytkbmwgVGhpcyBtYWNybyBjYWxsczoKKytkbmwKKytkbmwg ICBBQ19TVUJTVChCT09TVF9DRkxBR1MpIC8gQUNfU1VCU1QoQk9PU1RfTElCUykKKytkbmwgICBB Q19TVUJTVChCT09TVF9GSUxFU1lTVEVNX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9TWVNU RU1fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIpCisrZG5s ICAgQUNfU1VCU1QoQk9PU1RfVEhSRUFEX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9JT1NU UkVBTVNfTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX1NFUklBTElaQVRJT05fTElCKQorK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikKKytkbmwgICBBQ19TVUJTVChC T09TVF9TSUdOQUxTX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElCKQor K2RubCAgIEFDX1NVQlNUKEJPT1NUX1JFR0VYX0xJQikKKytkbmwgICBBQ19TVUJTVChCT09TVF9Q WVRIT05fTElCKQorK2RubCAgIEFDX1NVQlNUKEJPT1NUX0FTSU9fTElCKQorK2RubCAgIEFDX1NV QlNUKEJPT1NUX01QSV9MSUIpCisrZG5sICAgQUNfU1VCU1QoQk9PU1RfTVBJX1BZVEhPTl9MSUIp CisrZG5sICAgQUNfU1VCU1QoQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIpCisrZG5sCisr ZG5sIEFuZCBzZXRzOgorK2RubAorK2RubCAgIEhBVkVfQk9PU1QKKytkbmwgICBIQVZFX0JPT1NU X0ZJTEVTWVNURU0KKytkbmwgICBIQVZFX0JPT1NUX1NZU1RFTQorK2RubCAgIEhBVkVfQk9PU1Rf UFJPR1JBTV9PUFRJT05TCisrZG5sICAgSEFWRV9CT09TVF9USFJFQUQKKytkbmwgICBIQVZFX0JP T1NUX0lPU1RSRUFNUworK2RubCAgIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgorK2RubCAgIEhB VkVfQk9PU1RfU0lHTkFMUworK2RubCAgIEhBVkVfQk9PU1RfREFURV9USU1FCisrZG5sICAgSEFW RV9CT09TVF9SRUdFWAorK2RubCAgIEhBVkVfQk9PU1RfUFlUSE9OCisrZG5sICAgSEFWRV9CT09T VF9BU0lPCisrZG5sICAgSEFWRV9CT09TVF9NUEkKKytkbmwgICBIQVZFX0JPT1NUX01QSV9QWVRI T04KKytkbmwgICBIQVZFX0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUksKKytkbmwKKytkbmwgQGNh dGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCisrZG5sIEBhdXRob3IgVGhvbWFzIFBvcnNjaGJlcmcg PHRob21hc0ByYW5kc3ByaW5nZXIuZGU+CisrZG5sIEB2ZXJzaW9uIDIwMDYtMDEtMDIKKytkbmwg QGxpY2Vuc2UgQWxsUGVybWlzc2l2ZQorKworK0FDX0RFRlVOKFtBWF9CT09TVF0sCisrWworKyAg ICBBQ19BUkdfV0lUSChbYm9vc3RdLAorKyAgICAgICAgICAgICAgICBBQ19IRUxQX1NUUklORyhb LS13aXRoLWJvb3N0PURJUl0sCisrICAgICAgICAgICAgICAgIFt1c2UgYm9vc3QgKGRlZmF1bHQg aXMgTk8pICwgc3BlY2lmeSB0aGUgcm9vdCBkaXJlY3RvcnkgZm9yIGJvb3N0IGxpYnJhcnkgKG9w dGlvbmFsKV0pLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAgICAgICAgICAgIGlmIHRlc3Qg IiR3aXRodmFsIiA9ICJubyI7IHRoZW4KKysJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgor KyAgICAgICAgICAgICAgICBlbGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAg ICAgICAgICAgICAgICAgICB3YW50X2Jvb3N0PSJ5ZXMiCisrICAgICAgICAgICAgICAgICAgICBh Y19ib29zdF9wYXRoPSIiCisrICAgICAgICAgICAgICAgIGVsc2UKKysJCQkgICAgICAgIHdhbnRf Ym9vc3Q9InllcyIKKysgICAgICAgICAgICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgorKwkJ ICAgICAgICBmaQorKyAgICAgICAgICAgIAldLAorKyAgICAgICAgICAgICAgICBbd2FudF9ib29z dD0ieWVzIl0pCisrCisrIyAgICBBQ19DQU5PTklDQUxfQlVJTEQKKytCT09TVF9NRFdfVkVSU0lP Tj0iMS0zMy0xIgorK0JPT1NUTElCX01EV19WRVJTSU9OPSIxXzMzXzEiCisrQk9PU1RfdmVyc2lv bl9oZWFkZXI9ImJvb3N0L3ZlcnNpb24uaHBwIgorKworKwlpZiB0ZXN0ICJ4JHdhbnRfYm9vc3Qi ID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sICwx LjIwLjAsJDEpCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfc2hvcnRlbj1gZXhwciAkYm9vc3Rf bGliX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcLltbMC05XV0qXCknYAorKwkJYm9vc3RfbGli X3ZlcnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAt OV1dKlwpJ2AKKysJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkYm9vc3RfbGli X3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKwkJYm9vc3RfbGliX3Zl cnNpb25fcmVxX3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1tbMC05 XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9vc3RfbGliX3Zl cnNpb25fcmVxX3N1Yl9taW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNpb25f cmVxX3N1Yl9taW5vcj0iMCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVy c2lvbl9yZXFfbWlub3IgXCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9y YAorKwkJQUNfTVNHX0NIRUNLSU5HKGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3ZlcnNpb25f cmVxKQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQlkbmwgZmlyc3Qgd2UgY2hlY2sgdGhlIHN5c3Rl bSBsb2NhdGlvbiBmb3IgYm9vc3QgbGlicmFyaWVzCisrCQlkbmwgdGhpcyBsb2NhdGlvbiBpcyBj aG9zZW4gaWYgYm9vc3QgbGlicmFyaWVzIGFyZSBpbnN0YWxsZWQgCisrCQlkbmwgd2l0aCB0aGUg LS1sYXlvdXQ9c3lzdGVtIG9wdGlvbgorKwkJZG5sIG9yIGlmIHlvdSBpbnN0YWxsIGJvb3N0IHdp dGggUlBNCisrCQlpZiB0ZXN0IC1kIC9saWI2NAorKwkJdGhlbgorKwkJCUJPT1NUX0xJQkRJUlRZ UEU9ImxpYjY0IgorKwkJZWxzZQorKwkJCUJPT1NUX0xJQkRJUlRZUEU9ImxpYiIKKysJCWZpCisr CQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiIKKysJCXRoZW4KKysJCQlpZiB0ZXN0ICIk Qk9PU1RfTElCRElSVFlQRSIgPT0gImxpYjY0IgorKwkJCXRoZW4KKysJCQkJaWYgdGVzdCAtZCAi JGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiICYmIHRlc3QgLXIgIiRhY19ib29zdF9w YXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQl0aGVuCisrCSAgICAgICAgICAgICAgICBCT09T VF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQllbHNlCisr ICAgICAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xpYiIKKysJ CQkJZmkKKysJCQllbHNlCisrCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgor KwkJCWZpCisrCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoL2luY2x1ZGUiCisrCQkJ Qk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3Rf cGF0aC9pbmNsdWRlLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1 dCAtZFwiIC1mMmAKKysJCWVsc2UKKysJCQlmb3IgYWNfYm9vc3RfcGF0aF90bXAgaW4gL3VzciAv dXNyL2xvY2FsIC9vcHQgL25hc3Rvb2xzL2Jvb3N0CisrCQkJZG8KKysJCQkJaWYgdGVzdCAtZCAi JGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiICYmIHRlc3QgLXIgIiRhY19ib29zdF9w YXRoX3RtcC9pbmNsdWRlL2Jvb3N0IgorKwkJCQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRh Y19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0i LUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZSIKKysJCQkJCUJPT1NUX1ZFUlNJT049YGdyZXAg ImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvJHtC T09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAorKwkJ CQkJYnJlYWs7CisrCQkJCWZpCisrCQkJCWlmIHRlc3QgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9p bmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jv b3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IgorKwkJ CQl0aGVuCisrCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC8kQk9PU1RfTElC RElSVFlQRSIKKysJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVk ZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04iCisrCQkJCQlCT09TVF9WRVJTSU9OPWBncmVwICJk ZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0 LSRCT09TVF9NRFdfVkVSU0lPTi8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAt ZjMgfCBjdXQgLWRcIiAtZjJgCisrCQkJCisrCQkJCQlkbmwgSGFjayBmb3Igd3JvbmdseSBpbnN0 YWxsZWQgQm9vc3QgbGlicmFyaWVzIChBTUQ2NCBsaWJyYXJpZXMgaW5zdGFsbGVkIGluIGJvb3N0 L2xpYiBkaXJlY3RvcnkpCisrCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGli IiBcCisrCQkJCQkmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvbGliIiBcCisrCQkJCQkm JiB0ZXN0ICEgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWI2NCIKKysJCQkJCXRoZW4KKysJCQkJ CQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC9saWIiCisrCQkJCQkJZWNobyAiSGFj azogJEJPT1NUX0xJQlMiCisrCQkJCQlmaQorKwkJCQkJYnJlYWs7CisrCQkJCWZpCisrCQkJZG9u ZQorKwkJZmkKKysKKysJCUNQUEZMQUdTX1NBVkVEPSIkQ1BQRkxBR1MiCisrCQlDUFBGTEFHUz0i JENQUEZMQUdTICRCT09TVF9DRkxBR1MiCisrCQlleHBvcnQgQ1BQRkxBR1MKKysKKysJCUxERkxB R1NfU0FWRUQ9IiRMREZMQUdTIgorKwkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCisr CQlleHBvcnQgTERGTEFHUworKworKyAgICAgCUFDX1RSWV9DT01QSUxFKAorKyAgICAgICAJWwor K0AlOkBpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKytdLAorKyAgICAgICBbCisrI2lmIEJP T1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgorKy8vIEV2ZXJ5dGhpbmcgaXMgb2th eQorKyNlbHNlCisrIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCisrI2VuZGlmCisr CisrCQldLAorKyAgICAJWworKyAgICAgICAgIEFDX01TR19SRVNVTFQoeWVzKQorKwkJIHN1Y2Nl ZWRlZD15ZXMKKysJCSBmb3VuZF9zeXN0ZW09eWVzCisrICAgICAgICAgaWZlbHNlKFskMl0sICwg OiwgWyQyXSkKKysgICAgICAgXSwKKysgICAgICAgWworKyAgICAgICBdKQorKworKwkJZG5sIGlm IHdlIGZvdW5kIG5vIGJvb3N0IHdpdGggc3lzdGVtIGxheW91dCB3ZSBzZWFyY2ggZm9yIGJvb3N0 IGxpYnJhcmllcworKwkJZG5sIGJ1aWx0IGFuZCBpbnN0YWxsZWQgd2l0aG91dCB0aGUgLS1sYXlv dXQ9c3lzdGVtIG9wdGlvbiBvciBmb3IgYSBzdGFnZWQobm90IGluc3RhbGxlZCkgdmVyc2lvbgor KwkJaWYgdGVzdCAieCRzdWNjZWVkZWQiICE9ICJ4eWVzIjsgdGhlbgorKwkJCV92ZXJzaW9uPTAK KysJCQlpZiB0ZXN0ICIkYWNfYm9vc3RfcGF0aCIgIT0gIiI7IHRoZW4KKysgICAgICAgICAgICAg ICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKKysJCQkJ aWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoIjsg dGhlbgorKwkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3Qt KiAyPi9kZXYvbnVsbGA7IGRvCisrCQkJCQkJX3ZlcnNpb25fdG1wPWBlY2hvICRpIHwgc2VkICJz IyRhY19ib29zdF9wYXRoIyMiIHwgc2VkICdzL1wvaW5jbHVkZVwvYm9vc3QtLy8nIHwgc2VkICdz L18vLi8nYAorKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25g CisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQlfdmVyc2lv bj0kX3ZlcnNpb25fdG1wCisrCQkJCQkJZmkKKysJCQkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVj aG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFj X2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgorKwkJCQkJZG9u ZQorKwkJCQlmaQorKwkJCWVsc2UKKysJCQkJZm9yIGFjX2Jvb3N0X3BhdGggaW4gL3VzciAvdXNy L2xvY2FsIC9vcHQgOyBkbworKwkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGgiICYmIHRl c3QgLXIgIiRhY19ib29zdF9wYXRoIjsgdGhlbgorKwkJCQkJCWZvciBpIGluIGBscyAtZCAkYWNf Ym9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSogMj4vZGV2L251bGxgOyBkbworKwkJCQkJCQlfdmVy c2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9p bmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJCVZfQ0hFQ0s9YGV4cHIg JF92ZXJzaW9uX3RtcCBcPiAkX3ZlcnNpb25gCisrCQkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9 ICIxIiA7IHRoZW4KKysJCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQkJCWJl c3RfcGF0aD0kYWNfYm9vc3RfcGF0aAorKwkJCQkJCQlmaQorKwkJCQkJCWRvbmUKKysJCQkJCWZp CisrCQkJCWRvbmUKKysKKysJCQkJVkVSU0lPTl9VTkRFUlNDT1JFPWBlY2hvICRfdmVyc2lvbiB8 IHNlZCAncy9cLi9fLydgCisrCQkJCUJPT1NUX0NGTEFHUz0iLUkkYmVzdF9wYXRoL2luY2x1ZGUv Ym9vc3QtJFZFUlNJT05fVU5ERVJTQ09SRSIKKysJCQkJQk9PU1RfTElCUz0iLUwkYmVzdF9wYXRo LyRCT09TVF9MSUJESVJUWVBFIgorKworKwkgICAgCQlpZiB0ZXN0ICJ4JEJPT1NUX1JPT1QiICE9 ICJ4IjsgdGhlbgorKwkJCQkJaWYgdGVzdCAtZCAiJEJPT1NUX1JPT1QiICYmIHRlc3QgLXIgIiRC T09TVF9ST09UIjsgdGhlbgorKwkJCQkJCXZlcnNpb25fZGlyPWBleHByIC8vJEJPT1NUX1JPT1Qg OiAnLiovXCguKlwpJ2AKKysJCQkJCQlzdGFnZV92ZXJzaW9uPWBlY2hvICR2ZXJzaW9uX2RpciB8 IHNlZCAncy9ib29zdF8vLycgfCBzZWQgJ3MvXy8uL2cnYAorKwkJCQkJCXN0YWdlX3ZlcnNpb25f c2hvcnRlbj1gZXhwciAkc3RhZ2VfdmVyc2lvbiA6ICdcKFtbMC05XV0qXC5bWzAtOV1dKlwpJ2AK KysJCQkJCQlWX0NIRUNLPWBleHByICRzdGFnZV92ZXJzaW9uX3Nob3J0ZW4gXD5cPSAkX3ZlcnNp b25gCisrCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQlBQ19N U0dfTk9USUNFKFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgZnJvbSAkQk9PU1Rf Uk9PVCkKKysJCQkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRCT09TVF9ST09UIgorKwkJCQkJCQlCT09T VF9MSUJTPSItTCRCT09TVF9ST09UL3N0YWdlLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJCWZp CisrCQkJCQlmaQorKwkgICAgCQlmaQorKwkJCWZpCisrCisrCQkJQ1BQRkxBR1M9IiRDUFBGTEFH UyAkQk9PU1RfQ0ZMQUdTIgorKwkJCWV4cG9ydCBDUFBGTEFHUworKwkJCUxERkxBR1M9IiRMREZM QUdTICRCT09TVF9MSUJTIgorKwkJCWV4cG9ydCBMREZMQUdTCisrCisrICAgICAJCUFDX1RSWV9D T01QSUxFKAorKyAgICAgICAJCVsKKytAJTpAaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+Cisr XSwKKysgICAgICAgWworKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NUX1ZFUlNJT04K KysvLyBFdmVyeXRoaW5nIGlzIG9rYXkKKysjZWxzZQorKyMgIGVycm9yIEJvb3N0IHZlcnNpb24g aXMgdG9vIG9sZAorKyNlbmRpZgorKworKwkJXSwKKysgICAgCVsKKysgICAgICAgICBBQ19NU0df UkVTVUxUKHllcyAoJF92ZXJzaW9uKSkKKysJCSBzdWNjZWVkZWQ9eWVzCisrICAgICAgICAgaWZl bHNlKFskMl0sICwgOiwgWyQyXSkKKysgICAgICAgXSwKKysgICAgICAgWworKyAgICAgICAgIEFD X01TR19SRVNVTFQobm8gKCRfdmVyc2lvbikpCisrICAgICAgICAgaWZlbHNlKFskM10sICwgOiwg WyQzXSkKKysgICAgICAgXSkKKysJCWZpCisrCisrCQlpZiB0ZXN0ICIkc3VjY2VlZGVkIiAhPSAi eWVzIiA7IHRoZW4KKysJCQlpZiB0ZXN0ICIkX3ZlcnNpb24iID0gIjAiIDsgdGhlbgorKwkJCQlB Q19NU0dfRVJST1IoW1tXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZl cnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBo YXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBz cGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBh IFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBi b29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGlu IDxib29zdC92ZXJzaW9uLmhwcD4uXV0pCisrCQkJZWxzZQorKwkJCQlBQ19NU0dfRVJST1IoJ1lv dXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lvbiAkX3ZlcnNpb24pLiAgV2Ug bmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRlbicpCisrCQkJZmkKKysJCWVs c2UKKysJCQlBQ19TVUJTVChCT09TVF9DRkxBR1MpCisrCQkJQUNfU1VCU1QoQk9PU1RfTElCUykK KysJCQlBQ19ERUZJTkUoSEFWRV9CT09TVCwsW2RlZmluZSBpZiB0aGUgQm9vc3QgbGlicmFyeSBp cyBhdmFpbGFibGVdKQorKworKyMKKysjIEJvb3N0OjpGaWxlc3lzdGVtCisrIworKwkJCUFDX0NB Q0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWls YWJsZV0sCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSwKKysJCQkJCQlbQUNfTEFO R19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFD X0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9maWxlc3lzdGVtL3BhdGguaHBwPl1d LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3BhY2Ug Ym9vc3Q6OmZpbGVzeXN0ZW07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0IiApOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgIAkJCQkgICAgICAgYXhf Y3ZfYm9vc3RfZmlsZXN5c3RlbT15ZXMsIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8pCisrCQkg CQkgICAgICAgIAkJCUFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAiJGF4X2N2 X2Jvb3N0X2ZpbGVzeXN0ZW0iID0gInllcyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9P U1RfRklMRVNZU1RFTSwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkZJTEVTWVNURU0gbGlicmFyeSBp cyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9maWxlc3lzdGVtCisrCQkJCWZvciBheF9saWIg aW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10 IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJO LSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lP TiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfRklMRVNZU1RFTV9MSUI9Ii1sJGF4X2xpYiIg QUNfU1VCU1QoQk9PU1RfRklMRVNZU1RFTV9MSUIpIGxpbmtfZmlsZXN5c3RlbT0ieWVzIiBicmVh a10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfZmlsZXN5c3RlbT0i bm8iXSkKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19maWxlc3lzdGVtIiA9ICJ4 bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4 X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlN5c3RlbQorKyMKKysg ICAgICAgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJy YXJ5IGlzIGF2YWlsYWJsZV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9v c3Rfc3lzdGVtLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQ19MQU5HX1NBVkUKKysg ICAgICAgICAgICBBQ19MQU5HX0NQTFVTUExVUworKyAgICAgICAgICAgIEFDX0NPTVBJTEVfSUZF TFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9zeXN0ZW0vZXJyb3JfY29k ZS5ocHA+XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3VzaW5nIG5h bWVzcGFjZSBib29zdDo6c3lzdGVtOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXJyb3JfY29kZSBteUVycm9yQ29kZSgpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIDA7XV0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXhfY3ZfYm9vc3Rfc3lzdGVtPXllcywgYXhfY3ZfYm9vc3Rfc3lzdGVtPW5vKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xBTkdfUkVTVE9SRQorKyAgICAgICAg ICAgIF0pCisrICAgICAgICAgICAgaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3N5c3RlbSIgPSAieWVz IjsgdGhlbgorKyAgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfQk9PU1RfU1lTVEVNLCxb ZGVmaW5lIGlmIHRoZSBCb29zdDo6U1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysgICAg ICAgICAgICAgICAgIEJOPWJvb3N0X3N5c3RlbQorKyAgICAgICAgICAgICAgICAgZm9yIGF4X2xp YiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0Mt bXQgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJEJOLW1ndyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zICRCTi1tZ3ct cyA7IGRvCisrICAgICAgICAgICAgICAgICAgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX1NZU1RFTV9MSUI9Ii1s JGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikgbGlua19zeXN0ZW09InllcyIgYnJl YWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3N5c3RlbT0ibm8i XSkKKysgICAgICAgICAgICAgICAgIGRvbmUKKysgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngk bGlua19zeXN0ZW0iID0gInhubyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgICBBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKyAgICAgICAgICAgICAg ICAgZmkKKysgICAgICAgICAgICBmaQorKworKyMKKysjIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMK KysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0OjpQcm9ncmFtX09wdGlv bnMgbGlicmFyeSBpcyBhdmFpbGFibGVdLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3Byb2dyYW1f b3B0aW9ucywKKysJCQkJCQkgICBbQUNfTEFOR19TQVZFCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgICAgICAgICAgICAgICBBQ19DT01QSUxFX0lG RUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvcHJvZ3JhbV9vcHRpb25z LmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnBy b2dyYW1fb3B0aW9uczo6b3B0aW9uc19kZXNjcmlwdGlvbiBnZW5lcmljKCJHZW5lcmljIG9wdGlv bnMiKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9 eWVzLCBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9bm8pCisrCQkJICAgICAgICAgICAgICAg QUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfcHJvZ3Jh bV9vcHRpb25zIiA9IHllczsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9QUk9HUkFN X09QVElPTlMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMgbGlicmFyeSBp cyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKKysJCQkJZm9yIGF4 X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTjsgZG8KKysJCQkJICAgIEFD X0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIGxpbmtfcHJvZ3JhbV9vcHRpb25zPSJ5ZXMiIGJyZWFrXSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19wcm9ncmFtX29wdGlvbnM9 Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfcHJvZ3JhbV9vcHRpb25z PSJubyIiID0gInhubyI7IHRoZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6VGhy ZWFkcworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6VGhyZWFkIGxp YnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3RocmVhZCwKKysJCQkJ CQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIENYWEZMQUdTX1NB VkU9JENYWEZMQUdTCisrCisrCQkJIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7 IHRoZW4KKysgIAkJCQkgQ1hYRkxBR1M9Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsaWYg dGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCisrCQkJCSBDWFhGTEFHUz0iLW10 aHJlYWRzICRDWFhGTEFHUyIKKysJCQkgZWxzZQorKwkJCQlDWFhGTEFHUz0iLXB0aHJlYWQgJENY WEZMQUdTIgorKwkJCSBmaQorKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0o W1tAJTpAaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+XV0sCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtdXSksCisrICAgICAgICAg ICAgICAgICAgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMsIGF4X2N2X2Jvb3N0X3RocmVhZD1ubykK KysJCQkgQ1hYRkxBR1M9JENYWEZMQUdTX1NBVkUKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJ XSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3RocmVhZCIgPSAieHllcyI7IHRoZW4KKysg ICAgICAgICAgICAgICBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIgOyB0aGVuCisr IAkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWRzICRCT09TVF9DRkxBR1MiCisrCQkJICAgZWxp ZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4bWluZzMyIiA7IHRoZW4KKysgCQkJCSAgQk9PU1RfQ0ZM QUdTPSItbXRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkgICBlbHNlCisrCQkJCSAgQk9PU1Rf Q0ZMQUdTPSItcHRocmVhZCAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGZpCisrCisrCQkJCUFDX1NV QlNUKEJPT1NUX0NGTEFHUykKKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVEhSRUFELCxbZGVm aW5lIGlmIHRoZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49 Ym9vc3RfdGhyZWFkCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi1tdCAkQk4tJENDICRCTi0k Q0MtbXQgXAorKwkJCQkJCSAgIAkgICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGli JEJOLSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJEND LXMgJEJOLW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tbWd3LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tf TElCKCRheF9saWIsIG1haW4sIFtCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiIEFDX1NVQlNU KEJPT1NUX1RIUkVBRF9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCisrICAJCQkJZG9uZQor KwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZp CisrCisrIworKyMgQm9vc3Q6OklPU3RyZWFtcworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0 aGVyIHRoZSBCb29zdDo6SU9TdHJlYW1zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAg IGF4X2N2X2Jvb3N0X2lvc3RyZWFtcywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xB TkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0Al OkBpbmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+CisrCQkJCQkJ CQkJCQkJIEAlOkBpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisrCQkJ CQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW3N0ZDo6 c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOworKwkJCQkJCQkJCSBuYW1lc3BhY2UgaW8g PSBib29zdDo6aW9zdHJlYW1zOworKwkJCQkJCQkJCSBpbzo6ZmlsdGVyaW5nX2lzdHJlYW0gIGlu KGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7CisrCQkJCQkJCQkJIHJldHVybiAw OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAgICAgICAg ICAgICAgICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzLCBheF9jdl9ib29zdF9pb3N0cmVhbXM9 bm8pCisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9i b29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NU X0lPU1RSRUFNUywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X2lvc3RyZWFtcworKwkJCQlmb3IgYXhfbGliIGluICRC TiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIk Qk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0Mt cyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19M SUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VC U1QoQk9PU1RfSU9TVFJFQU1TX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKKysgIAkJCQlk b25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCUFD X01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCisrCQkJCWZpCisr CQkJZmkKKysKKysjCisrIyBCb29zdDo6U2VyaWFsaXphdGlvbgorKyMKKysJCQlBQ19DQUNIRV9D SEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uLAorKwkJCQkJCVtBQ19MQU5H X1NBVkUKKysJCQkgQUNfTEFOR19DUExVU1BMVVMKKysJCQkgQUNfQ09NUElMRV9JRkVMU0UoQUNf TEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+CisrCQkJCQkJCQkJCQkJIEAlOkBp bmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAJTpAaW5jbHVkZSA8Ym9vc3QvYXJj aGl2ZS90ZXh0X2lhcmNoaXZlLmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtbc3RkOjpvZnN0cmVhbSBvZnMoImZpbGVuYW1lIik7Cisr CQkJCQkJCQkJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKKysJCQkJCQkJ CQkgcmV0dXJuIDA7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXSksCisr ICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249eWVzLCBheF9jdl9i b29zdF9zZXJpYWxpemF0aW9uPW5vKQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKwkJ CWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KKysJ CQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTiwsW2RlZmluZSBpZiB0aGUgQm9v c3Q6OlNlcmlhbGl6YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCQlCTj1ib29zdF9z ZXJpYWxpemF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQj0i LWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9TRVJJQUxJWkFUSU9OX0xJQikgbGlua190aHJlYWQ9 InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3Ro cmVhZD0ibm8iXSkKKysgIAkJCQlkb25lCisrCQkJCUJOPWJvb3N0X3dzZXJpYWxpemF0aW9uCisr CQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJO LSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRD QyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8K KysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtCT09TVF9XU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNf U1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKSBsaW5rX3RocmVhZD0ieWVzIiBicmVha10s CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtfdGhyZWFkPSJubyJdKQor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgor KwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJ CQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpTaWduYWxzCisrIworKwkJCUFDX0NBQ0hF X0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAor KwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3NpZ25hbHMsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJ CSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3Qvc2lnbmFsLmhwcD4KKysJCQkJCQkJCQkJCQldXSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbYm9vc3Q6OnNpZ25hbDx2b2lkICgp PiBzaWc7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAgICAgICAgICAg ICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhfY3ZfYm9vc3Rfc2lnbmFscz1ubykKKysJ CQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Np Z25hbHMiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NJR05BTFMs LFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJ CQkJQk49Ym9vc3Rfc2lnbmFscworKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0k Q0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1t Z3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4t bWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09T VExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFp biwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNf TElCKSBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWtdLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtsaW5rX3NpZ25hbHM9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKyMKKysj IEJvb3N0OjpEYXRlX1RpbWUKKysjCisrCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9v c3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29z dF9kYXRlX3RpbWUsCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExV UworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8 Ym9vc3QvZGF0ZV90aW1lL2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgorKwkJCQkJCQkJ CQkJCV1dLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1l c3BhY2UgYm9vc3Q6OmdyZWdvcmlhbjsgZGF0ZSBkKDIwMDIsSmFuLDEwKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBdXSksCisrICAgICAgICAgICAgICAgICAgIGF4X2N2X2Jvb3N0X2Rh dGVfdGltZT15ZXMsIGF4X2N2X2Jvb3N0X2RhdGVfdGltZT1ubykKKysJCQkgQUNfTEFOR19SRVNU T1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPSAieHll cyI7IHRoZW4KKysJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfREFURV9USU1FLCxbZGVmaW5lIGlm IHRoZSBCb29zdDo6RGF0ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49Ym9v c3RfZGF0ZV90aW1lCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01E V19WRVJTSU9OIDsgZG8KKysJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9P U1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJTVChCT09TVF9EQVRFX1RJTUVfTElC KSBsaW5rX2RhdGVfdGltZT0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2xpbmtfZGF0ZV90aW1lPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVz dCAieCRsaW5rX2RhdGVfdGltZSI9Im5vIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9U SUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZpCisr CisrIworKyMgQm9vc3Q6OlJlZ2V4CisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhl IEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKKysJCQkJCQkgICBheF9jdl9ib29z dF9yZWdleCwKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisr CQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29z dC9yZWdleC5ocHA+CisrCQkJCQkJCQkJCQkJXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKSwKKysgICAgICAgICAg ICAgICAgICAgYXhfY3ZfYm9vc3RfcmVnZXg9eWVzLCBheF9jdl9ib29zdF9yZWdleD1ubykKKysJ CQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3Jl Z2V4IiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9SRUdFWCwsW2Rl ZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKKysJCQkJQk49 Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09T VF9SRUdFWF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKSBsaW5rX3Ro cmVhZD0ieWVzIiBicmVha10sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xp bmtfdGhyZWFkPSJubyJdKQorKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVh ZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISkKKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpBU0lPOiBp dCBuZWVkcyBCb29zdC5TeXN0ZW0sIEJvb3N0LlJlZ2V4LCBCb29zdC5UaHJlYWQgYW5kIAorKyMg Qm9vc3QuRGF0ZVRpbWUsIGJ1dCBkb2VzIG5vdCBwcm9kdWNlIGFueSAob3RoZXIpIGxpYnJhcnku CisrIworKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkg aXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X2FzaW8sCisrCQkJCQkJW0FDX0xB TkdfU0FWRQorKwkJCSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShB Q19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvYXNpby5ocHA+XV0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW2Jvb3N0Ojphc2lvOjppb19zZXJ2aWNlIGlv OworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29zdDo6c3lzdGVtOjplcnJv cl9jb2RlIHRpbWVyX3Jlc3VsdDsKKysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vc3Q6OmFzaW86OmRlYWRsaW5lX3RpbWVyIHQoaW8pOworKwkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0LmNhbmNlbCgpOworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpby5ydW5fb25lKCk7CisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF9hc2lvPXllcywgYXhfY3ZfYm9vc3RfYXNpbz1ubykK KysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJXSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X2FzaW8iID0gInh5ZXMiOyB0aGVuCisrCQkJICAgQUNfREVGSU5FKEhBVkVfQk9PU1RfQVNJTyws W2RlZmluZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGVdKQorKwkJCSAg IEJPT1NUX0FTSU9fTElCPSIke0JPT1NUX1NZU1RFTV9MSUJ9ICR7Qk9PU1RfVEhSRUFEX0xJQn0i CisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfREFURV9U SU1FX0xJQn0iCisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9P U1RfUkVHRVhfTElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0g JHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCisrCQkJZmkKKysKKysjCisrIyBTdXBwb3J0IGZv ciBQeXRob24gYW5kIE1QSSAoTVBJQ0gyLCBCb29zdDo6TVBJLCBCb29zdDo6UHl0aG9uLCAKKysj IEJvb3N0OjpTZXJpYWxpemF0aW9uLCBCb29zdDo6TVBJX1B5dGhvbikKKysjIE5vdGU6IG9uIHNv bWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwgRGViaWFuKSwgQm9vc3QuTVBJIHVzZXMgT3Blbk1QSSBy YXRoZXIgCisrIyAgICAgICB0aGFuIE1QSUNIMgorKyMKKysJCQlDUFBGTEFHU19PUklHPSIke0NQ UEZMQUdTfSIKKysJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01Q SUdFTl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdT fSAke01QSUNIMl9DRkxBR1N9IgorKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05f Q0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdTfSIKKysJCQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30i CisrCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElC U30gJHtNUElHRU5fTElCU30iCisrIwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElC U30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJQ0gyX0xJQlN9IgorKyMJCQlMREZMQUdTPSIke0xE RkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke09QRU5NUElfTElCU30i CisrCisrIworKyMgQm9vc3Q6OlB5dGhvbgorKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVy IHRoZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAorKwkJCQkJCSAgIGF4X2N2 X2Jvb3N0X3B5dGhvbiwKKysJCQlbQUNfTEFOR19TQVZFCisrCQkJQUNfTEFOR19DUExVU1BMVVMK KysKKysJCSAgICBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVk ZSA8Ym9vc3QvcHl0aG9uLmhwcD4KKysJCQljaGFyIGNvbnN0KiBncmVldCgpIHsgcmV0dXJuICJo ZWxsbyI7IH0gCisrCQkJQk9PU1RfUFlUSE9OX01PRFVMRShoZWxsb19leHQpIHsgYm9vc3Q6OnB5 dGhvbjo6ZGVmKCJncmVldCIsIGdyZWV0KTt9CisrCQkJCQkJCQkJCSAgIF1dKSwKKysgICAgICAg ICAgICAgICAgICAgYXhfY3ZfYm9vc3RfcHl0aG9uPXllcywgYXhfY3ZfYm9vc3RfcHl0aG9uPW5v KQorKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysJCQldKQorKworKwkJCUJPT1NUX1BZVEhPTl9MSUI9 Ii1sYm9vc3RfcHl0aG9uICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSIKKysJCQlB Q19TVUJTVChCT09TVF9QWVRIT05fTElCKQorKworKyMKKysjIEJvb3N0OjpNUEkKKysjCisrCQkJ QUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZSwKKysJCQkJCQkgICBheF9jdl9ib29zdF9tcGksCisrCQkJCQkJW0FDX0xBTkdfU0FWRQorKwkJ CSBBQ19MQU5HX0NQTFVTUExVUworKwkJCSBBQ19DT01QSUxFX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD5dXSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtbCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAwOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF9tcGk9eWVzLCBheF9jdl9ib29zdF9tcGk9bm8pCisr CQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9t cGkiID0gInh5ZXMiOyB0aGVuCisrCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX01QSSwsW2RlZmlu ZSBpZiB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0 X21waQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1t dC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1t dC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJOLSRDQy1t dC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKworKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRh eF9saWIsIG1haW4sIFtCT09TVF9NUElfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX01Q SV9MSUIpIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbbGlua19tcGk9Im5vIl0pCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxp bmtfbXBpIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5r IGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQllbHNlCisrCQkJCQlCT09TVF9NUElfTElCPSIke0JP T1NUX01QSV9MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9Igor KwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6Ok1QSV9QeXRob24KKysjCisrCQkJQUNf Q0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFp bGFibGUsCisrCQkJCQkJICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbiwKKysJCQkJCQlbQUNfTEFO R19TQVZFCisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFD X0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9tcGkvcHl0aG9uL3NlcmlhbGl6ZS5o cHA+CisrCQkJIAkJCQkJCQkJICAgXV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbWworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1dKSwKKysgICAgICAgICAgICAgICAg ICAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15ZXMsIGF4X2N2X2Jvb3N0X21waV9weXRob249bm8p CisrCQkJIEFDX0xBTkdfUkVTVE9SRQorKwkJCV0pCisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29z dF9tcGlfcHl0aG9uIiA9ICJ4eWVzIjsgdGhlbgorKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9N UElfUFlUSE9OLCxbZGVmaW5lIGlmIHRoZSBCb29zdDo6TXBpX1B5dGhvbiBsaWJyYXJ5IGlzIGF2 YWlsYWJsZV0pCisrCQkJCUJOPWJvb3N0X21waV9weXRob24KKysjCQkJCUJOPWJvb3N0X21waV9w eXRob24tcHkyNQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJO LSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli JEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgJEJO LW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMgJEJO LSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgQUNfQ0hFQ0tfTElC KCRheF9saWIsIG1haW4sIFtCT09TVF9NUElfUFlUSE9OX0xJQj0iLWwkYXhfbGliIiBBQ19TVUJT VChCT09TVF9NUElfUFlUSE9OX0xJQikgbGlua19tcGlfcHl0aG9uPSJ5ZXMiIGJyZWFrXSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19tcGlfcHl0aG9uPSJubyJdKQor KyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX21waV9weXRob24iID0gInhubyI7IHRo ZW4KKysJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEp CisrCQkJCWVsc2UKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRI T05fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSIKKysJCQkJCUJPT1NUX01QSV9QWVRI T05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1BZVEhPTl9MSUJ9IgorKwkJ CQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1Rf TVBJX0xJQn0iCisrCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9O X0xJQn0gJHtNUElHRU5fTElCU30iCisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBFbmQgb2Yg c2VjdGlvbiBvbiBzdXBwb3J0IGZvciBNUEkKKysjCisrCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1Nf T1JJR30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdTX09SSUd9IgorKworKyMKKysjIEJvb3N0OjpV bml0VGVzdEZyYW1ld29yaworKyMKKysJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29z dDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGUsCisrCQkJCQkJICAgYXhf Y3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZFCisrCQkJ IEFDX0xBTkdfQ1BMVVNQTFVTCisrCQkJIEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JB TShbW0AlOkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+XV0sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0 X3N1aXRlOworKwkJCQkJICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9U RVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pLAorKyAgICAg ICAgICAgICAgICAgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcywgYXhfY3Zf Ym9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubykKKysJCQkgQUNfTEFOR19SRVNUT1JFCisrCQkJ XSkKKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID0gInh5 ZXMiOyB0aGVuCisrICAgIAkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09S SywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBh dmFpbGFibGVdKQorKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKKysgICAgCQlzYXZl ZF9sZGZsYWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJO LSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg JEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAgICAgICAgICAgICAgIExERkxB R1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQlBQ19DQUNIRV9DSEVDSyh0aGUgbmFt ZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnksCisrCSAgICAgIAkJCQkJ ICAgYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaywKKysJCQkJCQlbQUNfTEFOR19TQVZF CisrCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCisrICAgICAgICAgICAgICAgQUNfTElOS19JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+ XV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNpbmcgYm9vc3Q6OnVuaXRf dGVzdDo6dGVzdF9zdWl0ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9z dWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9TVUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJl dHVybiAwO11dKV0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVh ZD0ieWVzIl0sW2xpbmtfdGhyZWFkPSJubyJdKQorKworKwkJCSBBQ19MQU5HX1JFU1RPUkUKKysg ICAgICAgICAgICAgICBdKQorKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke3NhdmVkX2xkZmxh Z3N9IgorKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgorKyAg ICAgICAgICAgICAgICAgICAgQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUI9Ii1sJGF4X2xp YiIKKysgICAgICAgICAgICAgICAgICAgIEFDX1NVQlNUKEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCKQorKwkJCQkJYnJlYWsKKysJCQkJZmkKKysgICAgICAgICAgICAgIGRvbmUKKysJCQkg ICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkgICBBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQorKwkJCQlmaQorKwkJCWZp CisrCisrCisrCQlmaSBkbmwgZW5kaWYgdGVzdCAiJHN1Y2NlZWRlZCIKKysKKysgICAgICAgIENQ UEZMQUdTPSIkQ1BQRkxBR1NfU0FWRUQiCisrICAgICAgICBMREZMQUdTPSIkTERGTEFHU19TQVZF RCIKKysKKysJZmkgZG5sIGVuZGlmIHRlc3QgIngkd2FudF9ib29zdCIKKytdKQorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9teXNxbC5tNCBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2F4X215c3FsLm00CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X215c3Fs Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL2NvbmZpZy9heF9teXNxbC5tNAkyMDEwLTAxLTIzIDEzOjI3OjA0LjAwMDAwMDAwMCAr MDEwMAorQEAgLTAsMCArMSwxNjQgQEAKKytkbmwgQHN5bm9wc2lzIEFYX01ZU1FMCisrZG5sIAor K2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgTXlTUUwgQyBBUEkgaGVhZGVyIGFuZCBsaWJy YXJ5IGxvY2F0aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5lIHRoZSBmb2xsb3dpbmcgY29uZmln dXJlIHNjcmlwdCBmbGFnczoKKytkbmwKKytkbmwJCS0td2l0aC1teXNxbDogR2l2ZSBwcmVmaXgg Zm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQorK2RubAkJCXRvIGd1ZXNzIHN1 YmRpcmVjdG9yeSBuYW1lcyBmb3IgZWFjaC4gIChlLmcuIFRhY2sgL2xpYiBhbmQKKytkbmwJCQkv aW5jbHVkZSBvbnRvIGdpdmVuIGRpciBuYW1lLCBhbmQgb3RoZXIgY29tbW9uIHNjaGVtZXMuKQor K2RubAkJLS13aXRoLW15c3FsLWxpYjogU2ltaWxhciB0byAtLXdpdGgtbXlzcWwsIGJ1dCBmb3Ig bGlicmFyeSBvbmx5LgorK2RubAkJLS13aXRoLW15c3FsLWluY2x1ZGU6IFNpbWlsYXIgdG8gLS13 aXRoLW15c3FsLCBidXQgZm9yIGhlYWRlcnMKKytkbmwJCQlvbmx5LgorK2RubAorK2RubCBAdmVy c2lvbiAxLjIsIDIwMDcvMDIvMjAKKytkbmwgQGF1dGhvciBXYXJyZW4gWW91bmcgPG15c3FscHBA ZXRyLXVzYS5jb20+CisrCisrQUNfREVGVU4oW0FYX01ZU1FMXSwKKytbCisrCSMKKysJIyBTZXQg dXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKKysJIworKwlBQ19BUkdfV0lUSChteXNxbCwKKysJ CVsgIC0td2l0aC1teXNxbD08cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwg aW5zdGFsbGF0aW9uXSwKKysJCVtNWVNRTF9saWJfY2hlY2s9IiR3aXRoX215c3FsL2xpYjY0L215 c3FsICR3aXRoX215c3FsL2xpYi9teXNxbCAkd2l0aF9teXNxbC9saWI2NCAkd2l0aF9teXNxbC9s aWIiCisrCQlNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsL2luY2x1ZGUgJHdpdGhfbXlzcWwv aW5jbHVkZS9teXNxbCIKKysJCU1ZU1FMX2Jpbl9jaGVjaz0iJHdpdGhfbXlzcWwvYmluIl0sCisr CQlbTVlTUUxfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGliNjQvbXlzcWwg L3Vzci9saWIvbXlzcWwgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2FsL2xpYiAvdXNyL2xvY2Fs L2xpYi9teXNxbCAvdXNyL2xvY2FsL215c3FsL2xpYiAvdXNyL2xvY2FsL215c3FsL2xpYi9teXNx bCAvb3B0L215c3FsL2xpYiAvb3B0L215c3FsL2xpYi9teXNxbCIKKysJCU1ZU1FMX2luY19jaGVj az0iL3Vzci9pbmNsdWRlL215c3FsIC91c3IvbG9jYWwvaW5jbHVkZS9teXNxbCAvdXNyL2xvY2Fs L215c3FsL2luY2x1ZGUgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRlL215c3FsIC9vcHQvbXlzcWwv aW5jbHVkZS9teXNxbCIKKysJCU1ZU1FMX2Jpbl9jaGVjaz0iL3Vzci9iaW4gL3Vzci9sb2NhbC9i aW4gL3Vzci9sb2NhbC9teXNxbC9iaW4iXSkKKysKKysJQUNfQVJHX1dJVEgobXlzcWwtbGliLAor KwkJWyAgLS13aXRoLW15c3FsLWxpYj08cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgbGli cmFyeSBpbnN0YWxsYXRpb25dLAorKwkJW01ZU1FMX2xpYl9jaGVjaz0iJHdpdGhfbXlzcWxfbGli ICR3aXRoX215c3FsX2xpYi9saWI2NCAkd2l0aF9teXNxbF9saWIvbGliICR3aXRoX215c3FsX2xp Yi9saWI2NC9teXNxbCAkd2l0aF9teXNxbF9saWIvbGliL215c3FsIl0pCisrCisrCUFDX0FSR19X SVRIKG15c3FsLWluY2x1ZGUsCisrCQlbICAtLXdpdGgtbXlzcWwtaW5jbHVkZT08cGF0aD4gZGly ZWN0b3J5IHBhdGggb2YgTXlTUUwgaGVhZGVyIGluc3RhbGxhdGlvbl0sCisrCQlbTVlTUUxfaW5j X2NoZWNrPSIkd2l0aF9teXNxbF9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5jbHVkZSAk d2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUvbXlzcWwiXSkKKysKKysKKysgICAgIworKwkjIExv b2sgZm9yIE15U1FMIENvbmZpZ3VyYXRpb24gU2NyaXB0CisrCSMKKysJQUNfTVNHX0NIRUNLSU5H KFtmb3IgTXlTUUwgY29uZmlndXJhdGlvbiBzY3JpcHRdKQorKwlNWVNRTF9DT05GSUc9CisrCU1Z U1FMX2JpbmRpcj0KKysJZm9yIG0gaW4gJE1ZU1FMX2Jpbl9jaGVjaworKwkJZG8KKysJCQlpZiB0 ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWxfY29uZmlnIgorKwkJCXRoZW4KKysJCQkJ TVlTUUxfQ09ORklHPSRtL215c3FsX2NvbmZpZworKwkJCQlNWVNRTF9iaW5kaXI9JG0KKysJCQli cmVhaworKwkJZmkKKysJZG9uZQorKworKwlpZiB0ZXN0IC16ICIkTVlTUUxfYmluZGlyIgorKwl0 aGVuCisrCQlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5kICRNWVNRTF9DT05GSUcgYmluYXJ5IGlu ICckTVlTUUxfYmluX2NoZWNrJ10pCisrCWZpCisrCisrCWNhc2UgIiRNWVNRTF9iaW5kaXIiIGlu CisrCQkvKiApIDs7CisrCQkqICkgIEFDX01TR19FUlJPUihbVGhlIE15U1FMIGJpbmFyeSBkaXJl Y3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworKwll c2FjCisrCisrCUFDX01TR19SRVNVTFQoWyRNWVNRTF9DT05GSUddKQorKworKyMJQUNfUEFUSF9Q Uk9HKE1ZU1FMX0NPTkZJRywgbXlzcWxfY29uZmlnLCAkTVlTUUxfYmluZGlyKQorKworKwkjCisr CSMgRGVjaWRlIHdoaWNoIEMgQVBJIGxpYnJhcnkgdG8gdXNlLCBiYXNlZCBvbiB0aHJlYWQgc3Vw cG9ydAorKwkjCisrCWlmIHRlc3QgIngkYWN4X3B0aHJlYWRfb2siID0geHllcworKwl0aGVuCisr CQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudF9yCisrCQlNWVNRTF9MSUJfT1BUSU9OPWxpYnNfcgor KwllbHNlCisrCQlNWVNRTF9DX0xJQj1teXNxbGNsaWVudAorKwkJTVlTUUxfTElCX09QVElPTj1s aWJzCisrCWZpCisrCisrCWlmIHRlc3QgIngke01ZU1FMX0NPTkZJR30xIiA9ICJ4MSIKKysJdGhl bgorKwkJTVlTUUxfVkVSU0lPTj1gJHtNWVNRTF9DT05GSUd9IC0tdmVyc2lvbmAKKysJCU1ZU1FM X0NGTEFHUz1gJHtNWVNRTF9DT05GSUd9IC0tY2ZsYWdzYAorKwkJTVlTUUxfTElCUz1gJHtNWVNR TF9DT05GSUd9IC0tJHtNWVNRTF9MSUJfT1BUSU9OfWAKKysJZWxzZQorKwkJIworKwkJIyBMb29r IGZvciBNeVNRTCBDIEFQSSBsaWJyYXJ5CisrCQkjCisrCQlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBN eVNRTCBsaWJyYXJ5IGRpcmVjdG9yeV0pCisrCQlNWVNRTF9saWJkaXI9CisrCQlmb3IgbSBpbiAk TVlTUUxfbGliX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiBcCisrCQkJCSh0 ZXN0IC1mICIkbS9saWIkTVlTUUxfQ19MSUIuc28iIFwKKysJCQkJfHwgdGVzdCAtZiAiJG0vbGli JE1ZU1FMX0NfTElCLmEiKQorKwkJCXRoZW4KKysJCQkJTVlTUUxfbGliZGlyPSRtCisrCQkJCWJy ZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9saWJkaXIiCisr CQl0aGVuCisrCQkJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkTVlTUUxfQ19MSUIgbGlicmFy eSBpbiAnJE1ZU1FMX2xpYl9jaGVjayddKQorKwkJZmkKKysKKysJCWNhc2UgIiRNWVNRTF9saWJk aXIiIGluCisrCQkJLyogKSA7OworKwkJCSogKSAgQUNfTVNHX0VSUk9SKFtUaGUgTXlTUUwgbGli cmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9saWJkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5d KSA7OworKwkJZXNhYworKworKwkJQUNfTVNHX1JFU1VMVChbJE1ZU1FMX2xpYmRpcl0pCisrCisr IwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIgaW4KKysjCQkgIC91c3IvbGliKSA7OworKyMJCSAgKikg TERGTEFHUz0iJExERkxBR1MgLUwke01ZU1FMX2xpYmRpcn0iIDs7CisrIwkJZXNhYworKworKwkJ IworKwkJIyBMb29rIGZvciBNeVNRTCBDIEFQSSBoZWFkZXJzCisrCQkjCisrCQlBQ19NU0dfQ0hF Q0tJTkcoW2ZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeV0pCisrCQlNWVNRTF9pbmNkaXI9Cisr CQlmb3IgbSBpbiAkTVlTUUxfaW5jX2NoZWNrCisrCQlkbworKwkJCWlmIHRlc3QgLWQgIiRtIiAm JiB0ZXN0IC1mICIkbS9teXNxbC5oIgorKwkJCXRoZW4KKysJCQkJTVlTUUxfaW5jZGlyPSRtCisr CQkJCWJyZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3QgLXogIiRNWVNRTF9pbmNk aXIiCisrCQl0aGVuCisrCQkJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgTXlTUUwgaW5j bHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snXSkKKysJCWZpCisrCisrCQljYXNlICIkTVlT UUxfaW5jZGlyIiBpbgorKwkJCSAvKiApIDs7CisrCQkJICogKSAgQUNfTVNHX0VSUk9SKFtUaGUg TXlTUUwgaW5jbHVkZSBkaXJlY3RvcnkgKCRNWVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1 dGUgcGF0aC5dKSA7OworKwkJZXNhYworKworKwkJQUNfTVNHX1JFU1VMVChbJE1ZU1FMX2luY2Rp cl0pCisrCisrCQlNWVNRTF9WRVJTSU9OPWBncmVwICJkZWZpbmUgTVlTUUxfU0VSVkVSX1ZFUlNJ T04iICRNWVNRTF9pbmNkaXIvbXlzcWxfdmVyc2lvbi5oIHwgY3V0IC1kXCIgLWYyYAorKwkJTVlT UUxfQ0ZMQUdTPSItSSR7TVlTUUxfaW5jZGlyfSIKKysJCU1ZU1FMX0xJQlM9Ii1MJHtNWVNRTF9s aWJkaXJ9IC1sJHtNWVNRTF9DX0xJQn0iCisrCWZpCisrCisrCUFDX1NVQlNUKE1ZU1FMX1ZFUlNJ T04pCisrCUFDX1NVQlNUKE1ZU1FMX0NGTEFHUykKKysJQUNfU1VCU1QoTVlTUUxfTElCUykKKysK KysJc2F2ZV9MSUJTPSIkTElCUyIKKysJTElCUz0iJExJQlMgJE1ZU1FMX0xJQlMiCisrCUFDX0NI RUNLX0xJQigkTVlTUUxfQ19MSUIsIG15c3FsX3N0b3JlX3Jlc3VsdCwKKysgICAgICAgCQkJW10s IAorKyAgICAgICAgICAgICAgIAlbQUNfTVNHX0VSUk9SKFtDb3VsZCBub3QgZmluZCB3b3JraW5n IE15U1FMIGNsaWVudCBsaWJyYXJ5IV0pXQorKyAgICAgICAgICAgICAgIAkpCisrCUFDX1NVQlNU KE1ZU1FMX0NfTElCKQorKwlMSUJTPSIkc2F2ZV9MSUJTIgorK10pIGRubCBBWF9NWVNRTAorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvYXhfb3JhY2xlX29jaS5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNr L2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00CTIwMTAt MDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDI4NiBAQAorK2RubCAk SWQ6IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaCx2 IDEuMSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJuYXVkIEV4cCAkCisrZG5sCisrZG5sIEBz eW5vcHNpcyBBWF9MSUJfT1JBQ0xFX09DSShbTUlOSU1VTS1WRVJTSU9OXSkKKytkbmwKKytkbmwg VGhpcyBtYWNybyBwcm92aWRlcyB0ZXN0cyBvZiBhdmFpbGFiaWxpdHkgb2YgT3JhY2xlIE9DSSBB UEkKKytkbmwgb2YgcGFydGljdWxhciB2ZXJzaW9uIG9yIG5ld2VyLgorK2RubCBUaGlzIG1hY3Jv cyBjaGVja3MgZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBhbmQgbGlicmFyaWVzIAorK2RubCBhbmQg ZGVmaW5lcyBjb21waWxhdGlvbiBmbGFncworK2RubCAKKytkbmwgTWFjcm8gc3VwcG9ydHMgZm9s bG93aW5nIG9wdGlvbnMgYW5kIHRoZWlyIHZhbHVlczoKKytkbmwgMSkgU2luZ2xlLW9wdGlvbiB1 c2FnZToKKytkbmwgLS13aXRoLW9yYWNsZSAtIHBhdGggdG8gT1JBQ0xFX0hPTUUgZGlyZWN0b3J5 CisrZG5sIDIpIFR3by1vcHRpb25zIHVzYWdlIChib3RoIG9wdGlvbnMgYXJlIHJlcXVpcmVkKToK KytkbmwgLS13aXRoLW9yYWNsZS1pbmNsdWRlIC0gcGF0aCB0byBkaXJlY3Rvcnkgd2l0aCBPQ0kg aGVhZGVycworK2RubCAtLXdpdGgtb3JhY2xlLWxpYiAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGgg T0NJIGxpYnJhcmllcyAKKytkbmwKKytkbmwgTk9URTogVGhlc2Ugb3B0aW9ucyBkZXNjcmliZWQg YWJvdmUgZG9lcyBub3QgdGFrZSB5ZXN8bm8gdmFsdWVzLgorK2RubCBJZiAneWVzJyB2YWx1ZSBp cyBwYXNzZWQsIHRoZW4gV0FSTklORyBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkLAorK2RubCAn bm8nIHZhbHVlLCBhcyB3ZWxsIGFzIHRoZSAtLXdpdGhvdXQtb3JhY2xlKiB2YXJpYXRpb25zIHdp bGwgY2F1c2UKKytkbmwgdGhlIG1hY3JvIHdvbid0IGNoZWNrIGVueXRoaW5nLgorK2RubAorK2Ru bCBUaGlzIG1hY3JvIGNhbGxzOgorK2RubAorK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfQ0ZM QUdTKQorK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfTERGTEFHUykKKytkbmwgICBBQ19TVUJT VChPUkFDTEVfT0NJX1ZFUlNJT04pCisrZG5sCisrZG5sIEFuZCBzZXRzOgorK2RubAorK2RubCAg IEhBVkVfT1JBQ0xFCisrZG5sCisrZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2Ru bCBAY2F0ZWdvcnkgQ3h4CisrZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9z a290Lm5ldD4KKytkbmwgQHZlcnNpb24gJERhdGU6IDIwMTAvMDEvMjMgMTU6MTY6NDkgJAorK2Ru bCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisrZG5sCisrZG5sICRJZDogc29jaS0zLjAuMC0xNi1m aXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNoLHYgMS4xIDIwMTAvMDEvMjMgMTU6 MTY6NDkgZGVuaXNhcm5hdWQgRXhwICQKKytkbmwKKytBQ19ERUZVTihbQVhfTElCX09SQUNMRV9P Q0ldLAorK1sKKysgICAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKQorKyAgICBBQ19B UkdfV0lUSChbb3JhY2xlXSwKKysgICAgICAgIEFDX0hFTFBfU1RSSU5HKFstLXdpdGgtb3JhY2xl PUA8OkBESVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJIGZyb20gZ2l2 ZW4gcGF0aCB0byBPcmFjbGUgaG9tZSBkaXJlY3RvcnldCisrICAgICAgICApLAorKyAgICAgICAg WworKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAg ICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCisrICAgICAgICAgICAgICAgIG9yYWNs ZV9ob21lX2Rpcj0iJE9SQUNMRV9IT01FIgorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCisrICAgICAgICAgICAgZmkgCisrICAgICAgICBmaQor KyAgICAgICAgXSwKKysgICAgICAgIFsKKysgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9N RSI7IHRoZW4KKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysg ICAgICAgIGVsc2UKKysgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgIGZp IAorKyAgICAgICAgXQorKyAgICApCisrCisrICAgIEFDX0FSR19XSVRIKFtvcmFjbGUtaW5jbHVk ZV0sCisrICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9yYWNsZS1pbmNsdWRlPUA8OkBE SVJAOj5AXSwKKysgICAgICAgICAgICBbdXNlIE9yYWNsZSBPQ0kgQVBJIGhlYWRlcnMgZnJvbSBn aXZlbiBwYXRoXQorKyAgICAgICAgKSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9pbmNsdWRlX2Rp cj0iJHdpdGh2YWwiXSwKKysgICAgICAgIFtvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIl0KKysg ICAgKQorKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlLWxpYl0sCisrICAgICAgICBBQ19IRUxQX1NU UklORyhbLS13aXRoLW9yYWNsZS1saWI9QDw6QERJUkA6PkBdLAorKyAgICAgICAgICAgIFt1c2Ug T3JhY2xlIE9DSSBBUEkgbGlicmFyaWVzIGZyb20gZ2l2ZW4gcGF0aF0KKysgICAgICAgICksCisr ICAgICAgICBbb3JhY2xlX2hvbWVfbGliX2Rpcj0iJHdpdGh2YWwiXSwKKysgICAgICAgIFtvcmFj bGVfaG9tZV9saWJfZGlyPSIiXQorKyAgICApCisrCisrICAgIE9SQUNMRV9PQ0lfQ0ZMQUdTPSIi CisrICAgIE9SQUNMRV9PQ0lfTERGTEFHUz0iIgorKyAgICBPUkFDTEVfT0NJX1ZFUlNJT049IiIK KysKKysgICAgZG5sCisrICAgIGRubCBDb2xsZWN0IGluY2x1ZGUvbGliIHBhdGhzCisrICAgIGRu bCAKKysgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9Im5vIgorKworKyAgICBpZiB0ZXN0IC1u ICIkb3JhY2xlX2hvbWVfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9o b21lX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21lX2RpciIgIT0gInllcyI7IHRoZW4KKysg ICAgICAgICAgICBkbmwgT1JBQ0xFX0hPTUUgcGF0aCBwcm92aWRlZAorKyAgICAgICAgICAgIAor KyAgICAgICAgICAgIGRubCBQcmltYXJ5IHBhdGggdG8gT0NJIGhlYWRlcnMsIGF2YWlsYWJsZSBp biBPcmFjbGU+PTEwCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hv bWVfZGlyL3JkYm1zL3B1YmxpYyIKKysgICAgICAgICAgICAKKysgICAgICAgICAgICBkbmwgU2Vj b25kYXJ5IHBhdGggdG8gT0NJIGhlYWRlcnMgdXNlZCBieSBvbGRlciB2ZXJzaW9ucworKyAgICAg ICAgICAgIG9yYWNsZV9pbmNsdWRlX2RpcjI9IiRvcmFjbGVfaG9tZV9kaXIvcmRibXMvZGVtbyIK KysKKysgICAgICAgICAgICBkbmwgTGlicmFyeSBwYXRoCisrICAgICAgICAgICAgb3JhY2xlX2xp Yl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvbGliIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xl X2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25v X3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgIGVsaWYgdGVzdCAtbiAiJG9yYWNsZV9o b21lX2luY2x1ZGVfZGlyIiAtbyAtbiAiJG9yYWNsZV9ob21lX2xpYl9kaXIiOyB0aGVuCisrCisr ICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJubyIgLWEgIiRv cmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gInllcyI7IHRoZW4KKysgICAgICAgICAgICBvcmFj bGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIKKysgICAgICAgIGVsaWYg dGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAg ICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKKysgICAgICAgIGZpCisrCisrICAgICAg ICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gIm5vIiAtYSAiJG9yYWNsZV9ob21l X2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2xpYl9kaXI9IiRv cmFjbGVfaG9tZV9saWJfZGlyIgorKyAgICAgICAgZWxpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGli X2RpciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRo PSJ5ZXMiCisrICAgICAgICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0ICIkd2FudF9vcmFj bGVfYnV0X25vX3BhdGgiID0gInllcyI7IHRoZW4KKysgICAgICAgIEFDX01TR19XQVJOKFtPcmFj bGUgc3VwcG9ydCBpcyByZXF1ZXN0ZWQgYnV0IG5vIE9yYWNsZSBwYXRocyBoYXZlIGJlZW4gcHJv dmlkZWQuIFwKKytQbGVhc2UsIGxvY2F0ZSBPcmFjbGUgZGlyZWN0b3JpZXMgdXNpbmcgLS13aXRo LW9yYWNsZSBvciBcCisrLS13aXRoLW9yYWNsZS1pbmNsdWRlIGFuZCAtLXdpdGgtb3JhY2xlLWxp YiBvcHRpb25zLl0pCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hlY2sgT0NJIGZp bGVzCisrICAgIGRubAorKyAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyIiAtYSAt biAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgc2F2ZWRfQ1BQRkxBR1M9IiRD UFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkb3JhY2xlX2luY2x1ZGVf ZGlyIgorKworKyAgICAgICAgZG5sIEFkZGl0aW9uYWwgcGF0aCBmb3Igb2xkZXIgT3JhY2xlIGlu c3RhbGxhdGlvbnMgCisrICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7 IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRl X2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBGaWd1cmUgb3V0IGlmIHdlIGFyZSBi dWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICAgICAg ICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqY3lnd2luKiApICBXSU4z Mj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1ubyA7OworKyAgICAgICAgZXNhYworKwor KyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKKysgICAgICAgIHRoZW4KKysgICAgICAg ICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKKysgICAgICAgIGVsc2UKKysgICAgICAg ICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBmaQorKworKyAgICAgICAgc2F2ZWRfTERG TEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9MSUJTPSIkTElCUyIKKysgICAgICAgIG9j aV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysgICAgICAgIExERkxBR1M9IiRMREZMQUdT ICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRMSUJTICRvY2lfbGlicyIKKysKKysgICAg ICAgIGRubAorKyAgICAgICAgZG5sIENoZWNrIE9DSSBoZWFkZXJzCisrICAgICAgICBkbmwKKysg ICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE9yYWNsZSBPQ0kgaGVhZGVycyBpbiAkb3JhY2xl X2luY2x1ZGVfZGlyXSkKKysKKysgICAgICAgIEFDX0xBTkdfUFVTSChDKyspCisrICAgICAgICBB Q19DT01QSUxFX0lGRUxTRShbCisrICAgICAgICAgICAgQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPG9jaS5oPl1dLAorKyAgICAgICAgICAgICAgICBbWworKyNpZiBkZWZpbmVkKE9DSV9N QUpPUl9WRVJTSU9OKQorKyNpZiBPQ0lfTUFKT1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1Jf VkVSU0lPTiA9PSAyCisrLy8gT3JhY2xlIDEwLjIgZGV0ZWN0ZWQKKysjZW5kaWYKKysjZWxpZiBk ZWZpbmVkKE9DSV9WN19TWU5UQVgpCisrLy8gT0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAorKy8v IFRPRE8gLSBtbG9za290OiBmaW5kIGJldHRlciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVy c2lvbnM7IAorKyNlbHNlCisrIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQK KysjZW5kaWYKKysgICAgICAgICAgICAgICAgXV0KKysgICAgICAgICAgICApXSwKKysgICAgICAg ICAgICBbCisrICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNsdWRl X2RpciIKKysKKysgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7 IHRoZW4KKysgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJX0NG TEFHUyAtSSRvcmFjbGVfaW5jbHVkZV9kaXIyIgorKyAgICAgICAgICAgIGZpCisrCisrICAgICAg ICAgICAgb2NpX2hlYWRlcl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQo W3llc10pCisrICAgICAgICAgICAgXSwKKysgICAgICAgICAgICBbCisrICAgICAgICAgICAgb2Np X2hlYWRlcl9mb3VuZD0ibm8iCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm90IGZvdW5k XSkKKysgICAgICAgICAgICBdCisrICAgICAgICApCisrICAgICAgICBBQ19MQU5HX1BPUChbQysr XSkKKysgICAgICAgIAorKyAgICAgICAgZG5sCisrICAgICAgICBkbmwgQ2hlY2sgT0NJIGxpYnJh cmllcworKyAgICAgICAgZG5sCisrICAgICAgICBpZiB0ZXN0ICIkb2NpX2hlYWRlcl9mb3VuZCIg PSAieWVzIjsgdGhlbgorKworKyAgICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIE9yYWNs ZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpcl0pCisrCisrICAgICAgICAgICAgQUNf TEFOR19QVVNIKEMrKykKKysgICAgICAgICAgICBBQ19MSU5LX0lGRUxTRShbCisrICAgICAgICAg ICAgICAgIEFDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxvY2kuaD5dXSwKKysgICAgICAg ICAgICAgICAgICAgIFtbCisrT0NJRW52KiBlbnZoID0gMDsKKytPQ0lFbnZDcmVhdGUoJmVudmgs IE9DSV9ERUZBVUxULCAwLCAwLCAwLCAwLCAwLCAwKTsKKytpZiAoZW52aCkgT0NJSGFuZGxlRnJl ZShlbnZoLCBPQ0lfSFRZUEVfRU5WKTsKKysgICAgICAgICAgICAgICAgICAgIF1dCisrICAgICAg ICAgICAgICAgICldLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAgICAgICAgICAgIE9SQUNM RV9PQ0lfTERGTEFHUz0iJG9jaV9sZGZsYWdzICRvY2lfbGlicyIKKysgICAgICAgICAgICAgICAg b2NpX2xpYl9mb3VuZD0ieWVzIgorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFt5ZXNd KQorKyAgICAgICAgICAgICAgICBdLAorKyAgICAgICAgICAgICAgICBbCisrICAgICAgICAgICAg ICAgIG9jaV9saWJfZm91bmQ9Im5vIgorKyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtu b3QgZm91bmRdKQorKyAgICAgICAgICAgICAgICBdCisrICAgICAgICAgICAgKQorKyAgICAgICAg ICAgIEFDX0xBTkdfUE9QKFtDKytdKQorKyAgICAgICAgZmkKKysKKysgICAgICAgIENQUEZMQUdT PSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdTPSIkc2F2ZWRfTERGTEFHUyIKKysg ICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQorKworKyAgICBkbmwKKysgICAgZG5s IENoZWNrIHJlcXVpcmVkIHZlcnNpb24gb2YgT3JhY2xlIGlzIGF2YWlsYWJsZQorKyAgICBkbmwK KysgICAgb3JhY2xlX3ZlcnNpb25fcmVxPWlmZWxzZShbJDFdLCBbXSwgW10sIFskMV0pCisrCisr ICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3Vu ZCIgPSAieWVzIiAtYSBcCisrICAgICAgICAtbiAiJG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4K KysKKysgICAgICAgIG9yYWNsZV92ZXJzaW9uX21ham9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rp ci9vY2kuaCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUu Kk9DSV9NQUpPUl9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg c2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZFUlNJT04gICovLycgXAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysgICAg ICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5P Ul9WRVJTSU9OLionIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdz LyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICovLycgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4qXCpcLy8vJ2AKKysKKysgICAgICAgIEFDX01T R19DSEVDS0lORyhbaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49ICRvcmFjbGVfdmVyc2lvbl9y ZXFdKQorKworKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAt biAkIm9yYWNsZV92ZXJzaW9uX21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9P Q0lfVkVSU0lPTj0iJG9yYWNsZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIK KysKKysgICAgICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVpcmVkIHZlcnNpb24gc3RyaW5nIG9m IE9yYWNsZQorKyAgICAgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVz ZW50YXRpb24KKysgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJG9y YWNsZV92ZXJzaW9uX3JlcSA6ICdcKFtbMC05XV0qXCknYAorKyAgICAgICAgICAgIG9yYWNsZV92 ZXJzaW9uX3JlcV9taW5vcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1tbMC05XV0qXC5c KFtbMC05XV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXI9 YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9y IFwqIDEwMDBgCisrCisrICAgICAgICAgICAgZG5sIENhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJl c2VudGF0aW9uIAorKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX251bWJlcj1gZXhwciAkb3Jh Y2xlX3ZlcnNpb25fbWFqb3IgXCogMTAwMDAwMCBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9taW5vciBcKiAxMDAwYAorKworKyAgICAgICAg ICAgIG9yYWNsZV92ZXJzaW9uX2NoZWNrPWBleHByICRvcmFjbGVfdmVyc2lvbl9udW1iZXIgXD5c PSAkb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcmAKKysgICAgICAgICAgICBpZiB0ZXN0ICIkb3Jh Y2xlX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCisrICAgICAgICAgICAgICAgIEFDX01TR19S RVNVTFQoW3llc10pCisrICAgICAgICAgICAgICAgIEFDX0RFRklORShIQVZFX09SQUNMRSwgWzFd LCBbRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFyeSBpcyBhdmFpbGFibGVdKQor KyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQor KyAgICAgICAgICAgICAgICBBQ19NU0dfRVJST1IoW09yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9O IGZvdW5kLCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxXSkKKysg ICAgICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVS U0lPTj0iVU5LTk9XTiIKKysgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAg ICAgICAgQUNfTVNHX1dBUk4oW09yYWNsZSB2ZXJzaW9uIHVua25vd24sIHByb2JhYmx5IE9DSSBv bGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlXSkKKysgICAgICAgIGZpCisrICAgIGZpCisrCisr ICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX1ZFUlNJT05dKQorKyAgICBBQ19TVUJTVChbT1JBQ0xF X09DSV9DRkxBR1NdKQorKyAgICBBQ19TVUJTVChbT1JBQ0xFX09DSV9MREZMQUdTXSkKKytdKQor ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IHNvY2kt My4wLjBfdHJlcDMwMC9jb25maWcvYXhfcG9zdGdyZXNxbC5tNAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00CTIw MTAtMDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDE3MSBAQAorK2Ru bCAkSWQ6IHNvY2ktMy4wLjAtMTYtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRj aCx2IDEuMSAyMDEwLzAxLzIzIDE1OjE2OjQ5IGRlbmlzYXJuYXVkIEV4cCAkCisrZG5sCisrZG5s IEBzeW5vcHNpcyBBWF9MSUJfUE9TVEdSRVNRTChbTUlOSU1VTS1WRVJTSU9OXSkKKytkbmwKKytk bmwgVGhpcyBtYWNybyBwcm92aWRlcyB0ZXN0cyBvZiBhdmFpbGFiaWxpdHkgb2YgUG9zdGdyZVNR TCAnbGlicHEnIGxpYnJhcnkKKytkbmwgb2YgcGFydGljdWxhciB2ZXJzaW9uIG9yIG5ld2VyLgor K2RubCAKKytkbmwgQVhfTElCX1BPU1RHUkVTUUwgbWFjcm8gdGFrZXMgb25seSBvbmUgYXJndW1l bnQgd2hpY2ggaXMgb3B0aW9uYWwuIElmIHRoZXJlIGlzIG5vIAorK2RubCByZXF1aXJlZCB2ZXJz aW9uIHBhc3NlZCwgdGhlbiBtYWNybyBkb2VzIG5vdCBydW4gdmVyc2lvbiB0ZXN0LgorK2RubAor K2RubCBUaGUgLS13aXRoLXBvc3RncmVzcWwgb3B0aW9uIHRha2VzIG9uZSBvZiB0aHJlZSBwb3Nz aWJsZSB2YWx1ZXM6CisrZG5sIG5vICAgLSBkbyBub3QgY2hlY2sgZm9yIFBvc3RncmVTUUwgY2xp ZW50IGxpYnJhcnkKKytkbmwgeWVzICAtIGRvIGNoZWNrIGZvciBQb3N0Z3JlU1FMIGxpYnJhcnkg aW4gc3RhbmRhcmQgbG9jYXRpb25zCisrZG5sICAgICAgICAocGdfY29uZmlnIHNob3VsZCBiZSBp biB0aGUgUEFUSCkKKytkbmwgcGF0aCAtIGNvbXBsZXRlIHBhdGggdG8gcGdfY29uZmlnIHV0aWxp dHksIHVzZSB0aGlzIG9wdGlvbgorK2RubCAgICAgICAgaWYgcGdfY29uZmlnIGNhbid0IGJlIGZv dW5kIGluIHRoZSBQQVRICisrZG5sCisrZG5sIFRoaXMgbWFjcm8gY2FsbHM6CisrZG5sCisrZG5s ICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9DRkxBR1MpCisrZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNR TF9MREZMQUdTKQorK2RubCAgIEFDX1NVQlNUKFBPU1RHUkVTUUxfVkVSU0lPTikKKytkbmwKKytk bmwgQW5kIHNldHM6CisrZG5sCisrZG5sICAgSEFWRV9QT1NUR1JFU1FMCisrZG5sCisrZG5sIEBj YXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcworK2RubCBAY2F0ZWdvcnkgQ3h4CisrZG5sIEBhdXRo b3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4KKytkbmwgQHZlcnNpb24gJERh dGU6IDIwMTAvMDEvMjMgMTU6MTY6NDkgJAorK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCisr ZG5sCisrZG5sICRJZDogc29jaS0zLjAuMC0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmls aXR5LnBhdGNoLHYgMS4xIDIwMTAvMDEvMjMgMTU6MTY6NDkgZGVuaXNhcm5hdWQgRXhwICQKKytk bmwKKytBQ19ERUZVTihbQVhfTElCX1BPU1RHUkVTUUxdLAorK1sKKysgICAgQUNfQVJHX1dJVEgo W3Bvc3RncmVzcWxdLAorKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1wb3N0Z3Jlc3Fs PUA8OkBBUkdAOj5AXSwKKysgICAgICAgICAgICBbdXNlIFBvc3RncmVTUUwgbGlicmFyeSBAPDpA ZGVmYXVsdD15ZXNAOj5ALCBvcHRpb25hbGx5IHNwZWNpZnkgcGF0aCB0byBwZ19jb25maWddCisr ICAgICAgICApLAorKyAgICAgICAgWworKwlQT1NUR1JFU1FMX2luY19jaGVjaz0iJHdpdGhfcG9z dGdyZXNxbC9pbmNsdWRlIgorKyAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhl bgorKyAgICAgICAgICAgIHdhbnRfcG9zdGdyZXNxbD0ibm8iCisrICAgICAgICBlbGlmIHRlc3Qg IiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5 ZXMiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCisr ICAgICAgICAgICAgUEdfQ09ORklHPSIkd2l0aHZhbCIKKysgICAgICAgIGZpCisrICAgICAgICBd LAorKyAgICAgICAgW3dhbnRfcG9zdGdyZXNxbD0ieWVzIgorKwlQT1NUR1JFU1FMX2luY19jaGVj az0iL3Vzci9pbmNsdWRlIC91c3IvbG9jYWwgL29wdCJdCisrICAgICkKKysKKysgICAgUE9TVEdS RVNRTF9DRkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCisrICAgIFBPU1RHUkVT UUxfUE9TVEdSRVNRTD0iIgorKworKyAgICBkbmwKKysgICAgZG5sIENoZWNrIFBvc3RncmVTUUwg bGlicmFyaWVzIChsaWJwcSkKKysgICAgZG5sCisrICAgIAorKyAgICBpZiB0ZXN0ICIkd2FudF9w b3N0Z3Jlc3FsIiA9ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09O RklHIiAtbyB0ZXN0OyB0aGVuCisrICAgICAgICAgICAgQUNfUEFUSF9QUk9HKFtQR19DT05GSUdd LCBbcGdfY29uZmlnXSwgW10pCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAhIC14 ICIkUEdfQ09ORklHIjsgdGhlbgorKyAgICAgICAgICAgIEFDX01TR19FUlJPUihbJFBHX0NPTkZJ RyBkb2VzIG5vdCBleGlzdCBvciBpdCBpcyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlXSkKKysgICAg ICAgICAgICBQR19DT05GSUc9Im5vIgorKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5v IgorKyAgICAgICAgZmkKKysKKysgICAgICAgIGlmIHRlc3QgIiRQR19DT05GSUciICE9ICJubyI7 IHRoZW4KKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgIyBMb29rIGZvciBQb3N0Z3Jlc3Fs IEMgQVBJIGhlYWRlcnMKKysgICAgICAgICAgICAjCisrICAgICAgICAgICAgQUNfTVNHX0NIRUNL SU5HKFtmb3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVjdG9yeV0pCisrICAgICAgICAgICAgUE9T VEdSRVNRTF9pbmNkaXI9CisrICAgICAgICAgICAgZm9yIHBvc3RncmVzcWxfaW5jX2RpciBpbiAk UE9TVEdSRVNRTF9pbmNfY2hlY2sKKysgICAgICAgICAgICBkbworKyAgICAgICAgICAgICAgICBp ZiB0ZXN0IC1kICIkcG9zdGdyZXNxbF9pbmNfZGlyIiBcCisrICAgICAgICAgICAgICAgICYmIHRl c3QgLWYgIiRwb3N0Z3Jlc3FsX2luY19kaXIvcG9zdGdyZXNfZXh0LmgiCisrICAgICAgICAgICAg ICAgIHRoZW4KKysgICAgICAgICAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPSRwb3N0Z3Jl c3FsX2luY19kaXIKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAg IGZpCisrICAgICAgICAgICAgZG9uZQorKworKyAgICAgICAgICAgIGlmIHRlc3QgLXogIiRQT1NU R1JFU1FMX2luY2RpciIKKysgICAgICAgICAgICB0aGVuCisrICAgICAgICAgICAgICAgIEFDX01T R19FUlJPUihbRGlkbid0IGZpbmQgdGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NU R1JFU1FMX2luY19jaGVjayddKQorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgY2Fz ZSAiJFBPU1RHUkVTUUxfaW5jZGlyIiBpbgorKyAgICAgICAgICAgICAgICAvKiApIDs7CisrICAg ICAgICAgICAgICAgICogKSAgQUNfTVNHX0VSUk9SKFtUaGUgUG9zdGdyZXNxbCBpbmNsdWRlIGRp cmVjdG9yeSAoJFBPU1RHUkVTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkg OzsKKysgICAgICAgICAgICBlc2FjCisrCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbJFBP U1RHUkVTUUxfaW5jZGlyXSkKKysKKysgICAgICAgICAgICBpZiB0ZXN0ICIkUE9TVEdSRVNRTF9p bmNkaXIiID0gIi91c3IvaW5jbHVkZSI7IHRoZW4KKysgICAgICAgICAgICAgIFBPU1RHUkVTUUxf Q0ZMQUdTPSIiCisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgUE9TVEdSRVNRTF9D RkxBR1M9Ii1JJHtQT1NUR1JFU1FMX2luY2Rpcn0iCisrICAgICAgICAgICAgZmkKKysKKysgICAg ICAgICAgICBQT1NUR1JFU1FMX0xERkxBR1M9Ii1MYCRQR19DT05GSUcgLS1saWJkaXJgIC1scHEi CisrCisrICAgICAgICAgICAgUE9TVEdSRVNRTF9WRVJTSU9OPWAkUEdfQ09ORklHIC0tdmVyc2lv biB8IHNlZCAtZSAncyNQb3N0Z3JlU1FMICMjJ2AKKysKKysgICAgICAgICAgICBBQ19ERUZJTkUo W0hBVkVfUE9TVEdSRVNRTF0sIFsxXSwgW0RlZmluZSB0byAxIGlmIFBvc3RncmVTUUwgbGlicmFy aWVzIGFyZSBhdmFpbGFibGVdKQorKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGZvdW5kX3Bv c3RncmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBmb3VuZF9wb3N0Z3Jl c3FsPSJubyIKKysgICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGRubAorKyAgICBkbmwgQ2hl Y2sgaWYgcmVxdWlyZWQgdmVyc2lvbiBvZiBQb3N0Z3JlU1FMIGlzIGF2YWlsYWJsZQorKyAgICBk bmwKKysgICAgCisrCisrICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9aWZlbHNlKFskMV0sIFtd LCBbXSwgWyQxXSkKKysKKysgICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVzcWwiID0gInllcyIg LWEgLW4gIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAgICAgQUNfTVNH X0NIRUNLSU5HKFtpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBvc3RncmVzcWxfdmVyc2lv bl9yZXFdKQorKworKyAgICAgICAgZG5sIERlY29tcG9zZSByZXF1aXJlZCB2ZXJzaW9uIHN0cmlu ZyBvZiBQb3N0Z3JlU1FMCisrICAgICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJl cHJlc2VudGF0aW9uCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHBy ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1woW1swLTldXSpcKSdgCisrICAgICAgICBwb3N0 Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDog J1tbMC05XV0qXC5cKFtbMC05XV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cV9taWNybz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbWzAtOV1dKlwuW1swLTld XSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9u X3JlcV9taWNybz0iMCIKKysgICAgICAgIGZpCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAw MDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm9gCisrCisrICAgICAgICBk bmwgRGVjb21wb3NlIHZlcnNpb24gc3RyaW5nIG9mIGluc3RhbGxlZCBQb3N0Z3JlU1FMCisrICAg ICAgICBkbmwgYW5kIGNhbGN1bGF0ZSBpdHMgbnVtYmVyIHJlcHJlc2VudGF0aW9uCisrICAgICAg ICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdc KFtbMC05XV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yPWBleHByICRQ T1NUR1JFU1FMX1ZFUlNJT04gOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAt OV1dKlwuW1swLTldXSpcLlwoW1swLTldXSpcKSdgCisrICAgICAgICBpZiB0ZXN0ICJ4JHBvc3Rn cmVzcWxfdmVyc2lvbl9taWNybyIgPSAieCI7IHRoZW4KKysgICAgICAgICAgICBwb3N0Z3Jlc3Fs X3ZlcnNpb25fbWljcm89IjAiCisrICAgICAgICBmaQorKworKyAgICAgICAgcG9zdGdyZXNxbF92 ZXJzaW9uX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVy c2lvbl9taW5vciBcKiAxMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm9gCisrCisrICAgICAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fY2hlY2s9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXIgXD5cPSAkcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCisrICAgICAgICBpZiB0ZXN0ICIkcG9zdGdyZXNxbF92 ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgorKyAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3ll c10pCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAg ICAgICAgZmkKKysgICAgZmkKKysKKysgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfVkVSU0lPTl0p CisrICAgIEFDX1NVQlNUKFtQT1NUR1JFU1FMX0NGTEFHU10pCisrICAgIEFDX1NVQlNUKFtQT1NU R1JFU1FMX0xERkxBR1NdKQorK10pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmln L2NvbmZpZy5ndWVzcyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5ndWVzcworLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jb25maWcuZ3Vlc3MJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5n dWVzcwkyMDEwLTAxLTIzIDE0OjQ0OjUwLjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwxNTAx IEBACisrIyEgL2Jpbi9zaAorKyMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0g bmFtZS4KKysjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LAorKyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1 LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5CisrIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworK3RpbWVzdGFtcD0nMjAwOS0xMS0yMCcKKysKKysjIFRoaXMgZmlsZSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisrIyB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MiBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysjIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysj IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BCisrIyAwMjExMC0xMzAxLCBVU0EuCisrIworKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlv biB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQorKyMgZGlzdHJpYnV0 ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisrIyBjb25m aWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHlvdSBtYXkgaW5jbHVkZSBp dCB1bmRlcgorKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3Ig dGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKworKworKyMgT3JpZ2luYWxseSB3cml0dGVuIGJ5 IFBlciBCb3RobmVyLiAgUGxlYXNlIHNlbmQgcGF0Y2hlcyAoY29udGV4dAorKyMgZGlmZiBmb3Jt YXQpIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBhbmQgaW5jbHVkZSBhIENoYW5nZUxvZwor KyMgZW50cnkuCisrIworKyMgVGhpcyBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgYSBjYW5vbmlj YWwgc3lzdGVtIG5hbWUgc2ltaWxhciB0bworKyMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRz LCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCisrIyBleGl0cyB3aXRo IDAuICBPdGhlcndpc2UsIGl0IGV4aXRzIHdpdGggMS4KKysjCisrIyBZb3UgY2FuIGdldCB0aGUg bGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBzY3JpcHQgZnJvbToKKysjIGh0dHA6Ly9naXQuc2F2YW5u YWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuZ3Vl c3M7aGI9SEVBRAorKworK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAorKworK3Vz YWdlPSJcCisrVXNhZ2U6ICQwIFtPUFRJT05dCisrCisrT3V0cHV0IHRoZSBjb25maWd1cmF0aW9u IG5hbWUgb2YgdGhlIHN5c3RlbSBcYCRtZScgaXMgcnVuIG9uLgorKworK09wZXJhdGlvbiBtb2Rl czoKKysgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorKyAg LXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24sIHRoZW4g ZXhpdAorKyAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4 aXQKKysKKytSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9y Zz4uIgorKworK3ZlcnNpb249IlwKKytHTlUgY29uZmlnLmd1ZXNzICgkdGltZXN0YW1wKQorKwor K09yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KKytDb3B5cmlnaHQgKEMpIDE5OTIs IDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCisr MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysKKytUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNl IGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTworK3dhcnJhbnR5OyBub3QgZXZl biBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiIKKysKKytoZWxwPSIKKytUcnkgXGAkbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4i CisrCisrIyBQYXJzZSBjb21tYW5kIGxpbmUKKyt3aGlsZSB0ZXN0ICQjIC1ndCAwIDsgZG8KKysg IGNhc2UgJDEgaW4KKysgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKysgICAgICAg ZWNobyAiJHRpbWVzdGFtcCIgOyBleGl0IDs7CisrICAgIC0tdmVyc2lvbiB8IC12ICkKKysgICAg ICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworKyAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQor KyAgICAgICBlY2hvICIkdXNhZ2UiOyBleGl0IDs7CisrICAgIC0tICkgICAgICMgU3RvcCBvcHRp b24gcHJvY2Vzc2luZworKyAgICAgICBzaGlmdDsgYnJlYWsgOzsKKysgICAgLSApCSMgVXNlIHN0 ZGluIGFzIGlucHV0LgorKyAgICAgICBicmVhayA7OworKyAgICAtKiApCisrICAgICAgIGVjaG8g IiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIgPiYyCisrICAgICAgIGV4aXQgMSA7OworKyAg ICAqICkKKysgICAgICAgYnJlYWsgOzsKKysgIGVzYWMKKytkb25lCisrCisraWYgdGVzdCAkIyAh PSAwOyB0aGVuCisrICBlY2hvICIkbWU6IHRvbyBtYW55IGFyZ3VtZW50cyRoZWxwIiA+JjIKKysg IGV4aXQgMQorK2ZpCisrCisrdHJhcCAnZXhpdCAxJyAxIDIgMTUKKysKKysjIENDX0ZPUl9CVUlM RCAtLSBjb21waWxlciB1c2VkIGJ5IHRoaXMgc2NyaXB0LiBOb3RlIHRoYXQgdGhlIHVzZSBvZiBh CisrIyBjb21waWxlciB0byBhaWQgaW4gc3lzdGVtIGRldGVjdGlvbiBpcyBkaXNjb3VyYWdlZCBh cyBpdCByZXF1aXJlcworKyMgdGVtcG9yYXJ5IGZpbGVzIHRvIGJlIGNyZWF0ZWQgYW5kLCBhcyB5 b3UgY2FuIHNlZSBiZWxvdywgaXQgaXMgYQorKyMgaGVhZGFjaGUgdG8gZGVhbCB3aXRoIGluIGEg cG9ydGFibGUgZmFzaGlvbi4KKysKKysjIEhpc3RvcmljYWxseSwgYENDX0ZPUl9CVUlMRCcgdXNl ZCB0byBiZSBuYW1lZCBgSE9TVF9DQycuIFdlIHN0aWxsCisrIyB1c2UgYEhPU1RfQ0MnIGlmIGRl ZmluZWQsIGJ1dCBpdCBpcyBkZXByZWNhdGVkLgorKworKyMgUG9ydGFibGUgdG1wIGRpcmVjdG9y eSBjcmVhdGlvbiBpbnNwaXJlZCBieSB0aGUgQXV0b2NvbmYgdGVhbS4KKysKKytzZXRfY2NfZm9y X2J1aWxkPScKKyt0cmFwICJleGl0Y29kZT1cJD87IChybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9u dWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbCkgJiYgZXhpdCBcJGV4aXRjb2RlIiAwIDsKKyt0 cmFwICJybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVs bDsgZXhpdCAxIiAxIDIgMTMgMTUgOworKzogJHtUTVBESVI9L3RtcH0gOworKyB7IHRtcD1gKHVt YXNrIDA3NyAmJiBta3RlbXAgLWQgIiRUTVBESVIvY2dYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYg dGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIgOyB9IHx8CisrIHsgdGVzdCAtbiAiJFJB TkRPTSIgJiYgdG1wPSRUTVBESVIvY2ckJC0kUkFORE9NICYmICh1bWFzayAwNzcgJiYgbWtkaXIg JHRtcCkgOyB9IHx8CisrIHsgdG1wPSRUTVBESVIvY2ctJCQgJiYgKHVtYXNrIDA3NyAmJiBta2Rp ciAkdG1wKSAmJiBlY2hvICJXYXJuaW5nOiBjcmVhdGluZyBpbnNlY3VyZSB0ZW1wIGRpcmVjdG9y eSIgPiYyIDsgfSB8fAorKyB7IGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBk aXJlY3RvcnkgaW4gJFRNUERJUiIgPiYyIDsgZXhpdCAxIDsgfSA7CisrZHVtbXk9JHRtcC9kdW1t eSA7CisrdG1wZmlsZXM9IiRkdW1teS5jICRkdW1teS5vICRkdW1teS5yZWwgJGR1bW15IiA7Cisr Y2FzZSAkQ0NfRk9SX0JVSUxELCRIT1NUX0NDLCRDQyBpbgorKyAsLCkgICAgZWNobyAiaW50IHg7 IiA+ICRkdW1teS5jIDsKKysJZm9yIGMgaW4gY2MgZ2NjIGM4OSBjOTkgOyBkbworKwkgIGlmICgk YyAtYyAtbyAkZHVtbXkubyAkZHVtbXkuYykgPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorKwkgICAg IENDX0ZPUl9CVUlMRD0iJGMiOyBicmVhayA7CisrCSAgZmkgOworKwlkb25lIDsKKysJaWYgdGVz dCB4IiRDQ19GT1JfQlVJTEQiID0geCA7IHRoZW4KKysJICBDQ19GT1JfQlVJTEQ9bm9fY29tcGls ZXJfZm91bmQgOworKwlmaQorKwk7OworKyAsLCopICAgQ0NfRk9SX0JVSUxEPSRDQyA7OworKyAs KiwqKSAgQ0NfRk9SX0JVSUxEPSRIT1NUX0NDIDs7CisrZXNhYyA7IHNldF9jY19mb3JfYnVpbGQ9 IDsnCisrCisrIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3gg d2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KKysjIChnaGF6aUBub2MucnV0Z2Vycy5lZHUg MTk5NC0wOC0yNCkKKytpZiAodGVzdCAtZiAvLmF0dGJpbi91bmFtZSkgPi9kZXYvbnVsbCAyPiYx IDsgdGhlbgorKwlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKKytmaQorKworK1VO QU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5r bm93bgorK1VOQU1FX1JFTEVBU0U9YCh1bmFtZSAtcikgMj4vZGV2L251bGxgIHx8IFVOQU1FX1JF TEVBU0U9dW5rbm93bgorK1VOQU1FX1NZU1RFTT1gKHVuYW1lIC1zKSAyPi9kZXYvbnVsbGAgIHx8 IFVOQU1FX1NZU1RFTT11bmtub3duCisrVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYv bnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCisrCisrIyBOb3RlOiBvcmRlciBpcyBzaWdu aWZpY2FudCAtIHRoZSBjYXNlIGJyYW5jaGVzIGFyZSBub3QgZXhjbHVzaXZlLgorKworK2Nhc2Ug IiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtVTkFN RV9WRVJTSU9OfSIgaW4KKysgICAgKjpOZXRCU0Q6KjoqKQorKwkjIE5ldEJTRCAobmJzZCkgdGFy Z2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgorKwkjIG1vcmUgb2Yg dGhlIHR1cHBsZXM6ICotKi1uZXRic2RlbGYqLCAqLSotbmV0YnNkYW91dCosCisrCSMgKi0qLW5l dGJzZGVjb2ZmKiBhbmQgKi0qLW5ldGJzZCouICBGb3IgdGFyZ2V0cyB0aGF0IHJlY2VudGx5Cisr CSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAorKwkj IG9iamVjdCBmaWxlIGZvcm1hdC4gIFRoaXMgcHJvdmlkZXMgYm90aCBmb3J3YXJkCisrCSMgY29t cGF0aWJpbGl0eSBhbmQgYSBjb25zaXN0ZW50IG1lY2hhbmlzbSBmb3Igc2VsZWN0aW5nIHRoZQor KwkjIG9iamVjdCBmaWxlIGZvcm1hdC4KKysJIworKwkjIE5vdGU6IE5ldEJTRCBkb2Vzbid0IHBh cnRpY3VsYXJseSBjYXJlIGFib3V0IHRoZSB2ZW5kb3IKKysJIyBwb3J0aW9uIG9mIHRoZSBuYW1l LiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCisrCXN5c2N0bD0ic3lzY3RsIC1uIGh3 Lm1hY2hpbmVfYXJjaCIKKysJVU5BTUVfTUFDSElORV9BUkNIPWAoL3NiaW4vJHN5c2N0bCAyPi9k ZXYvbnVsbCB8fCBcCisrCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hv IHVua25vd24pYAorKwljYXNlICIke1VOQU1FX01BQ0hJTkVfQVJDSH0iIGluCisrCSAgICBhcm1l YikgbWFjaGluZT1hcm1lYi11bmtub3duIDs7CisrCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtu b3duIDs7CisrCSAgICBzaDNlbCkgbWFjaGluZT1zaGwtdW5rbm93biA7OworKwkgICAgc2gzZWIp IG1hY2hpbmU9c2gtdW5rbm93biA7OworKwkgICAgc2g1ZWwpIG1hY2hpbmU9c2g1bGUtdW5rbm93 biA7OworKwkgICAgKikgbWFjaGluZT0ke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93biA7Owor Kwllc2FjCisrCSMgVGhlIE9wZXJhdGluZyBTeXN0ZW0gaW5jbHVkaW5nIG9iamVjdCBmb3JtYXQs IGlmIGl0IGhhcyBzd2l0Y2hlZAorKwkjIHRvIEVMRiByZWNlbnRseSwgb3Igd2lsbCBpbiB0aGUg ZnV0dXJlLgorKwljYXNlICIke1VOQU1FX01BQ0hJTkVfQVJDSH0iIGluCisrCSAgICBhcm0qfGkz ODZ8bTY4a3xuczMya3xzaDMqfHNwYXJjfHZheCkKKysJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQK KysJCWlmIGVjaG8gX19FTEZfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCisr CQkJfCBncmVwIC1xIF9fRUxGX18KKysJCXRoZW4KKysJCSAgICAjIE9uY2UgYWxsIHV0aWxpdGll cyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBhLm91dCAobmV0YnNkYW91dCkuCisrCQkg ICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/CisrCQkgICAgb3M9bmV0YnNkCisr CQllbHNlCisrCQkgICAgb3M9bmV0YnNkZWxmCisrCQlmaQorKwkJOzsKKysJICAgICopCisrCSAg ICAgICAgb3M9bmV0YnNkCisrCQk7OworKwllc2FjCisrCSMgVGhlIE9TIHJlbGVhc2UKKysJIyBE ZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEgZGlmZmVyZW50IHVzZXJsYW5kLCBhbmQK KysJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3Qg bmVlZAorKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0aW9uLCBzbyBpdCBjYW4gYmUgcmVwbGFj ZWQgd2l0aCBhCisrCSMgc3VpdGFibGUgdGFnLCBpbiB0aGUgc3R5bGUgb2YgbGludXgtZ251Lgor KwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgorKwkgICAgRGViaWFuKikKKysJCXJlbGVhc2U9 Jy1nbnUnCisrCQk7OworKwkgICAgKikKKysJCXJlbGVhc2U9YGVjaG8gJHtVTkFNRV9SRUxFQVNF fXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCisrCQk7OworKwllc2FjCisrCSMgU2luY2UgQ1BVX1RZ UEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNOgorKwkjIGNvbnRhaW5zIHJl ZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKKysJIyBDUFVfVFlQRS1NQU5V RkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2VkLgorKwllY2hvICIke21hY2hpbmV9LSR7 b3N9JHtyZWxlYXNlfSIKKysJZXhpdCA7OworKyAgICAqOk9wZW5CU0Q6KjoqKQorKwlVTkFNRV9N QUNISU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvT3BlbkJTRC4vLydgCisrCWVjaG8gJHtVTkFNRV9N QUNISU5FX0FSQ0h9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7Owor KyAgICAqOmVra29CU0Q6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1la2tv YnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6U29saWRCU0Q6KjoqKQorKwll Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0KKysJ ZXhpdCA7OworKyAgICBtYWNwcGM6TWlyQlNEOio6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24t bWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6TWlyQlNEOio6KikKKysJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorKwll eGl0IDs7CisrICAgIGFscGhhOk9TRjE6KjoqKQorKwljYXNlICRVTkFNRV9SRUxFQVNFIGluCisr CSo0LjApCisrCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmlu dCAkM30nYAorKwkJOzsKKysJKjUuKikKKysJICAgICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3Ni aW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAorKwkJOzsKKysJZXNhYworKwkjIEFjY29y ZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBvbgor KwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUg dGhhdAorKwkjIGNvdmVycyBtb3N0IHN5c3RlbXMgcnVubmluZyB0b2RheS4gIFRoaXMgY29kZSBw aXBlcyB0aGUgQ1BVCisrCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0 ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgorKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9zYmluL3Bzcmlu Zm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNzb3IuKiQvXDEv cCcgfCBoZWFkIC1uIDFgCisrCWNhc2UgIiRBTFBIQV9DUFVfVFlQRSIgaW4KKysJICAgICJFVjQg KDIxMDY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKysJICAgICJFVjQuNSAoMjEw NjQpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworKwkgICAgIkxDQTQgKDIxMDY2LzIx MDY4KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKysJICAgICJFVjUgKDIxMTY0KSIp CisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKKysJICAgICJFVjUuNiAoMjExNjRBKSIp CisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7CisrCSAgICAiRVY1LjYgKDIxMTY0UEMp IikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTYiIDs7CisrCSAgICAiRVY1LjcgKDIxMTY0 UEMpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7CisrCSAgICAiRVY2ICgyMTI2 NCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7CisrCSAgICAiRVY2LjcgKDIxMjY0 QSkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY3IiA7OworKwkgICAgIkVWNi44Q0IgKDIx MjY0QykiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworKwkgICAgIkVWNi44QUwg KDIxMjY0QikiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworKwkgICAgIkVWNi44 Q1ggKDIxMjY0RCkiKQorKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworKwkgICAgIkVW Ni45QSAoMjEyNjQvRVY2OUEpIikKKysJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OSIgOzsKKysJ ICAgICJFVjcgKDIxMzY0KSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIgOzsKKysJICAg ICJFVjcuOSAoMjEzNjRBKSIpCisrCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NzkiIDs7CisrCWVz YWMKKysJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KKysJIyBBIFZuLm4g dmVyc2lvbiBpcyBhIHJlbGVhc2VkIHZlcnNpb24uCisrCSMgQSBUbi5uIHZlcnNpb24gaXMgYSBy ZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCisrCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5y ZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgorKwkjIDEuMiB1c2VzICIxLjIiIGZvciB1 bmFtZSAtci4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JF TEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCisrCWV4aXQgOzsKKysgICAgQWxw aGFcICo6V2luZG93c19OVCo6KikKKysJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0 aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVggc3Vic3lzdGVtPworKwkjIFNob3VsZCB3ZSBjaGFu Z2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKKysJ IyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/CisrCWVjaG8gYWxwaGEtcGMtaW50ZXJpeAor KwlleGl0IDs7CisrICAgIDIxMDY0OldpbmRvd3NfTlQ6NTA6MykKKysJZWNobyBhbHBoYS1kZWMt d2lubnQzLjUKKysJZXhpdCA7OworKyAgICBBbWlnYSo6VU5JWF9TeXN0ZW1fVjo0LjA6KikKKysJ ZWNobyBtNjhrLXVua25vd24tc3lzdjQKKysJZXhpdCA7OworKyAgICAqOltBYV1taWdhW09vXVtT c106KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hbWlnYW9zCisrCWV4aXQg OzsKKysgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tbW9ycGhvcworKwlleGl0IDs7CisrICAgICo6T1MvMzkwOio6KikKKysJZWNobyBp MzcwLWlibS1vcGVuZWRpdGlvbgorKwlleGl0IDs7CisrICAgICo6ei9WTToqOiopCisrCWVjaG8g czM5MC1pYm0tenZtb2UKKysJZXhpdCA7OworKyAgICAqOk9TNDAwOio6KikKKysgICAgICAgIGVj aG8gcG93ZXJwYy1pYm0tb3M0MDAKKysJZXhpdCA7OworKyAgICBhcm06UklTQyo6MS5bMDEyXSo6 Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCisrCWVjaG8gYXJtLWFjb3JuLXJpc2NpeCR7VU5BTUVf UkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBhcm06cmlzY29zOio6Knxhcm06UklTQ09TOio6KikK KysJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKKysJZXhpdCA7OworKyAgICBTUjI/MDE6SEktVVgv TVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQorKwllY2hvIGhwcGExLjEtaGl0YWNoaS1o aXV4bXBwCisrCWV4aXQgOzsKKysgICAgUHlyYW1pZCo6T1N4KjoqOiogfCBNSVMqOk9TeCo6Kjoq IHwgTUlTKjpTTVBfREMtT1N4KjoqOiopCisrCSMgYWtlZUB3cGRpczAzLndwYWZiLmFmLm1pbCAo RWFybGUgRi4gQWtlKSBjb250cmlidXRlZCBNSVMgYW5kIE5JTEUuCisrCWlmIHRlc3QgImAoL2Jp bi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KKysJCWVjaG8gcHlyYW1pZC1w eXJhbWlkLXN5c3YzCisrCWVsc2UKKysJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAorKwlmaQor KwlleGl0IDs7CisrICAgIE5JTEUqOio6KjpkY29zeCkKKysJZWNobyBweXJhbWlkLXB5cmFtaWQt c3ZyNAorKwlleGl0IDs7CisrICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQorKwllY2hvIHNwYXJj LWljbC1ueDYKKysJZXhpdCA7OworKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/ NjAwMDppc2lzOjQuMio6NyopCisrCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBpbgorKwkgICAg c3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NzsgZXhpdCA7OworKwllc2FjIDs7CisrICAgIHMzOTB4 OlN1bk9TOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1zb2xhcmlzMmBlY2hvICR7 VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjRI OlN1bk9TOjUuKjoqKQorKwllY2hvIHNwYXJjLWhhbC1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVM RUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorKwlleGl0IDs7CisrICAgIHN1bjQqOlN1bk9TOjUu KjoqIHwgdGFkcG9sZSo6U3VuT1M6NS4qOiopCisrCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMyYGVj aG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAg aTg2cGM6QXVyb3JhVVg6NS4qOiogfCBpODZ4ZW46QXVyb3JhVVg6NS4qOiopCisrCWVjaG8gaTM4 Ni1wYy1hdXJvcmF1eCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBpODZwYzpTdW5P Uzo1Lio6KiB8IGk4NnhlbjpTdW5PUzo1Lio6KikKKysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAor KwlTVU5fQVJDSD0iaTM4NiIKKysJIyBJZiB0aGVyZSBpcyBhIGNvbXBpbGVyLCBzZWUgaWYgaXQg aXMgY29uZmlndXJlZCBmb3IgNjQtYml0IG9iamVjdHMuCisrCSMgTm90ZSB0aGF0IHRoZSBTdW4g Y2MgZG9lcyBub3QgdHVybiBfX0xQNjRfXyBpbnRvIDEgbGlrZSBnY2MgZG9lcy4KKysJIyBUaGlz IHRlc3Qgd29ya3MgZm9yIGJvdGggY29tcGlsZXJzLgorKwlpZiBbICIkQ0NfRk9SX0JVSUxEIiAh PSAnbm9fY29tcGlsZXJfZm91bmQnIF07IHRoZW4KKysJICAgIGlmIChlY2hvICcjaWZkZWYgX19h bWQ2NCc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlmJykgfCBcCisrCQkoQ0NPUFRT PSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAorKwkJZ3JlcCBJU182NEJJVF9B UkNIID4vZGV2L251bGwKKysJICAgIHRoZW4KKysJCVNVTl9BUkNIPSJ4ODZfNjQiCisrCSAgICBm aQorKwlmaQorKwllY2hvICR7U1VOX0FSQ0h9LXBjLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxF QVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAgc3VuNCo6U3VuT1M6Nio6 KikKKysJIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0 byBjYW5vbmljYWxpemUKKysJIyBTdW5PUzYuICBIYXJkIHRvIGd1ZXNzIGV4YWN0bHkgd2hhdCBT dW5PUzYgd2lsbCBiZSBsaWtlLCBidXQKKysJIyBpdCdzIGxpa2VseSB0byBiZSBtb3JlIGxpa2Ug U29sYXJpcyB0aGFuIFN1bk9TNC4KKysJZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VO QU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKysJZXhpdCA7OworKyAgICBzdW40KjpT dW5PUzoqOiopCisrCWNhc2UgImAvdXNyL2Jpbi9hcmNoIC1rYCIgaW4KKysJICAgIFNlcmllcyp8 UzQqKQorKwkJVU5BTUVfUkVMRUFTRT1gdW5hbWUgLXZgCisrCQk7OworKwllc2FjCisrCSMgSmFw YW5lc2UgTGFuZ3VhZ2UgdmVyc2lvbnMgaGF2ZSBhIHZlcnNpb24gbnVtYmVyIGxpa2UgYDQuMS4z LUpMJy4KKysJZWNobyBzcGFyYy1zdW4tc3Vub3NgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAt ZSAncy8tL18vJ2AKKysJZXhpdCA7OworKyAgICBzdW4zKjpTdW5PUzoqOiopCisrCWVjaG8gbTY4 ay1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgc3VuKjoqOjQuMkJT RDoqKQorKwlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1 YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAorKwl0ZXN0ICJ4JHtVTkFNRV9SRUxFQVNFfSIg PSAieCIgJiYgVU5BTUVfUkVMRUFTRT0zCisrCWNhc2UgImAvYmluL2FyY2hgIiBpbgorKwkgICAg c3VuMykKKysJCWVjaG8gbTY4ay1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCQk7OworKwkg ICAgc3VuNCkKKysJCWVjaG8gc3BhcmMtc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQorKwkJOzsK KysJZXNhYworKwlleGl0IDs7CisrICAgIGF1c2hwOlN1bk9TOio6KikKKysJZWNobyBzcGFyYy1h dXNwZXgtc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgIyBUaGUgc2l0dWF0 aW9uIGZvciBNaU5UIGlzIGEgbGl0dGxlIGNvbmZ1c2luZy4gIFRoZSBtYWNoaW5lIG5hbWUKKysg ICAgIyBjYW4gYmUgdmlydHVhbGx5IGV2ZXJ5dGhpbmcgKGV2ZXJ5dGhpbmcgd2hpY2ggaXMgbm90 CisrICAgICMgImF0YXJpc3QiIG9yICJhdGFyaXN0ZSIgYXQgbGVhc3Qgc2hvdWxkIGhhdmUgYSBw cm9jZXNzb3IKKysgICAgIyA+IG02ODAwMCkuICBUaGUgc3lzdGVtIG5hbWUgcmFuZ2VzIGZyb20g Ik1pTlQiIG92ZXIgIkZyZWVNaU5UIgorKyAgICAjIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiAi bWludCIgKG9yICJmcmVlbWludCIpLiAgRmluYWxseQorKyAgICAjIHRoZSBzeXN0ZW0gbmFtZSAi VE9TIiBkZW5vdGVzIGEgc3lzdGVtIHdoaWNoIGlzIGFjdHVhbGx5IG5vdAorKyAgICAjIE1pTlQu ICBCdXQgTWlOVCBpcyBkb3dud2FyZCBjb21wYXRpYmxlIHRvIFRPUywgc28gdGhpcyBzaG91bGQK KysgICAgIyBiZSBubyBwcm9ibGVtLgorKyAgICBhdGFyaXN0W2VdOipNaU5UOio6KiB8IGF0YXJp c3RbZV06Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4 ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIGF0YXJpKjoqTWlO VDoqOiogfCBhdGFyaSo6Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6KikKKysJZWNobyBt NjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrICAgICAgICBleGl0IDs7CisrICAgICpm YWxjb24qOipNaU5UOio6KiB8ICpmYWxjb24qOiptaW50Oio6KiB8ICpmYWxjb24qOipUT1M6Kjoq KQorKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgbWlsYW4qOipNaU5UOio6KiB8IG1pbGFuKjoqbWludDoqOiogfCAqbWlsYW4qOipU T1M6KjoqKQorKyAgICAgICAgZWNobyBtNjhrLW1pbGFuLW1pbnQke1VOQU1FX1JFTEVBU0V9Cisr ICAgICAgICBleGl0IDs7CisrICAgIGhhZGVzKjoqTWlOVDoqOiogfCBoYWRlcyo6Km1pbnQ6Kjoq IHwgKmhhZGVzKjoqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4ay1oYWRlcy1taW50JHtVTkFN RV9SRUxFQVNFfQorKyAgICAgICAgZXhpdCA7OworKyAgICAqOipNaU5UOio6KiB8ICo6Km1pbnQ6 KjoqIHwgKjoqVE9TOio6KikKKysgICAgICAgIGVjaG8gbTY4ay11bmtub3duLW1pbnQke1VOQU1F X1JFTEVBU0V9CisrICAgICAgICBleGl0IDs7CisrICAgIG02OGs6bWFjaHRlbjoqOiopCisrCWVj aG8gbTY4ay1hcHBsZS1tYWNodGVuJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIHBv d2VycGM6bWFjaHRlbjoqOiopCisrCWVjaG8gcG93ZXJwYy1hcHBsZS1tYWNodGVuJHtVTkFNRV9S RUxFQVNFfQorKwlleGl0IDs7CisrICAgIFJJU0MqOk1hY2g6KjoqKQorKwllY2hvIG1pcHMtZGVj LW1hY2hfYnNkNC4zCisrCWV4aXQgOzsKKysgICAgUklTQyo6VUxUUklYOio6KikKKysJZWNobyBt aXBzLWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgVkFYKjpVTFRS SVgqOio6KikKKysJZWNobyB2YXgtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7 OworKyAgICAyMDIwOkNMSVg6KjoqIHwgMjQzMDpDTElYOio6KikKKysJZWNobyBjbGlwcGVyLWlu dGVyZ3JhcGgtY2xpeCR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBtaXBzOio6KjpV TUlQUyB8IG1pcHM6KjoqOlJJU0NvcykKKysJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorKwlzZWQg J3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworKyNpZmRlZiBfX2NwbHVzcGx1cworKyNpbmNsdWRl IDxzdGRpby5oPiAgLyogZm9yIHByaW50ZigpIHByb3RvdHlwZSAqLworKwlpbnQgbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworKyNlbHNlCisrCWludCBtYWluIChhcmdjLCBhcmd2KSBp bnQgYXJnYzsgY2hhciAqYXJndltdOyB7CisrI2VuZGlmCisrCSNpZiBkZWZpbmVkIChob3N0X21p cHMpICYmIGRlZmluZWQgKE1JUFNFQikKKysJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1lTVikKKysJ ICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzeXN2XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7 CisrCSNlbmRpZgorKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TVlI0KQorKwkgIHByaW50ZiAoIm1p cHMtbWlwcy1yaXNjb3Mlc3N2cjRcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKysJI2VuZGlmCisr CSNpZiBkZWZpbmVkIChTWVNUWVBFX0JTRDQzKSB8fCBkZWZpbmVkKFNZU1RZUEVfQlNEKQorKwkg IHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc2JzZFxuIiwgYXJndlsxXSk7IGV4aXQgKDApOwor KwkjZW5kaWYKKysJI2VuZGlmCisrCSAgZXhpdCAoLTEpOworKwl9CisrRU9GCisrCSRDQ19GT1Jf QlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmCisrCSAgZHVtbXlhcmc9YGVjaG8gIiR7VU5BTUVf UkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9wJ2AgJiYKKysJICBTWVNURU1f TkFNRT1gJGR1bW15ICRkdW1teWFyZ2AgJiYKKysJICAgIHsgZWNobyAiJFNZU1RFTV9OQU1FIjsg ZXhpdDsgfQorKwllY2hvIG1pcHMtbWlwcy1yaXNjb3Mke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQg OzsKKysgICAgTW90b3JvbGE6UG93ZXJNQVhfT1M6KjoqKQorKwllY2hvIHBvd2VycGMtbW90b3Jv bGEtcG93ZXJtYXgKKysJZXhpdCA7OworKyAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKKysJZWNo byBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorKwlleGl0IDs7CisrICAgIE5pZ2h0X0hhd2s6Kjoq OlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiopCisrCWVjaG8gcG93ZXJwYy1o YXJyaXMtcG93ZXJtYXgKKysJZXhpdCA7OworKyAgICBOaWdodF9IYXdrOlBvd2VyX1VOSVg6Kjoq KQorKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VydW5peAorKwlleGl0IDs7CisrICAgIG04OGs6 Q1gvVVg6Nyo6KikKKysJZWNobyBtODhrLWhhcnJpcy1jeHV4NworKwlleGl0IDs7CisrICAgIG04 OGs6Kjo0KjpSNCopCisrCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2NAorKwlleGl0IDs7CisrICAg IG04OGs6KjozKjpSMyopCisrCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MworKwlleGl0IDs7Cisr ICAgIEFWaWlPTjpkZ3V4Oio6KikKKysgICAgICAgICMgREcvVVggcmV0dXJucyBBVmlpT04gZm9y IGFsbCBhcmNoaXRlY3R1cmVzCisrICAgICAgICBVTkFNRV9QUk9DRVNTT1I9YC91c3IvYmluL3Vu YW1lIC1wYAorKwlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTAwIF0gfHwgWyAkVU5BTUVf UFJPQ0VTU09SID0gbWM4ODExMCBdCisrCXRoZW4KKysJICAgIGlmIFsgJHtUQVJHRVRfQklOQVJZ X0lOVEVSRkFDRX14ID0gbTg4a2RndXhlbGZ4IF0gfHwgXAorKwkgICAgICAgWyAke1RBUkdFVF9C SU5BUllfSU5URVJGQUNFfXggPSB4IF0KKysJICAgIHRoZW4KKysJCWVjaG8gbTg4ay1kZy1kZ3V4 JHtVTkFNRV9SRUxFQVNFfQorKwkgICAgZWxzZQorKwkJZWNobyBtODhrLWRnLWRndXhiY3Mke1VO QU1FX1JFTEVBU0V9CisrCSAgICBmaQorKwllbHNlCisrCSAgICBlY2hvIGk1ODYtZGctZGd1eCR7 VU5BTUVfUkVMRUFTRX0KKysJZmkKKysgCWV4aXQgOzsKKysgICAgTTg4KjpEb2xwaGluT1M6Kjoq KQkjIERvbHBoaW5PUyAoU1ZSMykKKysJZWNobyBtODhrLWRvbHBoaW4tc3lzdjMKKysJZXhpdCA7 OworKyAgICBNODgqOio6UjMqOiopCisrCSMgRGVsdGEgODhrIHN5c3RlbSBydW5uaW5nIFNWUjMK KysJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisrCWV4aXQgOzsKKysgICAgWEQ4OCo6KjoqOiop ICMgVGVrdHJvbml4IFhEODggc3lzdGVtIHJ1bm5pbmcgVVRla1YgKFNWUjMpCisrCWVjaG8gbTg4 ay10ZWt0cm9uaXgtc3lzdjMKKysJZXhpdCA7OworKyAgICBUZWs0M1swLTldWzAtOV06VVRlazoq OiopICMgVGVrdHJvbml4IDQzMDAgc3lzdGVtIHJ1bm5pbmcgVVRlayAoQlNEKQorKwllY2hvIG02 OGstdGVrdHJvbml4LWJzZAorKwlleGl0IDs7CisrICAgICo6SVJJWCo6KjoqKQorKwllY2hvIG1p cHMtc2dpLWlyaXhgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vZydgCisrCWV4 aXQgOzsKKysgICAgPz8/Pz8/Pz86QUlYPzpbMTJdLjE6MikgICAjIEFJWCAyLjIuMSBvciBBSVgg Mi4xLjEgaXMgUlQvUEMgQUlYLgorKwllY2hvIHJvbXAtaWJtLWFpeCAgICAgIyB1bmFtZSAtbSBn aXZlcyBhbiA4IGhleC1jb2RlIENQVSBpZAorKwlleGl0IDs7ICAgICAgICAgICAgICAgIyBOb3Rl IHRoYXQ6IGVjaG8gIidgdW5hbWUgLXNgJyIgZ2l2ZXMgJ0FJWCAnCisrICAgIGkqODY6QUlYOio6 KikKKysJZWNobyBpMzg2LWlibS1haXgKKysJZXhpdCA7OworKyAgICBpYTY0OkFJWDoqOiopCisr CWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorKwkJSUJNX1JFVj1gL3Vzci9iaW4v b3NsZXZlbGAKKysJZWxzZQorKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVM RUFTRX0KKysJZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1haXgke0lCTV9SRVZ9Cisr CWV4aXQgOzsKKysgICAgKjpBSVg6MjozKQorKwlpZiBncmVwIGJvczMyNSAvdXNyL2luY2x1ZGUv c3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQK KysJCXNlZCAncy9eCQkvLycgPDwgRU9GID4kZHVtbXkuYworKwkJI2luY2x1ZGUgPHN5cy9zeXN0 ZW1jZmcuaD4KKysKKysJCW1haW4oKQorKwkJCXsKKysJCQlpZiAoIV9fcG93ZXJfcGMoKSkKKysJ CQkJZXhpdCgxKTsKKysJCQlwdXRzKCJwb3dlcnBjLWlibS1haXgzLjIuNSIpOworKwkJCWV4aXQo MCk7CisrCQkJfQorK0VPRgorKwkJaWYgJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMg JiYgU1lTVEVNX05BTUU9YCRkdW1teWAKKysJCXRoZW4KKysJCQllY2hvICIkU1lTVEVNX05BTUUi CisrCQllbHNlCisrCQkJZWNobyByczYwMDAtaWJtLWFpeDMuMi41CisrCQlmaQorKwllbGlmIGdy ZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorKwkJ ZWNobyByczYwMDAtaWJtLWFpeDMuMi40CisrCWVsc2UKKysJCWVjaG8gcnM2MDAwLWlibS1haXgz LjIKKysJZmkKKysJZXhpdCA7OworKyAgICAqOkFJWDoqOls0NTZdKQorKwlJQk1fQ1BVX0lEPWAv dXNyL3NiaW4vbHNkZXYgLUMgLWMgcHJvY2Vzc29yIC1TIGF2YWlsYWJsZSB8IHNlZCAxcSB8IGF3 ayAneyBwcmludCAkMSB9J2AKKysJaWYgL3Vzci9zYmluL2xzYXR0ciAtRWwgJHtJQk1fQ1BVX0lE fSB8IGdyZXAgJyBQT1dFUicgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlJQk1fQVJDSD1yczYw MDAKKysJZWxzZQorKwkJSUJNX0FSQ0g9cG93ZXJwYworKwlmaQorKwlpZiBbIC14IC91c3IvYmlu L29zbGV2ZWwgXSA7IHRoZW4KKysJCUlCTV9SRVY9YC91c3IvYmluL29zbGV2ZWxgCisrCWVsc2UK KysJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrCWVj aG8gJHtJQk1fQVJDSH0taWJtLWFpeCR7SUJNX1JFVn0KKysJZXhpdCA7OworKyAgICAqOkFJWDoq OiopCisrCWVjaG8gcnM2MDAwLWlibS1haXgKKysJZXhpdCA7OworKyAgICBpYm1ydDo0LjRCU0Q6 Knxyb21wLWlibTpCU0Q6KikKKysJZWNobyByb21wLWlibS1ic2Q0LjQKKysJZXhpdCA7OworKyAg ICBpYm1ydDoqQlNEOip8cm9tcC1pYm06QlNEOiopICAgICAgICAgICAgIyBjb3ZlcnMgUlQvUEMg QlNEIGFuZAorKwllY2hvIHJvbXAtaWJtLWJzZCR7VU5BTUVfUkVMRUFTRX0gICAjIDQuMyB3aXRo IHVuYW1lIGFkZGVkIHRvCisrCWV4aXQgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg cmVwb3J0OiByb21wLWlibSBCU0QgNC4zCisrICAgICo6Qk9TWDoqOiopCisrCWVjaG8gcnM2MDAw LWJ1bGwtYm9zeAorKwlleGl0IDs7CisrICAgIERQWC8yPzAwOkIuTy5TLjoqOiopCisrCWVjaG8g bTY4ay1idWxsLXN5c3YzCisrCWV4aXQgOzsKKysgICAgOTAwMC9bMzRdPz86NC4zYnNkOjEuKjoq KQorKwllY2hvIG02OGstaHAtYnNkCisrCWV4aXQgOzsKKysgICAgaHAzMDA6NC40QlNEOio6KiB8 IDkwMDAvWzM0XT8/OjQuM2JzZDoyLio6KikKKysJZWNobyBtNjhrLWhwLWJzZDQuNAorKwlleGl0 IDs7CisrICAgIDkwMDAvWzM0Njc4XT8/OkhQLVVYOio6KikKKysJSFBVWF9SRVY9YGVjaG8gJHtV TkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisrCWNhc2UgIiR7VU5BTUVf TUFDSElORX0iIGluCisrCSAgICA5MDAwLzMxPyApICAgICAgICAgICAgSFBfQVJDSD1tNjgwMDAg OzsKKysJICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNIPW02OGsgOzsKKysJICAgIDkw MDAvWzY3OF1bMC05XVswLTldKQorKwkJaWYgWyAteCAvdXNyL2Jpbi9nZXRjb25mIF07IHRoZW4K KysJCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAy Pi9kZXYvbnVsbGAKKysgICAgICAgICAgICAgICAgICAgIHNjX2tlcm5lbF9iaXRzPWAvdXNyL2Jp bi9nZXRjb25mIFNDX0tFUk5FTF9CSVRTIDI+L2Rldi9udWxsYAorKyAgICAgICAgICAgICAgICAg ICAgY2FzZSAiJHtzY19jcHVfdmVyc2lvbn0iIGluCisrICAgICAgICAgICAgICAgICAgICAgIDUy MykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAorKyAgICAgICAgICAgICAg ICAgICAgICA1MjgpIEhQX0FSQ0g9ImhwcGExLjEiIDs7ICMgQ1BVX1BBX1JJU0MxXzEKKysgICAg ICAgICAgICAgICAgICAgICAgNTMyKSAgICAgICAgICAgICAgICAgICAgICAjIENQVV9QQV9SSVND Ml8wCisrICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGlu CisrICAgICAgICAgICAgICAgICAgICAgICAgICAzMikgSFBfQVJDSD0iaHBwYTIuMG4iIDs7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICA2NCkgSFBfQVJDSD0iaHBwYTIuMHciIDs7CisrCQkJ ICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCisrICAgICAgICAgICAg ICAgICAgICAgICAgZXNhYyA7OworKyAgICAgICAgICAgICAgICAgICAgZXNhYworKwkJZmkKKysJ CWlmIFsgIiR7SFBfQVJDSH0iID0gIiIgXTsgdGhlbgorKwkJICAgIGV2YWwgJHNldF9jY19mb3Jf YnVpbGQKKysJCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15LmMK KysKKysgICAgICAgICAgICAgICNkZWZpbmUgX0hQVVhfU09VUkNFCisrICAgICAgICAgICAgICAj aW5jbHVkZSA8c3RkbGliLmg+CisrICAgICAgICAgICAgICAjaW5jbHVkZSA8dW5pc3RkLmg+Cisr CisrICAgICAgICAgICAgICBpbnQgbWFpbiAoKQorKyAgICAgICAgICAgICAgeworKyAgICAgICAg ICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQorKyAgICAgICAgICAgICAgICAgIGxv bmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKKysgICAgICAgICAgICAgICNlbmRp ZgorKyAgICAgICAgICAgICAgICAgIGxvbmcgY3B1ICA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lP Tik7CisrCisrICAgICAgICAgICAgICAgICAgc3dpdGNoIChjcHUpCisrICAgICAgICAgICAgICAJ eworKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wIik7 IGJyZWFrOworKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBh MS4xIik7IGJyZWFrOworKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MyXzA6CisrICAg ICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisrICAgICAgICAgICAgICAJ ICAgIHN3aXRjaCAoYml0cykKKysgICAgICAgICAgICAgIAkJeworKyAgICAgICAgICAgICAgCQlj YXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJCWNhc2Ug MzI6IHB1dHMgKCJocHBhMi4wbiIpOyBicmVhazsKKysgICAgICAgICAgICAgIAkJZGVmYXVsdDog cHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisrICAgICAgICAgICAgICAJCX0gYnJlYWs7CisrICAg ICAgICAgICAgICAjZWxzZSAgLyogIWRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKSAqLworKyAgICAg ICAgICAgICAgCSAgICBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKKysgICAgICAgICAgICAgICNl bmRpZgorKyAgICAgICAgICAgICAgCWRlZmF1bHQ6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOwor KyAgICAgICAgICAgICAgCX0KKysgICAgICAgICAgICAgICAgICBleGl0ICgwKTsKKysgICAgICAg ICAgICAgIH0KKytFT0YKKysJCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAk ZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAorKwkJICAgIHRlc3QgLXog IiRIUF9BUkNIIiAmJiBIUF9BUkNIPWhwcGEKKysJCWZpIDs7CisrCWVzYWMKKysJaWYgWyAke0hQ X0FSQ0h9ID0gImhwcGEyLjB3IiBdCisrCXRoZW4KKysJICAgIGV2YWwgJHNldF9jY19mb3JfYnVp bGQKKysKKysJICAgICMgaHBwYTIuMHctaHAtaHB1eCogaGFzIGEgNjQtYml0IGtlcm5lbCBhbmQg YSBjb21waWxlciBnZW5lcmF0aW5nCisrCSAgICAjIDMyLWJpdCBjb2RlLiAgaHBwYTY0LWhwLWhw dXgqIGhhcyB0aGUgc2FtZSBrZXJuZWwgYW5kIGEgY29tcGlsZXIKKysJICAgICMgZ2VuZXJhdGlu ZyA2NC1iaXQgY29kZS4gIEdOVSBhbmQgSFAgdXNlIGRpZmZlcmVudCBub21lbmNsYXR1cmU6Cisr CSAgICAjCisrCSAgICAjICQgQ0NfRk9SX0JVSUxEPWNjIC4vY29uZmlnLmd1ZXNzCisrCSAgICAj ID0+IGhwcGEyLjB3LWhwLWhwdXgxMS4yMworKwkgICAgIyAkIENDX0ZPUl9CVUlMRD0iY2MgK0RB Mi4wdyIgLi9jb25maWcuZ3Vlc3MKKysJICAgICMgPT4gaHBwYTY0LWhwLWhwdXgxMS4yMworKwor KwkgICAgaWYgZWNobyBfX0xQNjRfXyB8IChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9k ZXYvbnVsbCkgfAorKwkJZ3JlcCAtcSBfX0xQNjRfXworKwkgICAgdGhlbgorKwkJSFBfQVJDSD0i aHBwYTIuMHciCisrCSAgICBlbHNlCisrCQlIUF9BUkNIPSJocHBhNjQiCisrCSAgICBmaQorKwlm aQorKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9CisrCWV4aXQgOzsKKysgICAg aWE2NDpIUC1VWDoqOiopCisrCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1teLl0qLlswQl0qLy8nYAorKwllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9CisrCWV4 aXQgOzsKKysgICAgMzA1MCo6SEktVVg6KjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisr CXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisrCSNpbmNsdWRlIDx1bmlzdGQuaD4KKysJ aW50CisrCW1haW4gKCkKKysJeworKwkgIGxvbmcgY3B1ID0gc3lzY29uZiAoX1NDX0NQVV9WRVJT SU9OKTsKKysJICAvKiBUaGUgb3JkZXIgbWF0dGVycywgYmVjYXVzZSBDUFVfSVNfSFBfTUM2OEsg ZXJyb25lb3VzbHkgcmV0dXJucworKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BV X0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0CisrCSAgICAgcmVzdWx0cywgaG93ZXZlci4gICov CisrCSAgaWYgKENQVV9JU19QQV9SSVNDIChjcHUpKQorKwkgICAgeworKwkgICAgICBzd2l0Y2gg KGNwdSkKKysJCXsKKysJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0 YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJICBjYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgi aHBwYTEuMS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisrCQkgIGNhc2UgQ1BVX1BBX1JJU0My XzA6IHB1dHMgKCJocHBhMi4wLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKysJCSAgZGVmYXVs dDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworKwkJfQorKwkgICAgfQor KwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKKysJICAgIHB1dHMgKCJtNjhrLWhp dGFjaGktaGl1eHdlMiIpOworKwkgIGVsc2UgcHV0cyAoInVua25vd24taGl0YWNoaS1oaXV4d2Uy Iik7CisrCSAgZXhpdCAoMCk7CisrCX0KKytFT0YKKysJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkg JGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKysJCXsgZWNobyAiJFNZU1RFTV9O QU1FIjsgZXhpdDsgfQorKwllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCisrCWV4aXQgOzsK KysgICAgOTAwMC83Pz86NC4zYnNkOio6KiB8IDkwMDAvOD9bNzldOjQuM2JzZDoqOiogKQorKwll Y2hvIGhwcGExLjEtaHAtYnNkCisrCWV4aXQgOzsKKysgICAgOTAwMC84Pz86NC4zYnNkOio6KikK KysJZWNobyBocHBhMS4wLWhwLWJzZAorKwlleGl0IDs7CisrICAgICo5Pz8qOk1QRS9pWDoqOiog fCAqMzAwMCo6TVBFL2lYOio6KikKKysJZWNobyBocHBhMS4wLWhwLW1wZWl4CisrCWV4aXQgOzsK KysgICAgaHA3Pz86T1NGMToqOiogfCBocDg/Wzc5XTpPU0YxOio6KiApCisrCWVjaG8gaHBwYTEu MS1ocC1vc2YKKysJZXhpdCA7OworKyAgICBocDg/PzpPU0YxOio6KikKKysJZWNobyBocHBhMS4w LWhwLW9zZgorKwlleGl0IDs7CisrICAgIGkqODY6T1NGMToqOiopCisrCWlmIFsgLXggL3Vzci9z YmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KKysJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtu b3duLW9zZjFtaworKwllbHNlCisrCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1v c2YxCisrCWZpCisrCWV4aXQgOzsKKysgICAgcGFyaXNjKjpMaXRlcyo6KjoqKQorKwllY2hvIGhw cGExLjEtaHAtbGl0ZXMKKysJZXhpdCA7OworKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4 OkNvbnZleE9TOkMxKjoqKQorKwllY2hvIGMxLWNvbnZleC1ic2QKKysgICAgICAgIGV4aXQgOzsK KysgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKKysJaWYgZ2V0 c3lzaW5mbyAtZiBzY2FsYXJfYWNjCisrCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorKwllbHNl IGVjaG8gYzItY29udmV4LWJzZAorKwlmaQorKyAgICAgICAgZXhpdCA7OworKyAgICBDMzQqOkNv bnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCisrCWVjaG8gYzM0LWNvbnZleC1i c2QKKysgICAgICAgIGV4aXQgOzsKKysgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29u dmV4T1M6QzM4KjoqKQorKwllY2hvIGMzOC1jb252ZXgtYnNkCisrICAgICAgICBleGl0IDs7Cisr ICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCisrCWVjaG8gYzQt Y29udmV4LWJzZAorKyAgICAgICAgZXhpdCA7OworKyAgICBDUkFZKlktTVA6KjoqOiopCisrCWVj aG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8u WC8nCisrCWV4aXQgOzsKKysgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQorKwllY2hvICR7VU5BTUVf TUFDSElORX0tY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IFwKKysJfCBzZWQgLWUgJ3MvQ1JB WS4qXChbQS1aXTkwXCkvXDEvJyBcCisrCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKysJICAgICAgLWUgJ3MvXC5bXi5d KiQvLlgvJworKwlleGl0IDs7CisrICAgIENSQVkqVFM6KjoqOiopCisrCWVjaG8gdDkwLWNyYXkt dW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisrCWV4aXQg OzsKKysgICAgQ1JBWSpUM0U6KjoqOiopCisrCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7 VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAg IENSQVkqU1YxOio6KjoqKQorKwllY2hvIHN2MS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0g fCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgICo6VU5JQ09TL21wOio6 KikKKysJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUg J3MvXC5bXi5dKiQvLlgvJworKwlleGl0IDs7CisrICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoq OiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQorKwlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwg dHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4 eXonYAorKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1O T1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wv Ly8nYAorKyAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAt ZSAncy8gL18vJ2AKKysgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVK SVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrICAgICAgICBleGl0IDs7CisrICAgIDUwMDA6VU5J WF9TeXN0ZW1fVjo0Lio6KikKKysgICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdB QkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8 IHNlZCAtZSAncy9cLy8vJ2AKKysgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVM RUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCisrICAgICAgICBlY2hvICJzcGFyYy1mdWpp dHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisrCWV4aXQgOzsKKysgICAgaSo4NjpC U0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiop CisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQorKwlleGl0 IDs7CisrICAgIHNwYXJjKjpCU0QvT1M6KjoqKQorKwllY2hvIHNwYXJjLXVua25vd24tYnNkaSR7 VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOkJTRC9PUzoqOiopCisrCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysg ICAgKjpGcmVlQlNEOio6KikKKysJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCisrCSAgICBwYzk4 KQorKwkJZWNobyBpMzg2LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1stKF0uKi8vJ2AgOzsKKysJICAgIGFtZDY0KQorKwkJZWNobyB4ODZfNjQtdW5rbm93 bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7Owor KwkgICAgKikKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNobyAk e1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7CisrCWVzYWMKKysJZXhpdCA7 OworKyAgICBpKjpDWUdXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1jeWd3aW4K KysJZXhpdCA7OworKyAgICAqOk1JTkdXKjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMt bWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOndpbmRvd3MzMio6KikKKysgICAgCSMgdW5hbWUg LW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCisrICAgIAllY2hvICR7VU5BTUVfTUFD SElORX0tbWluZ3czMgorKwlleGl0IDs7CisrICAgIGkqOlBXKjoqKQorKwllY2hvICR7VU5BTUVf TUFDSElORX0tcGMtcHczMgorKwlleGl0IDs7CisrICAgICo6SW50ZXJpeCo6KikKKysgICAgCWNh c2UgJHtVTkFNRV9NQUNISU5FfSBpbgorKwkgICAgeDg2KQorKwkJZWNobyBpNTg2LXBjLWludGVy aXgke1VOQU1FX1JFTEVBU0V9CisrCQlleGl0IDs7CisrCSAgICBhdXRoZW50aWNhbWQgfCBnZW51 aW5laW50ZWwgfCBFTTY0VCkKKysJCWVjaG8geDg2XzY0LXVua25vd24taW50ZXJpeCR7VU5BTUVf UkVMRUFTRX0KKysJCWV4aXQgOzsKKysJICAgIElBNjQpCisrCQllY2hvIGlhNjQtdW5rbm93bi1p bnRlcml4JHtVTkFNRV9SRUxFQVNFfQorKwkJZXhpdCA7OworKwllc2FjIDs7CisrICAgIFszNDVd ODY6V2luZG93c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2OldpbmRvd3Nf TlQ6KikKKysJZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKKysJZXhpdCA7OworKyAgICA4 NjY0OldpbmRvd3NfTlQ6KikKKysJZWNobyB4ODZfNjQtcGMtbWtzCisrCWV4aXQgOzsKKysgICAg aSo6V2luZG93c19OVCo6KiB8IFBlbnRpdW0qOldpbmRvd3NfTlQqOiopCisrCSMgSG93IGRvIHdl IGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3Rl bT8KKysJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBV V0lOLiBTaG91bGQgd2UKKysJIyBVTkFNRV9NQUNISU5FIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2Yg dW5hbWUgaW5zdGVhZCBvZiBpMzg2PworKwllY2hvIGk1ODYtcGMtaW50ZXJpeAorKwlleGl0IDs7 CisrICAgIGkqOlVXSU4qOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy11d2luCisrCWV4 aXQgOzsKKysgICAgYW1kNjQ6Q1lHV0lOKjoqOiogfCB4ODZfNjQ6Q1lHV0lOKjoqOiopCisrCWVj aG8geDg2XzY0LXVua25vd24tY3lnd2luCisrCWV4aXQgOzsKKysgICAgcCo6Q1lHV0lOKjoqKQor KwllY2hvIHBvd2VycGNsZS11bmtub3duLWN5Z3dpbgorKwlleGl0IDs7CisrICAgIHByZXAqOlN1 bk9TOjUuKjoqKQorKwllY2hvIHBvd2VycGNsZS11bmtub3duLXNvbGFyaXMyYGVjaG8gJHtVTkFN RV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisrCWV4aXQgOzsKKysgICAgKjpHTlU6Kjoq KQorKwkjIHRoZSBHTlUgc3lzdGVtCisrCWVjaG8gYGVjaG8gJHtVTkFNRV9NQUNISU5FfXxzZWQg LWUgJ3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAt ZSAncywvLiokLCwnYAorKwlleGl0IDs7CisrICAgICo6R05VLyo6KjoqKQorKwkjIG90aGVyIHN5 c3RlbXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9 LXVua25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdzLF5bXi9dKi8sLCcgfCB0ciAn W0EtWl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8n YC1nbnUKKysJZXhpdCA7OworKyAgICBpKjg2Ok1pbml4Oio6KikKKysJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLW1pbml4CisrCWV4aXQgOzsKKysgICAgYWxwaGE6TGludXg6KjoqKQorKwljYXNl IGBzZWQgLW4gJy9eY3B1IG1vZGVsL3MvXi4qOiBcKC4qXCkvXDEvcCcgPCAvcHJvYy9jcHVpbmZv YCBpbgorKwkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFscGhhZXY1IDs7CisrCSAgRVY1NikgIFVO QU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7CisrCSAgUENBNTYpIFVOQU1FX01BQ0hJTkU9YWxwaGFw Y2E1NiA7OworKwkgIFBDQTU3KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKKysJICBFVjYp ICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OworKwkgIEVWNjcpICBVTkFNRV9NQUNISU5FPWFs cGhhZXY2NyA7OworKwkgIEVWNjgqKSBVTkFNRV9NQUNISU5FPWFscGhhZXY2OCA7OworKyAgICAg ICAgZXNhYworKwlvYmpkdW1wIC0tcHJpdmF0ZS1oZWFkZXJzIC9iaW4vc2ggfCBncmVwIC1xIGxk LnNvLjEKKysJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsgZWxzZSBMSUJD PSIiIDsgZmkKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251JHtMSUJD fQorKwlleGl0IDs7CisrICAgIGFybSo6TGludXg6KjoqKQorKwlldmFsICRzZXRfY2NfZm9yX2J1 aWxkCisrCWlmIGVjaG8gX19BUk1fRUFCSV9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9u dWxsIFwKKysJICAgIHwgZ3JlcCAtcSBfX0FSTV9FQUJJX18KKysJdGhlbgorKwkgICAgZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWVsc2UKKysJICAgIGVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKKysJZmkKKysJZXhpdCA7OworKyAg ICBhdnIzMio6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51 eC1nbnUKKysJZXhpdCA7OworKyAgICBjcmlzOkxpbnV4Oio6KikKKysJZWNobyBjcmlzLWF4aXMt bGludXgtZ251CisrCWV4aXQgOzsKKysgICAgY3Jpc3YzMjpMaW51eDoqOiopCisrCWVjaG8gY3Jp c3YzMi1heGlzLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGZydjpMaW51eDoqOiopCisrICAg IAllY2hvIGZydi11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGkqODY6TGludXg6 KjoqKQorKwlMSUJDPWdudQorKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCXNlZCAncy9eCS8v JyA8PCBFT0YgPiRkdW1teS5jCisrCSNpZmRlZiBfX2RpZXRsaWJjX18KKysJTElCQz1kaWV0bGli YworKwkjZW5kaWYKKytFT0YKKysJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9k ZXYvbnVsbCB8IGdyZXAgJ15MSUJDJ2AKKysJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51 eC0ke0xJQkN9IgorKwlleGl0IDs7CisrICAgIGlhNjQ6TGludXg6KjoqKQorKwllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBtMzJyKjpMaW51 eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0 IDs7CisrICAgIG02OCo6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUKKysJZXhpdCA7OworKyAgICBtaXBzOkxpbnV4Oio6KiB8IG1pcHM2NDpMaW51 eDoqOiopCisrCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKysJc2VkICdzL14JLy8nIDw8IEVPRiA+ JGR1bW15LmMKKysJI3VuZGVmIENQVQorKwkjdW5kZWYgJHtVTkFNRV9NQUNISU5FfQorKwkjdW5k ZWYgJHtVTkFNRV9NQUNISU5FfWVsCisrCSNpZiBkZWZpbmVkKF9fTUlQU0VMX18pIHx8IGRlZmlu ZWQoX19NSVBTRUwpIHx8IGRlZmluZWQoX01JUFNFTCkgfHwgZGVmaW5lZChNSVBTRUwpCisrCUNQ VT0ke1VOQU1FX01BQ0hJTkV9ZWwKKysJI2Vsc2UKKysJI2lmIGRlZmluZWQoX19NSVBTRUJfXykg fHwgZGVmaW5lZChfX01JUFNFQikgfHwgZGVmaW5lZChfTUlQU0VCKSB8fCBkZWZpbmVkKE1JUFNF QikKKysJQ1BVPSR7VU5BTUVfTUFDSElORX0KKysJI2Vsc2UKKysJQ1BVPQorKwkjZW5kaWYKKysJ I2VuZGlmCisrRU9GCisrCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251 bGwgfCBncmVwICdeQ1BVJ2AKKysJdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiB7IGVjaG8gIiR7Q1BV fS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKysJOzsKKysgICAgb3IzMjpMaW51eDoqOiop CisrCWVjaG8gb3IzMi11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIHBhZHJlOkxp bnV4Oio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAg IHBhcmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCisrCWVjaG8gaHBwYTY0LXVu a25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAgcGFyaXNjOkxpbnV4Oio6KiB8IGhwcGE6 TGludXg6KjoqKQorKwkjIExvb2sgZm9yIENQVSBsZXZlbAorKwljYXNlIGBncmVwICdeY3B1W15h LXpdKjonIC9wcm9jL2NwdWluZm8gMj4vZGV2L251bGwgfCBjdXQgLWQnICcgLWYyYCBpbgorKwkg IFBBNyopIGVjaG8gaHBwYTEuMS11bmtub3duLWxpbnV4LWdudSA7OworKwkgIFBBOCopIGVjaG8g aHBwYTIuMC11bmtub3duLWxpbnV4LWdudSA7OworKwkgICopICAgIGVjaG8gaHBwYS11bmtub3du LWxpbnV4LWdudSA7OworKwllc2FjCisrCWV4aXQgOzsKKysgICAgcHBjNjQ6TGludXg6KjoqKQor KwllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIHBwYzpM aW51eDoqOiopCisrCWVjaG8gcG93ZXJwYy11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7Cisr ICAgIHMzOTA6TGludXg6KjoqIHwgczM5MHg6TGludXg6KjoqKQorKwllY2hvICR7VU5BTUVfTUFD SElORX0taWJtLWxpbnV4CisrCWV4aXQgOzsKKysgICAgc2g2NCo6TGludXg6KjoqKQorKyAgICAJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisrCWV4aXQgOzsKKysgICAg c2gqOkxpbnV4Oio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 CisrCWV4aXQgOzsKKysgICAgc3BhcmM6TGludXg6KjoqIHwgc3BhcmM2NDpMaW51eDoqOiopCisr CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAg IHZheDpMaW51eDoqOiopCisrCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtbGludXgtZ251Cisr CWV4aXQgOzsKKysgICAgeDg2XzY0OkxpbnV4Oio6KikKKysJZWNobyB4ODZfNjQtdW5rbm93bi1s aW51eC1nbnUKKysJZXhpdCA7OworKyAgICB4dGVuc2EqOkxpbnV4Oio6KikKKysgICAgCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorKwlleGl0IDs7CisrICAgIGkqODY6 RFlOSVgvcHR4OjQqOiopCisrCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0 aCBEWU5JWC9wdHggaW4gdGhlcmUuCisrCSMgZWFybGllciB2ZXJzaW9ucyBhcmUgbWVzc2VkIHVw IGFuZCBwdXQgdGhlIG5vZGVuYW1lIGluIGJvdGgKKysJIyBzeXNuYW1lIGFuZCBub2RlbmFtZS4K KysJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKKysJZXhpdCA7OworKyAgICBpKjg2OlVOSVhfU1Y6 NC4yTVA6Mi4qKQorKyAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9vdCBvZiBTVlI0LCBi dXQgaXQgaGFzIGl0cyBvd24gdmVyc2lvbgorKyAgICAgICAgIyBudW1iZXIgc2VyaWVzIHN0YXJ0 aW5nIHdpdGggMi4uLgorKyAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNW UjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAorKwkjIEkganVzdCBoYXZlIHRvIGhvcGUuICAt LSBybXMuCisrICAgICAgICAjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBzeXN2NCogbWF0Y2hl cyBpdC4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7VU5BTUVfVkVSU0lP Tn0KKysJZXhpdCA7OworKyAgICBpKjg2Ok9TLzI6KjoqKQorKwkjIElmIHdlIHdlcmUgYWJsZSB0 byBmaW5kIGB1bmFtZScsIHRoZW4gRU1YIFVuaXggY29tcGF0aWJpbGl0eQorKwkjIGlzIHByb2Jh Ymx5IGluc3RhbGxlZC4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9zMi1lbXgKKysJZXhp dCA7OworKyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1zdG9wCisrCWV4aXQgOzsKKysgICAgaSo4NjphdGhlb3M6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKKysJZXhpdCA7OworKyAgICBpKjg2OnN5bGxh YmxlOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCisrCWV4aXQgOzsK KysgICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5 bnhPUzo0LlswMl0qOiopCisrCWVjaG8gaTM4Ni11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFT RX0KKysJZXhpdCA7OworKyAgICBpKjg2OipET1M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElO RX0tcGMtbXNkb3NkamdwcAorKwlleGl0IDs7CisrICAgIGkqODY6Kjo0Lio6KiB8IGkqODY6U1lT VEVNX1Y6NC4qOiopCisrCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdz L1wvTVAkLy8nYAorKwlpZiBncmVwIE5vdmVsbCAvdXNyL2luY2x1ZGUvbGluay5oID4vZGV2L251 bGwgMj4vZGV2L251bGw7IHRoZW4KKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bml2ZWwtc3lz diR7VU5BTUVfUkVMfQorKwllbHNlCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdiR7 VU5BTUVfUkVMfQorKwlmaQorKwlleGl0IDs7CisrICAgIGkqODY6Kjo1Ols2NzhdKikKKysgICAg CSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgorKwljYXNlIGAvYmlu L3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgorKwkgICAgKjQ4NiopCSAgICAgVU5BTUVf TUFDSElORT1pNDg2IDs7CisrCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNISU5FPWk1ODYg OzsKKysJICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7CisrCWVzYWMK KysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0ke1VO QU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059CisrCWV4aXQgOzsKKysgICAgaSo4NjoqOjMuMjoq KQorKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCisrCQlVTkFNRV9SRUw9 YHNlZCAtbiAncy8uKlZlcnNpb24gLy9wJyA8L3Vzci9vcHRpb25zL2NiLm5hbWVgCisrCQllY2hv ICR7VU5BTUVfTUFDSElORX0tcGMtaXNjJFVOQU1FX1JFTAorKwllbGlmIC9iaW4vdW5hbWUgLVgg Mj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KKysJCVVOQU1FX1JFTD1gKC9iaW4vdW5hbWUg LVh8Z3JlcCBSZWxlYXNlfHNlZCAtZSAncy8uKj0gLy8nKWAKKysJCSgvYmluL3VuYW1lIC1YfGdy ZXAgaTgwNDg2ID4vZGV2L251bGwpICYmIFVOQU1FX01BQ0hJTkU9aTQ4NgorKwkJKC9iaW4vdW5h bWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKKysJCQkmJiBVTkFN RV9NQUNISU5FPWk1ODYKKysJCSgvYmluL3VuYW1lIC1YfGdyZXAgJ15NYWNoaW5lLipQZW50ICpJ SScgPi9kZXYvbnVsbCkgXAorKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorKwkJKC9iaW4vdW5h bWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0gUHJvJyA+L2Rldi9udWxsKSBcCisrCQkJJiYg VU5BTUVfTUFDSElORT1pNjg2CisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1F X1JFTAorKwllbHNlCisrCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjMyCisrCWZpCisr CWV4aXQgOzsKKysgICAgcGM6KjoqOiopCisrCSMgTGVmdCBoZXJlIGZvciBjb21wYXRpYmlsaXR5 OgorKyAgICAgICAgIyB1bmFtZSAtbSBwcmludHMgZm9yIERKR1BQIGFsd2F5cyAncGMnLCBidXQg aXQgcHJpbnRzIG5vdGhpbmcgYWJvdXQKKysgICAgICAgICMgdGhlIHByb2Nlc3Nvciwgc28gd2Ug cGxheSBzYWZlIGJ5IGFzc3VtaW5nIGk1ODYuCisrCSMgTm90ZTogd2hhdGV2ZXIgdGhpcyBpcywg aXQgTVVTVCBiZSB0aGUgc2FtZSBhcyB3aGF0IGNvbmZpZy5zdWIKKysJIyBwcmludHMgZm9yIHRo ZSAiZGpncHAiIGhvc3QsIG9yIGVsc2UgR0RCIGNvbmZpZ3VyeSB3aWxsIGRlY2lkZSB0aGF0Cisr CSMgdGhpcyBpcyBhIGNyb3NzLWJ1aWxkLgorKwllY2hvIGk1ODYtcGMtbXNkb3NkamdwcAorKyAg ICAgICAgZXhpdCA7OworKyAgICBJbnRlbDpNYWNoOjMqOiopCisrCWVjaG8gaTM4Ni1wYy1tYWNo MworKwlleGl0IDs7CisrICAgIHBhcmFnb246KjoqOiopCisrCWVjaG8gaTg2MC1pbnRlbC1vc2Yx CisrCWV4aXQgOzsKKysgICAgaTg2MDoqOjQuKjoqKSAjIGk4NjAtU1ZSNAorKwlpZiBncmVwIFN0 YXJkZW50IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgor KwkgIGVjaG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZp c3RyYSBpODYwLVNWUjQKKysJZWxzZSAjIEFkZCBvdGhlciBpODYwLVNWUjQgdmVuZG9ycyBiZWxv dyBhcyB0aGV5IGFyZSBkaXNjb3ZlcmVkLgorKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VO QU1FX1JFTEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisrCWZpCisrCWV4aXQgOzsKKysgICAg bWluaSo6Q1RJWDpTWVMqNToqKQorKwkjICJtaW5pZnJhbWUiCisrCWVjaG8gbTY4MDEwLWNvbnZl cmdlbnQtc3lzdgorKwlleGl0IDs7CisrICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKKysJ ZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lzdgorKwlleGl0IDs7CisrICAgIE02ODA/MDpELU5JWDo1 LjM6KikKKysJZWNobyBtNjhrLWRpYWItZG5peAorKwlleGl0IDs7CisrICAgIE02OCo6KjpSM1Zb NTY3OF0qOiopCisrCXRlc3QgLXIgL3N5c1Y2OCAmJiB7IGVjaG8gJ202OGstbW90b3JvbGEtc3lz dic7IGV4aXQ7IH0gOzsKKysgICAgM1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6 My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6 NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDoz LjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjApCisrCU9TX1JFTD0nJworKwl0 ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKysJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0q IFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKysJL2Jpbi91bmFtZSAtcCAy Pi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk0ODYtbmNy LXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KKysJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8 IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisrCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5 c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsKKysgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/ PywqOio6NC4wOiopCisrICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4 NiA+L2Rldi9udWxsIFwKKysgICAgICAgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0 OyB9IDs7CisrICAgIE5DUio6Kjo0LjI6KiB8IE1QUkFTKjoqOjQuMjoqKQorKwlPU19SRUw9Jy4z JworKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKysJICAgICYmIE9TX1JFTD0uYHNlZCAtbiAncy9b XiBdKiBbXiBdKiBcKFswLTldWzAtOV1cKS4qL1wxL3AnIDwgL2V0Yy8ucmVsaWRgCisrCS9iaW4v dW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorKwkgICAgJiYgeyBl Y2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KKysJL2Jpbi91bmFtZSAtcCAy Pi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisrCSAgICAmJiB7IGVj aG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQorKwkvYmluL3VuYW1lIC1wIDI+ L2Rldi9udWxsIHwgL2Jpbi9ncmVwIHB0ZXJvbiA+L2Rldi9udWxsIFwKKysJICAgICYmIHsgZWNo byBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9IDs7CisrICAgIG02OCo6THlueE9T OjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorKwllY2hvIG02OGstdW5rbm93bi1seW54b3Mk e1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQu KjoqKQorKwllY2hvIG02OGstYXRhcmktc3lzdjQKKysJZXhpdCA7OworKyAgICBUU1VOQU1JOkx5 bnhPUzoyLio6KikKKysJZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0K KysJZXhpdCA7OworKyAgICByczYwMDA6THlueE9TOjIuKjoqKQorKwllY2hvIHJzNjAwMC11bmtu b3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBQb3dlclBDOkx5bnhP UzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9TOjQuWzAy XSo6KikKKysJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorKwll eGl0IDs7CisrICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCisrCWVjaG8gbWlwcy1kZGUtc3lzdiR7 VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCisr CWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICBSTSo6U0lOSVgtKjoqOiopCisr CWVjaG8gbWlwcy1zbmktc3lzdjQKKysJZXhpdCA7OworKyAgICAqOlNJTklYLSo6KjoqKQorKwlp ZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgorKwkJVU5BTUVfTUFDSElO RT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKysJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1zbmkt c3lzdjQKKysJZWxzZQorKwkJZWNobyBuczMyay1zbmktc3lzdgorKwlmaQorKwlleGl0IDs7Cisr ICAgIFBFTlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNW UjQvTVAgZWZmb3J0CisrICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJh cnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKysgICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQK KysgICAgICAgIGV4aXQgOzsKKysgICAgKjpVTklYX1N5c3RlbV9WOjQqOkZUWCopCisrCSMgRnJv bSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KKysJIyBIb3cgYWJvdXQgZGlm ZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCisrCWVjaG8g aHBwYTEuMS1zdHJhdHVzLXN5c3Y0CisrCWV4aXQgOzsKKysgICAgKjoqOio6RlRYKikKKysJIyBG cm9tIHNlYW5mQHN3ZGMuc3RyYXR1cy5jb20uCisrCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0Cisr CWV4aXQgOzsKKysgICAgaSo4NjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVz LmNvbS4KKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysg ICAgKjpWT1M6KjoqKQorKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KKysJZWNobyBo cHBhMS4xLXN0cmF0dXMtdm9zCisrCWV4aXQgOzsKKysgICAgbWM2OCo6QS9VWDoqOiopCisrCWVj aG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgbmV3cyo6 TkVXUy1PUzo2KjoqKQorKwllY2hvIG1pcHMtc29ueS1uZXdzb3M2CisrCWV4aXQgOzsKKysgICAg UlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6KjoqIHwgUiowMDA6VU5J WF9TVjoqOiopCisrCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgorKwkgICAgICAgIGVjaG8gbWlw cy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKysJZWxzZQorKwkgICAgICAgIGVjaG8gbWlwcy11 bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisrCWZpCisrICAgICAgICBleGl0IDs7CisrICAg IEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQ UEMgb25seS4KKysJZWNobyBwb3dlcnBjLWJlLWJlb3MKKysJZXhpdCA7OworKyAgICBCZU1hYzpC ZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gTWFjIG9yIE1hYyBjbG9uZSwgUFBDIG9ubHkuCisr CWVjaG8gcG93ZXJwYy1hcHBsZS1iZW9zCisrCWV4aXQgOzsKKysgICAgQmVQQzpCZU9TOio6KikJ IyBCZU9TIHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KKysJZWNobyBpNTg2LXBjLWJl b3MKKysJZXhpdCA7OworKyAgICBCZVBDOkhhaWt1Oio6KikJIyBIYWlrdSBydW5uaW5nIG9uIElu dGVsIFBDIGNvbXBhdGlibGUuCisrCWVjaG8gaTU4Ni1wYy1oYWlrdQorKwlleGl0IDs7CisrICAg IFNYLTQ6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFT RX0KKysJZXhpdCA7OworKyAgICBTWC01OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDUtbmVjLXN1 cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtNjpTVVBFUi1VWDoqOiop CisrCWVjaG8gc3g2LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAg IFNYLTc6U1VQRVItVVg6KjoqKQorKwllY2hvIHN4Ny1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFT RX0KKysJZXhpdCA7OworKyAgICBTWC04OlNVUEVSLVVYOio6KikKKysJZWNobyBzeDgtbmVjLXN1 cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgU1gtOFI6U1VQRVItVVg6Kjoq KQorKwllY2hvIHN4OHItbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysg ICAgUG93ZXIqOlJoYXBzb2R5Oio6KikKKysJZWNobyBwb3dlcnBjLWFwcGxlLXJoYXBzb2R5JHtV TkFNRV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgICo6UmhhcHNvZHk6KjoqKQorKwllY2hvICR7 VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsK KysgICAgKjpEYXJ3aW46KjoqKQorKwlVTkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYCB8fCBVTkFN RV9QUk9DRVNTT1I9dW5rbm93bgorKwljYXNlICRVTkFNRV9QUk9DRVNTT1IgaW4KKysJICAgIGkz ODYpCisrCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrCQlpZiBbICIkQ0NfRk9SX0JVSUxEIiAh PSAnbm9fY29tcGlsZXJfZm91bmQnIF07IHRoZW4KKysJCSAgaWYgKGVjaG8gJyNpZmRlZiBfX0xQ NjRfXyc7IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlmJykgfCBcCisrCQkgICAgICAo Q0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAorKwkJICAgICAgZ3Jl cCBJU182NEJJVF9BUkNIID4vZGV2L251bGwKKysJCSAgdGhlbgorKwkJICAgICAgVU5BTUVfUFJP Q0VTU09SPSJ4ODZfNjQiCisrCQkgIGZpCisrCQlmaSA7OworKwkgICAgdW5rbm93bikgVU5BTUVf UFJPQ0VTU09SPXBvd2VycGMgOzsKKysJZXNhYworKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1h cHBsZS1kYXJ3aW4ke1VOQU1FX1JFTEVBU0V9CisrCWV4aXQgOzsKKysgICAgKjpwcm9jbnRvKjoq OiogfCAqOlFOWDpbMDEyMzQ1Njc4OV0qOiopCisrCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBg CisrCWlmIHRlc3QgIiRVTkFNRV9QUk9DRVNTT1IiID0gIng4NiI7IHRoZW4KKysJCVVOQU1FX1BS T0NFU1NPUj1pMzg2CisrCQlVTkFNRV9NQUNISU5FPXBjCisrCWZpCisrCWVjaG8gJHtVTkFNRV9Q Uk9DRVNTT1J9LSR7VU5BTUVfTUFDSElORX0tbnRvLXFueCR7VU5BTUVfUkVMRUFTRX0KKysJZXhp dCA7OworKyAgICAqOlFOWDoqOjQqKQorKwllY2hvIGkzODYtcGMtcW54CisrCWV4aXQgOzsKKysg ICAgTlNFLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorKwllY2hvIG5zZS10YW5kZW0tbnNrJHtVTkFN RV9SRUxFQVNFfQorKwlleGl0IDs7CisrICAgIE5TUi0/Ok5PTlNUT1BfS0VSTkVMOio6KikKKysJ ZWNobyBuc3ItdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOk5v blN0b3AtVVg6KjoqKQorKwllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1eAorKwlleGl0IDs7Cisr ICAgIEJTMjAwMDpQT1NJWCo6KjoqKQorKwllY2hvIGJzMjAwMC1zaWVtZW5zLXN5c3YKKysJZXhp dCA7OworKyAgICBEUy8qOlVOSVhfU3lzdGVtX1Y6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElO RX0tJHtVTkFNRV9TWVNURU19LSR7VU5BTUVfUkVMRUFTRX0KKysJZXhpdCA7OworKyAgICAqOlBs YW45Oio6KikKKysJIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5 cGUgaW5zdGVhZC4gMzg2CisrCSMgaXMgY29udmVydGVkIHRvIGkzODYgZm9yIGNvbnNpc3RlbmN5 IHdpdGggb3RoZXIgeDg2CisrCSMgb3BlcmF0aW5nIHN5c3RlbXMuCisrCWlmIHRlc3QgIiRjcHV0 eXBlIiA9ICIzODYiOyB0aGVuCisrCSAgICBVTkFNRV9NQUNISU5FPWkzODYKKysJZWxzZQorKwkg ICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCisrCWZpCisrCWVjaG8gJHtVTkFNRV9NQUNISU5F fS11bmtub3duLXBsYW45CisrCWV4aXQgOzsKKysgICAgKjpUT1BTLTEwOio6KikKKysJZWNobyBw ZHAxMC11bmtub3duLXRvcHMxMAorKwlleGl0IDs7CisrICAgICo6VEVORVg6KjoqKQorKwllY2hv IHBkcDEwLXVua25vd24tdGVuZXgKKysJZXhpdCA7OworKyAgICBLUzEwOlRPUFMtMjA6KjoqIHwg S0wxMDpUT1BTLTIwOio6KiB8IFRZUEU0OlRPUFMtMjA6KjoqKQorKwllY2hvIHBkcDEwLWRlYy10 b3BzMjAKKysJZXhpdCA7OworKyAgICBYS0wtMTpUT1BTLTIwOio6KiB8IFRZUEU1OlRPUFMtMjA6 KjoqKQorKwllY2hvIHBkcDEwLXhrbC10b3BzMjAKKysJZXhpdCA7OworKyAgICAqOlRPUFMtMjA6 KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24tdG9wczIwCisrCWV4aXQgOzsKKysgICAgKjpJVFM6 KjoqKQorKwllY2hvIHBkcDEwLXVua25vd24taXRzCisrCWV4aXQgOzsKKysgICAgU0VJOio6KjpT RUlVWCkKKysgICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9CisrCWV4 aXQgOzsKKysgICAgKjpEcmFnb25GbHk6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5r bm93bi1kcmFnb25mbHlgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydg CisrCWV4aXQgOzsKKysgICAgKjoqVk1TOio6KikKKysgICAgCVVOQU1FX01BQ0hJTkU9YCh1bmFt ZSAtcCkgMj4vZGV2L251bGxgCisrCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCisrCSAgICBB KikgZWNobyBhbHBoYS1kZWMtdm1zIDsgZXhpdCA7OworKwkgICAgSSopIGVjaG8gaWE2NC1kZWMt dm1zIDsgZXhpdCA7OworKwkgICAgViopIGVjaG8gdmF4LWRlYy12bXMgOyBleGl0IDs7CisrCWVz YWMgOzsKKysgICAgKjpYRU5JWDoqOlN5c1YpCisrCWVjaG8gaTM4Ni1wYy14ZW5peAorKwlleGl0 IDs7CisrICAgIGkqODY6c2t5b3M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2t5 b3NgZWNobyAke1VOQU1FX1JFTEVBU0V9YCB8IHNlZCAtZSAncy8gLiokLy8nCisrCWV4aXQgOzsK KysgICAgaSo4NjpyZG9zOio6KikKKysJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXJkb3MKKysJ ZXhpdCA7OworKyAgICBpKjg2OkFST1M6KjoqKQorKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMt YXJvcworKwlleGl0IDs7CisrZXNhYworKworKyNlY2hvICcoTm8gdW5hbWUgY29tbWFuZCBvciB1 bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgorKyNlY2hvICIke1VOQU1FX01BQ0hJ TkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+ JjIKKysKKytldmFsICRzZXRfY2NfZm9yX2J1aWxkCisrY2F0ID4kZHVtbXkuYyA8PEVPRgorKyNp ZmRlZiBfU0VRVUVOVF8KKysjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorKyMgaW5jbHVkZSA8c3lz L3V0c25hbWUuaD4KKysjZW5kaWYKKyttYWluICgpCisreworKyNpZiBkZWZpbmVkIChzb255KQor KyNpZiBkZWZpbmVkIChNSVBTRUIpCisrICAvKiBCRkQgd2FudHMgImJzZCIgaW5zdGVhZCBvZiAi bmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFuZ2VkLAorKyAgICAgSSBkb24ndCBr bm93Li4uLiAgKi8KKysgIHByaW50ZiAoIm1pcHMtc29ueS1ic2RcbiIpOyBleGl0ICgwKTsKKysj ZWxzZQorKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysgIHByaW50ZiAoIm02OGstc29ueS1uZXdz b3Mlc1xuIiwKKysjaWZkZWYgTkVXU09TNAorKyAgICAgICAgICAiNCIKKysjZWxzZQorKwkgICIi CisrI2VuZGlmCisrICAgICAgICAgKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2VuZGlmCisrCisr I2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVkIChfX3Vu aXgpCisrICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlm CisrCisrI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKKysgIHByaW50ZiAo Im02OGstaHAtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKE5l WFQpCisrI2lmICFkZWZpbmVkIChfX0FSQ0hJVEVDVFVSRV9fKQorKyNkZWZpbmUgX19BUkNISVRF Q1RVUkVfXyAibTY4ayIKKysjZW5kaWYKKysgIGludCB2ZXJzaW9uOworKyAgdmVyc2lvbj1gKGhv c3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2 L251bGxgOworKyAgaWYgKHZlcnNpb24gPCA0KQorKyAgICBwcmludGYgKCIlcy1uZXh0LW5leHRz dGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOworKyAgZWxzZQorKyAgICBwcmlu dGYgKCIlcy1uZXh0LW9wZW5zdGVwJWRcbiIsIF9fQVJDSElURUNUVVJFX18sIHZlcnNpb24pOwor KyAgZXhpdCAoMCk7CisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKE1VTFRJTUFYKSB8fCBkZWZp bmVkIChuMTYpCisrI2lmIGRlZmluZWQgKFVNQVhWKQorKyAgcHJpbnRmICgibnMzMmstZW5jb3Jl LXN5c3ZcbiIpOyBleGl0ICgwKTsKKysjZWxzZQorKyNpZiBkZWZpbmVkIChDTVUpCisrICBwcmlu dGYgKCJuczMyay1lbmNvcmUtbWFjaFxuIik7IGV4aXQgKDApOworKyNlbHNlCisrICBwcmludGYg KCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2VuZGlmCisrI2Vu ZGlmCisrCisrI2lmIGRlZmluZWQgKF9fMzg2QlNEX18pCisrICBwcmludGYgKCJpMzg2LXBjLWJz ZFxuIik7IGV4aXQgKDApOworKyNlbmRpZgorKworKyNpZiBkZWZpbmVkIChzZXF1ZW50KQorKyNp ZiBkZWZpbmVkIChpMzg2KQorKyAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LWR5bml4XG4iKTsgZXhp dCAoMCk7CisrI2VuZGlmCisrI2lmIGRlZmluZWQgKG5zMzIwMDApCisrICBwcmludGYgKCJuczMy ay1zZXF1ZW50LWR5bml4XG4iKTsgZXhpdCAoMCk7CisrI2VuZGlmCisrI2VuZGlmCisrCisrI2lm IGRlZmluZWQgKF9TRVFVRU5UXykKKysgICAgc3RydWN0IHV0c25hbWUgdW47CisrCisrICAgIHVu YW1lKCZ1bik7CisrCisrICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMiIsIDIpID09IDAp IHsKKysJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKKysgICAgfQor KyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjEiLCAyKSA9PSAwKSB7IC8qIFhYWCBpcyBW MSBjb3JyZWN0PyAqLworKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4aXQgKDAp OworKyAgICB9CisrICAgIHByaW50ZiAoImkzODYtc2VxdWVudC1wdHhcbiIpOyBleGl0ICgwKTsK KysKKysjZW5kaWYKKysKKysjaWYgZGVmaW5lZCAodmF4KQorKyMgaWYgIWRlZmluZWQgKHVsdHJp eCkKKysjICBpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKysjICBpZiBkZWZpbmVkIChCU0QpCisrIyAg IGlmIEJTRCA9PSA0MworKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zXG4iKTsgZXhpdCAo MCk7CisrIyAgIGVsc2UKKysjICAgIGlmIEJTRCA9PSAxOTkwMDYKKysgICAgICBwcmludGYgKCJ2 YXgtZGVjLWJzZDQuM3Jlbm9cbiIpOyBleGl0ICgwKTsKKysjICAgIGVsc2UKKysgICAgICBwcmlu dGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworKyMgICAgZW5kaWYKKysjICAgZW5kaWYK KysjICBlbHNlCisrICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisrIyAg ZW5kaWYKKysjIGVsc2UKKysgICAgcHJpbnRmICgidmF4LWRlYy11bHRyaXhcbiIpOyBleGl0ICgw KTsKKysjIGVuZGlmCisrI2VuZGlmCisrCisrI2lmIGRlZmluZWQgKGFsbGlhbnQpICYmIGRlZmlu ZWQgKGk4NjApCisrICBwcmludGYgKCJpODYwLWFsbGlhbnQtYnNkXG4iKTsgZXhpdCAoMCk7Cisr I2VuZGlmCisrCisrICBleGl0ICgxKTsKKyt9CisrRU9GCisrCisrJENDX0ZPUl9CVUlMRCAtbyAk ZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKysJ eyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisrCisrIyBBcG9sbG9zIHB1dCB0aGUgc3lz dGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgorKworK3Rlc3QgLWQgL3Vzci9hcG9sbG8gJiYg eyBlY2hvICR7SVNQfS1hcG9sbG8tJHtTWVNUWVBFfTsgZXhpdDsgfQorKworKyMgQ29udmV4IHZl cnNpb25zIHRoYXQgcHJlZGF0ZSB1bmFtZSBjYW4gdXNlIGdldHN5c2luZm8oMSkKKysKKytpZiBb IC14IC91c3IvY29udmV4L2dldHN5c2luZm8gXQorK3RoZW4KKysgICAgY2FzZSBgZ2V0c3lzaW5m byAtZiBjcHVfdHlwZWAgaW4KKysgICAgYzEqKQorKwllY2hvIGMxLWNvbnZleC1ic2QKKysJZXhp dCA7OworKyAgICBjMiopCisrCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYworKwl0aGVuIGVj aG8gYzMyLWNvbnZleC1ic2QKKysJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QKKysJZmkKKysJZXhp dCA7OworKyAgICBjMzQqKQorKwllY2hvIGMzNC1jb252ZXgtYnNkCisrCWV4aXQgOzsKKysgICAg YzM4KikKKysJZWNobyBjMzgtY29udmV4LWJzZAorKwlleGl0IDs7CisrICAgIGM0KikKKysJZWNo byBjNC1jb252ZXgtYnNkCisrCWV4aXQgOzsKKysgICAgZXNhYworK2ZpCisrCisrY2F0ID4mMiA8 PEVPRgorKyQwOiB1bmFibGUgdG8gZ3Vlc3Mgc3lzdGVtIHR5cGUKKysKKytUaGlzIHNjcmlwdCwg bGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVkIHRvIHJlY29nbml6ZQorK3RoZSBv cGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0IGlzIGFkdmlzZWQgdGhhdCB5b3UKKytk b3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBzY3JpcHRz IGZyb20KKysKKysgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmln LmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuZ3Vlc3M7aGI9SEVBRAorK2FuZAorKyAgaHR0cDov L2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtm PWNvbmZpZy5zdWI7aGI9SEVBRAorKworK0lmIHRoZSB2ZXJzaW9uIHlvdSBydW4gKCQwKSBpcyBh bHJlYWR5IHVwIHRvIGRhdGUsIHBsZWFzZQorK3NlbmQgdGhlIGZvbGxvd2luZyBkYXRhIGFuZCBh bnkgaW5mb3JtYXRpb24geW91IHRoaW5rIG1pZ2h0IGJlCisrcGVydGluZW50IHRvIDxjb25maWct cGF0Y2hlc0BnbnUub3JnPiBpbiBvcmRlciB0byBwcm92aWRlIHRoZSBuZWVkZWQKKytpbmZvcm1h dGlvbiB0byBoYW5kbGUgeW91ciBzeXN0ZW0uCisrCisrY29uZmlnLmd1ZXNzIHRpbWVzdGFtcCA9 ICR0aW1lc3RhbXAKKysKKyt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVj aG8gdW5rbm93bmAKKyt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8g dW5rbm93bmAKKyt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5r bm93bmAKKyt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93 bmAKKysKKysvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9u dWxsYAorKy9iaW4vdW5hbWUgLVggICAgID0gYCgvYmluL3VuYW1lIC1YKSAyPi9kZXYvbnVsbGAK KysKKytob3N0aW5mbyAgICAgICAgICAgICAgID0gYChob3N0aW5mbykgMj4vZGV2L251bGxgCisr L2Jpbi91bml2ZXJzZSAgICAgICAgICA9IGAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgCisr L3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGxg CisrL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbGAKKysv dXNyL2Jpbi9vc2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xldmVsKSAyPi9kZXYvbnVsbGAK KysvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9k ZXYvbnVsbGAKKysKKytVTkFNRV9NQUNISU5FID0gJHtVTkFNRV9NQUNISU5FfQorK1VOQU1FX1JF TEVBU0UgPSAke1VOQU1FX1JFTEVBU0V9CisrVU5BTUVfU1lTVEVNICA9ICR7VU5BTUVfU1lTVEVN fQorK1VOQU1FX1ZFUlNJT04gPSAke1VOQU1FX1ZFUlNJT059CisrRU9GCisrCisrZXhpdCAxCisr CisrIyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9v a3MgJ3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisrIyB0 aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisrIyB0aW1lLXN0YW1wLWVuZDogIici CisrIyBFbmQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5zdWIg c29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jb25maWcuc3ViCistLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2NvbmZpZy5zdWIJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5zdWIJMjAxMC0wMS0yMyAxNDo0 NDo1MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsMTcwNSBAQAorKyMhIC9iaW4vc2gKKysj IENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNjcmlwdC4KKysjICAgQ29weXJp Z2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAor KyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5CisrIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworK3RpbWVzdGFt cD0nMjAwOS0xMS0yMCcKKysKKysjIFRoaXMgZmlsZSBpcyAoaW4gcHJpbmNpcGxlKSBjb21tb24g dG8gQUxMIEdOVSBzb2Z0d2FyZS4KKysjIFRoZSBwcmVzZW5jZSBvZiBhIG1hY2hpbmUgaW4gdGhp cyBmaWxlIHN1Z2dlc3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUKKysjIGNhbiBoYW5kbGUgdGhh dCBtYWNoaW5lLiAgSXQgZG9lcyBub3QgaW1wbHkgQUxMIEdOVSBzb2Z0d2FyZSBjYW4uCisrIwor KyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0 IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKysjIDAyMTEwLTEzMDEsIFVTQS4KKysjCisrIyBB cyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg aWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0 IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29u ZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVy bXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisrCisrCisrIyBQ bGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBh IGNvbnRleHQKKysjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIEdOVSBDaGFuZ2VMb2cg ZW50cnkuCisrIworKyMgQ29uZmlndXJhdGlvbiBzdWJyb3V0aW5lIHRvIHZhbGlkYXRlIGFuZCBj YW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIHR5cGUuCisrIyBTdXBwbHkgdGhlIHNwZWNpZmll ZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCisrIyBJZiBpdCBpcyBpbnZhbGlk LCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUg MS4KKysjIE90aGVyd2lzZSwgd2UgcHJpbnQgdGhlIGNhbm9uaWNhbCBjb25maWcgdHlwZSBvbiBz dGRvdXQgYW5kIHN1Y2NlZWQuCisrCisrIyBZb3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24g b2YgdGhpcyBzY3JpcHQgZnJvbToKKysjIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3 ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQKKysKKysj IFRoaXMgZmlsZSBpcyBzdXBwb3NlZCB0byBiZSB0aGUgc2FtZSBmb3IgYWxsIEdOVSBwYWNrYWdl cworKyMgYW5kIHJlY29nbml6ZSBhbGwgdGhlIENQVSB0eXBlcywgc3lzdGVtIHR5cGVzIGFuZCBh bGlhc2VzCisrIyB0aGF0IGFyZSBtZWFuaW5nZnVsIHdpdGggKmFueSogR05VIHNvZnR3YXJlLgor KyMgRWFjaCBwYWNrYWdlIGlzIHJlc3BvbnNpYmxlIGZvciByZXBvcnRpbmcgd2hpY2ggdmFsaWQg Y29uZmlndXJhdGlvbnMKKysjIGl0IGRvZXMgbm90IHN1cHBvcnQuICBUaGUgdXNlciBzaG91bGQg YmUgYWJsZSB0byBkaXN0aW5ndWlzaAorKyMgYSBmYWlsdXJlIHRvIHN1cHBvcnQgYSB2YWxpZCBj b25maWd1cmF0aW9uIGZyb20gYSBtZWFuaW5nbGVzcworKyMgY29uZmlndXJhdGlvbi4KKysKKysj IFRoZSBnb2FsIG9mIHRoaXMgZmlsZSBpcyB0byBtYXAgYWxsIHRoZSB2YXJpb3VzIHZhcmlhdGlv bnMgb2YgYSBnaXZlbgorKyMgbWFjaGluZSBzcGVjaWZpY2F0aW9uIGludG8gYSBzaW5nbGUgc3Bl Y2lmaWNhdGlvbiBpbiB0aGUgZm9ybToKKysjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJ TkdfU1lTVEVNCisrIyBvciBpbiBzb21lIGNhc2VzLCB0aGUgbmV3ZXIgZm91ci1wYXJ0IGZvcm06 CisrIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJBVElOR19TWVNURU0KKysjIEl0 IGlzIHdyb25nIHRvIGVjaG8gYW55IG90aGVyIHR5cGUgb2Ygc3BlY2lmaWNhdGlvbi4KKysKKytt ZT1gZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKKysKKyt1c2FnZT0iXAorK1VzYWdlOiAk MCBbT1BUSU9OXSBDUFUtTUZSLU9QU1lTCisrICAgICAgICQwIFtPUFRJT05dIEFMSUFTCisrCisr Q2Fub25pY2FsaXplIGEgY29uZmlndXJhdGlvbiBuYW1lLgorKworK09wZXJhdGlvbiBtb2RlczoK KysgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorKyAgLXQs IC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24sIHRoZW4gZXhp dAorKyAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4aXQK KysKKytSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4u IgorKworK3ZlcnNpb249IlwKKytHTlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKKysKKytDb3B5 cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTks IDIwMDAsIDIwMDEsCisrMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKytUaGlzIGlzIGZyZWUgc29mdHdhcmU7 IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTworK3dh cnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiIKKysKKytoZWxwPSIKKytUcnkgXGAkbWUgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi4iCisrCisrIyBQYXJzZSBjb21tYW5kIGxpbmUKKyt3aGlsZSB0ZXN0ICQj IC1ndCAwIDsgZG8KKysgIGNhc2UgJDEgaW4KKysgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8 IC10ICkKKysgICAgICAgZWNobyAiJHRpbWVzdGFtcCIgOyBleGl0IDs7CisrICAgIC0tdmVyc2lv biB8IC12ICkKKysgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworKyAgICAtLWhlbHAg fCAtLWgqIHwgLWggKQorKyAgICAgICBlY2hvICIkdXNhZ2UiOyBleGl0IDs7CisrICAgIC0tICkg ICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworKyAgICAgICBzaGlmdDsgYnJlYWsgOzsKKysg ICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgorKyAgICAgICBicmVhayA7OworKyAgICAtKiAp CisrICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIKKysgICAgICAgZXhp dCAxIDs7CisrCisrICAgICpsb2NhbCopCisrICAgICAgICMgRmlyc3QgcGFzcyB0aHJvdWdoIGFu eSBsb2NhbCBtYWNoaW5lIHR5cGVzLgorKyAgICAgICBlY2hvICQxCisrICAgICAgIGV4aXQgOzsK KysKKysgICAgKiApCisrICAgICAgIGJyZWFrIDs7CisrICBlc2FjCisrZG9uZQorKworK2Nhc2Ug JCMgaW4KKysgMCkgZWNobyAiJG1lOiBtaXNzaW5nIGFyZ3VtZW50JGhlbHAiID4mMgorKyAgICBl eGl0IDE7OworKyAxKSA7OworKyAqKSBlY2hvICIkbWU6IHRvbyBtYW55IGFyZ3VtZW50cyRoZWxw IiA+JjIKKysgICAgZXhpdCAxOzsKKytlc2FjCisrCisrIyBTZXBhcmF0ZSB3aGF0IHRoZSB1c2Vy IGdhdmUgaW50byBDUFUtQ09NUEFOWSBhbmQgT1Mgb3IgS0VSTkVMLU9TIChpZiBhbnkpLgorKyMg SGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtFUk5FTC1PUyBjb21iaW5hdGlv bnMuCisrbWF5YmVfb3M9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkk L1wyLydgCisrY2FzZSAkbWF5YmVfb3MgaW4KKysgIG50by1xbngqIHwgbGludXgtZ251KiB8IGxp bnV4LWRpZXRsaWJjIHwgbGludXgtbmV3bGliKiB8IGxpbnV4LXVjbGliYyogfCBcCisrICB1Y2xp bnV4LXVjbGliYyogfCB1Y2xpbnV4LWdudSogfCBrZnJlZWJzZCotZ251KiB8IGtuZXRic2QqLWdu dSogfCBuZXRic2QqLWdudSogfCBcCisrICBrb3BlbnNvbGFyaXMqLWdudSogfCBcCisrICBzdG9y bS1jaGFvcyogfCBvczItZW14KiB8IHJ0bWstbm92YSopCisrICAgIG9zPS0kbWF5YmVfb3MKKysg ICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpc KSQvXDEvJ2AKKysgICAgOzsKKysgICopCisrICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgJ3MvLVteLV0qJC8vJ2AKKysgICAgaWYgWyAkYmFzaWNfbWFjaGluZSAhPSAkMSBdCisrICAg IHRoZW4gb3M9YGVjaG8gJDEgfCBzZWQgJ3MvLiotLy0vJ2AKKysgICAgZWxzZSBvcz07IGZpCisr ICAgIDs7CisrZXNhYworKworKyMjIyBMZXQncyByZWNvZ25pemUgY29tbW9uIG1hY2hpbmVzIGFz IG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcyBzbworKyMjIyB0aGF0IHRoaW5ncyBsaWtlIGNv bmZpZy5zdWIgZGVjc3RhdGlvbi0zMTAwIHdvcmsuICBXZSBhbHNvCisrIyMjIHJlY29nbml6ZSBz b21lIG1hbnVmYWN0dXJlcnMgYXMgbm90IGJlaW5nIG9wZXJhdGluZyBzeXN0ZW1zLCBzbyB3ZQor KyMjIyBjYW4gcHJvdmlkZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIGJlbG93LgorK2Nhc2Ug JG9zIGluCisrCS1zdW4qb3MqKQorKwkJIyBQcmV2ZW50IGZvbGxvd2luZyBjbGF1c2UgZnJvbSBo YW5kbGluZyB0aGlzIGludmFsaWQgaW5wdXQuCisrCQk7OworKwktZGVjKiB8IC1taXBzKiB8IC1z ZXF1ZW50KiB8IC1lbmNvcmUqIHwgLXBjNTMyKiB8IC1zZ2kqIHwgLXNvbnkqIHwgXAorKwktYXR0 KiB8IC03MzAwKiB8IC0zMzAwKiB8IC1kZWx0YSogfCAtbW90b3JvbGEqIHwgLXN1blsyMzRdKiB8 IFwKKysJLXVuaWNvbSogfCAtaWJtKiB8IC1uZXh0IHwgLWhwIHwgLWlzaSogfCAtYXBvbGxvIHwg LWFsdG9zKiB8IFwKKysJLWNvbnZlcmdlbnQqIHwgLW5jciogfCAtbmV3cyB8IC0zMiogfCAtMzYw MCogfCAtMzEwMCogfCAtaGl0YWNoaSogfFwKKysJLWNbMTIzXSogfCAtY29udmV4KiB8IC1zdW4g fCAtY3JkcyB8IC1vbXJvbiogfCAtZGcgfCAtdWx0cmEgfCAtdHRpKiB8IFwKKysJLWhhcnJpcyB8 IC1kb2xwaGluIHwgLWhpZ2hsZXZlbCB8IC1nb3VsZCB8IC1jYm0gfCAtbnMgfCAtbWFzc2NvbXAg fCBcCisrCS1hcHBsZSB8IC1heGlzIHwgLWtudXRoIHwgLWNyYXkgfCAtbWljcm9ibGF6ZSkKKysJ CW9zPQorKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJOzsKKysgICAgICAgIC1ibHVlZ2VuZSopCisr CSAgICAgICAgb3M9LWNuaworKwkJOzsKKysJLXNpbSB8IC1jaXNjbyB8IC1va2kgfCAtd2VjIHwg LXdpbmJvbmQpCisrCQlvcz0KKysJCWJhc2ljX21hY2hpbmU9JDEKKysJCTs7CisrCS1zY291dCkK KysJCTs7CisrCS13cnMpCisrCQlvcz0tdnh3b3JrcworKwkJYmFzaWNfbWFjaGluZT0kMQorKwkJ OzsKKysJLWNob3J1c29zKikKKysJCW9zPS1jaG9ydXNvcworKwkJYmFzaWNfbWFjaGluZT0kMQor KwkJOzsKKysgCS1jaG9ydXNyZGIpCisrIAkJb3M9LWNob3J1c3JkYgorKwkJYmFzaWNfbWFjaGlu ZT0kMQorKyAJCTs7CisrCS1oaXV4KikKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwktc2NvNikK KysJCW9zPS1zY281djYKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYt LiovODYtcGMvJ2AKKysJCTs7CisrCS1zY281KQorKwkJb3M9LXNjbzMuMnY1CisrCQliYXNpY19t YWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2Nv NCkKKysJCW9zPS1zY28zLjJ2NAorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAn cy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXNjbzMuMi5bNC05XSopCisrCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCisrCQliYXNpY19tYWNoaW5lPWBlY2hv ICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7OworKwktc2NvMy4ydls0LTldKikK KysJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCisrCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7Owor Kwktc2NvNXY2KikKKysJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3Ig bmV3ZXIuCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBj LydgCisrCQk7OworKwktc2NvKikKKysJCW9zPS1zY28zLjJ2MgorKwkJYmFzaWNfbWFjaGluZT1g ZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLXVkayopCisrCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisrCQk7Owor KwktaXNjKQorKwkJb3M9LWlzYzIuMgorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAt ZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLWNsaXgqKQorKwkJYmFzaWNfbWFjaGluZT1j bGlwcGVyLWludGVyZ3JhcGgKKysJCTs7CisrCS1pc2MqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNo byAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorKwkJOzsKKysJLWx5bngqKQorKwkJb3M9 LWx5bnhvcworKwkJOzsKKysJLXB0eCopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LS4qLzg2LXNlcXVlbnQvJ2AKKysJCTs7CisrCS13aW5kb3dzbnQqKQorKwkJb3M9 YGVjaG8gJG9zIHwgc2VkIC1lICdzL3dpbmRvd3NudC93aW5udC8nYAorKwkJOzsKKysJLXBzb3Mq KQorKwkJb3M9LXBzb3MKKysJCTs7CisrCS1taW50IHwgLW1pbnRbMC05XSopCisrCQliYXNpY19t YWNoaW5lPW02OGstYXRhcmkKKysJCW9zPS1taW50CisrCQk7OworK2VzYWMKKysKKysjIERlY29k ZSBhbGlhc2VzIGZvciBjZXJ0YWluIENQVS1DT01QQU5ZIGNvbWJpbmF0aW9ucy4KKytjYXNlICRi YXNpY19tYWNoaW5lIGluCisrCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91 dCBjb21wYW55IG5hbWUuCisrCSMgU29tZSBhcmUgb21pdHRlZCBoZXJlIGJlY2F1c2UgdGhleSBo YXZlIHNwZWNpYWwgbWVhbmluZ3MgYmVsb3cuCisrCTE3NTBhIHwgNTgwIFwKKysJfCBhMjlrIFwK KysJfCBhbHBoYSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFscGhhZXY2Wzc4XSB8IGFs cGhhcGNhNVs2N10gXAorKwl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04XSB8IGFscGhhNjRldjU2 IHwgYWxwaGE2NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAorKwl8IGFtMzNfMi4wIFwKKysJ fCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZbMzQ1 XVtsYl0gfCBhdnIgfCBhdnIzMiBcCisrCXwgYmZpbiBcCisrCXwgYzR4IHwgY2xpcHBlciBcCisr CXwgZDEwdiB8IGQzMHYgfCBkbHggfCBkc3AxNnh4IFwKKysJfCBmaWRvIHwgZnIzMCB8IGZydiBc CisrCXwgaDgzMDAgfCBoODUwMCB8IGhwcGEgfCBocHBhMS5bMDFdIHwgaHBwYTIuMCB8IGhwcGEy LjBbbnddIHwgaHBwYTY0IFwKKysJfCBpMzcwIHwgaTg2MCB8IGk5NjAgfCBpYTY0IFwKKysJfCBp cDJrIHwgaXEyMDAwIFwKKysJfCBsbTMyIFwKKysJfCBtMzJjIHwgbTMyciB8IG0zMnJsZSB8IG02 ODAwMCB8IG02OGsgfCBtODhrIFwKKysJfCBtYXhxIHwgbWIgfCBtaWNyb2JsYXplIHwgbWNvcmUg fCBtZXAgfCBtZXRhZyBcCisrCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1p cHNsZSBcCisrCXwgbWlwczE2IFwKKysJfCBtaXBzNjQgfCBtaXBzNjRlbCBcCisrCXwgbWlwczY0 b2N0ZW9uIHwgbWlwczY0b2N0ZW9uZWwgXAorKwl8IG1pcHM2NG9yaW9uIHwgbWlwczY0b3Jpb25l bCBcCisrCXwgbWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwKKysJfCBtaXBzNjR2ciB8IG1p cHM2NHZyZWwgXAorKwl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVsIFwKKysJfCBtaXBz NjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCisrCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1 MDAwZWwgXAorKwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkwMGVsIFwKKysJfCBtaXBzaXNh MzIgfCBtaXBzaXNhMzJlbCBcCisrCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKysJ fCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCisrCXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRy MmVsIFwKKysJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisrCXwgbWlwc2lzYTY0 c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKKysJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAor Kwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKysJfCBtb3hpZSBcCisrCXwgbXQgXAorKwl8IG1zcDQz MCBcCisrCXwgbmlvcyB8IG5pb3MyIFwKKysJfCBuczE2ayB8IG5zMzJrIFwKKysJfCBvcjMyIFwK KysJfCBwZHAxMCB8IHBkcDExIHwgcGogfCBwamwgXAorKwl8IHBvd2VycGMgfCBwb3dlcnBjNjQg fCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSB8IHBwY2JlIFwKKysJfCBweXJhbWlkIFwKKysJfCBy eCBcCisrCXwgc2NvcmUgXAorKwl8IHNoIHwgc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWVi IHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hlYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8 IHNoM2VsZSBcCisrCXwgc2g2NCB8IHNoNjRsZSBcCisrCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3Bh cmM2NGIgfCBzcGFyYzY0diB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgXAorKwl8 IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5diBcCisrCXwgc3B1IHwgc3Ry b25nYXJtIFwKKysJfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAorKwl8 IHViaWNvbTMyIFwKKysJfCB2ODUwIHwgdjg1MGUgXAorKwl8IHdlMzJrIFwKKysJfCB4ODYgfCB4 YzE2eCB8IHhzY2FsZSB8IHhzY2FsZWVbYmxdIHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKKysJfCB6 OGsgfCB6ODApCisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7 CisrCW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMiB8IHBpY29jaGlwKQorKwkJIyBN b3Rvcm9sYSA2OEhDMTEvMTIuCisrCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25v d24KKysJCW9zPS1ub25lCisrCQk7OworKwltODgxMTAgfCBtNjgwWzEyMzQ2XTAgfCBtNjgzPzIg fCBtNjgzNjAgfCBtNTIwMCB8IHY3MCB8IHc2NSB8IHo4aykKKysJCTs7CisrCW1zMSkKKysJCWJh c2ljX21hY2hpbmU9bXQtdW5rbm93bgorKwkJOzsKKysKKysJIyBXZSB1c2UgYHBjJyByYXRoZXIg dGhhbiBgdW5rbm93bicKKysJIyBiZWNhdXNlICgxKSB0aGF0J3Mgd2hhdCB0aGV5IG5vcm1hbGx5 IGFyZSwgYW5kCisrCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNlIGJl Z2lubmluZyB1c2Vycy4KKysJaSo4NiB8IHg4Nl82NCkKKysJICBiYXNpY19tYWNoaW5lPSRiYXNp Y19tYWNoaW5lLXBjCisrCSAgOzsKKysJIyBPYmplY3QgaWYgbW9yZSB0aGFuIG9uZSBjb21wYW55 IG5hbWUgd29yZC4KKysJKi0qLSopCisrCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQx XCc6IG1hY2hpbmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKKysJCWV4 aXQgMQorKwkJOzsKKysJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNvbXBh bnkgbmFtZS4KKysJNTgwLSogXAorKwl8IGEyOWstKiBcCisrCXwgYWxwaGEtKiB8IGFscGhhZXZb NC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCisrCXwgYWxwaGE2NC0qIHwg YWxwaGE2NGV2WzQtOF0tKiB8IGFscGhhNjRldjU2LSogfCBhbHBoYTY0ZXY2Wzc4XS0qIFwKKysJ fCBhbHBoYXBjYTVbNjddLSogfCBhbHBoYTY0cGNhNVs2N10tKiB8IGFyYy0qIFwKKysJfCBhcm0t KiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKKysJfCBhdnItKiB8 IGF2cjMyLSogXAorKwl8IGJmaW4tKiB8IGJzMjAwMC0qIFwKKysJfCBjWzEyM10qIHwgYzMwLSog fCBbY2p0XTkwLSogfCBjNHgtKiB8IGM1NHgtKiB8IGM1NXgtKiB8IGM2eC0qIFwKKysJfCBjbGlw cGVyLSogfCBjcmF5bnYtKiB8IGN5ZHJhLSogXAorKwl8IGQxMHYtKiB8IGQzMHYtKiB8IGRseC0q IFwKKysJfCBlbHhzaS0qIFwKKysJfCBmMzBbMDFdLSogfCBmNzAwLSogfCBmaWRvLSogfCBmcjMw LSogfCBmcnYtKiB8IGZ4ODAtKiBcCisrCXwgaDgzMDAtKiB8IGg4NTAwLSogXAorKwl8IGhwcGEt KiB8IGhwcGExLlswMV0tKiB8IGhwcGEyLjAtKiB8IGhwcGEyLjBbbnddLSogfCBocHBhNjQtKiBc CisrCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKKysJfCBpcDJrLSogfCBp cTIwMDAtKiBcCisrCXwgbG0zMi0qIFwKKysJfCBtMzJjLSogfCBtMzJyLSogfCBtMzJybGUtKiBc CisrCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgzNjAtKiB8IG02ODM/Mi0qIHwg bTY4ay0qIFwKKysJfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEtKiB8IG1jb3JlLSogfCBtZXRh Zy0qIHwgbWljcm9ibGF6ZS0qIFwKKysJfCBtaXBzLSogfCBtaXBzYmUtKiB8IG1pcHNlYi0qIHwg bWlwc2VsLSogfCBtaXBzbGUtKiBcCisrCXwgbWlwczE2LSogXAorKwl8IG1pcHM2NC0qIHwgbWlw czY0ZWwtKiBcCisrCXwgbWlwczY0b2N0ZW9uLSogfCBtaXBzNjRvY3Rlb25lbC0qIFwKKysJfCBt aXBzNjRvcmlvbi0qIHwgbWlwczY0b3Jpb25lbC0qIFwKKysJfCBtaXBzNjRyNTkwMC0qIHwgbWlw czY0cjU5MDBlbC0qIFwKKysJfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKKysJfCBtaXBz NjR2cjQxMDAtKiB8IG1pcHM2NHZyNDEwMGVsLSogXAorKwl8IG1pcHM2NHZyNDMwMC0qIHwgbWlw czY0dnI0MzAwZWwtKiBcCisrCXwgbWlwczY0dnI1MDAwLSogfCBtaXBzNjR2cjUwMDBlbC0qIFwK KysJfCBtaXBzNjR2cjU5MDAtKiB8IG1pcHM2NHZyNTkwMGVsLSogXAorKwl8IG1pcHNpc2EzMi0q IHwgbWlwc2lzYTMyZWwtKiBcCisrCXwgbWlwc2lzYTMycjItKiB8IG1pcHNpc2EzMnIyZWwtKiBc CisrCXwgbWlwc2lzYTY0LSogfCBtaXBzaXNhNjRlbC0qIFwKKysJfCBtaXBzaXNhNjRyMi0qIHwg bWlwc2lzYTY0cjJlbC0qIFwKKysJfCBtaXBzaXNhNjRzYjEtKiB8IG1pcHNpc2E2NHNiMWVsLSog XAorKwl8IG1pcHNpc2E2NHNyNzFrLSogfCBtaXBzaXNhNjRzcjcxa2VsLSogXAorKwl8IG1pcHN0 eDM5LSogfCBtaXBzdHgzOWVsLSogXAorKwl8IG1taXgtKiBcCisrCXwgbXQtKiBcCisrCXwgbXNw NDMwLSogXAorKwl8IG5pb3MtKiB8IG5pb3MyLSogXAorKwl8IG5vbmUtKiB8IG5wMS0qIHwgbnMx NmstKiB8IG5zMzJrLSogXAorKwl8IG9yaW9uLSogXAorKwl8IHBkcDEwLSogfCBwZHAxMS0qIHwg cGotKiB8IHBqbC0qIHwgcG4tKiB8IHBvd2VyLSogXAorKwl8IHBvd2VycGMtKiB8IHBvd2VycGM2 NC0qIHwgcG93ZXJwYzY0bGUtKiB8IHBvd2VycGNsZS0qIHwgcHBjYmUtKiBcCisrCXwgcHlyYW1p ZC0qIFwKKysJfCByb21wLSogfCByczYwMDAtKiB8IHJ4LSogXAorKwl8IHNoLSogfCBzaFsxMjM0 XS0qIHwgc2hbMjRdYS0qIHwgc2hbMjRdYWViLSogfCBzaFsyM11lLSogfCBzaFszNF1lYi0qIHwg c2hlYi0qIHwgc2hiZS0qIFwKKysJfCBzaGxlLSogfCBzaFsxMjM0XWxlLSogfCBzaDNlbGUtKiB8 IHNoNjQtKiB8IHNoNjRsZS0qIFwKKysJfCBzcGFyYy0qIHwgc3BhcmM2NC0qIHwgc3BhcmM2NGIt KiB8IHNwYXJjNjR2LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQtKiBcCisrCXwgc3BhcmNsaXRl LSogXAorKwl8IHNwYXJjdjgtKiB8IHNwYXJjdjktKiB8IHNwYXJjdjliLSogfCBzcGFyY3Y5di0q IHwgc3Ryb25nYXJtLSogfCBzdjEtKiB8IHN4Py0qIFwKKysJfCB0YWhvZS0qIHwgdGh1bWItKiBc CisrCXwgdGljMzAtKiB8IHRpYzR4LSogfCB0aWM1NHgtKiB8IHRpYzU1eC0qIHwgdGljNngtKiB8 IHRpYzgwLSogfCB0aWxlLSogXAorKwl8IHRyb24tKiBcCisrCXwgdWJpY29tMzItKiBcCisrCXwg djg1MC0qIHwgdjg1MGUtKiB8IHZheC0qIFwKKysJfCB3ZTMyay0qIFwKKysJfCB4ODYtKiB8IHg4 Nl82NC0qIHwgeGMxNngtKiB8IHhwczEwMC0qIHwgeHNjYWxlLSogfCB4c2NhbGVlW2JsXS0qIFwK KysJfCB4c3Rvcm15MTYtKiB8IHh0ZW5zYSotKiBcCisrCXwgeW1wLSogXAorKwl8IHo4ay0qIHwg ejgwLSopCisrCQk7OworKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQg Y29tcGFueSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCisrCXh0ZW5zYSopCisrCQliYXNpY19tYWNo aW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKysJCTs7CisrCSMgUmVjb2duaXplIHRoZSB2YXJp b3VzIG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKKysJIyBmb3IgYSBDUFUg dHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KKysJMzg2YnNkKQor KwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKysJCW9zPS1ic2QKKysJCTs7CisrCTNiMSB8 IDczMDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwgc2FmYXJpIHwgdW5peHBjKQor KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0CisrCQk7OworKwkzYiopCisrCQliYXNpY19tYWNo aW5lPXdlMzJrLWF0dAorKwkJOzsKKysJYTI5a2hpZikKKysJCWJhc2ljX21hY2hpbmU9YTI5ay1h bWQKKysJCW9zPS11ZGkKKysJCTs7CisrICAgIAlhYmFjdXMpCisrCQliYXNpY19tYWNoaW5lPWFi YWN1cy11bmtub3duCisrCQk7OworKwlhZG9iZTY4aykKKysJCWJhc2ljX21hY2hpbmU9bTY4MDEw LWFkb2JlCisrCQlvcz0tc2NvdXQKKysJCTs7CisrCWFsbGlhbnQgfCBmeDgwKQorKwkJYmFzaWNf bWFjaGluZT1meDgwLWFsbGlhbnQKKysJCTs7CisrCWFsdG9zIHwgYWx0b3MzMDY4KQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLWFsdG9zCisrCQk7OworKwlhbTI5aykKKysJCWJhc2ljX21hY2hpbmU9 YTI5ay1ub25lCisrCQlvcz0tYnNkCisrCQk7OworKwlhbWQ2NCkKKysJCWJhc2ljX21hY2hpbmU9 eDg2XzY0LXBjCisrCQk7OworKwlhbWQ2NC0qKQorKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCWFtZGFobCkK KysJCWJhc2ljX21hY2hpbmU9NTgwLWFtZGFobAorKwkJb3M9LXN5c3YKKysJCTs7CisrCWFtaWdh IHwgYW1pZ2EtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCisrCQk7OworKwlhbWln YW9zIHwgYW1pZ2Fkb3MpCisrCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorKwkJb3M9LWFt aWdhb3MKKysJCTs7CisrCWFtaWdhdW5peCB8IGFtaXgpCisrCQliYXNpY19tYWNoaW5lPW02OGst dW5rbm93bgorKwkJb3M9LXN5c3Y0CisrCQk7OworKwlhcG9sbG82OCkKKysJCWJhc2ljX21hY2hp bmU9bTY4ay1hcG9sbG8KKysJCW9zPS1zeXN2CisrCQk7OworKwlhcG9sbG82OGJzZCkKKysJCWJh c2ljX21hY2hpbmU9bTY4ay1hcG9sbG8KKysJCW9zPS1ic2QKKysJCTs7CisrCWFyb3MpCisrCQli YXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1hcm9zCisrCQk7OworKwlhdXgpCisrCQliYXNp Y19tYWNoaW5lPW02OGstYXBwbGUKKysJCW9zPS1hdXgKKysJCTs7CisrCWJhbGFuY2UpCisrCQli YXNpY19tYWNoaW5lPW5zMzJrLXNlcXVlbnQKKysJCW9zPS1keW5peAorKwkJOzsKKysJYmxhY2tm aW4pCisrCQliYXNpY19tYWNoaW5lPWJmaW4tdW5rbm93bgorKwkJb3M9LWxpbnV4CisrCQk7Owor KwlibGFja2Zpbi0qKQorKwkJYmFzaWNfbWFjaGluZT1iZmluLWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkICdzL15bXi1dKi0vLydgCisrCQlvcz0tbGludXgKKysJCTs7CisrCWJsdWVnZW5lKikK KysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1pYm0KKysJCW9zPS1jbmsKKysJCTs7CisrCWM5MCkK KysJCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrICAgICAg ICBjZWdjYykKKysJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KKysJCW9zPS1jZWdjYworKwkJ OzsKKysJY29udmV4LWMxKQorKwkJYmFzaWNfbWFjaGluZT1jMS1jb252ZXgKKysJCW9zPS1ic2QK KysJCTs7CisrCWNvbnZleC1jMikKKysJCWJhc2ljX21hY2hpbmU9YzItY29udmV4CisrCQlvcz0t YnNkCisrCQk7OworKwljb252ZXgtYzMyKQorKwkJYmFzaWNfbWFjaGluZT1jMzItY29udmV4Cisr CQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzM0KQorKwkJYmFzaWNfbWFjaGluZT1jMzQtY29u dmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljb252ZXgtYzM4KQorKwkJYmFzaWNfbWFjaGluZT1j MzgtY29udmV4CisrCQlvcz0tYnNkCisrCQk7OworKwljcmF5IHwgajkwKQorKwkJYmFzaWNfbWFj aGluZT1qOTAtY3JheQorKwkJb3M9LXVuaWNvcworKwkJOzsKKysJY3JheW52KQorKwkJYmFzaWNf bWFjaGluZT1jcmF5bnYtY3JheQorKwkJb3M9LXVuaWNvc21wCisrCQk7OworKwljcjE2KQorKwkJ YmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KKysJCW9zPS1lbGYKKysJCTs7CisrCWNyZHMgfCB1 bm9zKQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLWNyZHMKKysJCTs7CisrCWNyaXN2MzIgfCBjcmlz djMyLSogfCBldHJheGZzKikKKysJCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCisrCQk7Owor KwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQorKwkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKKysJ CTs7CisrCWNyeCkKKysJCWJhc2ljX21hY2hpbmU9Y3J4LXVua25vd24KKysJCW9zPS1lbGYKKysJ CTs7CisrCWRhMzAgfCBkYTMwLSopCisrCQliYXNpY19tYWNoaW5lPW02OGstZGEzMAorKwkJOzsK KysJZGVjc3RhdGlvbiB8IGRlY3N0YXRpb24tMzEwMCB8IHBtYXggfCBwbWF4LSogfCBwbWluIHwg ZGVjMzEwMCB8IGRlY3N0YXRuKQorKwkJYmFzaWNfbWFjaGluZT1taXBzLWRlYworKwkJOzsKKysJ ZGVjc3lzdGVtMTAqIHwgZGVjMTAqKQorKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKKysJCW9z PS10b3BzMTAKKysJCTs7CisrCWRlY3N5c3RlbTIwKiB8IGRlYzIwKikKKysJCWJhc2ljX21hY2hp bmU9cGRwMTAtZGVjCisrCQlvcz0tdG9wczIwCisrCQk7OworKwlkZWx0YSB8IDMzMDAgfCBtb3Rv cm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAorKwkgICAgICB8IDMzMDAtbW90b3JvbGEgfCBk ZWx0YS1tb3Rvcm9sYSkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1tb3Rvcm9sYQorKwkJOzsKKysJ ZGVsdGE4OCkKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1tb3Rvcm9sYQorKwkJb3M9LXN5c3YzCisr CQk7OworKwlkaWNvcykKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworKwkJb3M9LWRpY29zCisr CQk7OworKwlkamdwcCkKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYworKwkJb3M9LW1zZG9zZGpn cHAKKysJCTs7CisrCWRweDIwIHwgZHB4MjAtKikKKysJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1 bGwKKysJCW9zPS1ib3N4CisrCQk7OworKwlkcHgyKiB8IGRweDIqLWJ1bGwpCisrCQliYXNpY19t YWNoaW5lPW02OGstYnVsbAorKwkJb3M9LXN5c3YzCisrCQk7OworKwllYm1vbjI5aykKKysJCWJh c2ljX21hY2hpbmU9YTI5ay1hbWQKKysJCW9zPS1lYm1vbgorKwkJOzsKKysJZWx4c2kpCisrCQli YXNpY19tYWNoaW5lPWVseHNpLWVseHNpCisrCQlvcz0tYnNkCisrCQk7OworKwllbmNvcmUgfCB1 bWF4IHwgbW1heCkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCisrCQk7OworKwllczE4 MDAgfCBPU0U2OGsgfCBvc2U2OGsgfCBvc2UgfCBPU0UpCisrCQliYXNpY19tYWNoaW5lPW02OGst ZXJpY3Nzb24KKysJCW9zPS1vc2UKKysJCTs7CisrCWZ4MjgwMCkKKysJCWJhc2ljX21hY2hpbmU9 aTg2MC1hbGxpYW50CisrCQk7OworKwlnZW5peCkKKysJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMK KysJCTs7CisrCWdtaWNybykKKysJCWJhc2ljX21hY2hpbmU9dHJvbi1nbWljcm8KKysJCW9zPS1z eXN2CisrCQk7OworKwlnbzMyKQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tZ28z MgorKwkJOzsKKysJaDMwNTByKiB8IGhpdXgqKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhp dGFjaGkKKysJCW9zPS1oaXV4d2UyCisrCQk7OworKwloODMwMGhtcykKKysJCWJhc2ljX21hY2hp bmU9aDgzMDAtaGl0YWNoaQorKwkJb3M9LWhtcworKwkJOzsKKysJaDgzMDB4cmF5KQorKwkJYmFz aWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisrCQlvcz0teHJheQorKwkJOzsKKysJaDg1MDBobXMp CisrCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFjaGkKKysJCW9zPS1obXMKKysJCTs7CisrCWhh cnJpcykKKysJCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKKysJCW9zPS1zeXN2MworKwkJOzsK KysJaHAzMDAtKikKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJOzsKKysJaHAzMDBic2Qp CisrCQliYXNpY19tYWNoaW5lPW02OGstaHAKKysJCW9zPS1ic2QKKysJCTs7CisrCWhwMzAwaHB1 eCkKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorKwkJb3M9LWhwdXgKKysJCTs7CisrCWhwM2s5 WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCisrCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAK KysJCTs7CisrCWhwOWsyWzAtOV1bMC05XSB8IGhwOWszMVswLTldKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtaHAKKysJCTs7CisrCWhwOWszWzItOV1bMC05XSkKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1ocAorKwkJOzsKKysJaHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKKysJCWJh c2ljX21hY2hpbmU9aHBwYTEuMC1ocAorKwkJOzsKKysJaHA5azdbMC03OV1bMC05XSB8IGhwN1sw LTc5XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrNzhb MC05XSB8IGhwNzhbMC05XSkKKysJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisrCQliYXNp Y19tYWNoaW5lPWhwcGExLjEtaHAKKysJCTs7CisrCWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhw OWs4MFsyNF0gfCBocDgwWzI0XSB8IGhwOWs4Wzc4XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBo cDg5MykKKysJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisrCQliYXNpY19tYWNoaW5lPWhw cGExLjEtaHAKKysJCTs7CisrCWhwOWs4WzAtOV1bMTM2NzldIHwgaHA4WzAtOV1bMTM2NzldKQor KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisrCQk7OworKwlocDlrOFswLTldWzAtOV0gfCBo cDhbMC05XVswLTldKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisrCQk7OworKwlocHBh LW5leHQpCisrCQlvcz0tbmV4dHN0ZXAzCisrCQk7OworKwlocHBhb3NmKQorKwkJYmFzaWNfbWFj aGluZT1ocHBhMS4xLWhwCisrCQlvcz0tb3NmCisrCQk7OworKwlocHBybykKKysJCWJhc2ljX21h Y2hpbmU9aHBwYTEuMS1ocAorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJaTM3MC1pYm0qIHwgaWJt KikKKysJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KKysJCTs7CisrIyBJJ20gbm90IHN1cmUgd2hh dCAiU3lzdjMyIiBtZWFucy4gIFNob3VsZCB0aGlzIGJlIHN5c3YzLjI/CisrCWkqODZ2MzIpCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9z PS1zeXN2MzIKKysJCTs7CisrCWkqODZ2NCopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwg c2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJaSo4NnYpCisr CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKysJCW9z PS1zeXN2CisrCQk7OworKwlpKjg2c29sMikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBz ZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorKwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwlpMzg2bWFj aCkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNoCisrCQlvcz0tbWFjaAorKwkJOzsKKysJaTM4 Ni12c3RhIHwgdnN0YSkKKysJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisrCQlvcz0tdnN0 YQorKwkJOzsKKysJaXJpcyB8IGlyaXM0ZCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zZ2kKKysJ CWNhc2UgJG9zIGluCisrCQkgICAgLWlyaXgqKQorKwkJCTs7CisrCQkgICAgKikKKysJCQlvcz0t aXJpeDQKKysJCQk7OworKwkJZXNhYworKwkJOzsKKysJaXNpNjggfCBpc2kpCisrCQliYXNpY19t YWNoaW5lPW02OGstaXNpCisrCQlvcz0tc3lzdgorKwkJOzsKKysJbTY4a25vbW11KQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLXVua25vd24KKysJCW9zPS1saW51eAorKwkJOzsKKysJbTY4a25vbW11 LSopCisrCQliYXNpY19tYWNoaW5lPW02OGstYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3Mv XlteLV0qLS8vJ2AKKysJCW9zPS1saW51eAorKwkJOzsKKysJbTg4ay1vbXJvbiopCisrCQliYXNp Y19tYWNoaW5lPW04OGstb21yb24KKysJCTs7CisrCW1hZ251bSB8IG0zMjMwKQorKwkJYmFzaWNf bWFjaGluZT1taXBzLW1pcHMKKysJCW9zPS1zeXN2CisrCQk7OworKwltZXJsaW4pCisrCQliYXNp Y19tYWNoaW5lPW5zMzJrLXV0ZWsKKysJCW9zPS1zeXN2CisrCQk7OworKyAgICAgICAgbWljcm9i bGF6ZSkKKysJCWJhc2ljX21hY2hpbmU9bWljcm9ibGF6ZS14aWxpbngKKysJCTs7CisrCW1pbmd3 MzIpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9zPS1taW5ndzMyCisrCQk7OworKwlt aW5ndzMyY2UpCisrCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCisrCQlvcz0tbWluZ3czMmNl CisrCQk7OworKwltaW5pZnJhbWUpCisrCQliYXNpY19tYWNoaW5lPW02ODAwMC1jb252ZXJnZW50 CisrCQk7OworKwkqbWludCB8IC1taW50WzAtOV0qIHwgKk1pTlQgfCAqTWlOVFswLTldKikKKysJ CWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorKwkJb3M9LW1pbnQKKysJCTs7CisrCW1pcHMzKi0q KQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBz My9taXBzNjQvJ2AKKysJCTs7CisrCW1pcHMzKikKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJh c2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgLXVua25vd24KKysJCTs7Cisr CW1vbml0b3IpCisrCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisrCQlvcz0tY29mZgorKwkJ OzsKKysJbW9ycGhvcykKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCisrCQlvcz0t bW9ycGhvcworKwkJOzsKKysJbXNkb3MpCisrCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKysJCW9z PS1tc2RvcworKwkJOzsKKysJbXMxLSopCisrCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19t YWNoaW5lIHwgc2VkIC1lICdzL21zMS0vbXQtLydgCisrCQk7OworKwltdnMpCisrCQliYXNpY19t YWNoaW5lPWkzNzAtaWJtCisrCQlvcz0tbXZzCisrCQk7OworKwluY3IzMDAwKQorKwkJYmFzaWNf bWFjaGluZT1pNDg2LW5jcgorKwkJb3M9LXN5c3Y0CisrCQk7OworKwluZXRic2QzODYpCisrCQli YXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorKwkJb3M9LW5ldGJzZAorKwkJOzsKKysJbmV0d2lu ZGVyKQorKwkJYmFzaWNfbWFjaGluZT1hcm12NGwtcmViZWwKKysJCW9zPS1saW51eAorKwkJOzsK KysJbmV3cyB8IG5ld3M3MDAgfCBuZXdzODAwIHwgbmV3czkwMCkKKysJCWJhc2ljX21hY2hpbmU9 bTY4ay1zb255CisrCQlvcz0tbmV3c29zCisrCQk7OworKwluZXdzMTAwMCkKKysJCWJhc2ljX21h Y2hpbmU9bTY4MDMwLXNvbnkKKysJCW9zPS1uZXdzb3MKKysJCTs7CisrCW5ld3MtMzYwMCB8IHJp c2MtbmV3cykKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1zb255CisrCQlvcz0tbmV3c29zCisrCQk7 OworKwluZWN2NzApCisrCQliYXNpY19tYWNoaW5lPXY3MC1uZWMKKysJCW9zPS1zeXN2CisrCQk7 OworKwluZXh0IHwgbSotbmV4dCApCisrCQliYXNpY19tYWNoaW5lPW02OGstbmV4dAorKwkJY2Fz ZSAkb3MgaW4KKysJCSAgICAtbmV4dHN0ZXAqICkKKysJCQk7OworKwkJICAgIC1uczIqKQorKwkJ ICAgICAgb3M9LW5leHRzdGVwMgorKwkJCTs7CisrCQkgICAgKikKKysJCSAgICAgIG9zPS1uZXh0 c3RlcDMKKysJCQk7OworKwkJZXNhYworKwkJOzsKKysJbmgzMDAwKQorKwkJYmFzaWNfbWFjaGlu ZT1tNjhrLWhhcnJpcworKwkJb3M9LWN4dXgKKysJCTs7CisrCW5oWzQ1XTAwMCkKKysJCWJhc2lj X21hY2hpbmU9bTg4ay1oYXJyaXMKKysJCW9zPS1jeHV4CisrCQk7OworKwluaW5keTk2MCkKKysJ CWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorKwkJb3M9LW5pbmR5CisrCQk7OworKwltb245NjAp CisrCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKKysJCW9zPS1tb245NjAKKysJCTs7CisrCW5v bnN0b3B1eCkKKysJCWJhc2ljX21hY2hpbmU9bWlwcy1jb21wYXEKKysJCW9zPS1ub25zdG9wdXgK KysJCTs7CisrCW5wMSkKKysJCWJhc2ljX21hY2hpbmU9bnAxLWdvdWxkCisrCQk7OworKwluc3It dGFuZGVtKQorKwkJYmFzaWNfbWFjaGluZT1uc3ItdGFuZGVtCisrCQk7OworKwlvcDUwbi0qIHwg b3A2MGMtKikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKysJCW9zPS1wcm9lbGYKKysJ CTs7CisrCW9wZW5yaXNjIHwgb3BlbnJpc2MtKikKKysJCWJhc2ljX21hY2hpbmU9b3IzMi11bmtu b3duCisrCQk7OworKwlvczQwMCkKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1pYm0KKysJCW9z PS1vczQwMAorKwkJOzsKKysJT1NFNjgwMDAgfCBvc2U2ODAwMCkKKysJCWJhc2ljX21hY2hpbmU9 bTY4MDAwLWVyaWNzc29uCisrCQlvcz0tb3NlCisrCQk7OworKwlvczY4aykKKysJCWJhc2ljX21h Y2hpbmU9bTY4ay1ub25lCisrCQlvcz0tb3M2OGsKKysJCTs7CisrCXBhLWhpdGFjaGkpCisrCQli YXNpY19tYWNoaW5lPWhwcGExLjEtaGl0YWNoaQorKwkJb3M9LWhpdXh3ZTIKKysJCTs7CisrCXBh cmFnb24pCisrCQliYXNpY19tYWNoaW5lPWk4NjAtaW50ZWwKKysJCW9zPS1vc2YKKysJCTs7Cisr CXBhcmlzYykKKysJCWJhc2ljX21hY2hpbmU9aHBwYS11bmtub3duCisrCQlvcz0tbGludXgKKysJ CTs7CisrCXBhcmlzYy0qKQorKwkJYmFzaWNfbWFjaGluZT1ocHBhLWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQlvcz0tbGludXgKKysJCTs7CisrCXBiZCkKKysJ CWJhc2ljX21hY2hpbmU9c3BhcmMtdHRpCisrCQk7OworKwlwYmIpCisrCQliYXNpY19tYWNoaW5l PW02OGstdHRpCisrCQk7OworKwlwYzUzMiB8IHBjNTMyLSopCisrCQliYXNpY19tYWNoaW5lPW5z MzJrLXBjNTMyCisrCQk7OworKwlwYzk4KQorKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisrCQk7 OworKwlwYzk4LSopCisrCQliYXNpY19tYWNoaW5lPWkzODYtYGVjaG8gJGJhc2ljX21hY2hpbmUg fCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBlbnRpdW0gfCBwNSB8IGs1IHwgazYgfCBu ZXhnZW4gfCB2aWFjMykKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYworKwkJOzsKKysJcGVudGl1 bXBybyB8IHA2IHwgNng4NiB8IGF0aGxvbiB8IGF0aGxvbl8qKQorKwkJYmFzaWNfbWFjaGluZT1p Njg2LXBjCisrCQk7OworKwlwZW50aXVtaWkgfCBwZW50aXVtMiB8IHBlbnRpdW1paWkgfCBwZW50 aXVtMykKKysJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworKwkJOzsKKysJcGVudGl1bTQpCisrCQli YXNpY19tYWNoaW5lPWk3ODYtcGMKKysJCTs7CisrCXBlbnRpdW0tKiB8IHA1LSogfCBrNS0qIHwg azYtKiB8IG5leGdlbi0qIHwgdmlhYzMtKikKKysJCWJhc2ljX21hY2hpbmU9aTU4Ni1gZWNobyAk YmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorKwkJOzsKKysJcGVudGl1bXByby0q IHwgcDYtKiB8IDZ4ODYtKiB8IGF0aGxvbi0qKQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LWBlY2hv ICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwZW50aXVtaWkt KiB8IHBlbnRpdW0yLSogfCBwZW50aXVtaWlpLSogfCBwZW50aXVtMy0qKQorKwkJYmFzaWNfbWFj aGluZT1pNjg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7 OworKwlwZW50aXVtNC0qKQorKwkJYmFzaWNfbWFjaGluZT1pNzg2LWBlY2hvICRiYXNpY19tYWNo aW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlwbikKKysJCWJhc2ljX21hY2hpbmU9 cG4tZ291bGQKKysJCTs7CisrCXBvd2VyKQliYXNpY19tYWNoaW5lPXBvd2VyLWlibQorKwkJOzsK KysJcHBjKQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgorKwkJOzsKKysJcHBjLSopCWJh c2ljX21hY2hpbmU9cG93ZXJwYy1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSot Ly8nYAorKwkJOzsKKysJcHBjbGUgfCBwb3dlcnBjbGl0dGxlIHwgcHBjLWxlIHwgcG93ZXJwYy1s aXR0bGUpCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS11bmtub3duCisrCQk7OworKwlwcGNs ZS0qIHwgcG93ZXJwY2xpdHRsZS0qKQorKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtYGVjaG8g JGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKysJCTs7CisrCXBwYzY0KQliYXNp Y19tYWNoaW5lPXBvd2VycGM2NC11bmtub3duCisrCQk7OworKwlwcGM2NC0qKSBiYXNpY19tYWNo aW5lPXBvd2VycGM2NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAor KwkJOzsKKysJcHBjNjRsZSB8IHBvd2VycGM2NGxpdHRsZSB8IHBwYzY0LWxlIHwgcG93ZXJwYzY0 LWxpdHRsZSkKKysJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtdW5rbm93bgorKwkJOzsKKysJ cHBjNjRsZS0qIHwgcG93ZXJwYzY0bGl0dGxlLSopCisrCQliYXNpY19tYWNoaW5lPXBvd2VycGM2 NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisrCQk7OworKwlw czIpCisrCQliYXNpY19tYWNoaW5lPWkzODYtaWJtCisrCQk7OworKwlwdzMyKQorKwkJYmFzaWNf bWFjaGluZT1pNTg2LXVua25vd24KKysJCW9zPS1wdzMyCisrCQk7OworKwlyZG9zKQorKwkJYmFz aWNfbWFjaGluZT1pMzg2LXBjCisrCQlvcz0tcmRvcworKwkJOzsKKysJcm9tNjhrKQorKwkJYmFz aWNfbWFjaGluZT1tNjhrLXJvbTY4aworKwkJb3M9LWNvZmYKKysJCTs7CisrCXJtWzQ2XTAwKQor KwkJYmFzaWNfbWFjaGluZT1taXBzLXNpZW1lbnMKKysJCTs7CisrCXJ0cGMgfCBydHBjLSopCisr CQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCisrCQk7OworKwlzMzkwIHwgczM5MC0qKQorKwkJYmFz aWNfbWFjaGluZT1zMzkwLWlibQorKwkJOzsKKysJczM5MHggfCBzMzkweC0qKQorKwkJYmFzaWNf bWFjaGluZT1zMzkweC1pYm0KKysJCTs7CisrCXNhMjkyMDApCisrCQliYXNpY19tYWNoaW5lPWEy OWstYW1kCisrCQlvcz0tdWRpCisrCQk7OworKwlzYjEpCisrCQliYXNpY19tYWNoaW5lPW1pcHNp c2E2NHNiMS11bmtub3duCisrCQk7OworKwlzYjFlbCkKKysJCWJhc2ljX21hY2hpbmU9bWlwc2lz YTY0c2IxZWwtdW5rbm93bgorKwkJOzsKKysJc2RlKQorKwkJYmFzaWNfbWFjaGluZT1taXBzaXNh MzItc2RlCisrCQlvcz0tZWxmCisrCQk7OworKwlzZWkpCisrCQliYXNpY19tYWNoaW5lPW1pcHMt c2VpCisrCQlvcz0tc2VpdXgKKysJCTs7CisrCXNlcXVlbnQpCisrCQliYXNpY19tYWNoaW5lPWkz ODYtc2VxdWVudAorKwkJOzsKKysJc2gpCisrCQliYXNpY19tYWNoaW5lPXNoLWhpdGFjaGkKKysJ CW9zPS1obXMKKysJCTs7CisrCXNoNWVsKQorKwkJYmFzaWNfbWFjaGluZT1zaDVsZS11bmtub3du CisrCQk7OworKwlzaDY0KQorKwkJYmFzaWNfbWFjaGluZT1zaDY0LXVua25vd24KKysJCTs7Cisr CXNwYXJjbGl0ZS13cnMgfCBzaW1zby13cnMpCisrCQliYXNpY19tYWNoaW5lPXNwYXJjbGl0ZS13 cnMKKysJCW9zPS12eHdvcmtzCisrCQk7OworKwlzcHM3KQorKwkJYmFzaWNfbWFjaGluZT1tNjhr LWJ1bGwKKysJCW9zPS1zeXN2MgorKwkJOzsKKysJc3B1cikKKysJCWJhc2ljX21hY2hpbmU9c3B1 ci11bmtub3duCisrCQk7OworKwlzdDIwMDApCisrCQliYXNpY19tYWNoaW5lPW02OGstdGFuZGVt CisrCQk7OworKwlzdHJhdHVzKQorKwkJYmFzaWNfbWFjaGluZT1pODYwLXN0cmF0dXMKKysJCW9z PS1zeXN2NAorKwkJOzsKKysJc3VuMikKKysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorKwkJ OzsKKysJc3VuMm9zMykKKysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorKwkJb3M9LXN1bm9z MworKwkJOzsKKysJc3VuMm9zNCkKKysJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorKwkJb3M9 LXN1bm9zNAorKwkJOzsKKysJc3VuM29zMykKKysJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKysJ CW9zPS1zdW5vczMKKysJCTs7CisrCXN1bjNvczQpCisrCQliYXNpY19tYWNoaW5lPW02OGstc3Vu CisrCQlvcz0tc3Vub3M0CisrCQk7OworKwlzdW40b3MzKQorKwkJYmFzaWNfbWFjaGluZT1zcGFy Yy1zdW4KKysJCW9zPS1zdW5vczMKKysJCTs7CisrCXN1bjRvczQpCisrCQliYXNpY19tYWNoaW5l PXNwYXJjLXN1bgorKwkJb3M9LXN1bm9zNAorKwkJOzsKKysJc3VuNHNvbDIpCisrCQliYXNpY19t YWNoaW5lPXNwYXJjLXN1bgorKwkJb3M9LXNvbGFyaXMyCisrCQk7OworKwlzdW4zIHwgc3VuMy0q KQorKwkJYmFzaWNfbWFjaGluZT1tNjhrLXN1bgorKwkJOzsKKysJc3VuNCkKKysJCWJhc2ljX21h Y2hpbmU9c3BhcmMtc3VuCisrCQk7OworKwlzdW4zODYgfCBzdW4zODZpIHwgcm9hZHJ1bm5lcikK KysJCWJhc2ljX21hY2hpbmU9aTM4Ni1zdW4KKysJCTs7CisrCXN2MSkKKysJCWJhc2ljX21hY2hp bmU9c3YxLWNyYXkKKysJCW9zPS11bmljb3MKKysJCTs7CisrCXN5bW1ldHJ5KQorKwkJYmFzaWNf bWFjaGluZT1pMzg2LXNlcXVlbnQKKysJCW9zPS1keW5peAorKwkJOzsKKysJdDNlKQorKwkJYmFz aWNfbWFjaGluZT1hbHBoYWV2NS1jcmF5CisrCQlvcz0tdW5pY29zCisrCQk7OworKwl0OTApCisr CQliYXNpY19tYWNoaW5lPXQ5MC1jcmF5CisrCQlvcz0tdW5pY29zCisrCQk7OworKwl0aWM1NHgg fCBjNTR4KikKKysJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24KKysJCW9zPS1jb2ZmCisr CQk7OworKwl0aWM1NXggfCBjNTV4KikKKysJCWJhc2ljX21hY2hpbmU9dGljNTV4LXVua25vd24K KysJCW9zPS1jb2ZmCisrCQk7OworKwl0aWM2eCB8IGM2eCopCisrCQliYXNpY19tYWNoaW5lPXRp YzZ4LXVua25vd24KKysJCW9zPS1jb2ZmCisrCQk7OworKwl0aWxlKikKKysJCWJhc2ljX21hY2hp bmU9dGlsZS11bmtub3duCisrCQlvcz0tbGludXgtZ251CisrCQk7OworKwl0eDM5KQorKwkJYmFz aWNfbWFjaGluZT1taXBzdHgzOS11bmtub3duCisrCQk7OworKwl0eDM5ZWwpCisrCQliYXNpY19t YWNoaW5lPW1pcHN0eDM5ZWwtdW5rbm93bgorKwkJOzsKKysJdG9hZDEpCisrCQliYXNpY19tYWNo aW5lPXBkcDEwLXhrbAorKwkJb3M9LXRvcHMyMAorKwkJOzsKKysJdG93ZXIgfCB0b3dlci0zMikK KysJCWJhc2ljX21hY2hpbmU9bTY4ay1uY3IKKysJCTs7CisrCXRwZikKKysJCWJhc2ljX21hY2hp bmU9czM5MHgtaWJtCisrCQlvcz0tdHBmCisrCQk7OworKwl1ZGkyOWspCisrCQliYXNpY19tYWNo aW5lPWEyOWstYW1kCisrCQlvcz0tdWRpCisrCQk7OworKwl1bHRyYTMpCisrCQliYXNpY19tYWNo aW5lPWEyOWstbnl1CisrCQlvcz0tc3ltMQorKwkJOzsKKysJdjgxMCB8IG5lY3Y4MTApCisrCQli YXNpY19tYWNoaW5lPXY4MTAtbmVjCisrCQlvcz0tbm9uZQorKwkJOzsKKysJdmF4dikKKysJCWJh c2ljX21hY2hpbmU9dmF4LWRlYworKwkJb3M9LXN5c3YKKysJCTs7CisrCXZtcykKKysJCWJhc2lj X21hY2hpbmU9dmF4LWRlYworKwkJb3M9LXZtcworKwkJOzsKKysJdnBwKnx2eHx2eC0qKQorKwkJ YmFzaWNfbWFjaGluZT1mMzAxLWZ1aml0c3UKKysJCTs7CisrCXZ4d29ya3M5NjApCisrCQliYXNp Y19tYWNoaW5lPWk5NjAtd3JzCisrCQlvcz0tdnh3b3JrcworKwkJOzsKKysJdnh3b3JrczY4KQor KwkJYmFzaWNfbWFjaGluZT1tNjhrLXdycworKwkJb3M9LXZ4d29ya3MKKysJCTs7CisrCXZ4d29y a3MyOWspCisrCQliYXNpY19tYWNoaW5lPWEyOWstd3JzCisrCQlvcz0tdnh3b3JrcworKwkJOzsK KysJdzY1KikKKysJCWJhc2ljX21hY2hpbmU9dzY1LXdkYworKwkJb3M9LW5vbmUKKysJCTs7Cisr CXc4OWstKikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5ib25kCisrCQlvcz0tcHJvZWxm CisrCQk7OworKwl4Ym94KQorKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisrCQlvcz0tbWluZ3cz MgorKwkJOzsKKysJeHBzIHwgeHBzMTAwKQorKwkJYmFzaWNfbWFjaGluZT14cHMxMDAtaG9uZXl3 ZWxsCisrCQk7OworKwl5bXApCisrCQliYXNpY19tYWNoaW5lPXltcC1jcmF5CisrCQlvcz0tdW5p Y29zCisrCQk7OworKwl6OGstKi1jb2ZmKQorKwkJYmFzaWNfbWFjaGluZT16OGstdW5rbm93bgor KwkJb3M9LXNpbQorKwkJOzsKKysJejgwLSotY29mZikKKysJCWJhc2ljX21hY2hpbmU9ejgwLXVu a25vd24KKysJCW9zPS1zaW0KKysJCTs7CisrCW5vbmUpCisrCQliYXNpY19tYWNoaW5lPW5vbmUt bm9uZQorKwkJb3M9LW5vbmUKKysJCTs7CisrCisrIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVs dCBtYW51ZmFjdHVyZXIgb2YgY2VydGFpbiBDUFUgdHlwZXMuICBJdCBpcyBpbgorKyMgc29tZSBj YXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGluIG90aGVycywgaXQgaXMgdGhlIG1vc3QgcG9w dWxhci4KKysJdzg5aykKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS13aW5ib25kCisrCQk7Owor KwlvcDUwbikKKysJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKysJCTs7CisrCW9wNjBjKQor KwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorKwkJOzsKKysJcm9tcCkKKysJCWJhc2ljX21h Y2hpbmU9cm9tcC1pYm0KKysJCTs7CisrCW1taXgpCisrCQliYXNpY19tYWNoaW5lPW1taXgta251 dGgKKysJCTs7CisrCXJzNjAwMCkKKysJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWlibQorKwkJOzsK KysJdmF4KQorKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisrCQk7OworKwlwZHAxMCkKKysJCSMg dGhlcmUgYXJlIG1hbnkgY2xvbmVzLCBzbyBERUMgaXMgbm90IGEgc2FmZSBiZXQKKysJCWJhc2lj X21hY2hpbmU9cGRwMTAtdW5rbm93bgorKwkJOzsKKysJcGRwMTEpCisrCQliYXNpY19tYWNoaW5l PXBkcDExLWRlYworKwkJOzsKKysJd2UzMmspCisrCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAor KwkJOzsKKysJc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWViIHwgc2hbMzRdZWIgfCBzaFsx MjM0XWxlIHwgc2hbMjNdZWxlKQorKwkJYmFzaWNfbWFjaGluZT1zaC11bmtub3duCisrCQk7Owor KwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgfCBzcGFyY3Y5dikKKysJCWJh c2ljX21hY2hpbmU9c3BhcmMtc3VuCisrCQk7OworKwljeWRyYSkKKysJCWJhc2ljX21hY2hpbmU9 Y3lkcmEtY3lkcm9tZQorKwkJOzsKKysJb3Jpb24pCisrCQliYXNpY19tYWNoaW5lPW9yaW9uLWhp Z2hsZXZlbAorKwkJOzsKKysJb3Jpb24xMDUpCisrCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaGln aGxldmVsCisrCQk7OworKwltYWMgfCBtcHcgfCBtYWMtbXB3KQorKwkJYmFzaWNfbWFjaGluZT1t NjhrLWFwcGxlCisrCQk7OworKwlwbWFjIHwgcG1hYy1tcHcpCisrCQliYXNpY19tYWNoaW5lPXBv d2VycGMtYXBwbGUKKysJCTs7CisrCSotdW5rbm93bikKKysJCSMgTWFrZSBzdXJlIHRvIG1hdGNo IGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUuCisrCQk7OworKwkqKQorKwkJ ZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hp bmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJCTs7CisrZXNhYworKworKyMg SGVyZSB3ZSBjYW5vbmljYWxpemUgY2VydGFpbiBhbGlhc2VzIGZvciBtYW51ZmFjdHVyZXJzLgor K2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKysJKi1kaWdpdGFsKikKKysJCWJhc2ljX21hY2hpbmU9 YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvZGlnaXRhbC4qL2RlYy8nYAorKwkJOzsKKysJ Ki1jb21tb2RvcmUqKQorKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNl ZCAncy9jb21tb2RvcmUuKi9jYm0vJ2AKKysJCTs7CisrCSopCisrCQk7OworK2VzYWMKKysKKysj IERlY29kZSBtYW51ZmFjdHVyZXItc3BlY2lmaWMgYWxpYXNlcyBmb3IgY2VydGFpbiBvcGVyYXRp bmcgc3lzdGVtcy4KKysKKytpZiBbIHgiJG9zIiAhPSB4IiIgXQorK3RoZW4KKytjYXNlICRvcyBp bgorKyAgICAgICAgIyBGaXJzdCBtYXRjaCBzb21lIHN5c3RlbSB0eXBlIGFsaWFzZXMKKysgICAg ICAgICMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxpZCBzeXN0ZW0gdHlwZXMuCisr CSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdpdGggdGhpcyBvbmUgZXhjZXB0 aW9uLgorKyAgICAgICAgLWF1cm9yYXV4KQorKwkgICAgICAgIG9zPS1hdXJvcmF1eAorKwkJOzsK KysJLXNvbGFyaXMxIHwgLXNvbGFyaXMxLiopCisrCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8 c29sYXJpczF8c3Vub3M0fCdgCisrCQk7OworKwktc29sYXJpcykKKysJCW9zPS1zb2xhcmlzMgor KwkJOzsKKysJLXN2cjQqKQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwktdW5peHdhcmUqKQorKwkJ b3M9LXN5c3Y0LjJ1dworKwkJOzsKKysJLWdudS9saW51eCopCisrCQlvcz1gZWNobyAkb3MgfCBz ZWQgLWUgJ3N8Z251L2xpbnV4fGxpbnV4LWdudXwnYAorKwkJOzsKKysJIyBGaXJzdCBhY2NlcHQg dGhlIGJhc2ljIHN5c3RlbSB0eXBlcy4KKysJIyBUaGUgcG9ydGFibGUgc3lzdGVtcyBjb21lcyBm aXJzdC4KKysJIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOIEEgKiwgdG8gbWF0Y2ggYSB2 ZXJzaW9uIG51bWJlci4KKysJIyAtc3lzdiogaXMgbm90IGhlcmUgYmVjYXVzZSBpdCBjb21lcyBs YXRlciwgYWZ0ZXIgc3lzdnI0LgorKwktZ251KiB8IC1ic2QqIHwgLW1hY2gqIHwgLW1pbml4KiB8 IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCisrCSAgICAgIHwgLSp2bXMqIHwgLXNjbyog fCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLWNuayogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwK KysJICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1h dXJvcmF1eCogfCAtc29sYXJpcyogXAorKwkgICAgICB8IC1zeW0qIHwgLWtvcGVuc29sYXJpcyog XAorKwkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3Nvcyog fCAtdW5pY29zKiB8IC1hb2YqIFwKKysJICAgICAgfCAtYW9zKiB8IC1hcm9zKiBcCisrCSAgICAg IHwgLW5pbmR5KiB8IC12eHNpbSogfCAtdnh3b3JrcyogfCAtZWJtb24qIHwgLWhtcyogfCAtbXZz KiBcCisrCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAt cnR1KiB8IC14ZW5peCogXAorKwkgICAgICB8IC1oaXV4KiB8IC0zODZic2QqIHwgLWtuZXRic2Qq IHwgLW1pcmJzZCogfCAtbmV0YnNkKiBcCisrCSAgICAgIHwgLW9wZW5ic2QqIHwgLXNvbGlkYnNk KiBcCisrCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVlYnNkKiB8IC1yaXNj aXgqIHwgLWx5bnhvcyogXAorKwkgICAgICB8IC1ib3N4KiB8IC1uZXh0c3RlcCogfCAtY3h1eCog fCAtYW91dCogfCAtZWxmKiB8IC1vYWJpKiBcCisrCSAgICAgIHwgLXB0eCogfCAtY29mZiogfCAt ZWNvZmYqIHwgLXdpbm50KiB8IC1kb21haW4qIHwgLXZzdGEqIFwKKysJICAgICAgfCAtdWRpKiB8 IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCisrCSAgICAgIHwg LWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIHwgLWNlZ2NjKiBcCisrCSAgICAgIHwgLWN5Z3dpbiog fCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKKysJICAgICAg fCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGli YyogXAorKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRrKiBcCisrCSAg ICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiog fCAtb3BlbmVkKiBcCisrCSAgICAgIHwgLW9wZW5zdGVwKiB8IC1vc2tpdCogfCAtY29uaXgqIHwg LXB3MzIqIHwgLW5vbnN0b3B1eCogXAorKwkgICAgICB8IC1zdG9ybS1jaGFvcyogfCAtdG9wczEw KiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKKysJICAgICAgfCAtb3MyKiB8IC12b3Mq IHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAorKwkgICAgICB8IC1tb3JwaG9z KiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKKysJICAg ICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25m bHkqIFwKKysJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3BwZXJzKiB8 IC1kcm9wcyogfCAtZXMqKQorKwkjIFJlbWVtYmVyLCBlYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5E IElOICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCisrCQk7OworKwktcW54KikKKysJCWNh c2UgJGJhc2ljX21hY2hpbmUgaW4KKysJCSAgICB4ODYtKiB8IGkqODYtKikKKysJCQk7OworKwkJ ICAgICopCisrCQkJb3M9LW50byRvcworKwkJCTs7CisrCQllc2FjCisrCQk7OworKwktbnRvLXFu eCopCisrCQk7OworKwktbnRvKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xudG98bnRv LXFueHwnYAorKwkJOzsKKysJLXNpbSB8IC1lczE4MDAqIHwgLWhtcyogfCAteHJheSB8IC1vczY4 ayogfCAtbm9uZSogfCAtdjg4ciogXAorKwkgICAgICB8IC13aW5kb3dzKiB8IC1vc3ggfCAtYWJ1 ZyB8IC1uZXR3YXJlKiB8IC1vczkqIHwgLWJlb3MqIHwgLWhhaWt1KiBcCisrCSAgICAgIHwgLW1h Y29zKiB8IC1tcHcqIHwgLW1hZ2ljKiB8IC1tbWl4d2FyZSogfCAtbW9uOTYwKiB8IC1sbmV3cyop CisrCQk7OworKwktbWFjKikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xtYWN8bWFjb3N8 J2AKKysJCTs7CisrCS1saW51eC1kaWV0bGliYykKKysJCW9zPS1saW51eC1kaWV0bGliYworKwkJ OzsKKysJLWxpbnV4KikKKysJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xsaW51eHxsaW51eC1n bnV8J2AKKysJCTs7CisrCS1zdW5vczUqKQorKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1 bm9zNXxzb2xhcmlzMnwnYAorKwkJOzsKKysJLXN1bm9zNiopCisrCQlvcz1gZWNobyAkb3MgfCBz ZWQgLWUgJ3N8c3Vub3M2fHNvbGFyaXMzfCdgCisrCQk7OworKwktb3BlbmVkKikKKysJCW9zPS1v cGVuZWRpdGlvbgorKwkJOzsKKysgICAgICAgIC1vczQwMCopCisrCQlvcz0tb3M0MDAKKysJCTs7 CisrCS13aW5jZSopCisrCQlvcz0td2luY2UKKysJCTs7CisrCS1vc2Zyb3NlKikKKysJCW9zPS1v c2Zyb3NlCisrCQk7OworKwktb3NmKikKKysJCW9zPS1vc2YKKysJCTs7CisrCS11dGVrKikKKysJ CW9zPS1ic2QKKysJCTs7CisrCS1keW5peCopCisrCQlvcz0tYnNkCisrCQk7OworKwktYWNpcyop CisrCQlvcz0tYW9zCisrCQk7OworKwktYXRoZW9zKikKKysJCW9zPS1hdGhlb3MKKysJCTs7Cisr CS1zeWxsYWJsZSopCisrCQlvcz0tc3lsbGFibGUKKysJCTs7CisrCS0zODZic2QpCisrCQlvcz0t YnNkCisrCQk7OworKwktY3RpeCogfCAtdXRzKikKKysJCW9zPS1zeXN2CisrCQk7OworKwktbm92 YSopCisrCQlvcz0tcnRtay1ub3ZhCisrCQk7OworKwktbnMyICkKKysJCW9zPS1uZXh0c3RlcDIK KysJCTs7CisrCS1uc2sqKQorKwkJb3M9LW5zaworKwkJOzsKKysJIyBQcmVzZXJ2ZSB0aGUgdmVy c2lvbiBudW1iZXIgb2Ygc2luaXg1LgorKwktc2luaXg1LiopCisrCQlvcz1gZWNobyAkb3MgfCBz ZWQgLWUgJ3N8c2luaXh8c3lzdnwnYAorKwkJOzsKKysJLXNpbml4KikKKysJCW9zPS1zeXN2NAor KwkJOzsKKysgICAgICAgIC10cGYqKQorKwkJb3M9LXRwZgorKwkJOzsKKysJLXRyaXRvbiopCisr CQlvcz0tc3lzdjMKKysJCTs7CisrCS1vc3MqKQorKwkJb3M9LXN5c3YzCisrCQk7OworKwktc3Zy NCkKKysJCW9zPS1zeXN2NAorKwkJOzsKKysJLXN2cjMpCisrCQlvcz0tc3lzdjMKKysJCTs7Cisr CS1zeXN2cjQpCisrCQlvcz0tc3lzdjQKKysJCTs7CisrCSMgVGhpcyBtdXN0IGNvbWUgYWZ0ZXIg LXN5c3ZyNC4KKysJLXN5c3YqKQorKwkJOzsKKysJLW9zZSopCisrCQlvcz0tb3NlCisrCQk7Owor KwktZXMxODAwKikKKysJCW9zPS1vc2UKKysJCTs7CisrCS14ZW5peCkKKysJCW9zPS14ZW5peAor KwkJOzsKKysJLSptaW50IHwgLW1pbnRbMC05XSogfCAtKk1pTlQgfCAtTWlOVFswLTldKikKKysJ CW9zPS1taW50CisrCQk7OworKwktYXJvcyopCisrCQlvcz0tYXJvcworKwkJOzsKKysJLWthb3Mq KQorKwkJb3M9LWthb3MKKysJCTs7CisrCS16dm1vZSkKKysJCW9zPS16dm1vZQorKwkJOzsKKysJ LWRpY29zKikKKysJCW9zPS1kaWNvcworKwkJOzsKKysJLW5vbmUpCisrCQk7OworKwkqKQorKwkJ IyBHZXQgcmlkIG9mIHRoZSBgLScgYXQgdGhlIGJlZ2lubmluZyBvZiAkb3MuCisrCQlvcz1gZWNo byAkb3MgfCBzZWQgJ3MvW14tXSotLy8nYAorKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24g XGAkMVwnOiBzeXN0ZW0gXGAkb3NcJyBub3QgcmVjb2duaXplZCAxPiYyCisrCQlleGl0IDEKKysJ CTs7CisrZXNhYworK2Vsc2UKKysKKysjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG9wZXJh dGluZyBzeXN0ZW1zIHRoYXQgY29tZSB3aXRoIHZhcmlvdXMgbWFjaGluZXMuCisrIyBUaGUgdmFs dWUgc2hvdWxkIGJlIHdoYXQgdGhlIHZlbmRvciBjdXJyZW50bHkgc2hpcHMgb3V0IHRoZSBkb29y IHdpdGggdGhlaXIKKysjIG1hY2hpbmUgb3IgcHV0IGFub3RoZXIgd2F5LCB0aGUgbW9zdCBwb3B1 bGFyIG9zIHByb3ZpZGVkIHdpdGggdGhlIG1hY2hpbmUuCisrCisrIyBOb3RlIHRoYXQgaWYgeW91 J3JlIGdvaW5nIHRvIHRyeSB0byBtYXRjaCAiLU1BTlVGQUNUVVJFUiIgaGVyZSAoc2F5LAorKyMg Ii1zdW4iKSwgdGhlbiB5b3UgaGF2ZSB0byB0ZWxsIHRoZSBjYXNlIHN0YXRlbWVudCB1cCB0b3dh cmRzIHRoZSB0b3AKKysjIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZyBzeXN0 ZW0uICBPdGhlcndpc2UsIGNvZGUgYWJvdmUKKysjIHdpbGwgc2lnbmFsIGFuIGVycm9yIHNheWlu ZyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcKKysjIHN5c3RlbSwgYW5kIHdl J2xsIG5ldmVyIGdldCB0byB0aGlzIHBvaW50LgorKworK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4K KysgICAgICAgIHNjb3JlLSopCisrCQlvcz0tZWxmCisrCQk7OworKyAgICAgICAgc3B1LSopCisr CQlvcz0tZWxmCisrCQk7OworKwkqLWFjb3JuKQorKwkJb3M9LXJpc2NpeDEuMgorKwkJOzsKKysJ YXJtKi1yZWJlbCkKKysJCW9zPS1saW51eAorKwkJOzsKKysJYXJtKi1zZW1pKQorKwkJb3M9LWFv dXQKKysJCTs7CisrICAgICAgICBjNHgtKiB8IHRpYzR4LSopCisrICAgICAgICAJb3M9LWNvZmYK KysJCTs7CisrCSMgVGhpcyBtdXN0IGNvbWUgYmVmb3JlIHRoZSAqLWRlYyBlbnRyeS4KKysJcGRw MTAtKikKKysJCW9zPS10b3BzMjAKKysJCTs7CisrCXBkcDExLSopCisrCQlvcz0tbm9uZQorKwkJ OzsKKysJKi1kZWMgfCB2YXgtKikKKysJCW9zPS11bHRyaXg0LjIKKysJCTs7CisrCW02OCotYXBv bGxvKQorKwkJb3M9LWRvbWFpbgorKwkJOzsKKysJaTM4Ni1zdW4pCisrCQlvcz0tc3Vub3M0LjAu MgorKwkJOzsKKysJbTY4MDAwLXN1bikKKysJCW9zPS1zdW5vczMKKysJCSMgVGhpcyBhbHNvIGV4 aXN0cyBpbiB0aGUgY29uZmlndXJlIHByb2dyYW0sIGJ1dCB3YXMgbm90IHRoZQorKwkJIyBkZWZh dWx0LgorKwkJIyBvcz0tc3Vub3M0CisrCQk7OworKwltNjgqLWNpc2NvKQorKwkJb3M9LWFvdXQK KysJCTs7CisrICAgICAgICBtZXAtKikKKysJCW9zPS1lbGYKKysJCTs7CisrCW1pcHMqLWNpc2Nv KQorKwkJb3M9LWVsZgorKwkJOzsKKysJbWlwcyotKikKKysJCW9zPS1lbGYKKysJCTs7CisrCW9y MzItKikKKysJCW9zPS1jb2ZmCisrCQk7OworKwkqLXR0aSkJIyBtdXN0IGJlIGJlZm9yZSBzcGFy YyBlbnRyeSBvciB3ZSBnZXQgdGhlIHdyb25nIG9zLgorKwkJb3M9LXN5c3YzCisrCQk7OworKwlz cGFyYy0qIHwgKi1zdW4pCisrCQlvcz0tc3Vub3M0LjEuMQorKwkJOzsKKysJKi1iZSkKKysJCW9z PS1iZW9zCisrCQk7OworKwkqLWhhaWt1KQorKwkJb3M9LWhhaWt1CisrCQk7OworKwkqLWlibSkK KysJCW9zPS1haXgKKysJCTs7CisrICAgIAkqLWtudXRoKQorKwkJb3M9LW1taXh3YXJlCisrCQk7 OworKwkqLXdlYykKKysJCW9zPS1wcm9lbGYKKysJCTs7CisrCSotd2luYm9uZCkKKysJCW9zPS1w cm9lbGYKKysJCTs7CisrCSotb2tpKQorKwkJb3M9LXByb2VsZgorKwkJOzsKKysJKi1ocCkKKysJ CW9zPS1ocHV4CisrCQk7OworKwkqLWhpdGFjaGkpCisrCQlvcz0taGl1eAorKwkJOzsKKysJaTg2 MC0qIHwgKi1hdHQgfCAqLW5jciB8ICotYWx0b3MgfCAqLW1vdG9yb2xhIHwgKi1jb252ZXJnZW50 KQorKwkJb3M9LXN5c3YKKysJCTs7CisrCSotY2JtKQorKwkJb3M9LWFtaWdhb3MKKysJCTs7Cisr CSotZGcpCisrCQlvcz0tZGd1eAorKwkJOzsKKysJKi1kb2xwaGluKQorKwkJb3M9LXN5c3YzCisr CQk7OworKwltNjhrLWNjdXIpCisrCQlvcz0tcnR1CisrCQk7OworKwltODhrLW9tcm9uKikKKysJ CW9zPS1sdW5hCisrCQk7OworKwkqLW5leHQgKQorKwkJb3M9LW5leHRzdGVwCisrCQk7OworKwkq LXNlcXVlbnQpCisrCQlvcz0tcHR4CisrCQk7OworKwkqLWNyZHMpCisrCQlvcz0tdW5vcworKwkJ OzsKKysJKi1ucykKKysJCW9zPS1nZW5peAorKwkJOzsKKysJaTM3MC0qKQorKwkJb3M9LW12cwor KwkJOzsKKysJKi1uZXh0KQorKwkJb3M9LW5leHRzdGVwMworKwkJOzsKKysJKi1nb3VsZCkKKysJ CW9zPS1zeXN2CisrCQk7OworKwkqLWhpZ2hsZXZlbCkKKysJCW9zPS1ic2QKKysJCTs7CisrCSot ZW5jb3JlKQorKwkJb3M9LWJzZAorKwkJOzsKKysJKi1zZ2kpCisrCQlvcz0taXJpeAorKwkJOzsK KysJKi1zaWVtZW5zKQorKwkJb3M9LXN5c3Y0CisrCQk7OworKwkqLW1hc3Njb21wKQorKwkJb3M9 LXJ0dQorKwkJOzsKKysJZjMwWzAxXS1mdWppdHN1IHwgZjcwMC1mdWppdHN1KQorKwkJb3M9LXV4 cHYKKysJCTs7CisrCSotcm9tNjhrKQorKwkJb3M9LWNvZmYKKysJCTs7CisrCSotKmJ1ZykKKysJ CW9zPS1jb2ZmCisrCQk7OworKwkqLWFwcGxlKQorKwkJb3M9LW1hY29zCisrCQk7OworKwkqLWF0 YXJpKikKKysJCW9zPS1taW50CisrCQk7OworKwkqKQorKwkJb3M9LW5vbmUKKysJCTs7CisrZXNh YworK2ZpCisrCisrIyBIZXJlIHdlIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBrbm93IHRoZSBv cywgYW5kIHRoZSBDUFUgdHlwZSwgYnV0IG5vdCB0aGUKKysjIG1hbnVmYWN0dXJlci4gIFdlIHBp Y2sgdGhlIGxvZ2ljYWwgbWFudWZhY3R1cmVyLgorK3ZlbmRvcj11bmtub3duCisrY2FzZSAkYmFz aWNfbWFjaGluZSBpbgorKwkqLXVua25vd24pCisrCQljYXNlICRvcyBpbgorKwkJCS1yaXNjaXgq KQorKwkJCQl2ZW5kb3I9YWNvcm4KKysJCQkJOzsKKysJCQktc3Vub3MqKQorKwkJCQl2ZW5kb3I9 c3VuCisrCQkJCTs7CisrCQkJLWNuayp8LWFpeCopCisrCQkJCXZlbmRvcj1pYm0KKysJCQkJOzsK KysJCQktYmVvcyopCisrCQkJCXZlbmRvcj1iZQorKwkJCQk7OworKwkJCS1ocHV4KikKKysJCQkJ dmVuZG9yPWhwCisrCQkJCTs7CisrCQkJLW1wZWl4KikKKysJCQkJdmVuZG9yPWhwCisrCQkJCTs7 CisrCQkJLWhpdXgqKQorKwkJCQl2ZW5kb3I9aGl0YWNoaQorKwkJCQk7OworKwkJCS11bm9zKikK KysJCQkJdmVuZG9yPWNyZHMKKysJCQkJOzsKKysJCQktZGd1eCopCisrCQkJCXZlbmRvcj1kZwor KwkJCQk7OworKwkJCS1sdW5hKikKKysJCQkJdmVuZG9yPW9tcm9uCisrCQkJCTs7CisrCQkJLWdl bml4KikKKysJCQkJdmVuZG9yPW5zCisrCQkJCTs7CisrCQkJLW12cyogfCAtb3BlbmVkKikKKysJ CQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS1vczQwMCopCisrCQkJCXZlbmRvcj1pYm0KKysJ CQkJOzsKKysJCQktcHR4KikKKysJCQkJdmVuZG9yPXNlcXVlbnQKKysJCQkJOzsKKysJCQktdHBm KikKKysJCQkJdmVuZG9yPWlibQorKwkJCQk7OworKwkJCS12eHNpbSogfCAtdnh3b3JrcyogfCAt d2luZGlzcyopCisrCQkJCXZlbmRvcj13cnMKKysJCQkJOzsKKysJCQktYXV4KikKKysJCQkJdmVu ZG9yPWFwcGxlCisrCQkJCTs7CisrCQkJLWhtcyopCisrCQkJCXZlbmRvcj1oaXRhY2hpCisrCQkJ CTs7CisrCQkJLW1wdyogfCAtbWFjb3MqKQorKwkJCQl2ZW5kb3I9YXBwbGUKKysJCQkJOzsKKysJ CQktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorKwkJCQl2ZW5k b3I9YXRhcmkKKysJCQkJOzsKKysJCQktdm9zKikKKysJCQkJdmVuZG9yPXN0cmF0dXMKKysJCQkJ OzsKKysJCWVzYWMKKysJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQg InMvdW5rbm93bi8kdmVuZG9yLyJgCisrCQk7OworK2VzYWMKKysKKytlY2hvICRiYXNpY19tYWNo aW5lJG9zCisrZXhpdAorKworKyMgTG9jYWwgdmFyaWFibGVzOgorKyMgZXZhbDogKGFkZC1ob29r ICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorKyMgdGltZS1zdGFtcC1zdGFydDogInRp bWVzdGFtcD0nIgorKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgorKyMgdGlt ZS1zdGFtcC1lbmQ6ICInIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2Nv bmZpZy9jcHB1bml0Lm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY3BwdW5pdC5tNAorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9jcHB1bml0Lm00CTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9jcHB1bml0Lm00 CTIwMTAtMDEtMjMgMTM6Mjc6MDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDkzIEBACisr ZG5sCisrZG5sIEFNX1BBVEhfQ1BQVU5JVChNSU5JTVVNLVZFUlNJT04sIFtBQ1RJT04tSUYtRk9V TkQgWywgQUNUSU9OLUlGLU5PVC1GT1VORF1dKQorK2RubAorK0FDX0RFRlVOKFtBTV9QQVRIX0NQ UFVOSVRdLAorK1sKKysKKytBQ19BUkdfV0lUSChjcHB1bml0LXByZWZpeCxbICAtLXdpdGgtY3Bw dW5pdC1wcmVmaXg9UEZYICAgUHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5zdGFsbGVkIChvcHRp b25hbCldLAorKyAgICAgICAgICAgIGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiLCBj cHB1bml0X2NvbmZpZ19wcmVmaXg9IiIpCisrQUNfQVJHX1dJVEgoY3BwdW5pdC1leGVjLXByZWZp eCxbICAtLXdpdGgtY3BwdW5pdC1leGVjLXByZWZpeD1QRlggIEV4ZWMgcHJlZml4IHdoZXJlIENw cFVuaXQgaXMgaW5zdGFsbGVkIChvcHRpb25hbCldLAorKyAgICAgICAgICAgIGNwcHVuaXRfY29u ZmlnX2V4ZWNfcHJlZml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4PSIi KQorKworKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4ICE9IHggOyB0aGVu CisrICAgICBjcHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25maWdfYXJncyAtLWV4ZWMt cHJlZml4PSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeCIKKysgICAgIGlmIHRlc3QgeCR7Q1BQ VU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorKyAgICAgICAgQ1BQVU5JVF9DT05GSUc9 JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4L2Jpbi9jcHB1bml0LWNvbmZpZworKyAgICAgZmkK KysgIGZpCisrICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfcHJlZml4ICE9IHggOyB0aGVuCisr ICAgICBjcHB1bml0X2NvbmZpZ19hcmdzPSIkY3BwdW5pdF9jb25maWdfYXJncyAtLXByZWZpeD0k Y3BwdW5pdF9jb25maWdfcHJlZml4IgorKyAgICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytz ZXR9ICE9IHhzZXQgOyB0aGVuCisrICAgICAgICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25m aWdfcHJlZml4L2Jpbi9jcHB1bml0LWNvbmZpZworKyAgICAgZmkKKysgIGZpCisrCisrICBBQ19Q QVRIX1BST0coQ1BQVU5JVF9DT05GSUcsIGNwcHVuaXQtY29uZmlnLCBubykKKysgIGNwcHVuaXRf dmVyc2lvbl9taW49JDEKKysKKysgIEFDX01TR19DSEVDS0lORyhmb3IgQ3BwdW5pdCAtIHZlcnNp b24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4pCisrICBub19jcHB1bml0PSIiCisrICBpZiB0ZXN0 ICIkQ1BQVU5JVF9DT05GSUciID0gIm5vIiA7IHRoZW4KKysgICAgQUNfTVNHX1JFU1VMVChubykK KysgICAgbm9fY3BwdW5pdD15ZXMKKysgIGVsc2UKKysgICAgQ1BQVU5JVF9DRkxBR1M9YCRDUFBV TklUX0NPTkZJRyAtLWNmbGFnc2AKKysgICAgQ1BQVU5JVF9MSUJTPWAkQ1BQVU5JVF9DT05GSUcg LS1saWJzYAorKyAgICBDUFBVTklUX1ZFUlNJT049YCRDUFBVTklUX0NPTkZJRyAtLXZlcnNpb25g CisrCisrICAgIGNwcHVuaXRfbWFqb3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJTSU9OIHwg XAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0qXCkuXChbWzAtOV1d KlwpL1wxLydgCisrICAgIGNwcHVuaXRfbWlub3JfdmVyc2lvbj1gZWNobyAkQ1BQVU5JVF9WRVJT SU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0qXCkuXChb WzAtOV1dKlwpL1wyLydgCisrICAgIGNwcHVuaXRfbWljcm9fdmVyc2lvbj1gZWNobyAkQ1BQVU5J VF9WRVJTSU9OIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0q XCkuXChbWzAtOV1dKlwpL1wzLydgCisrCisrICAgIGNwcHVuaXRfbWFqb3JfbWluPWBlY2hvICRj cHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5c KFtbMC05XV0qXCkuXChbWzAtOV1dKlwpL1wxLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRf bWFqb3JfbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWFqb3JfbWluPTAKKysg ICAgZmkKKysgICAgCisrICAgIGNwcHVuaXRfbWlub3JfbWluPWBlY2hvICRjcHB1bml0X3ZlcnNp b25fbWluIHwgXAorKyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0qXCku XChbWzAtOV1dKlwpL1wyLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWlub3JfbWlufSIg PSAieCIgOyB0aGVuCisrICAgICAgIGNwcHVuaXRfbWlub3JfbWluPTAKKysgICAgZmkKKysgICAg CisrICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAor KyAgICAgICAgICAgc2VkICdzL1woW1swLTldXSpcKS5cKFtbMC05XV0qXCkuXChbWzAtOV1dKlwp L1wzLydgCisrICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9fbWlufSIgPSAieCIgOyB0aGVu CisrICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKKysgICAgZmkKKysKKysgICAgY3BwdW5pdF92 ZXJzaW9uX3Byb3Blcj1gZXhwciBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw+ ICRjcHB1bml0X21ham9yX21pbiBcfCBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9u IFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9taW5vcl92ZXJz aW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92 ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9taW5v cl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9t aWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAorKworKyAgICBpZiB0ZXN0ICIk Y3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCisrICAgICAgQUNfTVNHX1JFU1VM VChbJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRjcHB1bml0 X21pY3JvX3ZlcnNpb25dKQorKyAgICBlbHNlCisrICAgICAgQUNfTVNHX1JFU1VMVChubykKKysg ICAgICBub19jcHB1bml0PXllcworKyAgICBmaQorKyAgZmkKKysKKysgIGlmIHRlc3QgIngkbm9f Y3BwdW5pdCIgPSB4IDsgdGhlbgorKyAgICAgaWZlbHNlKFskMl0sICwgOiwgWyQyXSkgICAgIAor KyAgZWxzZQorKyAgICAgQ1BQVU5JVF9DRkxBR1M9IiIKKysgICAgIENQUFVOSVRfTElCUz0iIgor KyAgICAgaWZlbHNlKFskM10sICwgOiwgWyQzXSkKKysgIGZpCisrCisrICBBQ19TVUJTVChDUFBV TklUX0NGTEFHUykKKysgIEFDX1NVQlNUKENQUFVOSVRfTElCUykKKysgIEFDX1NVQlNUKENQUFVO SVRfVkVSU0lPTikKKytdKQorKworKworKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2Nv bmZpZy9kZXBjb21wIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvZGVwY29tcAorLS0tIHNvY2kt My4wLjBfNC1wYWNrL2NvbmZpZy9kZXBjb21wCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9kZXBjb21wCTIwMTAtMDEtMjMg MTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDYzMCBAQAorKyMhIC9iaW4vc2gK KysjIGRlcGNvbXAgLSBjb21waWxlIGEgcHJvZ3JhbSBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcyBh cyBzaWRlLWVmZmVjdHMKKysKKytzY3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7ICMgVVRDCisr CisrIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw MDcsIDIwMDkgRnJlZQorKyMgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCisrIyBhbnkgbGF0ZXIgdmVyc2lv bi4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrCisrIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSwgaWYgeW91CisrIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEg cHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKysjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRl ZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisrIyB0aGUgc2FtZSBkaXN0 cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0u CisrCisrIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxvbGl2YUBkY2Mu dW5pY2FtcC5icj4uCisrCisrY2FzZSAkMSBpbgorKyAgJycpCisrICAgICBlY2hvICIkMDogTm8g Y29tbWFuZC4gIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiAxPiYyCisr ICAgICBleGl0IDE7CisrICAgICA7OworKyAgLWggfCAtLWgqKQorKyAgICBjYXQgPDxcRU9GCisr VXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJHU10KKysKKytS dW4gUFJPR1JBTVMgQVJHUyB0byBjb21waWxlIGEgZmlsZSwgZ2VuZXJhdGluZyBkZXBlbmRlbmNp ZXMKKythcyBzaWRlLWVmZmVjdHMuCisrCisrRW52aXJvbm1lbnQgdmFyaWFibGVzOgorKyAgZGVw bW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2RlLgorKyAgc291cmNlICAgICAgU291cmNl IGZpbGUgcmVhZCBieSBgUFJPR1JBTVMgQVJHUycuCisrICBvYmplY3QgICAgICBPYmplY3QgZmls ZSBvdXRwdXQgYnkgYFBST0dSQU1TIEFSR1MnLgorKyAgREVQRElSICAgICAgZGlyZWN0b3J5IHdo ZXJlIHRvIHN0b3JlIGRlcGVuZGVuY2llcy4KKysgIGRlcGZpbGUgICAgIERlcGVuZGVuY3kgZmls ZSB0byBvdXRwdXQuCisrICB0bXBkZXBmaWxlICBUZW1wb3JhcnkgZmlsZSB0byB1c2Ugd2hlbiBv dXRwdXRpbmcgZGVwZW5kZW5jaWVzLgorKyAgbGlidG9vbCAgICAgV2hldGhlciBsaWJ0b29sIGlz IHVzZWQgKHllcy9ubykuCisrCisrUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3Jn Pi4KKytFT0YKKysgICAgZXhpdCAkPworKyAgICA7OworKyAgLXYgfCAtLXYqKQorKyAgICBlY2hv ICJkZXBjb21wICRzY3JpcHR2ZXJzaW9uIgorKyAgICBleGl0ICQ/CisrICAgIDs7CisrZXNhYwor KworK2lmIHRlc3QgLXogIiRkZXBtb2RlIiB8fCB0ZXN0IC16ICIkc291cmNlIiB8fCB0ZXN0IC16 ICIkb2JqZWN0IjsgdGhlbgorKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2Jq ZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCisrICBleGl0IDEKKytmaQorKworKyMg RGVwZW5kZW5jaWVzIGZvciBzdWIvYmFyLm8gb3Igc3ViL2Jhci5vYmogZ28gaW50byBzdWIvLmRl cHMvYmFyLlBvLgorK2RlcGZpbGU9JHtkZXBmaWxlLWBlY2hvICIkb2JqZWN0IiB8CisrICBzZWQg J3N8W15cXC9dKiR8JyR7REVQRElSLS5kZXBzfScvJnw7c3xcLlwoW14uXSpcKSR8LlBcMXw7c3xQ b2JqJHxQb3wnYH0KKyt0bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwg c2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQorKworK3JtIC1mICIkdG1wZGVwZmlsZSIKKysK KysjIFNvbWUgbW9kZXMgd29yayBqdXN0IGxpa2Ugb3RoZXIgbW9kZXMsIGJ1dCB1c2UgZGlmZmVy ZW50IGZsYWdzLiAgV2UKKysjIHBhcmFtZXRlcml6ZSBoZXJlLCBidXQgc3RpbGwgbGlzdCB0aGUg bW9kZXMgaW4gdGhlIGJpZyBjYXNlIGJlbG93LAorKyMgdG8gbWFrZSBkZXBlbmQubTQgZWFzaWVy IHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKKysjIGhlcmUsIGJl Y2F1c2UgdGhpcyBmaWxlIGNhbiBvbmx5IGNvbnRhaW4gb25lIGNhc2Ugc3RhdGVtZW50LgorK2lm IHRlc3QgIiRkZXBtb2RlIiA9IGhwOyB0aGVuCisrICAjIEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5k IG5vIGV4dHJhIGFyZy4KKysgIGdjY2ZsYWc9LU0KKysgIGRlcG1vZGU9Z2NjCisrZmkKKysKKytp ZiB0ZXN0ICIkZGVwbW9kZSIgPSBkYXNoWG1zdGRvdXQ7IHRoZW4KKysgICAjIFRoaXMgaXMganVz dCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCisrICAgZGFzaG1m bGFnPS14TQorKyAgIGRlcG1vZGU9ZGFzaG1zdGRvdXQKKytmaQorKworK2N5Z3BhdGhfdT0iY3ln cGF0aCAtdSAtZiAtIgorK2lmIHRlc3QgIiRkZXBtb2RlIiA9IG1zdmNtc3lzOyB0aGVuCisrICAg IyBUaGlzIGlzIGp1c3QgbGlrZSBtc3Zpc3VhbGNwcCBidXQgdy9vIGN5Z3BhdGggdHJhbnNsYXRp b24uCisrICAgIyBKdXN0IGNvbnZlcnQgdGhlIGJhY2tzbGFzaC1lc2NhcGVkIGJhY2tzbGFzaGVz IHRvIHNpbmdsZSBmb3J3YXJkCisrICAgIyBzbGFzaGVzIHRvIHNhdGlzZnkgZGVwZW5kLm00Cisr ICAgY3lncGF0aF91PSJzZWQgcyxcXFxcXFxcXCwvLGciCisrICAgZGVwbW9kZT1tc3Zpc3VhbGNw cAorK2ZpCisrCisrY2FzZSAiJGRlcG1vZGUiIGluCisrZ2NjMykKKysjIyBnY2MgMyBpbXBsZW1l bnRzIGRlcGVuZGVuY3kgdHJhY2tpbmcgdGhhdCBkb2VzIGV4YWN0bHkgd2hhdAorKyMjIHdlIHdh bnQuICBZYXkhICBOb3RlOiBmb3Igc29tZSByZWFzb24gbGlidG9vbCAxLjQgZG9lc24ndCBsaWtl CisrIyMgaXQgaWYgLU1EIC1NUCBjb21lcyBhZnRlciB0aGUgLU1GIHN0dWZmLiAgSG1tLgorKyMj IFVuZm9ydHVuYXRlbHksIEZyZWVCU0QgYzg5IGFjY2VwdGFuY2Ugb2YgZmxhZ3MgZGVwZW5kcyB1 cG9uCisrIyMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCBvcmRlcjsgc28gYWRkIHRoZSBmbGFn cyB3aGVyZSB0aGV5CisrIyMgYXBwZWFyIGluIGRlcGVuZDIuYW0uICBOb3RlIHRoYXQgdGhlIHNs b3dkb3duIGluY3VycmVkIGhlcmUKKysjIyBhZmZlY3RzIG9ubHkgY29uZmlndXJlOiBpbiBtYWtl ZmlsZXMsICVGQVNUREVQJSBzaG9ydGN1dHMgdGhpcy4KKysgIGZvciBhcmcKKysgIGRvCisrICAg IGNhc2UgJGFyZyBpbgorKyAgICAtYykgc2V0IGZub3JkICIkQCIgLU1UICIkb2JqZWN0IiAtTUQg LU1QIC1NRiAiJHRtcGRlcGZpbGUiICIkYXJnIiA7OworKyAgICAqKSAgc2V0IGZub3JkICIkQCIg IiRhcmciIDs7CisrICAgIGVzYWMKKysgICAgc2hpZnQgIyBmbm9yZAorKyAgICBzaGlmdCAjICRh cmcKKysgIGRvbmUKKysgICIkQCIKKysgIHN0YXQ9JD8KKysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7 IHRoZW4gOgorKyAgZWxzZQorKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICAgIGV4aXQgJHN0 YXQKKysgIGZpCisrICBtdiAiJHRtcGRlcGZpbGUiICIkZGVwZmlsZSIKKysgIDs7CisrCisrZ2Nj KQorKyMjIFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gZ2V0IGRlcGVuZGVuY3kgb3V0cHV0IGZy b20gZ2NjLiAgSGVyZSdzCisrIyMgd2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRo b2Q6CisrIyMgLSBEb24ndCB3YW50IHRvIHVzZSAtTUQgYmVjYXVzZSB3ZSdkIGxpa2UgdGhlIGRl cGVuZGVuY2llcyB0byBlbmQKKysjIyAgIHVwIGluIGEgc3ViZGlyLiAgSGF2aW5nIHRvIHJlbmFt ZSBieSBoYW5kIGlzIHVnbHkuCisrIyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55 d2F5IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKKysjIyAtIFRoZSBERVBFTkRFTkNJRVNf T1VUUFVUIGVudmlyb25tZW50IHZhcmlhYmxlIG1ha2VzIGdjYyBhY3QgbGlrZQorKyMjICAgLU1N LCBub3QgLU0gKGRlc3BpdGUgd2hhdCB0aGUgZG9jcyBzYXkpLgorKyMjIC0gVXNpbmcgLU0gZGly ZWN0bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKKysjIyAg IHRoYW4gcmVuYW1pbmcpLgorKyAgaWYgdGVzdCAteiAiJGdjY2ZsYWciOyB0aGVuCisrICAgIGdj Y2ZsYWc9LU1ELAorKyAgZmkKKysgICIkQCIgLVdwLCIkZ2NjZmxhZyR0bXBkZXBmaWxlIgorKyAg c3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisrICBlbHNlCisrICAgIHJt IC1mICIkdG1wZGVwZmlsZSIKKysgICAgZXhpdCAkc3RhdAorKyAgZmkKKysgIHJtIC1mICIkZGVw ZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisrICBhbHBoYT1BQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6CisrIyMgVGhl IHNlY29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBk cml2ZSBsZXR0ZXJzLgorKyAgc2VkIC1lICdzL15bXjpdKjogLyAvJyBcCisrICAgICAgLWUgJ3Mv XlsnJGFscGhhJ106XC9bXjpdKjogLyAvJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgor KyMjIFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBm aWxlJyBwcm9ibGVtLgorKyMjIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2hlbiBhIGhlYWRlciBmaWxl IHdoaWNoIGFwcGVhcnMgaW4gYSAuUCBmaWxlCisrIyMgaXMgZGVsZXRlZCwgdGhlIGRlcGVuZGVu Y3kgY2F1c2VzIG1ha2UgdG8gZGllIChiZWNhdXNlIHRoZXJlIGlzCisrIyMgdHlwaWNhbGx5IG5v IHdheSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKKysj IyBkdW1teSBkZXBlbmRlbmNpZXMgZm9yIGVhY2ggaGVhZGVyIGZpbGUuICBUb28gYmFkIGdjYyBk b2Vzbid0IGRvCisrIyMgdGhpcyBmb3IgdXMgZGlyZWN0bHkuCisrICB0ciAnICcgJworKycgPCAi JHRtcGRlcGZpbGUiIHwKKysjIyBTb21lIHZlcnNpb25zIG9mIGdjYyBwdXQgYSBzcGFjZSBiZWZv cmUgdGhlIGA6Jy4gIE9uIHRoZSB0aGVvcnkKKysjIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21l dGhpbmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMKKysjIyB3ZWxsLgorKyMjIFNv bWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZv Y2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRp b25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAt ZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRt cGRlcGZpbGUiCisrICA7OworKworK2hwKQorKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8g bGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5CisrICAjIGxvb2tpbmcgYXQg dGhlIHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCisr ICAjIHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgorKyAgZXhpdCAxCisrICA7OworKwor K3NnaSkKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICAiJEAiICItV3As LU1EdXBkYXRlLCR0bXBkZXBmaWxlIgorKyAgZWxzZQorKyAgICAiJEAiIC1NRHVwZGF0ZSAiJHRt cGRlcGZpbGUiCisrICBmaQorKyAgc3RhdD0kPworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhl biA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgICAgZXhpdCAkc3RhdAor KyAgZmkKKysgIHJtIC1mICIkZGVwZmlsZSIKKysKKysgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxl IjsgdGhlbiAgIyB5ZXMsIHRoZSBzb3VyY2VmaWxlIGRlcGVuZCBvbiBvdGhlciBmaWxlcworKyAg ICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorKworKyAgICAjIENsaXAgb2ZmIHRo ZSBpbml0aWFsIGVsZW1lbnQgKHRoZSBkZXBlbmRlbnQpLiAgRG9uJ3QgdHJ5IHRvIGJlCisrICAg ICMgY2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29u J3QgaGFuZGxlCisrICAgICMgbGluZXMgd2l0aCBtb3JlIHRoYW4gYSBmaXhlZCBudW1iZXIgb2Yg Y2hhcmFjdGVycyAoNDA5NiBpbgorKyAgICAjIElSSVggNi4yIHNlZCwgODE5MiBpbiBJUklYIDYu NSkuICBXZSBhbHNvIHJlbW92ZSBjb21tZW50IGxpbmVzOworKyAgICAjIHRoZSBJUklYIGNjIGFk ZHMgY29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2YgdGhlCisrICAgICMgZGVwZW5k ZW5jeSBsaW5lLgorKyAgICB0ciAnICcgJworKycgPCAiJHRtcGRlcGZpbGUiIFwKKysgICAgfCBz ZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIHwgXAorKyAgICB0 ciAnCisrJyAnICcgPj4gIiRkZXBmaWxlIgorKyAgICBlY2hvID4+ICIkZGVwZmlsZSIKKysKKysg ICAgIyBUaGUgc2Vjb25kIHBhc3MgZ2VuZXJhdGVzIGEgZHVtbXkgZW50cnkgZm9yIGVhY2ggaGVh ZGVyIGZpbGUuCisrICAgIHRyICcgJyAnCisrJyA8ICIkdG1wZGVwZmlsZSIgXAorKyAgIHwgc2Vk IC1lICdzL14uKlwubzovLycgLWUgJ3MvIy4qJC8vJyAtZSAnL14kLyBkJyAtZSAncy8kLzovJyBc CisrICAgPj4gIiRkZXBmaWxlIgorKyAgZWxzZQorKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMg bm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAorKyAgICAjIHN0b3JlIGEgZHVt bXkgY29tbWVudCBsaW5lLCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKKysgICAg IyAiaW5jbHVkZSBiYXNlbmFtZS5QbG8iIHNjaGVtZS4KKysgICAgZWNobyAiI2R1bW15IiA+ICIk ZGVwZmlsZSIKKysgIGZpCisrICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICA7OworKworK2FpeCkK KysgICMgVGhlIEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBl bmRlbmNpZXMKKysgICMgaW4gYSAudSBmaWxlLiAgSW4gb2xkZXIgdmVyc2lvbnMsIHRoaXMgZmls ZSBhbHdheXMgbGl2ZXMgaW4gdGhlCisrICAjIGN1cnJlbnQgZGlyZWN0b3J5LiAgQWxzbywgdGhl IEFJWCBjb21waWxlciBwdXRzIGAkb2JqZWN0OicgYXQgdGhlCisrICAjIHN0YXJ0IG9mIGVhY2gg bGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgorKyAgIyBW ZXJzaW9uIDYgdXNlcyB0aGUgZGlyZWN0b3J5IGluIGJvdGggY2FzZXMuCisrICBkaXI9YGVjaG8g IiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAorKyAgdGVzdCAieCRkaXIiID0gIngk b2JqZWN0IiAmJiBkaXI9CisrICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiov fHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisrICBpZiB0ZXN0ICIkbGlidG9vbCIg PSB5ZXM7IHRoZW4KKysgICAgdG1wZGVwZmlsZTE9JGRpciRiYXNlLnUKKysgICAgdG1wZGVwZmls ZTI9JGJhc2UudQorKyAgICB0bXBkZXBmaWxlMz0kZGlyLmxpYnMvJGJhc2UudQorKyAgICAiJEAi IC1XYywtTQorKyAgZWxzZQorKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UudQorKyAgICB0bXBk ZXBmaWxlMj0kZGlyJGJhc2UudQorKyAgICB0bXBkZXBmaWxlMz0kZGlyJGJhc2UudQorKyAgICAi JEAiIC1NCisrICBmaQorKyAgc3RhdD0kPworKworKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhl biA6CisrICBlbHNlCisrICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIk dG1wZGVwZmlsZTMiCisrICAgIGV4aXQgJHN0YXQKKysgIGZpCisrCisrICBmb3IgdG1wZGVwZmls ZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorKyAgZG8K KysgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCisrICBkb25lCisrICBpZiB0ZXN0 IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysgICAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0g YGZvby5vOiBkZXBlbmRlbnQuaCcuCisrICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3Qg Y2hhbmdlIHRoZXNlIHRvCisrICAgICMgYCRvYmplY3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRv IHNpbXBseSBgZGVwZW5kZW50Lmg6Jy4KKysgICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2Jq ZWN0OiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgICAgIyBUaGF0J3MgYSB0YWIg YW5kIGEgc3BhY2UgaW4gdGhlIFtdLgorKyAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSos LCcgLWUgJ3MsJCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKysgIGVsc2UKKysg ICAgIyBUaGUgc291cmNlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBkZXBlbmRlbmNpZXMsIHNv IGp1c3QKKysgICAgIyBzdG9yZSBhIGR1bW15IGNvbW1lbnQgbGluZSwgdG8gYXZvaWQgZXJyb3Jz IHdpdGggdGhlIE1ha2VmaWxlCisrICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUu CisrICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCisrICBmaQorKyAgcm0gLWYgIiR0bXBk ZXBmaWxlIgorKyAgOzsKKysKKytpY2MpCisrICAjIEludGVsJ3MgQyBjb21waWxlciB1bmRlcnN0 YW5kcyBgLU1EIC1NRiBmaWxlJy4gIEhvd2V2ZXIgb24KKysgICMgICAgaWNjIC1NRCAtTUYgZm9v LmQgLWMgLW8gc3ViL2Zvby5vIHN1Yi9mb28uYworKyAgIyBJQ0MgNy4wIHdpbGwgZmlsbCBmb28u ZCB3aXRoIHNvbWV0aGluZyBsaWtlCisrICAjICAgIGZvby5vOiBzdWIvZm9vLmMKKysgICMgICAg Zm9vLm86IHN1Yi9mb28uaAorKyAgIyB3aGljaCBpcyB3cm9uZy4gIFdlIHdhbnQ6CisrICAjICAg IHN1Yi9mb28ubzogc3ViL2Zvby5jCisrICAjICAgIHN1Yi9mb28ubzogc3ViL2Zvby5oCisrICAj ICAgIHN1Yi9mb28uYzoKKysgICMgICAgc3ViL2Zvby5oOgorKyAgIyBJQ0MgNy4xIHdpbGwgb3V0 cHV0CisrICAjICAgIGZvby5vOiBzdWIvZm9vLmMgc3ViL2Zvby5oCisrICAjIGFuZCB3aWxsIHdy YXAgbG9uZyBsaW5lcyB1c2luZyBcIDoKKysgICMgICAgZm9vLm86IHN1Yi9mb28uYyAuLi4gXAor KyAgIyAgICAgc3ViL2Zvby5oIC4uLiBcCisrICAjICAgICAuLi4KKysKKysgICIkQCIgLU1EIC1N RiAiJHRtcGRlcGZpbGUiCisrICBzdGF0PSQ/CisrICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVu IDoKKysgIGVsc2UKKysgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgICBleGl0ICRzdGF0Cisr ICBmaQorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgIyBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0g YGZvby5vOiBkZXBlbmRlbnQuaCcsCisrICAjIG9yIGBmb28ubzogZGVwMS5oIGRlcDIuaCBcJywg b3IgYCBkZXAzLmggZGVwNC5oIFwnLgorKyAgIyBEbyB0d28gcGFzc2VzLCBvbmUgdG8ganVzdCBj aGFuZ2UgdGhlc2UgdG8KKysgICMgYCRvYmplY3Q6IGRlcGVuZGVudC5oJyBhbmQgb25lIHRvIHNp bXBseSBgZGVwZW5kZW50Lmg6Jy4KKysgIHNlZCAicyxeW146XSo6LCRvYmplY3QgOiwiIDwgIiR0 bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgICMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAx MC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KKysgICMgY29ycmVjdGx5LiAg QnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKysg IHNlZCAncyxeW146XSo6IFwoLipcKSQsXDEsO3MvXlxcJC8vOy9eJC9kOy86JC9kJyA8ICIkdG1w ZGVwZmlsZSIgfAorKyAgICBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKysgIHJtIC1m ICIkdG1wZGVwZmlsZSIKKysgIDs7CisrCisraHAyKQorKyAgIyBUaGUgImhwIiBzdGFuemEgYWJv dmUgZG9lcyBub3Qgd29yayB3aXRoIGFDQyAoQysrKSBhbmQgSFAncyBpYTY0CisrICAjIGNvbXBp bGVycywgd2hpY2ggaGF2ZSBpbnRlZ3JhdGVkIHByZXByb2Nlc3NvcnMuICBUaGUgY29ycmVjdCBv cHRpb24KKysgICMgdG8gdXNlIHdpdGggdGhlc2UgaXMgK01ha2VkOyBpdCB3cml0ZXMgZGVwZW5k ZW5jaWVzIHRvIGEgZmlsZSBuYW1lZAorKyAgIyAnZm9vLmQnLCB3aGljaCBsYW5kcyBuZXh0IHRv IHRoZSBvYmplY3QgZmlsZSwgd2hlcmV2ZXIgdGhhdAorKyAgIyBoYXBwZW5zIHRvIGJlLgorKyAg IyBNdWNoIG9mIHRoaXMgaXMgc2ltaWxhciB0byB0aGUgdHJ1NjQgY2FzZTsgc2VlIGNvbW1lbnRz IHRoZXJlLgorKyAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98J2AK KysgIHRlc3QgIngkZGlyIiA9ICJ4JG9iamVjdCIgJiYgZGlyPQorKyAgYmFzZT1gZWNobyAiJG9i amVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAor KyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHRtcGRlcGZpbGUxPSRkaXIk YmFzZS5kCisrICAgIHRtcGRlcGZpbGUyPSRkaXIubGlicy8kYmFzZS5kCisrICAgICIkQCIgLVdj LCtNYWtlZAorKyAgZWxzZQorKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UuZAorKyAgICB0bXBk ZXBmaWxlMj0kZGlyJGJhc2UuZAorKyAgICAiJEAiICtNYWtlZAorKyAgZmkKKysgIHN0YXQ9JD8K KysgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRoZW4gOgorKyAgZWxzZQorKyAgICAgcm0gLWYgIiR0 bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIKKysgICAgIGV4aXQgJHN0YXQKKysgIGZpCisrCisr ICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIgorKyAgZG8K KysgICAgdGVzdCAtZiAiJHRtcGRlcGZpbGUiICYmIGJyZWFrCisrICBkb25lCisrICBpZiB0ZXN0 IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KKysgICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2Jq ZWN0OiwiICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisrICAgICMgQWRkIGBkZXBlbmRlbnQu aDonIGxpbmVzLgorKyAgICBzZWQgLW5lICcyLCR7CisrCSAgICAgICBzL14gKi8vCisrCSAgICAg ICBzLyBcXCokLy8KKysJICAgICAgIHMvJC86LworKwkgICAgICAgcAorKwkgICAgIH0nICIkdG1w ZGVwZmlsZSIgPj4gIiRkZXBmaWxlIgorKyAgZWxzZQorKyAgICBlY2hvICIjZHVtbXkiID4gIiRk ZXBmaWxlIgorKyAgZmkKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIgIiR0bXBkZXBmaWxlMiIKKysg IDs7CisrCisrdHJ1NjQpCisrICAgIyBUaGUgVHJ1NjQgY29tcGlsZXIgdXNlcyAtTUQgdG8gZ2Vu ZXJhdGUgZGVwZW5kZW5jaWVzIGFzIGEgc2lkZQorKyAgICMgZWZmZWN0LiAgYGNjIC1NRCAtbyBm b28ubyAuLi4nIHB1dHMgdGhlIGRlcGVuZGVuY2llcyBpbnRvIGBmb28uby5kJy4KKysgICAjIEF0 IGxlYXN0IG9uIEFscGhhL1JlZGhhdCA2LjEsIENvbXBhcSBDQ0MgVjYuMi01MDQgc2VlbXMgdG8g cHV0CisrICAgIyBkZXBlbmRlbmNpZXMgaW4gYGZvby5kJyBpbnN0ZWFkLCBzbyB3ZSBjaGVjayBm b3IgdGhhdCB0b28uCisrICAgIyBTdWJkaXJlY3RvcmllcyBhcmUgcmVzcGVjdGVkLgorKyAgIGRp cj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCisrICAgdGVzdCAieCRk aXIiID0gIngkb2JqZWN0IiAmJiBkaXI9CisrICAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQg LWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAorKworKyAgIGlmIHRl c3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorKyAgICAgICMgV2l0aCBUcnU2NCBjYywgc2hhcmVk IG9iamVjdHMgY2FuIGFsc28gYmUgdXNlZCB0byBtYWtlIGEKKysgICAgICAjIHN0YXRpYyBsaWJy YXJ5LiAgVGhpcyBtZWNoYW5pc20gaXMgdXNlZCBpbiBsaWJ0b29sIDEuNCBzZXJpZXMgdG8KKysg ICAgICAjIGhhbmRsZSBib3RoIHNoYXJlZCBhbmQgc3RhdGljIGxpYnJhcmllcyBpbiBhIHNpbmds ZSBjb21waWxhdGlvbi4KKysgICAgICAjIFdpdGggbGlidG9vbCAxLjQsIGRlcGVuZGVuY2llcyB3 ZXJlIG91dHB1dCBpbiAkZGlyLmxpYnMvJGJhc2UubG8uZC4KKysgICAgICAjCisrICAgICAgIyBX aXRoIGxpYnRvb2wgMS41IHRoaXMgZXhjZXB0aW9uIHdhcyByZW1vdmVkLCBhbmQgbGlidG9vbCBu b3cKKysgICAgICAjIGdlbmVyYXRlcyAyIHNlcGFyYXRlIG9iamVjdHMgZm9yIHRoZSAyIGxpYnJh cmllcy4gIFRoZXNlIHR3bworKyAgICAgICMgY29tcGlsYXRpb25zIG91dHB1dCBkZXBlbmRlbmNp ZXMgaW4gJGRpci5saWJzLyRiYXNlLm8uZCBhbmQKKysgICAgICAjIGluICRkaXIkYmFzZS5vLmQu ICBXZSBoYXZlIHRvIGNoZWNrIGZvciBib3RoIGZpbGVzLCBiZWNhdXNlCisrICAgICAgIyBvbmUg b2YgdGhlIHR3byBjb21waWxhdGlvbnMgY2FuIGJlIGRpc2FibGVkLiAgV2Ugc2hvdWxkIHByZWZl cgorKyAgICAgICMgJGRpciRiYXNlLm8uZCBvdmVyICRkaXIubGlicy8kYmFzZS5vLmQgYmVjYXVz ZSB0aGUgbGF0dGVyIGlzCisrICAgICAgIyBhdXRvbWF0aWNhbGx5IGNsZWFuZWQgd2hlbiAubGli cy8gaXMgZGVsZXRlZCwgd2hpbGUgaWdub3JpbmcKKysgICAgICAjIHRoZSBmb3JtZXIgd291bGQg Y2F1c2UgYSBkaXN0Y2xlYW5jaGVjayBwYW5pYy4KKysgICAgICB0bXBkZXBmaWxlMT0kZGlyLmxp YnMvJGJhc2UubG8uZCAgICMgbGlidG9vbCAxLjQKKysgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJh c2Uuby5kICAgICAgICAgICMgbGlidG9vbCAxLjUKKysgICAgICB0bXBkZXBmaWxlMz0kZGlyLmxp YnMvJGJhc2Uuby5kICAgICMgbGlidG9vbCAxLjUKKysgICAgICB0bXBkZXBmaWxlND0kZGlyLmxp YnMvJGJhc2UuZCAgICAgICMgQ29tcGFxIENDQyBWNi4yLTUwNAorKyAgICAgICIkQCIgLVdjLC1N RAorKyAgIGVsc2UKKysgICAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2Uuby5kCisrICAgICAgdG1w ZGVwZmlsZTI9JGRpciRiYXNlLmQKKysgICAgICB0bXBkZXBmaWxlMz0kZGlyJGJhc2UuZAorKyAg ICAgIHRtcGRlcGZpbGU0PSRkaXIkYmFzZS5kCisrICAgICAgIiRAIiAtTUQKKysgICBmaQorKwor KyAgIHN0YXQ9JD8KKysgICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKysgICBlbHNlCisr ICAgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIgIiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIg IiR0bXBkZXBmaWxlNCIKKysgICAgICBleGl0ICRzdGF0CisrICAgZmkKKysKKysgICBmb3IgdG1w ZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIiAi JHRtcGRlcGZpbGU0IgorKyAgIGRvCisrICAgICB0ZXN0IC1mICIkdG1wZGVwZmlsZSIgJiYgYnJl YWsKKysgICBkb25lCisrICAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisrICAgICAg c2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVw ZmlsZSIKKysgICAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCisrICAg ICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBm aWxlIiA+PiAiJGRlcGZpbGUiCisrICAgZWxzZQorKyAgICAgIGVjaG8gIiNkdW1teSIgPiAiJGRl cGZpbGUiCisrICAgZmkKKysgICBybSAtZiAiJHRtcGRlcGZpbGUiCisrICAgOzsKKysKKysjbm9z aWRlZWZmZWN0KQorKyAgIyBUaGlzIGNvbW1lbnQgYWJvdmUgaXMgdXNlZCBieSBhdXRvbWFrZSB0 byB0ZWxsIHNpZGUtZWZmZWN0CisrICAjIGRlcGVuZGVuY3kgdHJhY2tpbmcgbWVjaGFuaXNtcyBm cm9tIHNsb3dlciBvbmVzLgorKworK2Rhc2htc3Rkb3V0KQorKyAgIyBJbXBvcnRhbnQgbm90ZTog aW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisrICAjIGFs d2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9m IC1vLgorKyAgIiRAIiB8fCBleGl0ICQ/CisrCisrICAjIFJlbW92ZSB0aGUgY2FsbCB0byBMaWJ0 b29sLgorKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisrICAgIHdoaWxlIHRlc3Qg IlgkMSIgIT0gJ1gtLW1vZGU9Y29tcGlsZSc7IGRvCisrICAgICAgc2hpZnQKKysgICAgZG9uZQor KyAgICBzaGlmdAorKyAgZmkKKysKKysgICMgUmVtb3ZlIGAtbyAkb2JqZWN0Jy4KKysgIElGUz0i ICIKKysgIGZvciBhcmcKKysgIGRvCisrICAgIGNhc2UgJGFyZyBpbgorKyAgICAtbykKKysgICAg ICBzaGlmdAorKyAgICAgIDs7CisrICAgICRvYmplY3QpCisrICAgICAgc2hpZnQKKysgICAgICA7 OworKyAgICAqKQorKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIgorKyAgICAgIHNoaWZ0ICMg Zm5vcmQKKysgICAgICBzaGlmdCAjICRhcmcKKysgICAgICA7OworKyAgICBlc2FjCisrICBkb25l CisrCisrICB0ZXN0IC16ICIkZGFzaG1mbGFnIiAmJiBkYXNobWZsYWc9LU0KKysgICMgUmVxdWly ZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKKysgICMg aW4gdGhlIHRhcmdldCBuYW1lLiAgVGhpcyBpcyB0byBjb3BlIHdpdGggRE9TLXN0eWxlIGZpbGVu YW1lczoKKysgICMgYSBkZXBlbmRlbmN5IHN1Y2ggYXMgYGM6L2Zvby9iYXInIGNvdWxkIGJlIHNl ZW4gYXMgdGFyZ2V0IGBjJyBvdGhlcndpc2UuCisrICAiJEAiICRkYXNobWZsYWcgfAorKyAgICBz ZWQgJ3M6XlsgIF0qW146IF1bXjpdW146XSpcOlsgICAgXSo6JyIkb2JqZWN0IidcOiA6JyA+ICIk dG1wZGVwZmlsZSIKKysgIHJtIC1mICIkZGVwZmlsZSIKKysgIGNhdCA8ICIkdG1wZGVwZmlsZSIg PiAiJGRlcGZpbGUiCisrICB0ciAnICcgJworKycgPCAiJHRtcGRlcGZpbGUiIHwgXAorKyMjIFNv bWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZv Y2F0aW9uCisrIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRp b25zIGlzIGEgd29ya2Fyb3VuZC4KKysgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAt ZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisrICBybSAtZiAiJHRt cGRlcGZpbGUiCisrICA7OworKworK2Rhc2hYbXN0ZG91dCkKKysgICMgVGhpcyBjYXNlIG9ubHkg ZXhpc3RzIHRvIHNhdGlzZnkgZGVwZW5kLm00LiAgSXQgaXMgbmV2ZXIgYWN0dWFsbHkKKysgICMg cnVuLCBhcyB0aGlzIG1vZGUgaXMgc3BlY2lhbGx5IHJlY29nbml6ZWQgaW4gdGhlIHByZWFtYmxl LgorKyAgZXhpdCAxCisrICA7OworKworK21ha2VkZXBlbmQpCisrICAiJEAiIHx8IGV4aXQgJD8K KysgICMgUmVtb3ZlIGFueSBMaWJ0b29sIGNhbGwKKysgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHll czsgdGhlbgorKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1tb2RlPWNvbXBpbGUnOyBkbwor KyAgICAgIHNoaWZ0CisrICAgIGRvbmUKKysgICAgc2hpZnQKKysgIGZpCisrICAjIFggbWFrZWRl cGVuZAorKyAgc2hpZnQKKysgIGNsZWFyZWQ9bm8gZWF0PW5vCisrICBmb3IgYXJnCisrICBkbwor KyAgICBjYXNlICRjbGVhcmVkIGluCisrICAgIG5vKQorKyAgICAgIHNldCAiIjsgc2hpZnQKKysg ICAgICBjbGVhcmVkPXllcyA7OworKyAgICBlc2FjCisrICAgIGlmIHRlc3QgJGVhdCA9IHllczsg dGhlbgorKyAgICAgIGVhdD1ubworKyAgICAgIGNvbnRpbnVlCisrICAgIGZpCisrICAgIGNhc2Ug IiRhcmciIGluCisrICAgIC1EKnwtSSopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBz aGlmdCA7OworKyAgICAjIFN0cmlwIGFueSBvcHRpb24gdGhhdCBtYWtlZGVwZW5kIG1heSBub3Qg dW5kZXJzdGFuZC4gIFJlbW92ZQorKyAgICAjIHRoZSBvYmplY3QgdG9vLCBvdGhlcndpc2UgbWFr ZWRlcGVuZCB3aWxsIHBhcnNlIGl0IGFzIGEgc291cmNlIGZpbGUuCisrICAgIC1hcmNoKQorKyAg ICAgIGVhdD15ZXMgOzsKKysgICAgLSp8JG9iamVjdCkKKysgICAgICA7OworKyAgICAqKQorKyAg ICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKysgICAgZXNhYworKyAgZG9uZQor KyAgb2JqX3N1ZmZpeD1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3MvXi4qXC4vLi8nYAorKyAgdG91 Y2ggIiR0bXBkZXBmaWxlIgorKyAgJHtNQUtFREVQRU5ELW1ha2VkZXBlbmR9IC1vIiRvYmpfc3Vm Zml4IiAtZiIkdG1wZGVwZmlsZSIgIiRAIgorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgY2F0IDwg IiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKysgIHNlZCAnMSwyZCcgIiR0bXBkZXBmaWxlIiB8 IHRyICcgJyAnCisrJyB8IFwKKysjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNl ZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorKyMjIGNvcnJlY3RseS4gIEJyZWFraW5n IGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisrICAgIHNlZCAt ZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4g IiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAiJHRtcGRlcGZpbGUiLmJhaworKyAg OzsKKysKKytjcHApCisrICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRo aXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9j ZXNzZWQgZmlsZSB0byBzdGRvdXQuCisrICAiJEAiIHx8IGV4aXQgJD8KKysKKysgICMgUmVtb3Zl IHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4K KysgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKysgICAgICBz aGlmdAorKyAgICBkb25lCisrICAgIHNoaWZ0CisrICBmaQorKworKyAgIyBSZW1vdmUgYC1vICRv YmplY3QnLgorKyAgSUZTPSIgIgorKyAgZm9yIGFyZworKyAgZG8KKysgICAgY2FzZSAkYXJnIGlu CisrICAgIC1vKQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysgICAgJG9iamVjdCkKKysgICAg ICBzaGlmdAorKyAgICAgIDs7CisrICAgICopCisrICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmci CisrICAgICAgc2hpZnQgIyBmbm9yZAorKyAgICAgIHNoaWZ0ICMgJGFyZworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgIGRvbmUKKysKKysgICIkQCIgLUUgfAorKyAgICBzZWQgLW4gLWUgJy9eIyBb MC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgXAorKyAgICAgICAtZSAnL14j bGluZSBbMC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgfAorKyAgICBzZWQg JyQgczogXFwkOjonID4gIiR0bXBkZXBmaWxlIgorKyAgcm0gLWYgIiRkZXBmaWxlIgorKyAgZWNo byAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKysgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPj4g IiRkZXBmaWxlIgorKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAnL14kL2Q7cy9eIC8vO3MvIFxcJC8v O3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKysgIHJtIC1mICIkdG1wZGVwZmlsZSIKKysgIDs7Cisr CisrbXN2aXN1YWxjcHApCisrICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0 IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKysgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVw cm9jZXNzZWQgZmlsZSB0byBzdGRvdXQuCisrICAiJEAiIHx8IGV4aXQgJD8KKysKKysgICMgUmVt b3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisrICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRo ZW4KKysgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKysgICAg ICBzaGlmdAorKyAgICBkb25lCisrICAgIHNoaWZ0CisrICBmaQorKworKyAgSUZTPSIgIgorKyAg Zm9yIGFyZworKyAgZG8KKysgICAgY2FzZSAiJGFyZyIgaW4KKysgICAgLW8pCisrICAgICAgc2hp ZnQKKysgICAgICA7OworKyAgICAkb2JqZWN0KQorKyAgICAgIHNoaWZ0CisrICAgICAgOzsKKysg ICAgIi1HbSJ8Ii9HbSJ8Ii1HaSJ8Ii9HaSJ8Ii1aSSJ8Ii9aSSIpCisrCXNldCBmbm9yZCAiJEAi CisrCXNoaWZ0CisrCXNoaWZ0CisrCTs7CisrICAgICopCisrCXNldCBmbm9yZCAiJEAiICIkYXJn IgorKwlzaGlmdAorKwlzaGlmdAorKwk7OworKyAgICBlc2FjCisrICBkb25lCisrICAiJEAiIC1F IDI+L2Rldi9udWxsIHwKKysgIHNlZCAtbiAnL14jbGluZSBbMC05XVswLTldKiAiXChbXiJdKlwp Ii8gczo6XDE6cCcgfCAkY3lncGF0aF91IHwgc29ydCAtdSA+ICIkdG1wZGVwZmlsZSIKKysgIHJt IC1mICIkZGVwZmlsZSIKKysgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisrICBz ZWQgPCAiJHRtcGRlcGZpbGUiIC1uIC1lICdzJSAlXFwgJWcnIC1lICcvXlwoLipcKSQvIHM6Oglc MSBcXDpwJyA+PiAiJGRlcGZpbGUiCisrICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCisrICBzZWQg PCAiJHRtcGRlcGZpbGUiIC1uIC1lICdzJSAlXFwgJWcnIC1lICcvXlwoLipcKSQvIHM6OlwxXDo6 cCcgPj4gIiRkZXBmaWxlIgorKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorKyAgOzsKKysKKyttc3Zj bXN5cykKKysgICMgVGhpcyBjYXNlIGV4aXN0cyBvbmx5IHRvIGxldCBkZXBlbmQubTQgZG8gaXRz IHdvcmsuICBJdCB3b3JrcyBieQorKyAgIyBsb29raW5nIGF0IHRoZSB0ZXh0IG9mIHRoaXMgc2Ny aXB0LiAgVGhpcyBjYXNlIHdpbGwgbmV2ZXIgYmUgcnVuLAorKyAgIyBzaW5jZSBpdCBpcyBjaGVj a2VkIGZvciBhYm92ZS4KKysgIGV4aXQgMQorKyAgOzsKKysKKytub25lKQorKyAgZXhlYyAiJEAi CisrICA7OworKworKyopCisrICBlY2hvICJVbmtub3duIGRlcG1vZGUgJGRlcG1vZGUiIDE+JjIK KysgIGV4aXQgMQorKyAgOzsKKytlc2FjCisrCisrZXhpdCAwCisrCisrIyBMb2NhbCBWYXJpYWJs ZXM6CisrIyBtb2RlOiBzaGVsbC1zY3JpcHQKKysjIHNoLWluZGVudGF0aW9uOiAyCisrIyBldmFs OiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1w LXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisrIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJt LSUwMmQuJTAySCIKKysjIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgorKyMgdGltZS1zdGFt cC1lbmQ6ICI7ICMgVVRDIgorKyMgRW5kOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2Nv bmZpZy9pbnN0YWxsLXNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvaW5zdGFsbC1zaAorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9pbnN0YWxsLXNoCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9pbnN0YWxsLXNo CTIwMTAtMDEtMjMgMTQ6NDQ6NTAuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDUyMCBAQAor KyMhL2Jpbi9zaAorKyMgaW5zdGFsbCAtIGluc3RhbGwgYSBwcm9ncmFtLCBzY3JpcHQsIG9yIGRh dGFmaWxlCisrCisrc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQworKworKyMgVGhp cyBvcmlnaW5hdGVzIGZyb20gWDExUjUgKG1pdC91dGlsL3NjcmlwdHMvaW5zdGFsbC5zaCksIHdo aWNoIHdhcworKyMgbGF0ZXIgcmVsZWFzZWQgaW4gWDExUjYgKHhjL2NvbmZpZy91dGlsL2luc3Rh bGwuc2gpIHdpdGggdGhlCisrIyBmb2xsb3dpbmcgY29weXJpZ2h0IGFuZCBsaWNlbnNlLgorKyMK KysjIENvcHlyaWdodCAoQykgMTk5NCBYIENvbnNvcnRpdW0KKysjCisrIyBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YSBjb3B5CisrIyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKysjIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisrIyByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLCBhbmQvb3IKKysjIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisrIyBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKyMKKysjIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu Y2x1ZGVkIGluCisrIyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT b2Z0d2FyZS4KKysjCisrIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorKyMgSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisr IyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwgVEhFCisrIyBYIENPTlNPUlRJVU0gQkUgTElBQkxFIEZPUiBBTlkg Q0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOCisrIyBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUMtCisrIyBUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorKyMKKysjIEV4Y2VwdCBhcyBjb250YWluZWQg aW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIHRoZSBYIENvbnNvcnRpdW0gc2hhbGwgbm90Cisr IyBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxl LCB1c2Ugb3Igb3RoZXIgZGVhbC0KKysjIGluZ3MgaW4gdGhpcyBTb2Z0d2FyZSB3aXRob3V0IHBy aW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBmcm9tIHRoZSBYIENvbnNvci0KKysjIHRpdW0uCisr IworKyMKKysjIEZTRiBjaGFuZ2VzIHRvIHRoaXMgZmlsZSBhcmUgaW4gdGhlIHB1YmxpYyBkb21h aW4uCisrIworKyMgQ2FsbGluZyB0aGlzIHNjcmlwdCBpbnN0YWxsLXNoIGlzIHByZWZlcnJlZCBv dmVyIGluc3RhbGwuc2gsIHRvIHByZXZlbnQKKysjIGBtYWtlJyBpbXBsaWNpdCBydWxlcyBmcm9t IGNyZWF0aW5nIGEgZmlsZSBjYWxsZWQgaW5zdGFsbCBmcm9tIGl0CisrIyB3aGVuIHRoZXJlIGlz IG5vIE1ha2VmaWxlLgorKyMKKysjIFRoaXMgc2NyaXB0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUg QlNEIGluc3RhbGwgc2NyaXB0LCBidXQgd2FzIHdyaXR0ZW4KKysjIGZyb20gc2NyYXRjaC4KKysK KytubD0nCisrJworK0lGUz0iICIiCSRubCIKKysKKysjIHNldCBET0lUUFJPRyB0byBlY2hvIHRv IHRlc3QgdGhpcyBzY3JpcHQKKysKKysjIERvbid0IHVzZSA6LSBzaW5jZSA0LjNCU0QgYW5kIGVh cmxpZXIgc2hlbGxzIGRvbid0IGxpa2UgaXQuCisrZG9pdD0ke0RPSVRQUk9HLX0KKytpZiB0ZXN0 IC16ICIkZG9pdCI7IHRoZW4KKysgIGRvaXRfZXhlYz1leGVjCisrZWxzZQorKyAgZG9pdF9leGVj PSRkb2l0CisrZmkKKysKKysjIFB1dCBpbiBhYnNvbHV0ZSBmaWxlIG5hbWVzIGlmIHlvdSBkb24n dCBoYXZlIHRoZW0gaW4geW91ciBwYXRoOworKyMgb3IgdXNlIGVudmlyb25tZW50IHZhcnMuCisr CisrY2hncnBwcm9nPSR7Q0hHUlBQUk9HLWNoZ3JwfQorK2NobW9kcHJvZz0ke0NITU9EUFJPRy1j aG1vZH0KKytjaG93bnByb2c9JHtDSE9XTlBST0ctY2hvd259CisrY21wcHJvZz0ke0NNUFBST0ct Y21wfQorK2NwcHJvZz0ke0NQUFJPRy1jcH0KKytta2RpcnByb2c9JHtNS0RJUlBST0ctbWtkaXJ9 CisrbXZwcm9nPSR7TVZQUk9HLW12fQorK3JtcHJvZz0ke1JNUFJPRy1ybX0KKytzdHJpcHByb2c9 JHtTVFJJUFBST0ctc3RyaXB9CisrCisrcG9zaXhfZ2xvYj0nPycKKytpbml0aWFsaXplX3Bvc2l4 X2dsb2I9JworKyAgdGVzdCAiJHBvc2l4X2dsb2IiICE9ICI/IiB8fCB7CisrICAgIGlmIChzZXQg LWYpIDI+L2Rldi9udWxsOyB0aGVuCisrICAgICAgcG9zaXhfZ2xvYj0KKysgICAgZWxzZQorKyAg ICAgIHBvc2l4X2dsb2I9OgorKyAgICBmaQorKyAgfQorKycKKysKKytwb3NpeF9ta2Rpcj0KKysK KysjIERlc2lyZWQgbW9kZSBvZiBpbnN0YWxsZWQgZmlsZS4KKyttb2RlPTA3NTUKKysKKytjaGdy cGNtZD0KKytjaG1vZGNtZD0kY2htb2Rwcm9nCisrY2hvd25jbWQ9CisrbXZjbWQ9JG12cHJvZwor K3JtY21kPSIkcm1wcm9nIC1mIgorK3N0cmlwY21kPQorKworK3NyYz0KKytkc3Q9CisrZGlyX2Fy Zz0KKytkc3RfYXJnPQorKworK2NvcHlfb25fY2hhbmdlPWZhbHNlCisrbm9fdGFyZ2V0X2RpcmVj dG9yeT0KKysKKyt1c2FnZT0iXAorK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbLVRdIFNSQ0ZJTEUg RFNURklMRQorKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiBTUkNGSUxFUy4uLiBESVJFQ1RPUlkKKysg ICBvcjogJDAgW09QVElPTl0uLi4gLXQgRElSRUNUT1JZIFNSQ0ZJTEVTLi4uCisrICAgb3I6ICQw IFtPUFRJT05dLi4uIC1kIERJUkVDVE9SSUVTLi4uCisrCisrSW4gdGhlIDFzdCBmb3JtLCBjb3B5 IFNSQ0ZJTEUgdG8gRFNURklMRS4KKytJbiB0aGUgMm5kIGFuZCAzcmQsIGNvcHkgYWxsIFNSQ0ZJ TEVTIHRvIERJUkVDVE9SWS4KKytJbiB0aGUgNHRoLCBjcmVhdGUgRElSRUNUT1JJRVMuCisrCisr T3B0aW9uczoKKysgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQuCisr ICAgICAtLXZlcnNpb24gIGRpc3BsYXkgdmVyc2lvbiBpbmZvIGFuZCBleGl0LgorKworKyAgLWMg ICAgICAgICAgICAoaWdub3JlZCkKKysgIC1DICAgICAgICAgICAgaW5zdGFsbCBvbmx5IGlmIGRp ZmZlcmVudCAocHJlc2VydmUgdGhlIGxhc3QgZGF0YSBtb2RpZmljYXRpb24gdGltZSkKKysgIC1k ICAgICAgICAgICAgY3JlYXRlIGRpcmVjdG9yaWVzIGluc3RlYWQgb2YgaW5zdGFsbGluZyBmaWxl cy4KKysgIC1nIEdST1VQICAgICAgJGNoZ3JwcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gR1JPVVAu CisrICAtbSBNT0RFICAgICAgICRjaG1vZHByb2cgaW5zdGFsbGVkIGZpbGVzIHRvIE1PREUuCisr ICAtbyBVU0VSICAgICAgICRjaG93bnByb2cgaW5zdGFsbGVkIGZpbGVzIHRvIFVTRVIuCisrICAt cyAgICAgICAgICAgICRzdHJpcHByb2cgaW5zdGFsbGVkIGZpbGVzLgorKyAgLXQgRElSRUNUT1JZ ICBpbnN0YWxsIGludG8gRElSRUNUT1JZLgorKyAgLVQgICAgICAgICAgICByZXBvcnQgYW4gZXJy b3IgaWYgRFNURklMRSBpcyBhIGRpcmVjdG9yeS4KKysKKytFbnZpcm9ubWVudCB2YXJpYWJsZXMg b3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29tbWFuZHM6CisrICBDSEdSUFBST0cgQ0hNT0RQUk9HIENI T1dOUFJPRyBDTVBQUk9HIENQUFJPRyBNS0RJUlBST0cgTVZQUk9HCisrICBSTVBST0cgU1RSSVBQ Uk9HCisrIgorKworK3doaWxlIHRlc3QgJCMgLW5lIDA7IGRvCisrICBjYXNlICQxIGluCisrICAg IC1jKSA7OworKworKyAgICAtQykgY29weV9vbl9jaGFuZ2U9dHJ1ZTs7CisrCisrICAgIC1kKSBk aXJfYXJnPXRydWU7OworKworKyAgICAtZykgY2hncnBjbWQ9IiRjaGdycHByb2cgJDIiCisrCXNo aWZ0OzsKKysKKysgICAgLS1oZWxwKSBlY2hvICIkdXNhZ2UiOyBleGl0ICQ/OzsKKysKKysgICAg LW0pIG1vZGU9JDIKKysJY2FzZSAkbW9kZSBpbgorKwkgIConICcqIHwgKicJJyogfCAqJworKycq CSAgfCAqJyonKiB8IConPycqIHwgKidbJyopCisrCSAgICBlY2hvICIkMDogaW52YWxpZCBtb2Rl OiAkbW9kZSIgPiYyCisrCSAgICBleGl0IDE7OworKwllc2FjCisrCXNoaWZ0OzsKKysKKysgICAg LW8pIGNob3duY21kPSIkY2hvd25wcm9nICQyIgorKwlzaGlmdDs7CisrCisrICAgIC1zKSBzdHJp cGNtZD0kc3RyaXBwcm9nOzsKKysKKysgICAgLXQpIGRzdF9hcmc9JDIKKysJc2hpZnQ7OworKwor KyAgICAtVCkgbm9fdGFyZ2V0X2RpcmVjdG9yeT10cnVlOzsKKysKKysgICAgLS12ZXJzaW9uKSBl Y2hvICIkMCAkc2NyaXB0dmVyc2lvbiI7IGV4aXQgJD87OworKworKyAgICAtLSkJc2hpZnQKKysJ YnJlYWs7OworKworKyAgICAtKikJZWNobyAiJDA6IGludmFsaWQgb3B0aW9uOiAkMSIgPiYyCisr CWV4aXQgMTs7CisrCisrICAgICopICBicmVhazs7CisrICBlc2FjCisrICBzaGlmdAorK2RvbmUK KysKKytpZiB0ZXN0ICQjIC1uZSAwICYmIHRlc3QgLXogIiRkaXJfYXJnJGRzdF9hcmciOyB0aGVu CisrICAjIFdoZW4gLWQgaXMgdXNlZCwgYWxsIHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIGRpcmVj dG9yaWVzIHRvIGNyZWF0ZS4KKysgICMgV2hlbiAtdCBpcyB1c2VkLCB0aGUgZGVzdGluYXRpb24g aXMgYWxyZWFkeSBzcGVjaWZpZWQuCisrICAjIE90aGVyd2lzZSwgdGhlIGxhc3QgYXJndW1lbnQg aXMgdGhlIGRlc3RpbmF0aW9uLiAgUmVtb3ZlIGl0IGZyb20gJEAuCisrICBmb3IgYXJnCisrICBk bworKyAgICBpZiB0ZXN0IC1uICIkZHN0X2FyZyI7IHRoZW4KKysgICAgICAjICRAIGlzIG5vdCBl bXB0eTogaXQgY29udGFpbnMgYXQgbGVhc3QgJGFyZy4KKysgICAgICBzZXQgZm5vcmQgIiRAIiAi JGRzdF9hcmciCisrICAgICAgc2hpZnQgIyBmbm9yZAorKyAgICBmaQorKyAgICBzaGlmdCAjIGFy ZworKyAgICBkc3RfYXJnPSRhcmcKKysgIGRvbmUKKytmaQorKworK2lmIHRlc3QgJCMgLWVxIDA7 IHRoZW4KKysgIGlmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgorKyAgICBlY2hvICIkMDogbm8g aW5wdXQgZmlsZSBzcGVjaWZpZWQuIiA+JjIKKysgICAgZXhpdCAxCisrICBmaQorKyAgIyBJdCdz IE9LIHRvIGNhbGwgYGluc3RhbGwtc2ggLWQnIHdpdGhvdXQgYXJndW1lbnQuCisrICAjIFRoaXMg Y2FuIGhhcHBlbiB3aGVuIGNyZWF0aW5nIGNvbmRpdGlvbmFsIGRpcmVjdG9yaWVzLgorKyAgZXhp dCAwCisrZmkKKysKKytpZiB0ZXN0IC16ICIkZGlyX2FyZyI7IHRoZW4KKysgIHRyYXAgJyhleGl0 ICQ/KTsgZXhpdCcgMSAyIDEzIDE1CisrCisrICAjIFNldCB1bWFzayBzbyBhcyBub3QgdG8gY3Jl YXRlIHRlbXBzIHdpdGggdG9vLWdlbmVyb3VzIG1vZGVzLgorKyAgIyBIb3dldmVyLCAnc3RyaXAn IHJlcXVpcmVzIGJvdGggcmVhZCBhbmQgd3JpdGUgYWNjZXNzIHRvIHRlbXBzLgorKyAgY2FzZSAk bW9kZSBpbgorKyAgICAjIE9wdGltaXplIGNvbW1vbiBjYXNlcy4KKysgICAgKjY0NCkgY3BfdW1h c2s9MTMzOzsKKysgICAgKjc1NSkgY3BfdW1hc2s9MjI7OworKworKyAgICAqWzAtN10pCisrICAg ICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgorKwl1X3BsdXNfcnc9CisrICAgICAgZWxz ZQorKwl1X3BsdXNfcnc9JyUgMjAwJworKyAgICAgIGZpCisrICAgICAgY3BfdW1hc2s9YGV4cHIg JygnIDc3NyAtICRtb2RlICUgMTAwMCAnKScgJHVfcGx1c19yd2A7OworKyAgICAqKQorKyAgICAg IGlmIHRlc3QgLXogIiRzdHJpcGNtZCI7IHRoZW4KKysJdV9wbHVzX3J3PQorKyAgICAgIGVsc2UK KysJdV9wbHVzX3J3PSx1K3J3CisrICAgICAgZmkKKysgICAgICBjcF91bWFzaz0kbW9kZSR1X3Bs dXNfcnc7OworKyAgZXNhYworK2ZpCisrCisrZm9yIHNyYworK2RvCisrICAjIFByb3RlY3QgbmFt ZXMgc3RhcnRpbmcgd2l0aCBgLScuCisrICBjYXNlICRzcmMgaW4KKysgICAgLSopIHNyYz0uLyRz cmM7OworKyAgZXNhYworKworKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisrICAgIGRz dD0kc3JjCisrICAgIGRzdGRpcj0kZHN0CisrICAgIHRlc3QgLWQgIiRkc3RkaXIiCisrICAgIGRz dGRpcl9zdGF0dXM9JD8KKysgIGVsc2UKKysKKysgICAgIyBXYWl0aW5nIGZvciB0aGlzIHRvIGJl IGRldGVjdGVkIGJ5IHRoZSAiJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQKKysgICAgIyBt aWdodCBjYXVzZSBkaXJlY3RvcmllcyB0byBiZSBjcmVhdGVkLCB3aGljaCB3b3VsZCBiZSBlc3Bl Y2lhbGx5IGJhZAorKyAgICAjIGlmICRzcmMgKGFuZCB0aHVzICRkc3R0bXApIGNvbnRhaW5zICcq Jy4KKysgICAgaWYgdGVzdCAhIC1mICIkc3JjIiAmJiB0ZXN0ICEgLWQgIiRzcmMiOyB0aGVuCisr ICAgICAgZWNobyAiJDA6ICRzcmMgZG9lcyBub3QgZXhpc3QuIiA+JjIKKysgICAgICBleGl0IDEK KysgICAgZmkKKysKKysgICAgaWYgdGVzdCAteiAiJGRzdF9hcmciOyB0aGVuCisrICAgICAgZWNo byAiJDA6IG5vIGRlc3RpbmF0aW9uIHNwZWNpZmllZC4iID4mMgorKyAgICAgIGV4aXQgMQorKyAg ICBmaQorKworKyAgICBkc3Q9JGRzdF9hcmcKKysgICAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5n IHdpdGggYC0nLgorKyAgICBjYXNlICRkc3QgaW4KKysgICAgICAtKikgZHN0PS4vJGRzdDs7Cisr ICAgIGVzYWMKKysKKysgICAgIyBJZiBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeSwgYXBwZW5k IHRoZSBpbnB1dCBmaWxlbmFtZTsgd29uJ3Qgd29yaworKyAgICAjIGlmIGRvdWJsZSBzbGFzaGVz IGFyZW4ndCBpZ25vcmVkLgorKyAgICBpZiB0ZXN0IC1kICIkZHN0IjsgdGhlbgorKyAgICAgIGlm IHRlc3QgLW4gIiRub190YXJnZXRfZGlyZWN0b3J5IjsgdGhlbgorKwllY2hvICIkMDogJGRzdF9h cmc6IElzIGEgZGlyZWN0b3J5IiA+JjIKKysJZXhpdCAxCisrICAgICAgZmkKKysgICAgICBkc3Rk aXI9JGRzdAorKyAgICAgIGRzdD0kZHN0ZGlyL2BiYXNlbmFtZSAiJHNyYyJgCisrICAgICAgZHN0 ZGlyX3N0YXR1cz0wCisrICAgIGVsc2UKKysgICAgICAjIFByZWZlciBkaXJuYW1lLCBidXQgZmFs bCBiYWNrIG9uIGEgc3Vic3RpdHV0ZSBpZiBkaXJuYW1lIGZhaWxzLgorKyAgICAgIGRzdGRpcj1g CisrCShkaXJuYW1lICIkZHN0IikgMj4vZGV2L251bGwgfHwKKysJZXhwciBYIiRkc3QiIDogJ1hc KC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wp W14vXScgXHwgXAorKwkgICAgIFgiJGRzdCIgOiAnWFwoLy9cKSQnIFx8IFwKKysJICAgICBYIiRk c3QiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKwllY2hvIFgiJGRzdCIgfAorKwkg ICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJCSAgIHMvL1wxLwor KwkJICAgcQorKwkJIH0KKysJCSAvXlhcKFwvXC9cKVteL10uKi97CisrCQkgICBzLy9cMS8KKysJ CSAgIHEKKysJCSB9CisrCQkgL15YXChcL1wvXCkkL3sKKysJCSAgIHMvL1wxLworKwkJICAgcQor KwkJIH0KKysJCSAvXlhcKFwvXCkuKi97CisrCQkgICBzLy9cMS8KKysJCSAgIHEKKysJCSB9Cisr CQkgcy8uKi8uLzsgcScKKysgICAgICBgCisrCisrICAgICAgdGVzdCAtZCAiJGRzdGRpciIKKysg ICAgICBkc3RkaXJfc3RhdHVzPSQ/CisrICAgIGZpCisrICBmaQorKworKyAgb2Jzb2xldGVfbWtk aXJfdXNlZD1mYWxzZQorKworKyAgaWYgdGVzdCAkZHN0ZGlyX3N0YXR1cyAhPSAwOyB0aGVuCisr ICAgIGNhc2UgJHBvc2l4X21rZGlyIGluCisrICAgICAgJycpCisrCSMgQ3JlYXRlIGludGVybWVk aWF0ZSBkaXJzIHVzaW5nIG1vZGUgNzU1IGFzIG1vZGlmaWVkIGJ5IHRoZSB1bWFzay4KKysJIyBU aGlzIGlzIGxpa2UgRnJlZUJTRCAnaW5zdGFsbCcgYXMgb2YgMTk5Ny0xMC0yOC4KKysJdW1hc2s9 YHVtYXNrYAorKwljYXNlICRzdHJpcGNtZC4kdW1hc2sgaW4KKysJICAjIE9wdGltaXplIGNvbW1v biBjYXNlcy4KKysJICAqWzIzNjddWzIzNjddKSBta2Rpcl91bWFzaz0kdW1hc2s7OworKwkgIC4q MFswMl1bMDJdIHwgLlswMl1bMDJdIHwgLlswMl0pIG1rZGlyX3VtYXNrPTIyOzsKKysKKysJICAq WzAtN10pCisrCSAgICBta2Rpcl91bWFzaz1gZXhwciAkdW1hc2sgKyAyMiBcCisrCSAgICAgIC0g JHVtYXNrICUgMTAwICUgNDAgKyAkdW1hc2sgJSAyMCBcCisrCSAgICAgIC0gJHVtYXNrICUgMTAg JSA0ICsgJHVtYXNrICUgMgorKwkgICAgYDs7CisrCSAgKikgbWtkaXJfdW1hc2s9JHVtYXNrLGdv LXc7OworKwllc2FjCisrCisrCSMgV2l0aCAtZCwgY3JlYXRlIHRoZSBuZXcgZGlyZWN0b3J5IHdp dGggdGhlIHVzZXItc3BlY2lmaWVkIG1vZGUuCisrCSMgT3RoZXJ3aXNlLCByZWx5IG9uICRta2Rp cl91bWFzay4KKysJaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCisrCSAgbWtkaXJfbW9kZT0t bSRtb2RlCisrCWVsc2UKKysJICBta2Rpcl9tb2RlPQorKwlmaQorKworKwlwb3NpeF9ta2Rpcj1m YWxzZQorKwljYXNlICR1bWFzayBpbgorKwkgICpbMTIzNTY3XVswLTddWzAtN10pCisrCSAgICAj IFBPU0lYIG1rZGlyIC1wIHNldHMgdSt3eCBiaXRzIHJlZ2FyZGxlc3Mgb2YgdW1hc2ssIHdoaWNo CisrCSAgICAjIGlzIGluY29tcGF0aWJsZSB3aXRoIEZyZWVCU0QgJ2luc3RhbGwnIHdoZW4gKHVt YXNrICYgMzAwKSAhPSAwLgorKwkgICAgOzsKKysJICAqKQorKwkgICAgdG1wZGlyPSR7VE1QRElS LS90bXB9L2lucyRSQU5ET00tJCQKKysJICAgIHRyYXAgJ3JldD0kPzsgcm1kaXIgIiR0bXBkaXIv ZCIgIiR0bXBkaXIiIDI+L2Rldi9udWxsOyBleGl0ICRyZXQnIDAKKysKKysJICAgIGlmICh1bWFz ayAkbWtkaXJfdW1hc2sgJiYKKysJCWV4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAi JHRtcGRpci9kIikgPi9kZXYvbnVsbCAyPiYxCisrCSAgICB0aGVuCisrCSAgICAgIGlmIHRlc3Qg LXogIiRkaXJfYXJnIiB8fCB7CisrCQkgICAjIENoZWNrIGZvciBQT1NJWCBpbmNvbXBhdGliaWxp dGllcyB3aXRoIC1tLgorKwkJICAgIyBIUC1VWCAxMS4yMyBhbmQgSVJJWCA2LjUgbWtkaXIgLW0g LXAgc2V0cyBncm91cC0gb3IKKysJCSAgICMgb3RoZXItd3JpdGVhYmxlIGJpdCBvZiBwYXJlbnQg ZGlyZWN0b3J5IHdoZW4gaXQgc2hvdWxkbid0LgorKwkJICAgIyBGcmVlQlNEIDYuMSBta2RpciAt bSAtcCBzZXRzIG1vZGUgb2YgZXhpc3RpbmcgZGlyZWN0b3J5LgorKwkJICAgbHNfbGRfdG1wZGly PWBscyAtbGQgIiR0bXBkaXIiYAorKwkJICAgY2FzZSAkbHNfbGRfdG1wZGlyIGluCisrCQkgICAg IGQ/Pz8/LT9yLSopIGRpZmZlcmVudF9tb2RlPTcwMDs7CisrCQkgICAgIGQ/Pz8/LT8tLSopIGRp ZmZlcmVudF9tb2RlPTc1NTs7CisrCQkgICAgICopIGZhbHNlOzsKKysJCSAgIGVzYWMgJiYKKysJ CSAgICRta2RpcnByb2cgLW0kZGlmZmVyZW50X21vZGUgLXAgLS0gIiR0bXBkaXIiICYmIHsKKysJ CSAgICAgbHNfbGRfdG1wZGlyXzE9YGxzIC1sZCAiJHRtcGRpciJgCisrCQkgICAgIHRlc3QgIiRs c19sZF90bXBkaXIiID0gIiRsc19sZF90bXBkaXJfMSIKKysJCSAgIH0KKysJCSB9CisrCSAgICAg IHRoZW4gcG9zaXhfbWtkaXI9OgorKwkgICAgICBmaQorKwkgICAgICBybWRpciAiJHRtcGRpci9k IiAiJHRtcGRpciIKKysJICAgIGVsc2UKKysJICAgICAgIyBSZW1vdmUgYW55IGRpcnMgbGVmdCBi ZWhpbmQgYnkgYW5jaWVudCBta2RpciBpbXBsZW1lbnRhdGlvbnMuCisrCSAgICAgIHJtZGlyIC4v JG1rZGlyX21vZGUgLi8tcCAuLy0tIDI+L2Rldi9udWxsCisrCSAgICBmaQorKwkgICAgdHJhcCAn JyAwOzsKKysJZXNhYzs7CisrICAgIGVzYWMKKysKKysgICAgaWYKKysgICAgICAkcG9zaXhfbWtk aXIgJiYgKAorKwl1bWFzayAkbWtkaXJfdW1hc2sgJiYKKysJJGRvaXRfZXhlYyAkbWtkaXJwcm9n ICRta2Rpcl9tb2RlIC1wIC0tICIkZHN0ZGlyIgorKyAgICAgICkKKysgICAgdGhlbiA6CisrICAg IGVsc2UKKysKKysgICAgICAjIFRoZSB1bWFzayBpcyByaWRpY3Vsb3VzLCBvciBta2RpciBkb2Vz IG5vdCBjb25mb3JtIHRvIFBPU0lYLAorKyAgICAgICMgb3IgaXQgZmFpbGVkIHBvc3NpYmx5IGR1 ZSB0byBhIHJhY2UgY29uZGl0aW9uLiAgQ3JlYXRlIHRoZQorKyAgICAgICMgZGlyZWN0b3J5IHRo ZSBzbG93IHdheSwgc3RlcCBieSBzdGVwLCBjaGVja2luZyBmb3IgcmFjZXMgYXMgd2UgZ28uCisr CisrICAgICAgY2FzZSAkZHN0ZGlyIGluCisrCS8qKSBwcmVmaXg9Jy8nOzsKKysJLSopIHByZWZp eD0nLi8nOzsKKysJKikgIHByZWZpeD0nJzs7CisrICAgICAgZXNhYworKworKyAgICAgIGV2YWwg IiRpbml0aWFsaXplX3Bvc2l4X2dsb2IiCisrCisrICAgICAgb0lGUz0kSUZTCisrICAgICAgSUZT PS8KKysgICAgICAkcG9zaXhfZ2xvYiBzZXQgLWYKKysgICAgICBzZXQgZm5vcmQgJGRzdGRpcgor KyAgICAgIHNoaWZ0CisrICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmCisrICAgICAgSUZTPSRvSUZT CisrCisrICAgICAgcHJlZml4ZXM9CisrCisrICAgICAgZm9yIGQKKysgICAgICBkbworKwl0ZXN0 IC16ICIkZCIgJiYgY29udGludWUKKysKKysJcHJlZml4PSRwcmVmaXgkZAorKwlpZiB0ZXN0IC1k ICIkcHJlZml4IjsgdGhlbgorKwkgIHByZWZpeGVzPQorKwllbHNlCisrCSAgaWYgJHBvc2l4X21r ZGlyOyB0aGVuCisrCSAgICAodW1hc2s9JG1rZGlyX3VtYXNrICYmCisrCSAgICAgJGRvaXRfZXhl YyAkbWtkaXJwcm9nICRta2Rpcl9tb2RlIC1wIC0tICIkZHN0ZGlyIikgJiYgYnJlYWsKKysJICAg ICMgRG9uJ3QgZmFpbCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJlbnRseS4K KysJICAgIHRlc3QgLWQgIiRwcmVmaXgiIHx8IGV4aXQgMQorKwkgIGVsc2UKKysJICAgIGNhc2Ug JHByZWZpeCBpbgorKwkgICAgICAqXCcqKSBxcHJlZml4PWBlY2hvICIkcHJlZml4IiB8IHNlZCAi cy8nLydcXFxcXFxcXCcnL2ciYDs7CisrCSAgICAgICopIHFwcmVmaXg9JHByZWZpeDs7CisrCSAg ICBlc2FjCisrCSAgICBwcmVmaXhlcz0iJHByZWZpeGVzICckcXByZWZpeCciCisrCSAgZmkKKysJ ZmkKKysJcHJlZml4PSRwcmVmaXgvCisrICAgICAgZG9uZQorKworKyAgICAgIGlmIHRlc3QgLW4g IiRwcmVmaXhlcyI7IHRoZW4KKysJIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1 bm5pbmcgY29uY3VycmVudGx5LgorKwkodW1hc2sgJG1rZGlyX3VtYXNrICYmCisrCSBldmFsICJc JGRvaXRfZXhlYyBcJG1rZGlycHJvZyAkcHJlZml4ZXMiKSB8fAorKwkgIHRlc3QgLWQgIiRkc3Rk aXIiIHx8IGV4aXQgMQorKwlvYnNvbGV0ZV9ta2Rpcl91c2VkPXRydWUKKysgICAgICBmaQorKyAg ICBmaQorKyAgZmkKKysKKysgIGlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgorKyAgICB7IHRl c3QgLXogIiRjaG93bmNtZCIgfHwgJGRvaXQgJGNob3duY21kICIkZHN0IjsgfSAmJgorKyAgICB7 IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0IjsgfSAmJgorKyAg ICB7IHRlc3QgIiRvYnNvbGV0ZV9ta2Rpcl91c2VkJGNob3duY21kJGNoZ3JwY21kIiA9IGZhbHNl IHx8CisrICAgICAgdGVzdCAteiAiJGNobW9kY21kIiB8fCAkZG9pdCAkY2htb2RjbWQgJG1vZGUg IiRkc3QiOyB9IHx8IGV4aXQgMQorKyAgZWxzZQorKworKyAgICAjIE1ha2UgYSBjb3VwbGUgb2Yg dGVtcCBmaWxlIG5hbWVzIGluIHRoZSBwcm9wZXIgZGlyZWN0b3J5LgorKyAgICBkc3R0bXA9JGRz dGRpci9faW5zdC4kJF8KKysgICAgcm10bXA9JGRzdGRpci9fcm0uJCRfCisrCisrICAgICMgVHJh cCB0byBjbGVhbiB1cCB0aG9zZSB0ZW1wIGZpbGVzIGF0IGV4aXQuCisrICAgIHRyYXAgJ3JldD0k Pzsgcm0gLWYgIiRkc3R0bXAiICIkcm10bXAiICYmIGV4aXQgJHJldCcgMAorKworKyAgICAjIENv cHkgdGhlIGZpbGUgbmFtZSB0byB0aGUgdGVtcCBuYW1lLgorKyAgICAodW1hc2sgJGNwX3VtYXNr ICYmICRkb2l0X2V4ZWMgJGNwcHJvZyAiJHNyYyIgIiRkc3R0bXAiKSAmJgorKworKyAgICAjIGFu ZCBzZXQgYW55IG9wdGlvbnM7IGRvIGNobW9kIGxhc3QgdG8gcHJlc2VydmUgc2V0dWlkIGJpdHMu CisrICAgICMKKysgICAgIyBJZiBhbnkgb2YgdGhlc2UgZmFpbCwgd2UgYWJvcnQgdGhlIHdob2xl IHRoaW5nLiAgSWYgd2Ugd2FudCB0bworKyAgICAjIGlnbm9yZSBlcnJvcnMgZnJvbSBhbnkgb2Yg dGhlc2UsIGp1c3QgbWFrZSBzdXJlIG5vdCB0byBpZ25vcmUKKysgICAgIyBlcnJvcnMgZnJvbSB0 aGUgYWJvdmUgIiRkb2l0ICRjcHByb2cgJHNyYyAkZHN0dG1wIiBjb21tYW5kLgorKyAgICAjCisr ICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRkc3R0bXAiOyB9 ICYmCisrICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQgIiRkc3R0 bXAiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJHN0cmlwY21kIiB8fCAkZG9pdCAkc3RyaXBjbWQg IiRkc3R0bXAiOyB9ICYmCisrICAgIHsgdGVzdCAteiAiJGNobW9kY21kIiB8fCAkZG9pdCAkY2ht b2RjbWQgJG1vZGUgIiRkc3R0bXAiOyB9ICYmCisrCisrICAgICMgSWYgLUMsIGRvbid0IGJvdGhl ciB0byBjb3B5IGlmIGl0IHdvdWxkbid0IGNoYW5nZSB0aGUgZmlsZS4KKysgICAgaWYgJGNvcHlf b25fY2hhbmdlICYmCisrICAgICAgIG9sZD1gTENfQUxMPUMgbHMgLWRsTCAiJGRzdCIJMj4vZGV2 L251bGxgICYmCisrICAgICAgIG5ldz1gTENfQUxMPUMgbHMgLWRsTCAiJGRzdHRtcCIJMj4vZGV2 L251bGxgICYmCisrCisrICAgICAgIGV2YWwgIiRpbml0aWFsaXplX3Bvc2l4X2dsb2IiICYmCisr ICAgICAgICRwb3NpeF9nbG9iIHNldCAtZiAmJgorKyAgICAgICBzZXQgWCAkb2xkICYmIG9sZD06 JDI6JDQ6JDU6JDYgJiYKKysgICAgICAgc2V0IFggJG5ldyAmJiBuZXc9OiQyOiQ0OiQ1OiQ2ICYm CisrICAgICAgICRwb3NpeF9nbG9iIHNldCArZiAmJgorKworKyAgICAgICB0ZXN0ICIkb2xkIiA9 ICIkbmV3IiAmJgorKyAgICAgICAkY21wcHJvZyAiJGRzdCIgIiRkc3R0bXAiID4vZGV2L251bGwg Mj4mMQorKyAgICB0aGVuCisrICAgICAgcm0gLWYgIiRkc3R0bXAiCisrICAgIGVsc2UKKysgICAg ICAjIFJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KKysgICAgICAkZG9p dCAkbXZjbWQgLWYgIiRkc3R0bXAiICIkZHN0IiAyPi9kZXYvbnVsbCB8fAorKworKyAgICAgICMg VGhlIHJlbmFtZSBmYWlsZWQsIHBlcmhhcHMgYmVjYXVzZSBtdiBjYW4ndCByZW5hbWUgc29tZXRo aW5nIGVsc2UKKysgICAgICAjIHRvIGl0c2VsZiwgb3IgcGVyaGFwcyBiZWNhdXNlIG12IGlzIHNv IGFuY2llbnQgdGhhdCBpdCBkb2VzIG5vdAorKyAgICAgICMgc3VwcG9ydCAtZi4KKysgICAgICB7 CisrCSMgTm93IHJlbW92ZSBvciBtb3ZlIGFzaWRlIGFueSBvbGQgZmlsZSBhdCBkZXN0aW5hdGlv biBsb2NhdGlvbi4KKysJIyBXZSB0cnkgdGhpcyB0d28gd2F5cyBzaW5jZSBybSBjYW4ndCB1bmxp bmsgaXRzZWxmIG9uIHNvbWUKKysJIyBzeXN0ZW1zIGFuZCB0aGUgZGVzdGluYXRpb24gZmlsZSBt aWdodCBiZSBidXN5IGZvciBvdGhlcgorKwkjIHJlYXNvbnMuICBJbiB0aGlzIGNhc2UsIHRoZSBm aW5hbCBjbGVhbnVwIG1pZ2h0IGZhaWwgYnV0IHRoZSBuZXcKKysJIyBmaWxlIHNob3VsZCBzdGls bCBpbnN0YWxsIHN1Y2Nlc3NmdWxseS4KKysJeworKwkgIHRlc3QgISAtZiAiJGRzdCIgfHwKKysJ ICAkZG9pdCAkcm1jbWQgLWYgIiRkc3QiIDI+L2Rldi9udWxsIHx8CisrCSAgeyAkZG9pdCAkbXZj bWQgLWYgIiRkc3QiICIkcm10bXAiIDI+L2Rldi9udWxsICYmCisrCSAgICB7ICRkb2l0ICRybWNt ZCAtZiAiJHJtdG1wIiAyPi9kZXYvbnVsbDsgOjsgfQorKwkgIH0gfHwKKysJICB7IGVjaG8gIiQw OiBjYW5ub3QgdW5saW5rIG9yIHJlbmFtZSAkZHN0IiA+JjIKKysJICAgIChleGl0IDEpOyBleGl0 IDEKKysJICB9CisrCX0gJiYKKysKKysJIyBOb3cgcmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFs IGRlc3RpbmF0aW9uLgorKwkkZG9pdCAkbXZjbWQgIiRkc3R0bXAiICIkZHN0IgorKyAgICAgIH0K KysgICAgZmkgfHwgZXhpdCAxCisrCisrICAgIHRyYXAgJycgMAorKyAgZmkKKytkb25lCisrCisr IyBMb2NhbCB2YXJpYWJsZXM6CisrIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3Mg J3RpbWUtc3RhbXApCisrIyB0aW1lLXN0YW1wLXN0YXJ0OiAic2NyaXB0dmVyc2lvbj0iCisrIyB0 aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKKysjIHRpbWUtc3RhbXAtdGlt ZS16b25lOiAiVVRDIgorKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgorKyMgRW5kOgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9saWJ0b29sLm00IHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWcvbGlidG9vbC5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9saWJ0 b29sLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00CTIwMTAtMDEtMjMgMTQ6NDQ6NDQuMDAwMDAwMDAw ICswMTAwCitAQCAtMCwwICsxLDczNjAgQEAKKysjIGxpYnRvb2wubTQgLSBDb25maWd1cmUgbGli dG9vbCBmb3IgdGhlIGhvc3Qgc3lzdGVtLiAtKi1BdXRvY29uZi0qLQorKyMKKysjICAgQ29weXJp Z2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAy MDA1LAorKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrIyAgIFdyaXR0ZW4gYnkgR29yZG9uIE1hdHppZ2tlaXQsIDE5OTYK KysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlz dHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFz IHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysKKyttNF9kZWZpbmUoW19MVF9DT1BZSU5HXSwg W2RubAorKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAw OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjICAgV3JpdHRlbiBieSBHb3Jkb24g TWF0emlna2VpdCwgMTk5NgorKyMKKysjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRv b2wuCisrIworKyMgR05VIExpYnRvb2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisrIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKysjIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIEFzIGEgc3BlY2lhbCBl eGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorKyMgaWYgeW91IGRp c3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAor KyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUg dW5kZXIgdGhlCisrIyBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRo ZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysjCisrIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKysjIGFsb25nIHdpdGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5H LiAgSWYgbm90LCBhIGNvcHkKKysjIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgorKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0 LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisrXSkKKysKKysjIHNl cmlhbCA1NiBMVF9JTklUCisrCisrCisrIyBMVF9QUkVSRVEoVkVSU0lPTikKKysjIC0tLS0tLS0t LS0tLS0tLS0tLQorKyMgQ29tcGxhaW4gYW5kIGV4aXQgaWYgdGhpcyBsaWJ0b29sIHZlcnNpb24g aXMgbGVzcyB0aGF0IFZFUlNJT04uCisrbTRfZGVmdW4oW0xUX1BSRVJFUV0sCisrW200X2lmKG00 X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFtMVF9QQUNLQUdFX1ZFUlNJT05dKSwgWyQxXSksIC0x LAorKyAgICAgICBbbTRfZGVmYXVsdChbJDNdLAorKwkJICAgW200X2ZhdGFsKFtMaWJ0b29sIHZl cnNpb24gJDEgb3IgaGlnaGVyIGlzIHJlcXVpcmVkXSwKKysJCSAgICAgICAgICAgICA2MyldKV0s CisrICAgICAgIFskMl0pXSkKKysKKysKKysjIF9MVF9DSEVDS19CVUlMRERJUgorKyMgLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBDb21wbGFpbiBpZiB0aGUgYWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5 IG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJzCisrbTRfZGVmdW4oW19MVF9DSEVDS19C VUlMRERJUl0sCisrW2Nhc2UgYHB3ZGAgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBBQ19NU0df V0FSTihbTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3aGl0ZXNwYWNlIGluIGBwd2Rg XSkgOzsKKytlc2FjCisrXSkKKysKKysKKysjIExUX0lOSVQoW09QVElPTlNdKQorKyMgLS0tLS0t LS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0lOSVRdLAorK1tBQ19QUkVSRVEoWzIuNThdKWRu bCBXZSB1c2UgQUNfSU5DTFVERVNfREVGQVVMVAorK0FDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10p ZG5sCisrQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAorK0FDX0JFRk9SRShbJDBdLCBb TFRETF9JTklUXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfQlVJTERESVJdKWRubAorKwor K2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNoIHVuZXhwYW5kZWQgTFRfIG1hY3JvcyBieSBkZWZh dWx0OgorK200X3BhdHRlcm5fZm9yYmlkKFteXz9MVF9bQS1aX10rJF0pZG5sCisrbTRfcGF0dGVy bl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1d8TFRfTVVMVElf TU9EVUxFKSRdKWRubAorK2RubCBhY2xvY2FsIGRvZXNuJ3QgcHVsbCBsdG9wdGlvbnMubTQsIGx0 c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAorK2RubCB1bmxlc3Mgd2UgcmVxdWlyZSBhbiBBQ19E RUZVTmVkIG1hY3JvOgorK0FDX1JFUVVJUkUoW0xUT1BUSU9OU19WRVJTSU9OXSlkbmwKKytBQ19S RVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRubAorK0FDX1JFUVVJUkUoW0xUVkVSU0lPTl9WRVJT SU9OXSlkbmwKKytBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJT05dKWRubAorK200X3JlcXVp cmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCisrCisrZG5sIFBhcnNlIE9QVElPTlMKKytfTFRfU0VU X09QVElPTlMoWyQwXSwgWyQxXSkKKysKKysjIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBs aWJ0b29sIHdoZW4gbmVlZGVkCisrTElCVE9PTF9ERVBTPSIkbHRtYWluIgorKworKyMgQWx3YXlz IHVzZSBvdXIgb3duIGxpYnRvb2wuCisrTElCVE9PTD0nJChTSEVMTCkgJCh0b3BfYnVpbGRkaXIp L2xpYnRvb2wnCisrQUNfU1VCU1QoTElCVE9PTClkbmwKKysKKytfTFRfU0VUVVAKKysKKysjIE9u bHkgZXhwYW5kIG9uY2U6CisrbTRfZGVmaW5lKFtMVF9JTklUXSkKKytdKSMgTFRfSU5JVAorKwor KyMgT2xkIG5hbWVzOgorK0FVX0FMSUFTKFtBQ19QUk9HX0xJQlRPT0xdLCBbTFRfSU5JVF0pCisr QVVfQUxJQVMoW0FNX1BST0dfTElCVE9PTF0sIFtMVF9JTklUXSkKKytkbmwgYWNsb2NhbC0xLjQg YmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19QUk9HX0xJQlRPT0xd LCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX1BST0dfTElCVE9PTF0sIFtdKQorKworKworKyMgX0xU X0NDX0JBU0VOQU1FKENDKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2FsY3VsYXRlIGNj X2Jhc2VuYW1lLiAgU2tpcCBrbm93biBjb21waWxlciB3cmFwcGVycyBhbmQgY3Jvc3MtcHJlZml4 LgorK200X2RlZnVuKFtfTFRfQ0NfQkFTRU5BTUVdLAorK1tmb3IgY2NfdGVtcCBpbiAkMSIiOyBk bworKyAgY2FzZSAkY2NfdGVtcCBpbgorKyAgICBjb21waWxlIHwgKltbXFwvXV1jb21waWxlIHwg Y2NhY2hlIHwgKltbXFwvXV1jY2FjaGUgKSA7OworKyAgICBkaXN0Y2MgfCAqW1tcXC9dXWRpc3Rj YyB8IHB1cmlmeSB8ICpbW1xcL11dcHVyaWZ5ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBi cmVhazs7CisrICBlc2FjCisrZG9uZQorK2NjX2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8 ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorK10pCisrCisrCisr IyBfTFRfRklMRVVUSUxTX0RFRkFVTFRTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBJ dCBpcyBva2F5IHRvIHVzZSB0aGVzZSBmaWxlIGNvbW1hbmRzIGFuZCBhc3N1bWUgdGhleSBoYXZl IGJlZW4gc2V0CisrIyBzZW5zaWJseSBhZnRlciBgbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19E RUZBVUxUU10pJy4KKyttNF9kZWZ1bihbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10sCisrWzogJHtD UD0iY3AgLWYifQorKzogJHtNVj0ibXYgLWYifQorKzogJHtSTT0icm0gLWYifQorK10pIyBfTFRf RklMRVVUSUxTX0RFRkFVTFRTCisrCisrCisrIyBfTFRfU0VUVVAKKysjIC0tLS0tLS0tLQorK200 X2RlZnVuKFtfTFRfU0VUVVBdLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5s CisrQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKKytfTFRfREVDTChbXSwgW2hv c3RfYWxpYXNdLCBbMF0sIFtUaGUgaG9zdCBzeXN0ZW1dKWRubAorK19MVF9ERUNMKFtdLCBbaG9z dF0sIFswXSlkbmwKKytfTFRfREVDTChbXSwgW2hvc3Rfb3NdLCBbMF0pZG5sCisrZG5sCisrX0xU X0RFQ0woW10sIFtidWlsZF9hbGlhc10sIFswXSwgW1RoZSBidWlsZCBzeXN0ZW1dKWRubAorK19M VF9ERUNMKFtdLCBbYnVpbGRdLCBbMF0pZG5sCisrX0xUX0RFQ0woW10sIFtidWlsZF9vc10sIFsw XSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKytBQ19SRVFVSVJFKFtM VF9QQVRIX0xEXSlkbmwKKytBQ19SRVFVSVJFKFtMVF9QQVRIX05NXSlkbmwKKytkbmwKKytBQ19S RVFVSVJFKFtBQ19QUk9HX0xOX1NdKWRubAorK3Rlc3QgLXogIiRMTl9TIiAmJiBMTl9TPSJsbiAt cyIKKytfTFRfREVDTChbXSwgW0xOX1NdLCBbMV0sIFtXaGV0aGVyIHdlIG5lZWQgc29mdCBvciBo YXJkIGxpbmtzXSlkbmwKKytkbmwKKytBQ19SRVFVSVJFKFtMVF9DTURfTUFYX0xFTl0pZG5sCisr X0xUX0RFQ0woW29iamV4dF0sIFthY19vYmpleHRdLCBbMF0sIFtPYmplY3QgZmlsZSBzdWZmaXgg KG5vcm1hbGx5ICJvIildKWRubAorK19MVF9ERUNMKFtdLCBbZXhlZXh0XSwgWzBdLCBbRXhlY3V0 YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpXSlkbmwKKytkbmwKKyttNF9yZXF1aXJlKFtf TFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hFTExf RkVBVFVSRVNdKWRubAorK200X3JlcXVpcmUoW19MVF9DTURfUkVMT0FEXSlkbmwKKyttNF9yZXF1 aXJlKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX09M RF9BUkNISVZFXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSlkbmwK KysKKytfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCisrIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcg b24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgorKyMgY29tbWFuZHMg dGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElOSVQuCisraWYgdGVzdCAtbiAi XCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKKytm aQorK10pCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICBzZXRv cHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisrX0xUX0NIRUNLX09CSkRJUgorKworK200X3JlcXVp cmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAorK19MVF9QUk9HX0VDSE9fQkFDS1NMQVNICisrCisr Y2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgIyBBSVggc29tZXRpbWVzIGhhcyBwcm9ibGVt cyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCisrICAjIHJlYXNvbiwg aWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJv YmxlbXMKKysgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KKysgIGlmIHRlc3QgIlgke0NP TExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAgICBDT0xMRUNUX05BTUVTPQorKyAg ICBleHBvcnQgQ09MTEVDVF9OQU1FUworKyAgZmkKKysgIDs7CisrZXNhYworKworKyMgU2VkIHN1 YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNo aWZpZXMKKysjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91 YmxlLXF1b3RlZCBzdHJpbmdzLgorK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtbImAkXFxdXVwpL1xc XDEvZycKKysKKysjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVm ZXJlbmNlcy4KKytkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbWyJgXFxdXVwpL1xcXDEvZycKKysK KysjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hl bGwgdmFyaWFibGUgaW4gYQorKyMgZG91YmxlX3F1b3RlX3N1YnN0J2VkIHN0cmluZy4KKytkZWxh eV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJworKworKyMgU2VkIHN1 YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaW5nbGUgcXVvdGUu CisrZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKKysK KysjIFNlZCBzdWJzdGl0dXRpb24gdG8gYXZvaWQgYWNjaWRlbnRhbCBnbG9iYmluZyBpbiBldmFs ZWQgZXhwcmVzc2lvbnMKKytub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKysKKysjIEdsb2Jh bCB2YXJpYWJsZXM6Cisrb2ZpbGU9bGlidG9vbAorK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCisrCisr IyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlu a2luZyAoZXhjZXB0IE1TVkMsCisrIyB3aGljaCBuZWVkcyAnLmxpYicpLgorK2xpYmV4dD1hCisr Cisrd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9nX2dudV9sZCIKKysKKytvbGRfQ0M9IiRDQyIKKytv bGRfQ0ZMQUdTPSIkQ0ZMQUdTIgorKworKyMgU2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMg dmFyaWFibGVzCisrdGVzdCAteiAiJENDIiAmJiBDQz1jYworK3Rlc3QgLXogIiRMVENDIiAmJiBM VENDPSRDQworK3Rlc3QgLXogIiRMVENGTEFHUyIgJiYgTFRDRkxBR1M9JENGTEFHUworK3Rlc3Qg LXogIiRMRCIgJiYgTEQ9bGQKKyt0ZXN0IC16ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwor KworK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysjIE9ubHkgcGVyZm9ybSB0aGUg Y2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKKyt0ZXN0IC16 ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9ZmlsZQorK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0 aG9kIGluCisrZmlsZV9tYWdpYyopCisrICBpZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRN QUdJQ19DTUQnOyB0aGVuCisrICAgIF9MVF9QQVRIX01BR0lDCisrICBmaQorKyAgOzsKKytlc2Fj CisrCisrIyBVc2UgQyBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9v bCBzY3JpcHQKKytMVF9TVVBQT1JURURfVEFHKFtDQ10pCisrX0xUX0xBTkdfQ19DT05GSUcKKytf TFRfTEFOR19ERUZBVUxUX0NPTkZJRworK19MVF9DT05GSUdfQ09NTUFORFMKKytdKSMgX0xUX1NF VFVQCisrCisrCisrIyBfTFRfUFJPR19MVE1BSU4KKysjIC0tLS0tLS0tLS0tLS0tLQorKyMgTm90 ZSB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgYm90aCBmcm9tIGBjb25maWd1cmUnLCBhbmQgYGNv bmZpZy5zdGF0dXMnCisrIyBub3cgdGhhdCB3ZSB1c2UgQUNfQ09ORklHX0NPTU1BTkRTIHRvIGdl bmVyYXRlIGxpYnRvb2wuICBOb3RhYmx5LAorKyMgYGNvbmZpZy5zdGF0dXMnIGhhcyBubyB2YWx1 ZSBmb3IgYWNfYXV4X2RpciB1bmxlc3Mgd2UgYXJlIHVzaW5nIEF1dG9tYWtlLAorKyMgc28gd2Ug cGFzcyBhIGNvcHkgYWxvbmcgdG8gbWFrZSBzdXJlIGl0IGhhcyBhIHNlbnNpYmxlIHZhbHVlIGFu eXdheS4KKyttNF9kZWZ1bihbX0xUX1BST0dfTFRNQUlOXSwKKytbbTRfaWZkZWYoW0FDX1JFUVVJ UkVfQVVYX0ZJTEVdLCBbQUNfUkVRVUlSRV9BVVhfRklMRShbbHRtYWluLnNoXSldKWRubAorK19M VF9DT05GSUdfTElCVE9PTF9JTklUKFthY19hdXhfZGlyPSckYWNfYXV4X2RpciddKQorK2x0bWFp bj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgorK10pIyBfTFRfUFJPR19MVE1BSU4KKysKKysKKysj IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgQWNjdW11bGF0 ZSBjb2RlIGZvciBjcmVhdGluZyBsaWJ0b29sLiAjIworKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIFNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIGEgZnVs bCBsaWJ0b29sIHNjcmlwdCBpbmNsdWRpbmcgYWRkaXRpb25hbAorKyMgdGFncywgd2UgYWNjdW11 bGF0ZSB0aGUgY2h1bmtzIG9mIGNvZGUgdG8gc2VuZCB0byBBQ19DT05GSUdfQ09NTUFORFMKKysj IGluIG1hY3JvcyBhbmQgdGhlbiBtYWtlIGEgc2luZ2xlIGNhbGwgYXQgdGhlIGVuZCB1c2luZyB0 aGUgYGxpYnRvb2wnCisrIyBsYWJlbC4KKysKKysKKysjIF9MVF9DT05GSUdfTElCVE9PTF9JTklU KFtJTklULUNPTU1BTkRTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysjIFJlZ2lzdGVyIElOSVQtQ09NTUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJ R19DT01NQU5EUyBsYXRlci4KKyttNF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF9JTklUXSwK KytbbTRfaWZ2YWwoWyQxXSwKKysgICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJU T09MX0lOSVRdLAorKyAgICAgICAgICAgICAgICAgICAgIFskMQorK10pXSldKQorKworKyMgSW5p dGlhbGl6ZS4KKyttNF9kZWZpbmUoW19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSkKKysKKysKKysj IF9MVF9DT05GSUdfTElCVE9PTChbQ09NTUFORFNdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBSZWdpc3RlciBDT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklH X0NPTU1BTkRTIGxhdGVyLgorK200X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MXSwKKytbbTRf aWZ2YWwoWyQxXSwKKysgICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0NP TU1BTkRTXSwKKysgICAgICAgICAgICAgICAgICAgICBbJDEKKytdKV0pXSkKKysKKysjIEluaXRp YWxpemUuCisrbTRfZGVmaW5lKFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdKQorKworKwor KyMgX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTKFtDT01NQU5EU10sIFtJTklUX0NPTU1BTkRTXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrbTRfZGVmdW4oW19MVF9DT05GSUdfU0FWRV9DT01NQU5EU10sCisrW19MVF9DT05GSUdfTElC VE9PTChbJDFdKQorK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFskMl0pCisrXSkKKysKKysKKysj IF9MVF9GT1JNQVRfQ09NTUVOVChbQ09NTUVOVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgQWRkIGxlYWRpbmcgY29tbWVudCBtYXJrcyB0byB0aGUgc3RhcnQgb2YgZWFj aCBsaW5lLCBhbmQgYSB0cmFpbGluZworKyMgZnVsbC1zdG9wIHRvIHRoZSB3aG9sZSBjb21tZW50 IGlmIG9uZSBpcyBub3QgcHJlc2VudCBhbHJlYWR5LgorK200X2RlZmluZShbX0xUX0ZPUk1BVF9D T01NRU5UXSwKKytbbTRfaWZ2YWwoWyQxXSwgWworK200X2JwYXRzdWJzdChbbTRfYnBhdHN1YnN0 KFskMV0sIFteICpdLCBbIyBdKV0sCisrICAgICAgICAgICAgICBbWydgJFxdXSwgW1xcXCZdKV1t NF9ibWF0Y2goWyQxXSwgW1shPy5dJF0sIFtdLCBbLl0pCisrKV0pCisrCisrCisrCisrIyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrIyMgRklYTUU6IEVsaW1pbmF0ZSBWQVJOQU1FICMj CisrIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisrCisrCisrIyBfTFRfREVDTChbQ09O RklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dLCBbSVMtVEFHR0VEP10pCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrIyBDT05GSUdOQU1FIGlzIHRoZSBuYW1lIGdpdmVuIHRvIHRoZSB2YWx1 ZSBpbiB0aGUgbGlidG9vbCBzY3JpcHQuCisrIyBWQVJOQU1FIGlzIHRoZSAoYmFzZSkgbmFtZSB1 c2VkIGluIHRoZSBjb25maWd1cmUgc2NyaXB0LgorKyMgVkFMVUUgbWF5IGJlIDAsIDEgb3IgMiBm b3IgYSBjb21wdXRlZCBxdW90ZSBlc2NhcGVkIHZhbHVlIGJhc2VkIG9uCisrIyBWQVJOQU1FLiAg QW55IG90aGVyIHZhbHVlIHdpbGwgYmUgdXNlZCBkaXJlY3RseS4KKyttNF9kZWZpbmUoW19MVF9E RUNMXSwKKytbbHRfaWZfYXBwZW5kX3VuaXEoW2x0X2RlY2xfdmFybmFtZXNdLCBbJDJdLCBbLCBd LAorKyAgICBbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbbGlidG9v bF9uYW1lXSwKKysJW200X2lmdmFsKFskMV0sIFskMV0sIFskMl0pXSkKKysgICAgbHRfZGljdF9h ZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbdmFsdWVdLCBbJDNdKQorKyAgICBtNF9p ZnZhbChbJDRdLAorKwlbbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBb ZGVzY3JpcHRpb25dLCBbJDRdKV0pCisrICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9k aWN0XSwgWyQyXSwKKysJW3RhZ2dlZD9dLCBbbTRfaWZ2YWwoWyQ1XSwgW3llc10sIFtub10pXSld KQorK10pCisrCisrCisrIyBfTFRfVEFHREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVF LCBbREVTQ1JJUFRJT05dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9UQUdERUNMXSwgW19MVF9ERUNM KFskMV0sIFskMl0sIFskM10sIFskNF0sIFt5ZXNdKV0pCisrCisrCisrIyBsdF9kZWNsX3RhZ192 YXJuYW1lcyhbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbbHRfZGVjbF90YWdf dmFybmFtZXNdLAorK1tfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbeWVzXSwgJEApXSkKKysK KysKKysjIF9sdF9kZWNsX2ZpbHRlcihTVUJLRVksIFZBTFVFLCBbU0VQQVJBVE9SXSwgW1ZBUk5B TUUxLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfbHRfZGVjbF9maWx0ZXJdLAorK1ttNF9jYXNlKFsk I10sCisrICBbMF0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkI10pXSwKKysg IFsxXSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKKysgIFsy XSwgW2x0X2RpY3RfZmlsdGVyKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbXSwgbHRfZGVj bF92YXJuYW1lcyldLAorKyAgWzNdLCBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sIFsk MV0sIFskMl0sIFskM10sIGx0X2RlY2xfdmFybmFtZXMpXSwKKysgIFtsdF9kaWN0X2ZpbHRlcihb bHRfZGVjbF9kaWN0XSwgJEApXSlbXWRubAorK10pCisrCisrCisrIyBsdF9kZWNsX3F1b3RlX3Zh cm5hbWVzKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfcXVv dGVfdmFybmFtZXNdLAorK1tfbHRfZGVjbF9maWx0ZXIoW3ZhbHVlXSwgWzFdLCAkQCldKQorKwor KworKyMgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyttNF9kZWZpbmUoW2x0X2RlY2xfZHF1b3RlX3Zhcm5hbWVzXSwKKytbX2x0X2RlY2xfZmlsdGVy KFt2YWx1ZV0sIFsyXSwgJEApXSkKKysKKysKKysjIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFtT RVBBUkFUT1JdLCBbVkFSTkFNRTEuLi5dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kZWNsX3Zhcm5hbWVzX3Rh Z2dlZF0sCisrW200X2Fzc2VydChbJCMgPD0gMl0pZG5sCisrXyQwKG00X3F1b3RlKG00X2RlZmF1 bHQoWyQxXSwgW1ssIF1dKSksCisrICAgIG00X2lmdmFsKFskMl0sIFtbJDJdXSwgW200X2RxdW90 ZShsdF9kZWNsX3RhZ192YXJuYW1lcyldKSwKKysgICAgbTRfc3BsaXQobTRfbm9ybWFsaXplKG00 X3F1b3RlKF9MVF9UQUdTKSksIFsgXSkpXSkKKyttNF9kZWZpbmUoW19sdF9kZWNsX3Zhcm5hbWVz X3RhZ2dlZF0sCisrW200X2lmdmFsKFskM10sIFtsdF9jb21iaW5lKFskMV0sIFskMl0sIFtfXSwg JDMpXSldKQorKworKworKyMgbHRfZGVjbF9hbGxfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJO QU1FMS4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyttNF9kZWZpbmUoW2x0X2RlY2xfYWxsX3Zhcm5hbWVzXSwKKytbXyQwKG00X3F1b3Rl KG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCisrICAgICBtNF9pZihbJDJdLCBbXSwKKysJICAg bTRfcXVvdGUobHRfZGVjbF92YXJuYW1lcyksCisrCW00X3F1b3RlKG00X3NoaWZ0KCRAKSkpKVtd ZG5sCisrXSkKKyttNF9kZWZpbmUoW19sdF9kZWNsX2FsbF92YXJuYW1lc10sCisrW2x0X2pvaW4o JEAsIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFskMV0sCisrCQkJbHRfZGVjbF90YWdfdmFybmFt ZXMoW1ssIF1dLCBtNF9zaGlmdCgkQCkpKSlkbmwKKytdKQorKworKworKyMgX0xUX0NPTkZJR19T VEFUVVNfREVDTEFSRShbVkFSTkFNRV0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysjIFF1b3RlIGEgdmFyaWFibGUgdmFsdWUsIGFuZCBmb3J3YXJkIGl0IHRvIGBj b25maWcuc3RhdHVzJyBzbyB0aGF0IGl0cworKyMgZGVjbGFyYXRpb24gdGhlcmUgd2lsbCBoYXZl IHRoZSBzYW1lIHZhbHVlIGFzIGluIGBjb25maWd1cmUnLiAgVkFSTkFNRQorKyMgbXVzdCBoYXZl IGEgc2luZ2xlIHF1b3RlIGRlbGltaXRlZCB2YWx1ZSBmb3IgdGhpcyB0byB3b3JrLgorK200X2Rl ZmluZShbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRV0sCisrWyQxPSdgJEVDSE8gIlgkXVskMSIg fCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJ10pCisrCisrCisrIyBfTFRf Q09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgV2UgZGVsaW1pdCBsaWJ0b29sIGNvbmZpZyB2YXJpYWJsZXMgd2l0aCBzaW5nbGUg cXVvdGVzLCBzbyB3aGVuCisrIyB3ZSB3cml0ZSB0aGVtIHRvIGNvbmZpZy5zdGF0dXMsIHdlIGhh dmUgdG8gYmUgc3VyZSB0byBxdW90ZSBhbGwKKysjIGVtYmVkZGVkIHNpbmdsZSBxdW90ZXMgcHJv cGVybHkuICBJbiBjb25maWd1cmUsIHRoaXMgbWFjcm8gZXhwYW5kcworKyMgZWFjaCB2YXJpYWJs ZSBkZWNsYXJlZCB3aXRoIF9MVF9ERUNMIChhbmQgX0xUX1RBR0RFQ0wpIGludG86CisrIworKyMg ICAgPHZhcj49J2AkRUNITyAiWCQ8dmFyPiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK200X2RlZnVuKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlNdLAor K1ttNF9mb3JlYWNoKFtfbHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF9hbGxfdmFybmFtZXMpLAor KyAgICBbbTRfbihbX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShfbHRfdmFyKV0pXSldKQorKwor KworKyMgX0xUX0xJQlRPT0xfVEFHUworKyMgLS0tLS0tLS0tLS0tLS0tLQorKyMgT3V0cHV0IGNv bW1lbnQgYW5kIGxpc3Qgb2YgdGFncyBzdXBwb3J0ZWQgYnkgdGhlIHNjcmlwdAorK200X2RlZnVu KFtfTFRfTElCVE9PTF9UQUdTXSwKKytbX0xUX0ZPUk1BVF9DT01NRU5UKFtUaGUgbmFtZXMgb2Yg dGhlIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHRdKWRubAor K2F2YWlsYWJsZV90YWdzPSJfTFRfVEFHUyJkbmwKKytdKQorKworKworKyMgX0xUX0xJQlRPT0xf REVDTEFSRShWQVJOQU1FLCBbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBFeHRyYWN0IHRoZSBkaWN0aW9uYXJ5IHZhbHVlcyBmb3IgVkFSTkFNRSAob3B0 aW9uYWxseSB3aXRoIFRBRykgYW5kCisrIyBleHBhbmQgdG8gYSBjb21tZW50ZWQgc2hlbGwgdmFy aWFibGUgc2V0dGluZzoKKysjCisrIyAgICAjIFNvbWUgY29tbWVudCBhYm91dCB3aGF0IFZBUiBp cyBmb3IuCisrIyAgICB2aXNpYmxlX25hbWU9JGx0X2ludGVybmFsX25hbWUKKyttNF9kZWZpbmUo W19MVF9MSUJUT09MX0RFQ0xBUkVdLAorK1tfTFRfRk9STUFUX0NPTU1FTlQobTRfcXVvdGUobHRf ZGljdF9mZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwKKysJCQkJCSAgIFtkZXNjcmlwdGlvbl0p KSlbXWRubAorK200X3B1c2hkZWYoW19saWJ0b29sX25hbWVdLAorKyAgICBtNF9xdW90ZShsdF9k aWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbbGlidG9vbF9uYW1lXSkpKVtdZG5sCisr bTRfY2FzZShtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFdLCBbdmFs dWVdKSksCisrICAgIFswXSwgW19saWJ0b29sX25hbWU9WyRdJDFdLAorKyAgICBbMV0sIFtfbGli dG9vbF9uYW1lPSRsdF9bXSQxXSwKKysgICAgWzJdLCBbX2xpYnRvb2xfbmFtZT0kbHRfW10kMV0s CisrICAgIFtfbGlidG9vbF9uYW1lPWx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0s IFt2YWx1ZV0pXSlbXWRubAorK200X2lmdmFsKFskMl0sIFtfJDJdKVtdbTRfcG9wZGVmKFtfbGli dG9vbF9uYW1lXSlbXWRubAorK10pCisrCisrCisrIyBfTFRfTElCVE9PTF9DT05GSUdfVkFSUwor KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1Y2UgY29tbWVudGVkIGRlY2xhcmF0 aW9ucyBvZiBub24tdGFnZ2VkIGxpYnRvb2wgY29uZmlnIHZhcmlhYmxlcworKyMgc3VpdGFibGUg Zm9yIGluc2VydGlvbiBpbiB0aGUgTElCVE9PTCBDT05GSUcgc2VjdGlvbiBvZiB0aGUgYGxpYnRv b2wnCisrIyBzY3JpcHQuICBUYWdnZWQgbGlidG9vbCBjb25maWcgdmFyaWFibGVzIChldmVuIGZv ciB0aGUgTElCVE9PTCBDT05GSUcKKysjIHNlY3Rpb24pIGFyZSBwcm9kdWNlZCBieSBfTFRfTElC VE9PTF9UQUdfVkFSUy4KKyttNF9kZWZ1bihbX0xUX0xJQlRPT0xfQ09ORklHX1ZBUlNdLAorK1tt NF9mb3JlYWNoKFtfbHRfdmFyXSwKKysgICAgbTRfcXVvdGUoX2x0X2RlY2xfZmlsdGVyKFt0YWdn ZWQ/XSwgW25vXSwgW10sIGx0X2RlY2xfdmFybmFtZXMpKSwKKysgICAgW200X24oW19MVF9MSUJU T09MX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKKysKKysKKysjIF9MVF9MSUJUT09MX1RBR19WQVJT KFRBRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9MSUJU T09MX1RBR19WQVJTXSwKKytbbTRfZm9yZWFjaChbX2x0X3Zhcl0sIG00X3F1b3RlKGx0X2RlY2xf dGFnX3Zhcm5hbWVzKSwKKysgICAgW200X24oW19MVF9MSUJUT09MX0RFQ0xBUkUoX2x0X3Zhciwg WyQxXSldKV0pXSkKKysKKysKKysjIF9MVF9UQUdWQVIoVkFSTkFNRSwgW1RBR05BTUVdKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtfTFRfVEFHVkFSXSwg W200X2lmdmFsKFskMl0sIFskMV8kMl0sIFskMV0pXSkKKysKKysKKysjIF9MVF9DT05GSUdfQ09N TUFORFMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlbmQgYWNjdW11bGF0ZWQgb3V0cHV0 IHRvICRDT05GSUdfU1RBVFVTLiAgVGhhbmtzIHRvIHRoZSBsaXN0cyBvZgorKyMgdmFyaWFibGVz IGZvciBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZSBlc2NhcGluZyB3ZSBzYXZlZCBmcm9tIGNhbGxz CisrIyB0byBfTFRfREVDTCwgd2UgY2FuIHB1dCBxdW90ZSBlc2NhcGVkIHZhcmlhYmxlcyBkZWNs YXJhdGlvbnMKKysjIGludG8gYGNvbmZpZy5zdGF0dXMnLCBhbmQgdGhlbiB0aGUgc2hlbGwgY29k ZSB0byBxdW90ZSBlc2NhcGUgdGhlbSBpbgorKyMgZm9yIGxvb3BzIGluIGBjb25maWcuc3RhdHVz Jy4gIEZpbmFsbHksIGFueSBhZGRpdGlvbmFsIGNvZGUgYWNjdW11bGF0ZWQKKysjIGZyb20gY2Fs bHMgdG8gX0xUX0NPTkZJR19MSUJUT09MX0lOSVQgaXMgZXhwYW5kZWQuCisrbTRfZGVmdW4oW19M VF9DT05GSUdfQ09NTUFORFNdLAorK1tBQ19QUk9WSURFX0lGRUxTRShbTFRfT1VUUFVUXSwKKysJ ZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBoYXMgYmVlbiBwbGFjZWQgaW4gJENP TkZJR19MVCwKKysJZG5sIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQgYWxsIG92ZXIgYWdhaW4g aW50byBjb25maWcuc3RhdHVzLAorKwlkbmwgdGhlbiB3ZSB3aWxsIGhhdmUgY29uZmlnLnN0YXR1 cyBydW4gJENPTkZJR19MVCBsYXRlciwgc28gaXQKKysJZG5sIG5lZWRzIHRvIGtub3cgd2hhdCBu YW1lIGlzIHN0b3JlZCB0aGVyZToKKysgICAgICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xpYnRv b2xdLAorKyAgICAgICAgICAgIFskU0hFTEwgJENPTkZJR19MVCB8fCBBU19FWElUKDEpXSwgW0NP TkZJR19MVD0nJENPTkZJR19MVCddKV0sCisrICAgIGRubCBJZiB0aGUgbGlidG9vbCBnZW5lcmF0 aW9uIGNvZGUgaXMgZGVzdGluZWQgZm9yIGNvbmZpZy5zdGF0dXMsCisrICAgIGRubCBleHBhbmQg dGhlIGFjY3VtdWxhdGVkIGNvbW1hbmRzIGFuZCBpbml0IGNvZGUgbm93OgorKyAgICBbQUNfQ09O RklHX0NPTU1BTkRTKFtsaWJ0b29sXSwKKysgICAgICAgIFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09N TUFORFNdLCBbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVRdKV0pCisrXSkjX0xUX0NP TkZJR19DT01NQU5EUworKworKworKyMgSW5pdGlhbGl6ZS4KKyttNF9kZWZpbmUoW19MVF9PVVRQ VVRfTElCVE9PTF9DT01NQU5EU19JTklUXSwKKytbCisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQ T1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENE UEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENE UEFUSAorKworK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9zdWJzdCcKKytkb3VibGVfcXVv dGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCisrZGVsYXlfdmFyaWFibGVfc3Vic3Q9JyRk ZWxheV92YXJpYWJsZV9zdWJzdCcKKytfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKKytM VENDPSckTFRDQycKKytMVENGTEFHUz0nJExUQ0ZMQUdTJworK2NvbXBpbGVyPSckY29tcGlsZXJf REVGQVVMVCcKKysKKysjIFF1b3RlIGV2YWxlZCBzdHJpbmdzLgorK2ZvciB2YXIgaW4gbHRfZGVj bF9hbGxfdmFybmFtZXMoW1sgXAorK11dLCBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKTsgZG8KKysg ICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisrICAgICpbW1xc XFxcXFxgXFwiXFxcJF1dKikKKysgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRF Q0hPIFxcIlhcXFwkXCR2YXJcXCIgfCBcXFwkWHNlZCAtZSBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0 XFwiXFxcYFxcXFxcXCIiCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBldmFsICJsdF9cJHZh cj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKKysgICAgICA7OworKyAgICBlc2FjCisrZG9uZQor KworKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KKytmb3IgdmFyIGluIGx0 X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKKytdXSwgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMpOyBk bworKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKysgICAg KltbXFxcXFxcXGBcXCJcXFwkXV0qKQorKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxg XFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRkb3VibGVfcXVv dGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkZGVsYXlf dmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKysgICAgICA7OworKyAgICAqKQorKyAgICAg IGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwiIgorKyAgICAgIDs7CisrICAg IGVzYWMKKytkb25lCisrCisrIyBGaXgtdXAgZmFsbGJhY2sgZWNobyBpZiBpdCB3YXMgbWFuZ2xl ZCBieSB0aGUgYWJvdmUgcXVvdGluZyBydWxlcy4KKytjYXNlIFwkbHRfRUNITyBpbgorKyonXFxc WyRdMCAtLWZhbGxiYWNrLWVjaG8iJylkbmwgIgorKyAgbHRfRUNITz1cYFwkRUNITyAiWFwkbHRf RUNITyIgfCBcJFhzZWQgLWUgJ3MvXFxcXFxcXFxcXFxcXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8i XFskXS9cWyRdMCAtLWZhbGxiYWNrLWVjaG8iLydcYAorKyAgOzsKKytlc2FjCisrCisrX0xUX09V VFBVVF9MSUJUT09MX0lOSVQKKytdKQorKworKworKyMgTFRfT1VUUFVUCisrIyAtLS0tLS0tLS0K KysjIFRoaXMgbWFjcm8gYWxsb3dzIGVhcmx5IGdlbmVyYXRpb24gb2YgdGhlIGxpYnRvb2wgc2Ny aXB0IChiZWZvcmUKKysjIEFDX09VVFBVVCBpcyBjYWxsZWQpLCBpbmNhc2UgaXQgaXMgdXNlZCBp biBjb25maWd1cmUgZm9yIGNvbXBpbGF0aW9uCisrIyB0ZXN0cy4KKytBQ19ERUZVTihbTFRfT1VU UFVUXSwKKytbOiAke0NPTkZJR19MVD0uL2NvbmZpZy5sdH0KKytBQ19NU0dfTk9USUNFKFtjcmVh dGluZyAkQ09ORklHX0xUXSkKKytjYXQgPiIkQ09ORklHX0xUIiA8PF9MVEVPRgorKyMhICRTSEVM TAorKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKysjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUg YSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgorKworK2x0X2Ns X3NpbGVudD1mYWxzZQorK1NIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CisrX0xURU9GCisr CisrY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgorK0FTX1NIRUxMX1NBTklUSVpFCisrX0FT X1BSRVBBUkUKKysKKytleGVjIEFTX01FU1NBR0VfRkQ+JjEKKytleGVjIEFTX01FU1NBR0VfTE9H X0ZEPj5jb25maWcubG9nCisreworKyAgZWNobworKyAgQVNfQk9YKFtSdW5uaW5nICRhc19tZS5d KQorK30gPiZBU19NRVNTQUdFX0xPR19GRAorKworK2x0X2NsX2hlbHA9IlwKKytcYCRhc19tZScg Y3JlYXRlcyBhIGxvY2FsIGxpYnRvb2wgc3R1YiBmcm9tIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRp b24sCisrZm9yIHVzZSBpbiBmdXJ0aGVyIGNvbmZpZ3VyZSB0aW1lIHRlc3RzIGJlZm9yZSB0aGUg cmVhbCBsaWJ0b29sIGlzCisrZ2VuZXJhdGVkLgorKworK1VzYWdlOiAkWzBdIFtbT1BUSU9OU11d CisrCisrICAtaCwgLS1oZWxwICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKysgIC1W LCAtLXZlcnNpb24gICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisrICAtcSwgLS1x dWlldCAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2VzCisrICAtZCwgLS1kZWJ1ZyAg ICAgZG9uJ3QgcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcworKworK1JlcG9ydCBidWdzIHRvIDxidWct bGlidG9vbEBnbnUub3JnPi4iCisrCisrbHRfY2xfdmVyc2lvbj0iXAorK200X2lmc2V0KFtBQ19Q QUNLQUdFX05BTUVdLCBbQUNfUEFDS0FHRV9OQU1FIF0pY29uZmlnLmx0W11kbmwKKyttNF9pZnNl dChbQUNfUEFDS0FHRV9WRVJTSU9OXSwgWyBBQ19QQUNLQUdFX1ZFUlNJT05dKQorK2NvbmZpZ3Vy ZWQgYnkgJFswXSwgZ2VuZXJhdGVkIGJ5IG00X1BBQ0tBR0VfU1RSSU5HLgorKworK0NvcHlyaWdo dCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKytUaGlzIGNvbmZpZy5s dCBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgor K2dpdmVzIHVubGltaXRlZCBwZXJtaXNpb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5 IGl0LiIKKysKKyt3aGlsZSB0ZXN0ICRbI10gIT0gMAorK2RvCisrICBjYXNlICRbMV0gaW4KKysg ICAgLS12ZXJzaW9uIHwgLS12KiB8IC1WICkKKysgICAgICBlY2hvICIkbHRfY2xfdmVyc2lvbiI7 IGV4aXQgMCA7OworKyAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQorKyAgICAgIGVjaG8gIiRsdF9j bF9oZWxwIjsgZXhpdCAwIDs7CisrICAgIC0tZGVidWcgfCAtLWQqIHwgLWQgKQorKyAgICAgIGRl YnVnPTogOzsKKysgICAgLS1xdWlldCB8IC0tcSogfCAtLXNpbGVudCB8IC0tcyogfCAtcSApCisr ICAgICAgbHRfY2xfc2lsZW50PTogOzsKKysKKysgICAgLSopIEFDX01TR19FUlJPUihbdW5yZWNv Z25pemVkIG9wdGlvbjogJFsxXQorK1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1h dGlvbi5dKSA7OworKworKyAgICAqKSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBhcmd1bWVu dDogJFsxXQorK1RyeSBcYCRbMF0gLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5dKSA7Owor KyAgZXNhYworKyAgc2hpZnQKKytkb25lCisrCisraWYgJGx0X2NsX3NpbGVudDsgdGhlbgorKyAg ZXhlYyBBU19NRVNTQUdFX0ZEPi9kZXYvbnVsbAorK2ZpCisrX0xURU9GCisrCisrY2F0ID4+IiRD T05GSUdfTFQiIDw8X0xURU9GCisrX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVQKKytf TFRFT0YKKysKKytjYXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9GCisrQUNfTVNHX05PVElDRShb Y3JlYXRpbmcgJG9maWxlXSkKKytfTFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFMKKytBU19FWElU KDApCisrX0xURU9GCisrY2htb2QgK3ggIiRDT05GSUdfTFQiCisrCisrIyBjb25maWd1cmUgaXMg d3JpdGluZyB0byBjb25maWcubG9nLCBidXQgY29uZmlnLmx0IGRvZXMgaXRzIG93biByZWRpcmVj dGlvbiwKKysjIGFwcGVuZGluZyB0byBjb25maWcubG9nLCB3aGljaCBmYWlscyBvbiBET1MsIGFz IGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdAorKyMgb3BlbiBieSBjb25maWd1cmUuICBIZXJlIHdl IGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwgZWZmZWN0aXZlbHkgY2xvc2luZworKyMgY29uZmln LmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChyZSlvcGVuZWQgYW5kIGFwcGVuZGVkIHRvIGJ5 IGNvbmZpZy5sdC4KKytpZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KKysgIGx0X2Ns X3N1Y2Nlc3M9OgorKyAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKKysgICAgbHRfY29uZmlnX2x0 X2FyZ3M9IiRsdF9jb25maWdfbHRfYXJncyAtLXF1aWV0IgorKyAgZXhlYyBBU19NRVNTQUdFX0xP R19GRD4vZGV2L251bGwKKysgICRTSEVMTCAiJENPTkZJR19MVCIgJGx0X2NvbmZpZ19sdF9hcmdz IHx8IGx0X2NsX3N1Y2Nlc3M9ZmFsc2UKKysgIGV4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+PmNvbmZp Zy5sb2cKKysgICRsdF9jbF9zdWNjZXNzIHx8IEFTX0VYSVQoMSkKKytmaQorK10pIyBMVF9PVVRQ VVQKKysKKysKKysjIF9MVF9DT05GSUcoVEFHKQorKyMgLS0tLS0tLS0tLS0tLS0tCisrIyBJZiBU QUcgaXMgdGhlIGJ1aWx0LWluIHRhZywgY3JlYXRlIGFuIGluaXRpYWwgbGlidG9vbCBzY3JpcHQg d2l0aCBhCisrIyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgdW50YWdnZWQgY29uZmln IHZhcnMuICBPdGhlcndpc2UgYWRkIGNvZGUKKysjIHRvIGNvbmZpZy5zdGF0dXMgZm9yIGFwcGVu ZGluZyB0aGUgY29uZmlndXJhdGlvbiBuYW1lZCBieSBUQUcgZnJvbSB0aGUKKysjIG1hdGNoaW5n IHRhZ2dlZCBjb25maWcgdmFycy4KKyttNF9kZWZ1bihbX0xUX0NPTkZJR10sCisrW200X3JlcXVp cmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorK19MVF9DT05GSUdfU0FWRV9DT01NQU5E UyhbCisrICBtNF9kZWZpbmUoW19MVF9UQUddLCBtNF9pZihbJDFdLCBbXSwgW0NdLCBbJDFdKSlk bmwKKysgIG00X2lmKF9MVF9UQUcsIFtDXSwgWworKyAgICAjIFNlZSBpZiB3ZSBhcmUgcnVubmlu ZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCisrICAgICMgY29t bWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgorKyAgICBpZiB0ZXN0 IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgorKyAgICAgIHNldG9wdCBOT19HTE9CX1NV QlNUCisrICAgIGZpCisrCisrICAgIGNmZ2ZpbGU9IiR7b2ZpbGV9VCIKKysgICAgdHJhcCAiJFJN IFwiJGNmZ2ZpbGVcIjsgZXhpdCAxIiAxIDIgMTUKKysgICAgJFJNICIkY2ZnZmlsZSIKKysKKysg ICAgY2F0IDw8X0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCisrIyEgJFNIRUxMCisrCisrIyBgJEVDSE8g IiRvZmlsZSIgfCBzZWQgJ3MlXi4qLyUlJ2AgLSBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnkt YnVpbGRpbmcgc3VwcG9ydCBzZXJ2aWNlcy4KKysjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5 ICRhc19tZSAoJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKyMgTGlidG9vbCB3YXMgY29u ZmlndXJlZCBvbiBob3N0IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2Vk IDFxYDoKKysjIE5PVEU6IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBs b29rIGF0IGx0bWFpbi5zaC4KKysjCisrX0xUX0NPUFlJTkcKKytfTFRfTElCVE9PTF9UQUdTCisr CisrIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKKytfTFRfTElCVE9PTF9DT05GSUdfVkFSUwor K19MVF9MSUJUT09MX1RBR19WQVJTCisrIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCisrCisrX0xU X0VPRgorKworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAgIGNhdCA8PFxfTFRf RU9GID4+ICIkY2ZnZmlsZSIKKysjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhl IEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKKysjIHJlYXNvbiwgaWYgd2Ugc2V0IHRo ZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKKysjIHZh bmlzaCBpbiBhIHB1ZmYgb2Ygc21va2UuCisraWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9 IiAhPSBYc2V0OyB0aGVuCisrICBDT0xMRUNUX05BTUVTPQorKyAgZXhwb3J0IENPTExFQ1RfTkFN RVMKKytmaQorK19MVF9FT0YKKysgICAgOzsKKysgIGVzYWMKKysKKysgIF9MVF9QUk9HX0xUTUFJ TgorKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQ UCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5 IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisrICAjIHRleHQgbW9kZSwgaXQgcHJvcGVy bHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQorKyAgIyBpcyBy ZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KKysg IHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS9xJyAiJGx0 bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEp CisrCisrICBfTFRfUFJPR19YU0lfU0hFTExGTlMKKysKKysgIHNlZCAtbiAnL14jIEdlbmVyYXRl ZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIkbHRtYWluIiA+PiAiJGNmZ2Zp bGUiIFwKKysgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKKysKKysgIG12IC1mICIk Y2ZnZmlsZSIgIiRvZmlsZSIgfHwKKysgICAgKHJtIC1mICIkb2ZpbGUiICYmIGNwICIkY2ZnZmls ZSIgIiRvZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlIikKKysgIGNobW9kICt4ICIkb2ZpbGUiCisr XSwKKytbY2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorKworK2RubCBVbmZvcnR1bmF0ZWx5IHdl IGhhdmUgdG8gdXNlICQxIGhlcmUsIHNpbmNlIF9MVF9UQUcgaXMgbm90IGV4cGFuZGVkCisrZG5s IGluIGEgY29tbWVudCAoaWUgYWZ0ZXIgYSAjKS4KKysjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBD T05GSUc6ICQxCisrX0xUX0xJQlRPT0xfVEFHX1ZBUlMoX0xUX1RBRykKKysjICMjIyBFTkQgTElC VE9PTCBUQUcgQ09ORklHOiAkMQorK19MVF9FT0YKKytdKWRubCAvbTRfaWYKKytdLAorK1ttNF9p ZihbJDFdLCBbXSwgWworKyAgICBQQUNLQUdFPSckUEFDS0FHRScKKysgICAgVkVSU0lPTj0nJFZF UlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVTVEFNUCcKKysgICAgUk09JyRSTScKKysgICAg b2ZpbGU9JyRvZmlsZSddLCBbXSkKKytdKWRubCAvX0xUX0NPTkZJR19TQVZFX0NPTU1BTkRTCisr XSkjIF9MVF9DT05GSUcKKysKKysKKysjIExUX1NVUFBPUlRFRF9UQUcoVEFHKQorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBUcmFjZSB0aGlzIG1hY3JvIHRvIGRpc2NvdmVyIHdoYXQgdGFn cyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBsaWJ0b29sCisrIyAtLXRhZyBvcHRpb24sIHVzaW5nOgor KyMgICAgYXV0b2NvbmYgLS10cmFjZSAnTFRfU1VQUE9SVEVEX1RBRzokMScKKytBQ19ERUZVTihb TFRfU1VQUE9SVEVEX1RBR10sIFtdKQorKworKworKyMgQyBzdXBwb3J0IGlzIGJ1aWx0LWluIGZv ciBub3cKKyttNF9kZWZpbmUoW19MVF9MQU5HX0NfZW5hYmxlZF0sIFtdKQorK200X2RlZmluZShb X0xUX1RBR1NdLCBbXSkKKysKKysKKysjIExUX0xBTkcoTEFORykKKysjIC0tLS0tLS0tLS0tLS0K KysjIEVuYWJsZSBsaWJ0b29sIHN1cHBvcnQgZm9yIHRoZSBnaXZlbiBsYW5ndWFnZSBpZiBub3Qg YWxyZWFkeSBlbmFibGVkLgorK0FDX0RFRlVOKFtMVF9MQU5HXSwKKytbQUNfQkVGT1JFKFskMF0s IFtMVF9PVVRQVVRdKWRubAorK200X2Nhc2UoWyQxXSwKKysgIFtDXSwJCQlbX0xUX0xBTkcoQyld LAorKyAgW0MrK10sCQlbX0xUX0xBTkcoQ1hYKV0sCisrICBbSmF2YV0sCQlbX0xUX0xBTkcoR0NK KV0sCisrICBbRm9ydHJhbiA3N10sCQlbX0xUX0xBTkcoRjc3KV0sCisrICBbRm9ydHJhbl0sCQlb X0xUX0xBTkcoRkMpXSwKKysgIFtXaW5kb3dzIFJlc291cmNlXSwJW19MVF9MQU5HKFJDKV0sCisr ICBbbTRfaWZkZWYoW19MVF9MQU5HX10kMVtfQ09ORklHXSwKKysgICAgW19MVF9MQU5HKCQxKV0s CisrICAgIFttNF9mYXRhbChbJDA6IHVuc3VwcG9ydGVkIGxhbmd1YWdlOiAiJDEiXSldKV0pZG5s CisrXSkjIExUX0xBTkcKKysKKysKKysjIF9MVF9MQU5HKExBTkdOQU1FKQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9MQU5HXSwKKytbbTRfaWZkZWYoW19MVF9MQU5HX10k MVtfZW5hYmxlZF0sIFtdLAorKyAgW0xUX1NVUFBPUlRFRF9UQUcoWyQxXSlkbmwKKysgIG00X2Fw cGVuZChbX0xUX1RBR1NdLCBbJDEgXSlkbmwKKysgIG00X2RlZmluZShbX0xUX0xBTkdfXSQxW19l bmFibGVkXSwgW10pZG5sCisrICBfTFRfTEFOR18kMV9DT05GSUcoJDEpXSlkbmwKKytdKSMgX0xU X0xBTkcKKysKKysKKysjIF9MVF9MQU5HX0RFRkFVTFRfQ09ORklHCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfTEFOR19ERUZBVUxUX0NPTkZJR10sCisrW0FDX1BS T1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCisrICBbTFRfTEFORyhDWFgpXSwKKysgIFttNF9k ZWZpbmUoW0FDX1BST0dfQ1hYXSwgZGVmbihbQUNfUFJPR19DWFhdKVtMVF9MQU5HKENYWCldKV0p CisrCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfRjc3XSwKKysgIFtMVF9MQU5HKEY3Nyld LAorKyAgW200X2RlZmluZShbQUNfUFJPR19GNzddLCBkZWZuKFtBQ19QUk9HX0Y3N10pW0xUX0xB TkcoRjc3KV0pXSkKKysKKytBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19GQ10sCisrICBbTFRf TEFORyhGQyldLAorKyAgW200X2RlZmluZShbQUNfUFJPR19GQ10sIGRlZm4oW0FDX1BST0dfRkNd KVtMVF9MQU5HKEZDKV0pXSkKKysKKytkbmwgVGhlIGNhbGwgdG8gW0FdW01fUFJPR19HQ0pdIGlz IHF1b3RlZCBsaWtlIHRoYXQgdG8gc3RvcCBhY2xvY2FsCisrZG5sIHB1bGxpbmcgdGhpbmdzIGlu IG5lZWRsZXNzbHkuCisrQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfR0NKXSwKKysgIFtMVF9M QU5HKEdDSildLAorKyAgW0FDX1BST1ZJREVfSUZFTFNFKFtBXVtNX1BST0dfR0NKXSwKKysgICAg W0xUX0xBTkcoR0NKKV0sCisrICAgIFtBQ19QUk9WSURFX0lGRUxTRShbTFRfUFJPR19HQ0pdLAor KyAgICAgIFtMVF9MQU5HKEdDSildLAorKyAgICAgIFttNF9pZmRlZihbQUNfUFJPR19HQ0pdLAor KwlbbTRfZGVmaW5lKFtBQ19QUk9HX0dDSl0sIGRlZm4oW0FDX1BST0dfR0NKXSlbTFRfTEFORyhH Q0opXSldKQorKyAgICAgICBtNF9pZmRlZihbQV1bTV9QUk9HX0dDSl0sCisrCVttNF9kZWZpbmUo W0FdW01fUFJPR19HQ0pdLCBkZWZuKFtBXVtNX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKQor KyAgICAgICBtNF9pZmRlZihbTFRfUFJPR19HQ0pdLAorKwlbbTRfZGVmaW5lKFtMVF9QUk9HX0dD Sl0sIGRlZm4oW0xUX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKV0pXSldKQorKworK0FDX1BS T1ZJREVfSUZFTFNFKFtMVF9QUk9HX1JDXSwKKysgIFtMVF9MQU5HKFJDKV0sCisrICBbbTRfZGVm aW5lKFtMVF9QUk9HX1JDXSwgZGVmbihbTFRfUFJPR19SQ10pW0xUX0xBTkcoUkMpXSldKQorK10p IyBfTFRfTEFOR19ERUZBVUxUX0NPTkZJRworKworKyMgT2Jzb2xldGUgbWFjcm9zOgorK0FVX0RF RlVOKFtBQ19MSUJUT09MX0NYWF0sIFtMVF9MQU5HKEMrKyldKQorK0FVX0RFRlVOKFtBQ19MSUJU T09MX0Y3N10sIFtMVF9MQU5HKEZvcnRyYW4gNzcpXSkKKytBVV9ERUZVTihbQUNfTElCVE9PTF9G Q10sIFtMVF9MQU5HKEZvcnRyYW4pXSkKKytBVV9ERUZVTihbQUNfTElCVE9PTF9HQ0pdLCBbTFRf TEFORyhKYXZhKV0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Ogor K2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9DWFhdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FDX0xJ QlRPT0xfRjc3XSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW10pCisrZG5s IEFDX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtdKQorKworKworKyMgX0xUX1RBR19DT01QSUxF UgorKyMgLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfVEFHX0NPTVBJTEVSXSwKKytb QUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrCisrX0xUX0RFQ0woW0xUQ0NdLCBbQ0NdLCBb MV0sIFtBIEMgY29tcGlsZXJdKWRubAorK19MVF9ERUNMKFtMVENGTEFHU10sIFtDRkxBR1NdLCBb MV0sIFtMVENDIGNvbXBpbGVyIGZsYWdzXSlkbmwKKytfTFRfVEFHREVDTChbQ0NdLCBbY29tcGls ZXJdLCBbMV0sIFtBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyXSlkbmwKKytfTFRfVEFHREVD TChbd2l0aF9nY2NdLCBbR0NDXSwgWzBdLCBbSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGls ZXI/XSlkbmwKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIENDLgor K0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJlIHNw ZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0KKysK KysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2NvbXBp bGVyPSRDQworK10pIyBfTFRfVEFHX0NPTVBJTEVSCisrCisrCisrIyBfTFRfQ09NUElMRVJfQk9J TEVSUExBVEUKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9yIGNvbXBp bGVyIGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCisrIyB0aGUgc2ltcGxlIGNv bXBpbGVyIHRlc3QgY29kZS4KKyttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFXSwK KytbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKythY19vdXRmaWxlPWNvbmZ0ZXN0LiRh Y19vYmpleHQKKytlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3Qu JGFjX2V4dAorK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQv ZDsgL14gKisvZCcgPmNvbmZ0ZXN0LmVycgorK19sdF9jb21waWxlcl9ib2lsZXJwbGF0ZT1gY2F0 IGNvbmZ0ZXN0LmVycmAKKyskUk0gY29uZnRlc3QqCisrXSkjIF9MVF9DT01QSUxFUl9CT0lMRVJQ TEFURQorKworKworKyMgX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgQ2hlY2sgZm9yIGxpbmtlciBib2lsZXJwbGF0ZSBvdXRwdXQgb3Igd2Fybmlu Z3Mgd2l0aAorKyMgdGhlIHNpbXBsZSBsaW5rIHRlc3QgY29kZS4KKyttNF9kZWZ1bihbX0xUX0xJ TktFUl9CT0lMRVJQTEFURV0sCisrW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrYWNf b3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3Rf Y29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxs IHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlua2VyX2JvaWxl cnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25mdGVzdCoKKytdKSMgX0xUX0xJ TktFUl9CT0lMRVJQTEFURQorKworKyMgX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1MKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bl9vbmNlKFtfTFRfUkVRVUlSRURfREFS V0lOX0NIRUNLU10sWworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3 aW4qKQorKyAgICBBQ19DSEVDS19UT09MKFtEU1lNVVRJTF0sIFtkc3ltdXRpbF0sIFs6XSkKKysg ICAgQUNfQ0hFQ0tfVE9PTChbTk1FRElUXSwgW25tZWRpdF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tf VE9PTChbTElQT10sIFtsaXBvXSwgWzpdKQorKyAgICBBQ19DSEVDS19UT09MKFtPVE9PTF0sIFtv dG9vbF0sIFs6XSkKKysgICAgQUNfQ0hFQ0tfVE9PTChbT1RPT0w2NF0sIFtvdG9vbDY0XSwgWzpd KQorKyAgICBfTFRfREVDTChbXSwgW0RTWU1VVElMXSwgWzFdLAorKyAgICAgIFtUb29sIHRvIG1h bmlwdWxhdGUgYXJjaGl2ZWQgRFdBUkYgZGVidWcgc3ltYm9sIGZpbGVzIG9uIE1hYyBPUyBYXSkK KysgICAgX0xUX0RFQ0woW10sIFtOTUVESVRdLCBbMV0sCisrICAgICAgW1Rvb2wgdG8gY2hhbmdl IGdsb2JhbCB0byBsb2NhbCBzeW1ib2xzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10s IFtMSVBPXSwgWzFdLAorKyAgICAgIFtUb29sIHRvIG1hbmlwdWxhdGUgZmF0IG9iamVjdHMgYW5k IGFyY2hpdmVzIG9uIE1hYyBPUyBYXSkKKysgICAgX0xUX0RFQ0woW10sIFtPVE9PTF0sIFsxXSwK KysgICAgICBbbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciBNYWNoLU8gYmluYXJpZXMgb24gTWFj IE9TIFhdKQorKyAgICBfTFRfREVDTChbXSwgW09UT09MNjRdLCBbMV0sCisrICAgICAgW2xkZC9y ZWFkZWxmIGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWCAx MC40XSkKKysKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtc2luZ2xlX21vZHVsZSBsaW5rZXIg ZmxhZ10sW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2RdLAorKyAgICAgIFtsdF9jdl9hcHBsZV9j Y19zaW5nbGVfbW9kPW5vCisrICAgICAgaWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9Ijsg dGhlbgorKwkjIEJ5IGRlZmF1bHQgd2Ugd2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxlIGZsYWcu IFlvdSBjYW4gb3ZlcnJpZGUKKysJIyBieSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQg dmFyaWFibGUgTFRfTVVMVElfTU9EVUxFCisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1l LCBvciBieSBhZGRpbmcgLW11bHRpX21vZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdzLgorKwly bSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7 fSIgPiBjb25mdGVzdC5jCisrCWVjaG8gIiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJj b25mdGVzdC5keWxpYiBcCisrLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0 LmMiID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxp YmNvbmZ0ZXN0LmR5bGliIFwKKysJICAtZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1bGUgY29u ZnRlc3QuYyAyPmNvbmZ0ZXN0LmVycgorKyAgICAgICAgX2x0X3Jlc3VsdD0kPworKwlpZiB0ZXN0 IC1mIGxpYmNvbmZ0ZXN0LmR5bGliICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAk X2x0X3Jlc3VsdCA9IDA7IHRoZW4KKysJICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPXllcwor KwllbHNlCisrCSAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrCWZpCisr CXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKKysJcm0gLWYgY29uZnRlc3QuKgorKyAgICAgIGZp XSkKKysgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtl ciBmbGFnXSwKKysgICAgICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0XSwKKysgICAg ICBbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCisrICAgICAgc2F2ZV9MREZMQUdT PSRMREZMQUdTCisrICAgICAgZWNobyAiX21haW4iID4gY29uZnRlc3Quc3ltCisrICAgICAgTERG TEFHUz0iJExERkxBR1MgLVdsLC1leHBvcnRlZF9zeW1ib2xzX2xpc3QsY29uZnRlc3Quc3ltIgor KyAgICAgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sW10pXSwKKysJW2x0X2N2 X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXNdLAorKwlbbHRfY3ZfbGRfZXhwb3J0ZWRfc3lt Ym9sc19saXN0PW5vXSkKKysJTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgXSkKKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4xLltbMDEyXV0pCisrICAg ICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNz JyA7OworKyAgICBkYXJ3aW4xLiopCisrICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7 d2x9LWZsYXRfbmFtZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OworKyAg ICBkYXJ3aW4qKSAjIGRhcndpbiA1Lnggb24KKysgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBv ciBsYXRlciwgdGhlIGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCisrICAgICAgIyB0byB0aGUg T1MgdmVyc2lvbiwgaWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKKysgICAgICAj IHRhcmdldCBkZWZhdWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KKysgICAgICBjYXNl ICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCisrCTEwLjAsKjg2Ki1k YXJ3aW44KnwxMC4wLCotZGFyd2luW1s5MV1dKikKKysJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5l ZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrCTEwLltbMDEyXV0q KQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3ds fS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysJMTAuKikKKysJICBfbHRfZGFyX2FsbG93 X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7CisrICAg ICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nf c2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNp bmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScg JHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3lt Ym9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5N RURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScK KysgICAgZmkKKysgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRoZW4KKysgICAgICBf bHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8fCA6JworKyAgICBlbHNlCisrICAgICAgX2x0 X2RzeW11dGlsPQorKyAgICBmaQorKyAgICA7OworKyAgZXNhYworK10pCisrCisrCisrIyBfTFRf REFSV0lOX0xJTktFUl9GRUFUVVJFUworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysj IENoZWNrcyBmb3IgbGlua2VyIGFuZCBjb21waWxlciBmZWF0dXJlcyBvbiBkYXJ3aW4KKyttNF9k ZWZ1bihbX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVNdLAorK1sKKysgIG00X3JlcXVpcmUoW19M VF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSkKKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25l ZWRfbGMsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAg X0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT15ZXMKKysgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrICBfTFRfVEFHVkFSKHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JycKKysgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGli cywgJDEpPXllcworKyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0 X2Rhcl9hbGxvd191bmRlZmluZWQiCisrICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgaWZv cnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7CisrICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFy ZWQ9JEdDQyA7OworKyAgZXNhYworKyAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAi eWVzIjsgdGhlbgorKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCisrICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWlu c3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9t b2Qke19sdF9kc3ltdXRpbH0iCisrICAgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0iXCRD QyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVw bGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+ IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWlj bGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmlu ZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgorKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9leHBzeW1fY21kcywgJDEpPSJzZWQgLWUgJ3Ms XixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5 bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxl IFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3lt c30ke19sdF9kc3ltdXRpbH0iCisrICAgIG00X2lmKFskMV0sIFtDWFhdLAorK1sgICBpZiB0ZXN0 ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0gInllcyI7IHRoZW4KKysgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1yIC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAt bm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxpYm9ianN+XCRDQyAtZHluYW1pY2xpYiBc JGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwke2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJz IFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3Ry aW5nJHtfbHRfZHN5bXV0aWx9IgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGly L1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5z IC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1keW5hbWljbGli IFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIubyBcJGRlcGxp YnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJz dHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBmaQorK10s W10pCisrICBlbHNlCisrICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICBmaQorK10p CisrCisrIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysjIExpbmtzIGEgbWluaW1hbCBwcm9ncmFtIGFuZCBjaGVja3MgdGhlIGV4ZWN1dGFibGUK KysjIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgaGFyZGNvZGVkIGxpYnJhcnkgcGF0aC4gSW4gbW9z dCBjYXNlcywKKysjIHRoaXMgaXMgL3Vzci9saWI6L2xpYiwgYnV0IHdoZW4gdGhlIE1QSSBjb21w aWxlcnMgYXJlIHVzZWQKKysjIHRoZSBsb2NhdGlvbiBvZiB0aGUgY29tbXVuaWNhdGlvbiBhbmQg TVBJIGxpYnMgYXJlIGluY2x1ZGVkIHRvby4KKysjIElmIHdlIGRvbid0IGZpbmQgYW55dGhpbmcs IHVzZSB0aGUgZGVmYXVsdCBsaWJyYXJ5IHBhdGggYWNjb3JkaW5nCisrIyB0byB0aGUgYWl4IGxk IG1hbnVhbC4KKyttNF9kZWZ1bihbX0xUX1NZU19NT0RVTEVfUEFUSF9BSVhdLAorK1ttNF9yZXF1 aXJlKFtfTFRfREVDTF9TRURdKWRubAorK0FDX0xJTktfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTSxb CisrbHRfYWl4X2xpYnBhdGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8g eworKwkvXjAvIHsKKysJICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAg IH0nCisrYWl4X2xpYnBhdGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxs IHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1i aXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhf bGlicGF0aCI7IHRoZW4KKysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2Zp XSxbXSkKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNy L2xpYjovbGliIjsgZmkKKytdKSMgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKysKKysKKysjIF9M VF9TSEVMTF9JTklUKEFSRykKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19M VF9TSEVMTF9JTklUXSwKKytbaWZkZWYoW0FDX0RJVkVSU0lPTl9OT1RJQ0VdLAorKwkgICAgIFtB Q19ESVZFUlRfUFVTSChBQ19ESVZFUlNJT05fTk9USUNFKV0sCisrCSBbQUNfRElWRVJUX1BVU0go Tk9USUNFKV0pCisrJDEKKytBQ19ESVZFUlRfUE9QCisrXSkjIF9MVF9TSEVMTF9JTklUCisrCisr CisrIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysjIEFkZCBzb21lIGNvZGUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBnZW5lcmF0ZWQgY29uZmlndXJl IHNjcmlwdCB3aGljaAorKyMgd2lsbCBmaW5kIGFuIGVjaG8gY29tbWFuZCB3aGljaCBkb2Vzbid0 IGludGVycHJldCBiYWNrc2xhc2hlcy4KKyttNF9kZWZ1bihbX0xUX1BST0dfRUNIT19CQUNLU0xB U0hdLAorK1tfTFRfU0hFTExfSU5JVChbCisrIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5nIHVu ZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgorK1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9Cisr CisrY2FzZSBYJGx0X0VDSE8gaW4KKytYKi0tZmFsbGJhY2stZWNobykKKysgICMgUmVtb3ZlIG9u ZSBsZXZlbCBvZiBxdW90YXRpb24gKHdoaWNoIHdhcyByZXF1aXJlZCBmb3IgTWFrZSkuCisrICBF Q0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFxbJF1cXFskXTAsJ1skXTAnLCdgCisr ICA7OworK2VzYWMKKysKKytFQ0hPPSR7bHRfRUNITy1lY2hvfQorK2lmIHRlc3QgIlhbJF0xIiA9 IFgtLW5vLXJlZXhlYzsgdGhlbgorKyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBh bmQgY29udGludWUuCisrICBzaGlmdAorK2VsaWYgdGVzdCAiWFskXTEiID0gWC0tZmFsbGJhY2st ZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxl ZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxg IiA9ICdYXHQnIDsgdGhlbgorKyAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQorKyAgOgorK2Vsc2UK KysgICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KKysgIGV4ZWMgJFNIRUxMICJb JF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQorK2ZpCisrCisraWYgdGVzdCAiWFskXTEiID0g WC0tZmFsbGJhY2stZWNobzsgdGhlbgorKyAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KKysgIHNo aWZ0CisrICBjYXQgPDxfTFRfRU9GCisrWyRdKgorK19MVF9FT0YKKysgIGV4aXQgMAorK2ZpCisr CisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVj dG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9k ZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK2lmIHRlc3QgLXogIiRsdF9FQ0hPIjsg dGhlbgorKyAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVu CisrICAgICMgZmluZCBhIHN0cmluZyBhcyBsYXJnZSBhcyBwb3NzaWJsZSwgYXMgbG9uZyBhcyB0 aGUgc2hlbGwgY2FuIGNvcGUgd2l0aCBpdAorKyAgICBmb3IgY21kIGluICdzZWQgNTBxICJbJF0w IicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMnEgIlskXTAiJyAnZWNo byB0ZXN0JzsgZG8KKysgICAgICAjIGV4cGVjdGVkIHNpemVzOiBsZXNzIHRoYW4gMktiLCAxS2Is IDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgorKyAgICAgIGlmIHsgZWNob190ZXN0X3N0cmluZz1g ZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgorKwkgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJp bmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGwKKysgICAgICB0aGVuCisr ICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGRvbmUKKysgIGZpCisrCisrICBpZiB0ZXN0 ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgIGVjaG9f dGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVs bGAgJiYKKysgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rf c3RyaW5nIjsgdGhlbgorKyAgICA6CisrICBlbHNlCisrICAgICMgVGhlIFNvbGFyaXMsIEFJWCwg YW5kIERpZ2l0YWwgVW5peCBkZWZhdWx0IGVjaG8gcHJvZ3JhbXMgdW5xdW90ZQorKyAgICAjIGJh Y2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVz IHVzaW5nCisrICAgICMgICBlY2hvICIkc29tZXRoaW5nIiB8IHNlZCAncy9cXC9cXFxcL2cnCisr ICAgICMKKysgICAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVjaG8gaW4gdGhl IHVzZXIncyBQQVRILgorKworKyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBB UkFUT1IKKysgICAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsgZG8KKysgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgICAgICBpZiAodGVzdCAtZiAkZGlyL2VjaG8gfHwgdGVzdCAtZiAkZGly L2VjaG8kYWNfZXhlZXh0KSAmJgorKyAgICAgICAgIHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAy Pi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAo JGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKyAgICAgICAg IHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhl bgorKyAgICAgICAgRUNITz0iJGRpci9lY2hvIgorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQor KyAgICBkb25lCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKworKyAgICBpZiB0ZXN0ICJYJEVD SE8iID0gWGVjaG87IHRoZW4KKysgICAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8s IHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KKysgICAgICBpZiB0ZXN0ICJYYHsgcHJpbnQgLXIg J1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKKysgICAgICAgICBlY2hvX3Rlc3Rpbmdf c3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYm CisrICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9z dHJpbmciOyB0aGVuCisrICAgICAgICAjIFRoaXMgc2hlbGwgaGFzIGEgYnVpbHRpbiBwcmludCAt ciB0aGF0IGRvZXMgdGhlIHRyaWNrLgorKyAgICAgICAgRUNITz0ncHJpbnQgLXInCisrICAgICAg ZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVzdCAtZiAvYmluL2tzaCRhY19leGVleHQ7IH0g JiYKKysJICAgdGVzdCAiWCRDT05GSUdfU0hFTEwiICE9IFgvYmluL2tzaDsgdGhlbgorKyAgICAg ICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcgY29uZmlndXJlIGFnYWluIHdpdGggaXQu CisrICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0K KysgICAgICAgIGV4cG9ydCBPUklHSU5BTF9DT05GSUdfU0hFTEwKKysgICAgICAgIENPTkZJR19T SEVMTD0vYmluL2tzaAorKyAgICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorKyAgICAgICAgZXhl YyAkQ09ORklHX1NIRUxMICJbJF0wIiAtLW5vLXJlZXhlYyAkezErIlskXUAifQorKyAgICAgIGVs c2UKKysgICAgICAgICMgVHJ5IHVzaW5nIHByaW50Zi4KKysgICAgICAgIEVDSE89J3ByaW50ZiAl c1xuJworKyAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9 ICdYXHQnICYmCisrCSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rf c3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysJICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3Ry aW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAgIyBDb29sLCBwcmludGYgd29y a3MKKysJICA6CisrICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxf Q09ORklHX1NIRUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYm CisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCisrCSAgICAg ZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIlskXTAiIC0tZmFs bGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgICB0 ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4K KysJICBDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVMTAorKwkgIGV4cG9ydCBDT05G SUdfU0hFTEwKKysJICBTSEVMTD0iJENPTkZJR19TSEVMTCIKKysJICBleHBvcnQgU0hFTEwKKysJ ICBFQ0hPPSIkQ09ORklHX1NIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvIgorKyAgICAgICAgZWxp ZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1l Y2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0 cmluZyIgPSAnWFx0JyAmJgorKwkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NI RUxMICJbJF0wIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251 bGxgICYmCisrCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVz dF9zdHJpbmciOyB0aGVuCisrCSAgRUNITz0iJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2st ZWNobyIKKysgICAgICAgIGVsc2UKKysJICAjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmluZy4u LgorKwkgIHByZXY9OgorKworKwkgIGZvciBjbWQgaW4gJ2VjaG8gdGVzdCcgJ3NlZCAycSAiWyRd MCInICdzZWQgMTBxICJbJF0wIicgJ3NlZCAyMHEgIlskXTAiJyAnc2VkIDUwcSAiWyRdMCInOyBk bworKwkgICAgaWYgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCI7 IH0gMj4vZGV2L251bGwKKysJICAgIHRoZW4KKysJICAgICAgYnJlYWsKKysJICAgIGZpCisrCSAg ICBwcmV2PSIkY21kIgorKwkgIGRvbmUKKysKKysJICBpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1 MHEgIlskXTAiJzsgdGhlbgorKwkgICAgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKKysJ ICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCisrCSAgICBleGVjICR7T1JJR0lOQUxfQ09ORklH X1NIRUxMLSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9fSAiWyRdMCIgJHsxKyJbJF1AIn0KKysJICBl bHNlCisrCSAgICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0 aCBlY2hvLgorKwkgICAgRUNITz1lY2hvCisrCSAgZmkKKysgICAgICAgIGZpCisrICAgICAgZmkK KysgICAgZmkKKysgIGZpCisrZmkKKysKKysjIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkg c3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCisrIyB0aGUgTWFrZWZpbGUsIGlu c3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCisrbHRf RUNITz0kRUNITworK2lmIHRlc3QgIlgkbHRfRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgWyRdMCAt LWZhbGxiYWNrLWVjaG8iOyB0aGVuCisrICAgbHRfRUNITz0iJENPTkZJR19TSEVMTCBcXFwkXFsk XTAgLS1mYWxsYmFjay1lY2hvIgorK2ZpCisrCisrQUNfU1VCU1QobHRfRUNITykKKytdKQorK19M VF9ERUNMKFtdLCBbU0hFTExdLCBbMV0sIFtTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVs bCBzY3JpcHRzXSkKKytfTFRfREVDTChbXSwgW0VDSE9dLCBbMV0sCisrICAgIFtBbiBlY2hvIHBy b2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFja3NsYXNoZXNdKQorK10pIyBfTFRfUFJP R19FQ0hPX0JBQ0tTTEFTSAorKworKworKyMgX0xUX0VOQUJMRV9MT0NLCisrIyAtLS0tLS0tLS0t LS0tLS0KKyttNF9kZWZ1bihbX0xUX0VOQUJMRV9MT0NLXSwKKytbQUNfQVJHX0VOQUJMRShbbGli dG9vbC1sb2NrXSwKKysgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWxpYnRvb2wtbG9ja10s CisrICAgIFthdm9pZCBsb2NraW5nIChtaWdodCBicmVhayBwYXJhbGxlbCBidWlsZHMpXSldKQor K3Rlc3QgIngkZW5hYmxlX2xpYnRvb2xfbG9jayIgIT0geG5vICYmIGVuYWJsZV9saWJ0b29sX2xv Y2s9eWVzCisrCisrIyBTb21lIGZsYWdzIG5lZWQgdG8gYmUgcHJvcGFnYXRlZCB0byB0aGUgY29t cGlsZXIgb3IgbGlua2VyIGZvciBnb29kCisrIyBsaWJ0b29sIHN1cHBvcnQuCisrY2FzZSAkaG9z dCBpbgorK2lhNjQtKi1ocHV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2lu Zy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19UUllfRVZB TChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRh Y19vYmpleHRgIGluCisrICAgICAgKkVMRi0zMiopCisrCUhQVVhfSUE2NF9NT0RFPSIzMiIKKysJ OzsKKysgICAgICAqRUxGLTY0KikKKysJSFBVWF9JQTY0X01PREU9IjY0IgorKwk7OworKyAgICBl c2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKysqLSotaXJpeDYqKQorKyAg IyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnWyNdbGluZSBfX29s aW5lX18gImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwo YWNfY29tcGlsZSk7IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2X3Byb2dfZ251X2xkIiA9IHll czsgdGhlbgorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAg aW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJic21pcCIKKysJICA7Owor KwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIiCisrCSAgOzsKKysJKjY0 LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKwk7OworKyAgICAgIGVzYWMK KysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4 dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0zMiIKKysJICA7OworKwkqTjMy KikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkqNjQtYml0KikKKysJICBMRD0i JHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAgICBmaQorKyAgZmkKKysgIHJt IC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJzZCotZ251fHg4Nl82NC0q bGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisrczM5MCotKmxpbnV4Knxz MzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFy ZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisrICBpZiBBQ19U UllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0 ZXN0Lm9gIGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4ODZfNjQt KmtmcmVlYnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKKysJ ICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kz ODYiCisrCSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCisrCSAg ICBMRD0iJHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5MHgtKmxp bnV4KikKKysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7CisrCSAgc3Bh cmM2NC0qbGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgorKwkgICAg OzsKKysJZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGluCisrCSAg eDg2XzY0LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRf ZmJzZCIKKysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0g LW0gZWxmX3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51 eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkgIHMzOTAq LSpsaW51eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIK KysJICAgIDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxm NjRfc3BhcmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBy bSAtcmYgY29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBP cGVuU2VydmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMu CisrICBTQVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysg IEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5lZWRzIC1iZWxmXSwgbHRf Y3ZfY2NfbmVlZHNfYmVsZiwKKysgICAgW0FDX0xBTkdfUFVTSChDKQorKyAgICAgQUNfTElOS19J RkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW11dLFtbXV0pXSxbbHRfY3ZfY2NfbmVlZHNfYmVsZj15 ZXNdLFtsdF9jdl9jY19uZWVkc19iZWxmPW5vXSkKKysgICAgIEFDX0xBTkdfUE9QXSkKKysgIGlm IHRlc3QgeCIkbHRfY3ZfY2NfbmVlZHNfYmVsZiIgIT0geCJ5ZXMiOyB0aGVuCisrICAgICMgdGhp cyBpcyBwcm9iYWJseSBnY2MgMi44LjAsIGVnY3MgMS4wIG9yIG5ld2VyOyBubyBuZWVkIGZvciAt YmVsZgorKyAgICBDRkxBR1M9IiRTQVZFX0NGTEFHUyIKKysgIGZpCisrICA7OworK3NwYXJjKi0q c29sYXJpcyopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCisrICBlY2hv ICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGls ZSk7IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgorKyAgICAq NjQtYml0KikKKysgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgorKyAgICAgIHllcyop IExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKysgICAgICAqKQorKwlpZiAke0xELWxk fSAtNjQgLXIgLW8gY29uZnRlc3QyLm8gY29uZnRlc3QubyA+L2Rldi9udWxsIDI+JjE7IHRoZW4K KysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7 OworKyAgICBlc2FjCisrICBmaQorKyAgcm0gLXJmIGNvbmZ0ZXN0KgorKyAgOzsKKytlc2FjCisr CisrbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCisrXSkjIF9MVF9FTkFCTEVfTE9D SworKworKworKyMgX0xUX0NNRF9PTERfQVJDSElWRQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQor K200X2RlZnVuKFtfTFRfQ01EX09MRF9BUkNISVZFXSwKKytbQUNfQ0hFQ0tfVE9PTChBUiwgYXIs IGZhbHNlKQorK3Rlc3QgLXogIiRBUiIgJiYgQVI9YXIKKyt0ZXN0IC16ICIkQVJfRkxBR1MiICYm IEFSX0ZMQUdTPWNydQorK19MVF9ERUNMKFtdLCBbQVJdLCBbMV0sIFtUaGUgYXJjaGl2ZXJdKQor K19MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCisrCisrQUNfQ0hFQ0tfVE9PTChTVFJJUCwg c3RyaXAsIDopCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CisrX0xUX0RFQ0woW10sIFtT VFJJUF0sIFsxXSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtXSkKKysKKytBQ19DSEVDS19U T09MKFJBTkxJQiwgcmFubGliLCA6KQorK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJQj06Cisr X0xUX0RFQ0woW10sIFtSQU5MSUJdLCBbMV0sCisrICAgIFtDb21tYW5kcyB1c2VkIHRvIGluc3Rh bGwgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorKworKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNy ZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgorK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAk QVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJworK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2 NDQgJG9sZGxpYicKKytvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQorKworK2lmIHRlc3QgLW4gIiRS QU5MSUIiOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisrICBvcGVuYnNkKikKKysgICAgb2xk X3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9s ZGxpYiIKKysgICAgOzsKKysgICopCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bv c3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrICAgIDs7CisrICBlc2FjCisrICBv bGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKKytm aQorK19MVF9ERUNMKFtdLCBbb2xkX3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0pCisrX0xUX0RFQ0wo W10sIFtvbGRfcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdKQorK19MVF9UQUdERUNMKFtdLCBbb2xk X2FyY2hpdmVfY21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xk LXN0eWxlIGFyY2hpdmVdKQorK10pIyBfTFRfQ01EX09MRF9BUkNISVZFCisrCisrCisrIyBfTFRf Q09NUElMRVJfT1BUSU9OKE1FU1NBR0UsIFZBUklBQkxFLU5BTUUsIEZMQUdTLAorKyMJCVtPVVRQ VVQtRklMRV0sIFtBQ1RJT04tU1VDQ0VTU10sIFtBQ1RJT04tRkFJTFVSRV0pCisrIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBjb21waWxlciBvcHRpb24gd29ya3MKKytBQ19E RUZVTihbX0xUX0NPTVBJTEVSX09QVElPTl0sCisrW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNf REVGQVVMVFNdKWRubAorK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisrQUNfQ0FDSEVf Q0hFQ0soWyQxXSwgWyQyXSwKKysgIFskMj1ubworKyAgIG00X2lmKFskNF0sICwgW2FjX291dGZp bGU9Y29uZnRlc3QuJGFjX29iamV4dF0sIFthY19vdXRmaWxlPSQ0XSkKKysgICBlY2hvICIkbHRf c2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21w aWxlcl9mbGFnPSIkMyIKKysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIg dGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29u dGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQg JGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lu cworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBz aG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlh IGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hv ICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRf Y29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRf Y29tcGlsZXJfZmxhZyY6OyB0JyBcCisrICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AK KysgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkbHRfY29tcGlsZVwiIiA+JkFT X01FU1NBR0VfTE9HX0ZEKQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIp CisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9H X0ZECisrICAgZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19N RVNTQUdFX0xPR19GRAorKyAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19v dXRmaWxlIjsgdGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRo ZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNI TyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRl c3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVz dC5lcjIKKysgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5l eHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgJDI9eWVzCisrICAgICBm aQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorK10pCisrCisraWYgdGVzdCB4IlskXSQyIiA9 IHh5ZXM7IHRoZW4KKysgICAgbTRfaWYoWyQ1XSwgLCA6LCBbJDVdKQorK2Vsc2UKKysgICAgbTRf aWYoWyQ2XSwgLCA6LCBbJDZdKQorK2ZpCisrXSkjIF9MVF9DT01QSUxFUl9PUFRJT04KKysKKysj IE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTl0sIFtfTFRf Q09NUElMRVJfT1BUSU9OXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NPTVBJTEVSX09QVElPTl0sIFtdKQorKwor KworKyMgX0xUX0xJTktFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCisr IyAgICAgICAgICAgICAgICAgIFtBQ1RJT04tU1VDQ0VTU10sIFtBQ1RJT04tRkFJTFVSRV0pCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBsaW5rZXIgb3B0aW9uIHdvcmtzCisrQUNfREVGVU4o W19MVF9MSU5LRVJfT1BUSU9OXSwKKytbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxU U10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKKytBQ19DQUNIRV9DSEVDSyhb JDFdLCBbJDJdLAorKyAgWyQyPW5vCisrICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICBM REZMQUdTPSIkTERGTEFHUyAkMyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2Rl IiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVy cikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtl ciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAor KyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1z IGNvbmZ0ZXN0LmVycjsgdGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBj b25maWcubG9nLgorKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JkFTX01FU1NBR0VfTE9HX0ZE CisrICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9e JC9kJyA+IGNvbmZ0ZXN0LmV4cAorKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRl c3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRl c3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgICAkMj15ZXMKKysgICAgICAgZmkKKysg ICAgIGVsc2UKKysgICAgICAgJDI9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIC1yIGNv bmZ0ZXN0KgorKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisrXSkKKysKKytpZiB0ZXN0IHgi WyRdJDIiID0geHllczsgdGhlbgorKyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0pCisrZWxzZQor KyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCisrZmkKKytdKSMgX0xUX0xJTktFUl9PUFRJT04K KysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBb X0xUX0xJTktFUl9PUFRJT05dKQorK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJp bGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtdKQorKwor KworKyMgTFRfQ01EX01BWF9MRU4KKysjLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW0xUX0NN RF9NQVhfTEVOXSwKKytbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorKyMgZmlu ZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworK0FDX01TR19D SEVDS0lORyhbdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQor K0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAorKyAgaT0wCisrICB0 ZXN0c3RyaW5nPSJBQkNEIgorKworKyAgY2FzZSAkYnVpbGRfb3MgaW4KKysgIG1zZG9zZGpncHAq KQorKyAgICAjIE9uIERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1 ZSB0byBwcm9ibGVtcyBpbiBsaWJjCisrICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVk aW5nIDIwMDAgYnl0ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KKysgICAgIyBkdXJpbmcgZ2xv YiBleHBhbnNpb24pLiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMK KysgICAgIyBjaGVjayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCisrICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKKysgICAg OzsKKysKKysgIGdudSopCisrICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3Qg cmVxdWlyZWQgYmVjYXVzZSB0aGVyZSBpcworKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGgg b2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKysgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0 IC0xIGFzIG5vIGxpbWl0IHdoYXRzb2V2ZXIKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0x OworKyAgICA7OworKworKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKKysgICAgIyBPbiBX aW45eC9NRSwgdGhpcyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKKysg ICAgIyBhYm91dCA1IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxs eS4KKysgICAgIyBXb3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRp dGFza2luZywKKysgICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZl biB0aG91Z2ggd2l0aCBwYXRpZW5jZQorKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2Vl ZHMgKHdpdGggYSBtYXggbGluZSBsZW5ndGggb2YgMjU2aykuCisrICAgICMgSW5zdGVhZCwgbGV0 J3MganVzdCBwdW50OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQorKyAg ICAjIGFsbCBvZiB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgor KyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysgICAgOzsKKysKKysgIGFtaWdhb3Mq KQorKyAgICAjIE9uIEFtaWdhT1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBs aXRlcmFsbHkuCisrICAgICMgU28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUg bGVuZ3RoIG9mIDgxOTIuCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOworKyAgICA7 OworKworKyAgbmV0YnNkKiB8IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29u Zmx5KikKKysgICAgIyBUaGlzIGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0 LiAgTGlrZWx5IGZ1cnRoZXIuCisrICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCisr ICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhg CisrICAgIGVsaWYgdGVzdCAteCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCisrICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWAvdXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAorKyAgICBl bHNlCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQg Zm9yIGFsbCBCU0RzCisrICAgIGZpCisrICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCisrICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRg CisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwqIDNgCisrICAgIDs7CisrCisrICBpbnRlcml4KikKKysgICAgIyBXZSBrbm93IHRoZSB2YWx1 ZSAyNjIxNDQgYW5kIGhhcmRjb2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCisr ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xOTY2MDgKKysgICAgOzsKKysKKysgIG9zZiopCisr ICAgICMgRHIuIEhhbnMgRWtrZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBw YW5pYyBydW5uaW5nIGNvbmZpZ3VyZQorKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVj X2Rpc2FibGVfYXJnX2xpbWl0IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAorKyAgICAjIG5pY2Ug dG8gY2F1c2Uga2VybmVsIHBhbmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgorKyAg ICAjIEZpcnN0IHNldCBhIHJlYXNvbmFibGUgZGVmYXVsdC4KKysgICAgbHRfY3Zfc3lzX21heF9j bWRfbGVuPTE2Mzg0CisrICAgICMKKysgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRo ZW4KKysgICAgICBjYXNlIGAvc2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJn X2xpbWl0YCBpbgorKyAgICAgICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKKysg ICAgICBlc2FjCisrICAgIGZpCisrICAgIDs7CisrICBzY28zLjJ2NSopCisrICAgIGx0X2N2X3N5 c19tYXhfY21kX2xlbj0xMDI0MDAKKysgICAgOzsKKysgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2 NC4ydXcyKikKKysgICAga2FyZ21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5l IDI+L2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KKysgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbWwkgXV0vLydg CisrICAgIGVsc2UKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MzI3NjgKKysgICAgZmkK KysgICAgOzsKKysgICopCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gKGdldGNvbmYgQVJH X01BWCkgMj4gL2Rldi9udWxsYAorKyAgICBpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX21heF9jbWRf bGVuIjsgdGhlbgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lz X21heF9jbWRfbGVuIFwvIDRgCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRs dF9jdl9zeXNfbWF4X2NtZF9sZW4gXCogM2AKKysgICAgZWxzZQorKyAgICAgICMgTWFrZSB0ZXN0 c3RyaW5nIGEgbGl0dGxlIGJpZ2dlciBiZWZvcmUgd2UgZG8gYW55dGhpbmcgd2l0aCBpdC4KKysg ICAgICAjIGEgMUsgc3RyaW5nIHNob3VsZCBiZSBhIHJlYXNvbmFibGUgc3RhcnQuCisrICAgICAg Zm9yIGkgaW4gMSAyIDMgNCA1IDYgNyA4IDsgZG8KKysgICAgICAgIHRlc3RzdHJpbmc9JHRlc3Rz dHJpbmckdGVzdHN0cmluZworKyAgICAgIGRvbmUKKysgICAgICBTSEVMTD0ke1NIRUxMLSR7Q09O RklHX1NIRUxMLS9iaW4vc2h9fQorKyAgICAgICMgSWYgdGVzdCBpcyBub3QgYSBzaGVsbCBidWls dC1pbiwgd2UnbGwgcHJvYmFibHkgZW5kIHVwIGNvbXB1dGluZyBhCisrICAgICAgIyBtYXhpbXVt IGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBi dXQKKysgICAgICAjIHdlIGNhbid0IHRlbGwuCisrICAgICAgd2hpbGUgeyB0ZXN0ICJYImAkU0hF TEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYv bnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2 L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBl bm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSArIDFgCisrICAgICAgICB0ZXN0 c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBkb25lCisrICAgICAgIyBPbmx5 IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCisrICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAorKyAgICAg IHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJl Y2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAgICMgbWFzc2l2ZSBhbW91bnRz IG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCisrICAg ICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUu CisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9s ZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKytdKQorK2lmIHRlc3QgLW4gJGx0 X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIEFDX01TR19SRVNVTFQoJGx0X2N2X3N5c19t YXhfY21kX2xlbikKKytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5vbmUpCisrZmkKKyttYXhfY21k X2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrX0xUX0RFQ0woW10sIFttYXhfY21kX2xlbl0s IFswXSwKKysgICAgW1doYXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD9dKQor K10pIyBMVF9DTURfTUFYX0xFTgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRP T0xfU1lTX01BWF9DTURfTEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkKKytkbmwgYWNsb2NhbC0xLjQg YmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19N QVhfQ01EX0xFTl0sIFtdKQorKworKworKyMgX0xUX0hFQURFUl9ETEZDTgorKyMgLS0tLS0tLS0t LS0tLS0tLQorK200X2RlZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwKKytbQUNfQ0hFQ0tfSEVBREVS UyhbZGxmY24uaF0sIFtdLCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAorK10pIyBfTFRf SEVBREVSX0RMRkNOCisrCisrCisrIyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04tSUYtVFJV RSwgQUNUSU9OLUlGLVRSVUUtVy1VU0NPUkUsCisrIyAgICAgICAgICAgICAgICAgICAgICBBQ1RJ T04tSUYtRkFMU0UsIEFDVElPTi1JRi1DUk9TUy1DT01QSUxJTkcpCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRf ZGVmdW4oW19MVF9UUllfRExPUEVOX1NFTEZdLAorK1ttNF9yZXF1aXJlKFtfTFRfSEVBREVSX0RM RkNOXSlkbmwKKytpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBb JDRdCisrZWxzZQorKyAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVl ZF91c2NvcmU9MgorKyAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KKysgIGNhdCA+IGNvbmZ0ZXN0 LiRhY19leHQgPDxfTFRfRU9GCisrWyNsaW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIgorKyNpbmNs dWRlICJjb25mZGVmcy5oIgorKworKyNpZiBIQVZFX0RMRkNOX0gKKysjaW5jbHVkZSA8ZGxmY24u aD4KKysjZW5kaWYKKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKysjaWZkZWYgUlRMRF9HTE9C QUwKKysjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCisrI2Vsc2UKKysjICBpZmRl ZiBETF9HTE9CQUwKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCisrIyAgZWxz ZQorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCisrIyAgZW5kaWYKKysjZW5kaWYKKysKKysv KiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBs aW5lIGlmIHdlCisrICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3Jt LiAqLworKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVworKyMgIGlmZGVmIFJUTERfTEFaWQorKyMg ICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQorKyMgIGVsc2UKKysjICAgIGlm ZGVmIERMX0xBWlkKKysjICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKKysj ICAgIGVsc2UKKysjICAgICAgaWZkZWYgUlRMRF9OT1cKKysjICAgICAgICBkZWZpbmUgTFRfRExM QVpZX09SX05PVwlSVExEX05PVworKyMgICAgICBlbHNlCisrIyAgICAgICAgaWZkZWYgRExfTk9X CisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKKysjICAgICAgICBl bHNlCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCisrIyAgICAgICAgZW5k aWYKKysjICAgICAgZW5kaWYKKysjICAgIGVuZGlmCisrIyAgZW5kaWYKKysjZW5kaWYKKysKKyt2 b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9CisraW50IG1haW4gKCkKKyt7CisrICB2b2lkICpzZWxm ID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKKysgIGludCBzdGF0 dXMgPSAkbHRfZGx1bmtub3duOworKworKyAgaWYgKHNlbGYpCisrICAgIHsKKysgICAgICBpZiAo ZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKKysg ICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRf dXNjb3JlOworKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLworKyAgICB9CisrICBlbHNlCisr ICAgIHB1dHMgKGRsZXJyb3IgKCkpOworKworKyAgcmV0dXJuIHN0YXR1czsKKyt9XQorK19MVF9F T0YKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2xpbmspICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4 ZWV4dH0gMj4vZGV2L251bGw7IHRoZW4KKysgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiZBU19N RVNTQUdFX0xPR19GRCAyPi9kZXYvbnVsbAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4 JGx0X3N0YXR1cyBpbgorKyAgICAgIHgkbHRfZGxub191c2NvcmUpICQxIDs7CisrICAgICAgeCRs dF9kbG5lZWRfdXNjb3JlKSAkMiA7OworKyAgICAgIHgkbHRfZGx1bmtub3dufHgqKSAkMyA7Owor KyAgICBlc2FjCisrICBlbHNlIDoKKysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAgJDMK KysgIGZpCisrZmkKKytybSAtZnIgY29uZnRlc3QqCisrXSkjIF9MVF9UUllfRExPUEVOX1NFTEYK KysKKysKKysjIExUX1NZU19ETE9QRU5fU0VMRgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNf REVGVU4oW0xUX1NZU19ETE9QRU5fU0VMRl0sCisrW200X3JlcXVpcmUoW19MVF9IRUFERVJfRExG Q05dKWRubAorK2lmIHRlc3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAgZW5h YmxlX2Rsb3Blbj11bmtub3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAgZW5h YmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVuPW5v CisrICBsdF9jdl9kbG9wZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJlb3Mq KQorKyAgICBsdF9jdl9kbG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5fbGli cz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyogfCBw dzMyKiB8IGNlZ2NjKikKKysgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAgbHRf Y3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9kbG9w ZW49ImRsb3BlbiIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBkYXJ3 aW4qKQorKyAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3Qg aXQKKysgICAgQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAorKwkJW2x0X2N2X2Rsb3Blbj0i ZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLFsKKysgICAgbHRfY3ZfZGxvcGVuPSJk eWxkIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3ZfZGxvcGVuX3NlbGY9eWVz CisrICAgIF0pCisrICAgIDs7CisrCisrICAqKQorKyAgICBBQ19DSEVDS19GVU5DKFtzaGxfbG9h ZF0sCisrCSAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiXSwKKysgICAgICBbQUNfQ0hFQ0tfTElC KFtkbGRdLCBbc2hsX2xvYWRdLAorKwkgICAgW2x0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0X2N2 X2Rsb3Blbl9saWJzPSItbGRsZCJdLAorKwlbQUNfQ0hFQ0tfRlVOQyhbZGxvcGVuXSwKKysJICAg ICAgW2x0X2N2X2Rsb3Blbj0iZGxvcGVuIl0sCisrCSAgW0FDX0NIRUNLX0xJQihbZGxdLCBbZGxv cGVuXSwKKysJCVtsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwi XSwKKysJICAgIFtBQ19DSEVDS19MSUIoW3N2bGRdLCBbZGxvcGVuXSwKKysJCSAgW2x0X2N2X2Rs b3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxkIl0sCisrCSAgICAgIFtBQ19D SEVDS19MSUIoW2RsZF0sIFtkbGRfbGlua10sCisrCQkgICAgW2x0X2N2X2Rsb3Blbj0iZGxkX2xp bmsiIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsZCJdKQorKwkgICAgICBdKQorKwkgICAgXSkKKysJ ICBdKQorKwldKQorKyAgICAgIF0pCisrICAgIDs7CisrICBlc2FjCisrCisrICBpZiB0ZXN0ICJ4 JGx0X2N2X2Rsb3BlbiIgIT0geG5vOyB0aGVuCisrICAgIGVuYWJsZV9kbG9wZW49eWVzCisrICBl bHNlCisrICAgIGVuYWJsZV9kbG9wZW49bm8KKysgIGZpCisrCisrICBjYXNlICRsdF9jdl9kbG9w ZW4gaW4KKysgIGRsb3BlbikKKysgICAgc2F2ZV9DUFBGTEFHUz0iJENQUEZMQUdTIgorKyAgICB0 ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXMgJiYgQ1BQRkxBR1M9IiRDUFBGTEFH UyAtREhBVkVfRExGQ05fSCIKKysKKysgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysgICAg d2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRleHBvcnRf ZHluYW1pY19mbGFnX3NwZWNcIgorKworKyAgICBzYXZlX0xJQlM9IiRMSUJTIgorKyAgICBMSUJT PSIkbHRfY3ZfZGxvcGVuX2xpYnMgJExJQlMiCisrCisrICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0 aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3NlbGYs IFtkbmwKKysJICBfTFRfVFJZX0RMT1BFTl9TRUxGKAorKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGY9 eWVzLCBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubywg bHRfY3ZfZGxvcGVuX3NlbGY9Y3Jvc3MpCisrICAgIF0pCisrCisrICAgIGlmIHRlc3QgIngkbHRf Y3ZfZGxvcGVuX3NlbGYiID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVy X3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgor KyAgICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5rZWQgcHJvZ3Jh bSBjYW4gZGxvcGVuIGl0c2VsZl0sCisrCSAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljLCBbZG5s CisrCSAgX0xUX1RSWV9ETE9QRU5fU0VMRigKKysJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRp Yz15ZXMsIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz15ZXMsCisrCSAgICBsdF9jdl9kbG9wZW5f c2VsZl9zdGF0aWM9bm8sICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9Y3Jvc3MpCisrICAgICAg XSkKKysgICAgZmkKKysKKysgICAgQ1BQRkxBR1M9IiRzYXZlX0NQUEZMQUdTIgorKyAgICBMREZM QUdTPSIkc2F2ZV9MREZMQUdTIgorKyAgICBMSUJTPSIkc2F2ZV9MSUJTIgorKyAgICA7OworKyAg ZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGYgaW4KKysgIHllc3xubykgZW5hYmxl X2Rsb3Blbl9zZWxmPSRsdF9jdl9kbG9wZW5fc2VsZiA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9z ZWxmPXVua25vd24gOzsKKysgIGVzYWMKKysKKysgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmX3N0 YXRpYyBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljPSRsdF9jdl9kbG9w ZW5fc2VsZl9zdGF0aWMgOzsKKysgICopIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9dW5rbm93 biA7OworKyAgZXNhYworK2ZpCisrX0xUX0RFQ0woW2Rsb3Blbl9zdXBwb3J0XSwgW2VuYWJsZV9k bG9wZW5dLCBbMF0sCisrCSBbV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkXSkKKytfTFRfREVD TChbZGxvcGVuX3NlbGZdLCBbZW5hYmxlX2Rsb3Blbl9zZWxmXSwgWzBdLAorKwkgW1doZXRoZXIg ZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrX0xUX0RFQ0woW2Rsb3Blbl9zZWxm X3N0YXRpY10sIFtlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljXSwgWzBdLAorKwkgW1doZXRoZXIg ZGxvcGVuIG9mIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW1zIGlzIHN1cHBvcnRlZF0pCisrXSkj IExUX1NZU19ETE9QRU5fU0VMRgorKworKyMgT2xkIG5hbWU6CisrQVVfQUxJQVMoW0FDX0xJQlRP T0xfRExPUEVOX1NFTEZdLCBbTFRfU1lTX0RMT1BFTl9TRUxGXSkKKytkbmwgYWNsb2NhbC0xLjQg YmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0RMT1BF Tl9TRUxGXSwgW10pCisrCisrCisrIyBfTFRfQ09NUElMRVJfQ19PKFtUQUdOQU1FXSkKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgdG8gc2VlIGlmIG9wdGlvbnMgLWMg YW5kIC1vIGFyZSBzaW11bHRhbmVvdXNseSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIuCisrIyBUaGlz IG1hY3JvIGRvZXMgbm90IGhhcmQgY29kZSB0aGUgY29tcGlsZXIgbGlrZSBBQ19QUk9HX0NDX0Nf Ty4KKyttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX0NfT10sCisrW200X3JlcXVpcmUoW19MVF9ERUNM X1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrbTRf cmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrQUNfQ0FDSEVfQ0hFQ0soW2lmICRjb21w aWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHRdLAorKyAgW19MVF9UQUdWQVIobHRf Y3ZfcHJvZ19jb21waWxlcl9jX28sICQxKV0sCisrICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2Nv bXBpbGVyX2NfbywgJDEpPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAg bWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8g IiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAg IGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAjIElu c2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxl LCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3Ig KDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMg bm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBz aWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisr ICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipG TEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbW14g XV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRs dF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzog JGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysgICAoZXZhbCAiJGx0X2NvbXBp bGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgb3V0L2Nv bmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgZWNobyAiJGFzX21lOl9fb2xpbmVf XzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgIGlmIChleGl0ICRh Y19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAgdGhlbgor KyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24g aWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5n cworKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcv XiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgb3V0 L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIG91dC9j b25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9k ZXYvbnVsbDsgdGhlbgorKyAgICAgICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19v LCAkMSk9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgY2htb2QgdSt3IC4gMj4mQVNfTUVTU0FH RV9MT0dfRkQKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwg Y3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFu dGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAm JiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2Qg Li4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrXSkKKytfTFRfVEFH REVDTChbY29tcGlsZXJfY19vXSwgW2x0X2N2X3Byb2dfY29tcGlsZXJfY19vXSwgWzFdLAorKwlb RG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zP10p CisrXSkjIF9MVF9DT01QSUxFUl9DX08KKysKKysKKysjIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tT KFtUQUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIENo ZWNrIHRvIHNlZSBpZiB3ZSBjYW4gZG8gaGFyZCBsaW5rcyB0byBsb2NrIHNvbWUgZmlsZXMgaWYg bmVlZGVkCisrbTRfZGVmdW4oW19MVF9DT01QSUxFUl9GSUxFX0xPQ0tTXSwKKytbbTRfcmVxdWly ZShbX0xUX0VOQUJMRV9MT0NLXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFV TFRTXSlkbmwKKytfTFRfQ09NUElMRVJfQ19PKFskMV0pCisrCisraGFyZF9saW5rcz0ibm90dGVz dGVkIgorK2lmIHRlc3QgIiRfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSki ID0gbm8gJiYgdGVzdCAiJG5lZWRfbG9ja3MiICE9IG5vOyB0aGVuCisrICAjIGRvIG5vdCBvdmVy d3JpdGUgdGhlIHZhbHVlIG9mIG5lZWRfbG9ja3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIKKysgIEFD X01TR19DSEVDS0lORyhbaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzXSkKKysgIGhhcmRf bGlua3M9eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIg Mj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2ggY29uZnRlc3QuYQorKyAgbG4g Y29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1ubworKyAgbG4gY29uZnRl c3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9bm8KKysgIEFDX01TR19S RVNVTFQoWyRoYXJkX2xpbmtzXSkKKysgIGlmIHRlc3QgIiRoYXJkX2xpbmtzIiA9IG5vOyB0aGVu CisrICAgIEFDX01TR19XQVJOKFtgJENDJyBkb2VzIG5vdCBzdXBwb3J0IGAtYyAtbycsIHNvIGBt YWtlIC1qJyBtYXkgYmUgdW5zYWZlXSkKKysgICAgbmVlZF9sb2Nrcz13YXJuCisrICBmaQorK2Vs c2UKKysgIG5lZWRfbG9ja3M9bm8KKytmaQorK19MVF9ERUNMKFtdLCBbbmVlZF9sb2Nrc10sIFsx XSwgW011c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uP10pCisrXSkjIF9M VF9DT01QSUxFUl9GSUxFX0xPQ0tTCisrCisrCisrIyBfTFRfQ0hFQ0tfT0JKRElSCisrIyAtLS0t LS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19MVF9DSEVDS19PQkpESVJdLAorK1tBQ19DQUNIRV9D SEVDSyhbZm9yIG9iamRpcl0sIFtsdF9jdl9vYmpkaXJdLAorK1tybSAtZiAubGlicyAyPi9kZXYv bnVsbAorK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYgdGVzdCAtZCAubGliczsgdGhlbgor KyAgbHRfY3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxsb3cg ZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysgIGx0X2N2X29iamRpcj1fbGlicwor K2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2L251bGxdKQorK29iamRpcj0kbHRfY3Zfb2JqZGlyCisr X0xUX0RFQ0woW10sIFtvYmpkaXJdLCBbMF0sCisrICAgICAgICAgW1RoZSBuYW1lIG9mIHRoZSBk aXJlY3RvcnkgdGhhdCBjb250YWlucyB0ZW1wb3JhcnkgbGlidG9vbCBmaWxlc10pZG5sCisrbTRf cGF0dGVybl9hbGxvdyhbTFRfT0JKRElSXSlkbmwKKytBQ19ERUZJTkVfVU5RVU9URUQoTFRfT0JK RElSLCAiJGx0X2N2X29iamRpci8iLAorKyAgW0RlZmluZSB0byB0aGUgc3ViLWRpcmVjdG9yeSBp biB3aGljaCBsaWJ0b29sIHN0b3JlcyB1bmluc3RhbGxlZCBsaWJyYXJpZXMuXSkKKytdKSMgX0xU X0NIRUNLX09CSkRJUgorKworKworKyMgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKFtUQUdO QU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBDaGVj ayBoYXJkY29kaW5nIGF0dHJpYnV0ZXMuCisrbTRfZGVmdW4oW19MVF9MSU5LRVJfSEFSRENPREVf TElCUEFUSF0sCisrW0FDX01TR19DSEVDS0lORyhbaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0 aHMgaW50byBwcm9ncmFtc10pCisrX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT0KKytp ZiB0ZXN0IC1uICIkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkiIHx8 CisrICAgdGVzdCAtbiAiJF9MVF9UQUdWQVIocnVucGF0aF92YXIsICQxKSIgfHwKKysgICB0ZXN0 ICJYJF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSkiID0gIlh5ZXMiIDsgdGhlbgor KworKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4aXN0ZW50IGRpcmVjdG9yaWVzLgorKyAgaWYg dGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSkiICE9IG5vICYmCisrICAgICAj IElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBoYXJkY29kaW5nIGlzIHNobGlicGF0aF92 YXIsIHdlCisrICAgICAjIGhhdmUgdG8gcmVsaW5rLCBvdGhlcndpc2Ugd2UgbWlnaHQgbGluayB3 aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5CisrICAgICAjIHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtp bmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25lCisrICAgICAjIyB0ZXN0ICIkX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSkiICE9IG5vICYmCisrICAgICB0ZXN0ICIk X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSkiICE9IG5vOyB0aGVuCisrICAgICMgTGlu a2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3RvcnkuCisr ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9cmVsaW5rCisrICBlbHNlCisrICAg ICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5v bmV4aXN0aW5nIGRpcnMuCisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSk9aW1t ZWRpYXRlCisrICBmaQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBv ciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgor KyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT11bnN1cHBvcnRlZAorK2ZpCisrQUNf TVNHX1JFU1VMVChbJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0aW9uLCAkMSldKQorKworK2lmIHRl c3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpIiA9IHJlbGluayB8fAorKyAgIHRl c3QgIiRfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKSIgPSB5ZXM7IHRoZW4KKysgICMgRmFz dCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1u bworK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgfHwKKysg ICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0 aW9uIGlzIG5vdCBuZWNlc3NhcnkKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bmVlZGxlc3MKKytm aQorK19MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfYWN0aW9uXSwgWzBdLAorKyAgICBbSG93IHRv IGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1dGFibGVdKQorK10p IyBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgKKysKKysKKysjIF9MVF9DTURfU1RSSVBMSUIK KysjIC0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZ1bihbX0xUX0NNRF9TVFJJUExJQl0sCisrW200 X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKKytzdHJpcGxpYj0KKytvbGRfc3RyaXBsaWI9Cisr QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHN0cmlwcGluZyBsaWJyYXJpZXMgaXMgcG9zc2libGVd KQorK2lmIHRlc3QgLW4gIiRTVFJJUCIgJiYgJFNUUklQIC1WIDI+JjEgfCAkR1JFUCAiR05VIHN0 cmlwIiA+L2Rldi9udWxsOyB0aGVuCisrICB0ZXN0IC16ICIkb2xkX3N0cmlwbGliIiAmJiBvbGRf c3RyaXBsaWI9IiRTVFJJUCAtLXN0cmlwLWRlYnVnIgorKyAgdGVzdCAteiAiJHN0cmlwbGliIiAm JiBzdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtdW5uZWVkZWQiCisrICBBQ19NU0dfUkVTVUxUKFt5 ZXNdKQorK2Vsc2UKKysjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBp c24ndCByZWFsbHkgZ29vZCBlbm91Z2gKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGRhcndpbiop CisrICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCisrICAgICAgc3RyaXBsaWI9IiRTVFJJ UCAteCIKKysgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKKysgICAgICBBQ19NU0dfUkVT VUxUKFt5ZXNdKQorKyAgICBlbHNlCisrICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICBm aQorKyAgICA7OworKyAgKikKKysgICAgQUNfTVNHX1JFU1VMVChbbm9dKQorKyAgICA7OworKyAg ZXNhYworK2ZpCisrX0xUX0RFQ0woW10sIFtvbGRfc3RyaXBsaWJdLCBbMV0sIFtDb21tYW5kcyB0 byBzdHJpcCBsaWJyYXJpZXNdKQorK19MVF9ERUNMKFtdLCBbc3RyaXBsaWJdLCBbMV0pCisrXSkj IF9MVF9DTURfU1RSSVBMSUIKKysKKysKKysjIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoW1RBR10p CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUE9SVE1FIEZpbGwgaW4geW91 ciBsZC5zbyBjaGFyYWN0ZXJpc3RpY3MKKyttNF9kZWZ1bihbX0xUX1NZU19EWU5BTUlDX0xJTktF Ul0sCisrW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKyttNF9yZXF1aXJlKFtf TFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10p ZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfT0JKRFVNUF0pZG5sCisrbTRfcmVxdWlyZShbX0xU X0RFQ0xfU0VEXSlkbmwKKytBQ19NU0dfQ0hFQ0tJTkcoW2R5bmFtaWMgbGlua2VyIGNoYXJhY3Rl cmlzdGljc10pCisrbTRfaWYoWyQxXSwKKysJW10sIFsKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxp YnJhcmllczovLC9MUi8iIDs7CisrICAgICopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8iIDs7 CisrICBlc2FjCisrICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJz IHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9Lywv LGciYAorKyAgaWYgJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7JyA+L2Rl di9udWxsIDsgdGhlbgorKyAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdlIGFz c3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCisrICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8g dGhlIHN0YW5kYXJkIHBhdGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcworKyAgICAjIGFz c3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQg dGhhdCBzaG91bGQKKysgICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBk aXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCisrICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9 YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKysgIGVs c2UKKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVj IiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorKyAgZmkKKysgICMgT2ssIG5v dyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJv dWdoIGl0CisrICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KKysgIGx0X3Rt cF9sdF9zZWFyY2hfcGF0aF9zcGVjPQorKyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdT ICRDRkxBR1MgJExERkxBR1MgLXByaW50LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAK KysgIGZvciBsdF9zeXNfcGF0aCBpbiAkbHRfc2VhcmNoX3BhdGhfc3BlYzsgZG8KKysgICAgaWYg dGVzdCAtZCAiJGx0X3N5c19wYXRoLyRsdF9tdWx0aV9vc19kaXIiOyB0aGVuCisrICAgICAgbHRf dG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRf c3lzX3BhdGgvJGx0X211bHRpX29zX2RpciIKKysgICAgZWxzZQorKyAgICAgIHRlc3QgLWQgIiRs dF9zeXNfcGF0aCIgJiYgXAorKwlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9s dF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKKysgICAgZmkKKysgIGRvbmUKKysgIGx0 X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3 ayAnCisrQkVHSU4ge1JTPSIgIjsgRlM9Ii98XG4iO30geworKyAgbHRfZm9vPSIiOworKyAgbHRf Y291bnQ9MDsKKysgIGZvciAobHRfaSA9IE5GOyBsdF9pID4gMDsgbHRfaS0tKSB7CisrICAgIGlm ICgkbHRfaSAhPSAiIiAmJiAkbHRfaSAhPSAiLiIpIHsKKysgICAgICBpZiAoJGx0X2kgPT0gIi4u IikgeworKyAgICAgICAgbHRfY291bnQrKzsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAgaWYg KGx0X2NvdW50ID09IDApIHsKKysgICAgICAgICAgbHRfZm9vPSIvIiAkbHRfaSBsdF9mb287Cisr ICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBsdF9jb3VudC0tOworKyAgICAgICAgfQorKyAg ICAgIH0KKysgICAgfQorKyAgfQorKyAgaWYgKGx0X2ZvbyAhPSAiIikgeyBsdF9mcmVxW1tsdF9m b29dXSsrOyB9CisrICBpZiAobHRfZnJlcVtbbHRfZm9vXV0gPT0gMSkgeyBwcmludCBsdF9mb287 IH0KKyt9J2AKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0X3NlYXJjaF9w YXRoX3NwZWNgCisrZWxzZQorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3Iv bGliIC91c3IvbG9jYWwvbGliIgorK2ZpXSkKKytsaWJyYXJ5X25hbWVzX3NwZWM9CisrbGlibmFt ZV9zcGVjPSdsaWIkbmFtZScKKytzb25hbWVfc3BlYz0KKytzaHJleHRfY21kcz0iLnNvIgorK3Bv c3RpbnN0YWxsX2NtZHM9CisrcG9zdHVuaW5zdGFsbF9jbWRzPQorK2ZpbmlzaF9jbWRzPQorK2Zp bmlzaF9ldmFsPQorK3NobGlicGF0aF92YXI9Cisrc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXVua25vd24KKyt2ZXJzaW9uX3R5cGU9bm9uZQorK2R5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBs ZC5zbyIKKytzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiIKKytuZWVk X2xpYl9wcmVmaXg9dW5rbm93bgorK2hhcmRjb2RlX2ludG9fbGlicz1ubworKworKyMgd2hlbiB5 b3Ugc2V0IG5lZWRfdmVyc2lvbiB0byBubywgbWFrZSBzdXJlIGl0IGRvZXMgbm90IGNhdXNlIC1z ZXRfdmVyc2lvbgorKyMgZmxhZ3MgdG8gYmUgbGVmdCB3aXRob3V0IGFyZ3VtZW50cworK25lZWRf dmVyc2lvbj11bmtub3duCisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKKysgIHNobGlicGF0aF92YXI9TElC UEFUSAorKworKyAgIyBBSVggMyBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyB3ZSBhcHBl bmQgYSBtYWpvciB2ZXJzaW9uIHRvIHRoZSBuYW1lLgorKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIDs7CisrCisrYWl4W1s0LTldXSop CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAg ICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0 IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUg d291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1 c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlz IGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1l bnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4K KysgICAgICBhaXg0IHwgYWl4NC5bWzAxXV0gfCBhaXg0LltbMDFdXS4qKQorKyAgICAgIGlmIHsg ZWNobyAnI2lmIF9fR05VQ19fID4gMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1Jf XyA+PSA5NyknCisrCSAgIGVjaG8gJyB5ZXMgJworKwkgICBlY2hvICcjZW5kaWYnOyB9IHwgJHtD Q30gLUUgLSB8ICRHUkVQIHllcyA+IC9kZXYvbnVsbDsgdGhlbgorKwk6CisrICAgICAgZWxzZQor KwljYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBlc2FjCisr ICAgICMgQUlYIChvbiBQb3dlciopIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIGN1cnJl bnRseSB3ZSBjYW4gbm90IGhhcmRjb2RlIGNvcnJlY3QKKysgICAgIyBzb25hbWUgaW50byBleGVj dXRhYmxlLiBQcm9iYWJseSB3ZSBjYW4gYWRkIHZlcnNpb25pbmcgc3VwcG9ydCB0bworKyAgICAj IGNvbGxlY3QyLCBzbyBhZGRpdGlvbmFsIGxpbmtzIGNhbiBiZSB1c2VmdWwgaW4gZnV0dXJlLgor KyAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KKysgICAg ICAjIElmIHVzaW5nIHJ1biB0aW1lIGxpbmtpbmcgKG9uIEFJWCA0LjIgb3IgbGF0ZXIpIHVzZSBs aWI8bmFtZT4uc28KKysgICAgICAjIGluc3RlYWQgb2YgbGliPG5hbWU+LmEgdG8gbGV0IHBlb3Bs ZSBrbm93IHRoYXQgdGhlc2UgYXJlIG5vdAorKyAgICAgICMgdHlwaWNhbCBBSVggc2hhcmVkIGxp YnJhcmllcy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgZWxzZQorKyAgICAgICMgV2UgcHJl c2VydmUgLmEgYXMgZXh0ZW5zaW9uIGZvciBzaGFyZWQgbGlicmFyaWVzIHRocm91Z2ggQUlYNC4y CisrICAgICAgIyBhbmQgbGF0ZXIgd2hlbiB3ZSBhcmUgbm90IGRvaW5nIHJ1biB0aW1lIGxpbmtp bmcuCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfS5hICRs aWJuYW1lLmEnCisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgICAgZmkKKysgICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrICBm aQorKyAgOzsKKysKKythbWlnYW9zKikKKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBwb3dlcnBj KQorKyAgICAjIFNpbmNlIEp1bHkgMjAwNyBBbWlnYU9TNCBvZmZpY2lhbGx5IHN1cHBvcnRzIC5z byBsaWJyYXJpZXMuCisrICAgICMgV2hlbiBjb21waWxpbmcgdGhlIGV4ZWN1dGFibGUsIGFkZCAt dXNlLWR5bmxkIC1Mc29ianM6IHRvIHRoZSBjb21waWxlbGluZS4KKysgICAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0n CisrICAgIDs7CisrICBtNjhrKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLml4 bGlicmFyeSAkbGlibmFtZS5hJworKyAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5h IGVudHJpZXMgaW4gL3N5cy9saWJzLgorKyAgICBmaW5pc2hfZXZhbD0nZm9yIGxpYiBpbiBgbHMg JGxpYmRpci8qLml4bGlicmFyeSAyPi9kZXYvbnVsbGA7IGRvIGxpYm5hbWU9YCRFQ0hPICJYJGxp YiIgfCAkWHNlZCAtZSAnXCcncyVeLiovXChbW14vXV0qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7 IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5 cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGli cyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJwor KyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg bGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpW1s0 NV1dKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kbWFqb3InCisrICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAk bGliZGlyJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2NvbnRyaWIv bGliIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0i L3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgorKyAgIyB0aGUgZGVmYXVsdCBsZC5zby5j b25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKKysgICMgL3Vzci9YMTFSNi9s aWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBhbGxvdwor KyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCisrICA7OworKwor K2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgIHZlcnNpb25fdHlwZT13aW5k b3dzCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrCisrICBjYXNlICRHQ0MsJGhvc3Rfb3MgaW4KKysgIHllcyxjeWd3aW4q IHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisrICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEnCisrICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxp YmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKKysgICAgcG9zdGluc3RhbGxfY21kcz0n YmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisrICAgICAgZGxwYXRoPWAkU0hFTEwgMj4m MSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcn YH4KKysgICAgICBkbGRpcj0kZGVzdGRpci9gZGlybmFtZSBcJGRscGF0aGB+CisrICAgICAgdGVz dCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisrICAgICAgJGluc3RhbGxfcHJvZyAk ZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRk bG5hbWV+CisrICAgICAgaWYgdGVzdCAtbiAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wn JyRzdHJpcGxpYidcJyc7IHRoZW4KKysgICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGly LyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/OworKyAgICAgIGZpJworKyAgICBwb3N0dW5pbnN0YWxs X2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdc JydgfgorKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisrICAgICAgICRSTSBcJGRscGF0aCcK KysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKworKyAgICBjYXNlICRob3N0 X29zIGluCisrICAgIGN5Z3dpbiopCisrICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJl Zml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFt ZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9b Wy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisrICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgor KyAgICAgIDs7CisrICAgIG1pbmd3KiB8IGNlZ2NjKikKKysgICAgICAjIE1pbkdXIERMTHMgdXNl IHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAorKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvW1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3No YXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1z ZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6 Ly8iIC1lICJzLD0vLC8sZyJgCisrICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMiIHwgWyRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KKysgICAgICAg ICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEggcHJpbnRlZCBieQor KyAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBw cmludHMgaXRzIHNlYXJjaAorKyAgICAgICAgIyBwYXRoIHdpdGggOyBzZXBhcmF0b3JzLCBhbmQg d2l0aCBkcml2ZSBsZXR0ZXJzLiBXZSBjYW4gaGFuZGxlIHRoZQorKyAgICAgICAgIyBkcml2ZSBs ZXR0ZXJzIChjeWd3aW4gZmlsZXV0aWxzIHVuZGVyc3RhbmRzIHRoZW0pLCBzbyBsZWF2ZSB0aGVt LAorKyAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhl cmUgdG8gYSBtaW5ndyBvYmpkdW1wLAorKyAgICAgICAgIyB3aGljaCB3b3VsZG4ndCB1bmRlcnN0 YW5kIGEgY3lnd2luaWZpZWQgcGF0aC4gQWhoLgorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsv IC9nJ2AKKysgICAgICBlbHNlCisrICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRF Q0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFS QVRPUi8gL2ciYAorKyAgICAgIGZpCisrICAgICAgOzsKKysgICAgcHczMiopCisrICAgICAgIyBw dzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCisrICAgICAgbGlicmFy eV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNo byAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVk X2V4dH0nCisrICAgICAgOzsKKysgICAgZXNhYworKyAgICA7OworKworKyAgKikKKysgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3Mv W1suXV0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKysgICAg OzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCisrICAjIEZJWE1F OiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFi bGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAgOzsKKysKKytkYXJ3aW4qIHwgcmhh cHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQiCisrICB2ZXJzaW9uX3R5 cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9l eHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9jbWRz PSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJworK200 X2lmKFskMV0sIFtdLFsKKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiJdKQorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo X3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgqKQor KyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv ciAkbGlibmFtZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICA7OworKworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKwor K2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91 dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNoYW5p c20sIGFkanVzdCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4K KysgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OworKyAg ICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CisrICAgIGVzYWMKKysgIGZpCisrICB2ZXJzaW9uX3R5cGU9 ZnJlZWJzZC0kb2JqZm9ybWF0CisrICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KKysgICAgZnJlZWJz ZC1lbGYqKQorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0g JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIGZyZWVic2QtKikKKysgICAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgICBuZWVkX3ZlcnNpb249 eWVzCisrICAgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBjYXNlICRob3N0X29zIGluCisrICBmcmVlYnNkMiopCisrICAgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltbMDFdXSogfCBmcmVlYnNk ZWxmMy5bWzAxXV0qKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLltbMi05XV0qIHwg ZnJlZWJzZGVsZjMuW1syLTldXSogfCBcCisrICBmcmVlYnNkNC5bWzAtNV1dIHwgZnJlZWJzZGVs ZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEuMSkKKysgICAgc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysg ICAgOzsKKysgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkKKysgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAg IDs7CisrICBlc2FjCisrICA7OworKworK2dudSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4 dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgIDs7CisrCisraHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCisrICAjIEdp dmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBzbyB0aGF0IGRs ZC5zbCByZWZ1c2VzIHRvCisrICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9ucy4KKysgIHZl cnNpb25fdHlwZT1zdW5vcworKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIGNhc2UgJGhvc3RfY3B1IGluCisrICBpYTY0KikKKysgICAgc2hyZXh0X2NtZHM9Jy5z bycKKysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICBkeW5hbWljX2xpbmtlcj0iJGhv c3Rfb3MgZGxkLnNvIgorKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVj aWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBpZiB0ZXN0ICJYJEhQVVhfSUE2NF9N T0RFIiA9IFgzMjsgdGhlbgorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9s aWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIKKysgICAgZWxz ZQorKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1eDY0IC91c3Iv bG9jYWwvbGliL2hwdXg2NCIKKysgICAgZmkKKysgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgaHBwYSo2NCopCisrICAg IHNocmV4dF9jbWRzPScuc2wnCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgICAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKKysgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICisrICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4K KysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vz ci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKKysgICAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYworKyAgICA7OworKyAgKikKKysg ICAgc2hyZXh0X2NtZHM9Jy5zbCcKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5z bCIKKysgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICisrICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9QQVRICisrICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJworKyAgICA7OworKyAgZXNhYworKyAgIyBIUC1VWCBydW5zICpyZWFs bHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUuCisrICBwb3N0 aW5zdGFsbF9jbWRzPSdjaG1vZCA1NTUgJGxpYicKKysgIDs7CisrCisraW50ZXJpeFtbMy05XV0q KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBkeW5hbWljX2xpbmtlcj0nSW50ZXJp eCAzLnggbGQuc28uMSAoUEUsIGxpa2UgRUxGKScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysg IGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgbm9uc3RvcHV4KikgdmVyc2lvbl90eXBlPW5vbnN0b3B1 eCA7OworKyAgICAqKQorKwlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVu CisrCQl2ZXJzaW9uX3R5cGU9bGludXgKKysJZWxzZQorKwkJdmVyc2lvbl90eXBlPWlyaXgKKysJ ZmkgOzsKKysgIGVzYWMKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgaXJpeDUqIHwgbm9uc3RvcHV4KikKKysgICAgbGlic3VmZj0g c2hsaWJzdWZmPQorKyAgICA7OworKyAgKikKKysgICAgY2FzZSAkTEQgaW4gIyBsaWJ0b29sLm00 IHdpbGwgYWRkIG9uZSBvZiB0aGVzZSBzd2l0Y2hlcyB0byBMRAorKyAgICAqLTMyfCoiLTMyICJ8 Ki1tZWxmMzJic21pcHwqIi1tZWxmMzJic21pcCAiKQorKyAgICAgIGxpYnN1ZmY9IHNobGlic3Vm Zj0gbGlibWFnaWM9MzItYml0OzsKKysgICAgKi1uMzJ8KiItbjMyICJ8Ki1tZWxmMzJibWlwbjMy fCoiLW1lbGYzMmJtaXBuMzIgIikKKysgICAgICBsaWJzdWZmPTMyIHNobGlic3VmZj1OMzIgbGli bWFnaWM9TjMyOzsKKysgICAgKi02NHwqIi02NCAifCotbWVsZjY0Ym1pcHwqIi1tZWxmNjRibWlw ICIpCisrICAgICAgbGlic3VmZj02NCBzaGxpYnN1ZmY9NjQgbGlibWFnaWM9NjQtYml0OzsKKysg ICAgKikgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICAgIGVz YWMKKysgICAgOzsKKysgIGVzYWMKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWSR7c2hsaWJz dWZmfV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9IC91c3Iv bG9jYWwvbGliJHtsaWJzdWZmfSIKKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0iCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICA7OworKworKyMgTm8gc2hhcmVkIGxpYiBzdXBwb3J0IGZvciBMaW51eCBvbGRsZCwgYW91 dCwgb3IgY29mZi4KKytsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQor KyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrCisrIyBUaGlzIG11c3QgYmUgTGludXggRUxG LgorK2xpbnV4KiB8IGsqYnNkKi1nbnUpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRf bGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBm aW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD1ubworKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5Q QVRICisrICBzYXZlX0xERkxBR1M9JExERkxBR1MKKysgIHNhdmVfbGliZGlyPSRsaWJkaXIKKysg IGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKVwiOyBcCisrICAgICAgIExERkxBR1M9XCJcJExERkxBR1MgJF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpXCIiCisrICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19Q Uk9HUkFNKFtdLFtdKV0sCisrICAgIFtBU19JRihbICgkT0JKRFVNUCAtcCBjb25mdGVzdCRhY19l eGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIgPi9kZXYvbnVsbF0s CisrICAgICAgIFtzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzXSldKQorKyAgTERGTEFH Uz0kc2F2ZV9MREZMQUdTCisrICBsaWJkaXI9JHNhdmVfbGliZGlyCisrCisrICAjIFRoaXMgaW1w bGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KKysgICMgU29tZSBy ZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAorKyAgIyBiZWZv cmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysKKysg ICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxpYnJhcnkgcGF0 aC4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGli IC91c3IvbGliIgorKworKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0byB0aGUgc2Vh cmNoIHBhdGgKKysgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCisrICAgIGx0X2xk X2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAl cyAyPi9kZXYvbnVsbCIsIFxbJF0yKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBc WyRdMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAtZSAncy8jLiovLzsv XlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7 L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIk c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAgZmkKKysKKysgICMg V2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJh cmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBzdXBwb3J0ZWQgc2hh cmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0 aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1vc3QgcG93ZXJwYy1s aW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlzIGFuZAorKyAgIyBw ZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwg YW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlua2VyIGlzIGluIHVz ZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7OworKworK25ldGJz ZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxG X18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp ZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChhLm91dCkgbGQuc28n CisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFtaWNfbGlua2VyPSdO ZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRI CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrKm50byogfCAqcW54KikKKysgIHZl cnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisrICA7OworKworK29wZW5ic2QqKQorKyAg dmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9s aWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBP cGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKysgIGNhc2Ug JGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9u PXllcyA7OworKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7CisrICBlc2FjCisrICBsaWJy YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZm aXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmluaXNoX2NtZHM9J1BB VEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0g fCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNk Mi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBvcGVuYnNk Mi5bWzg5XV0gfCBvcGVuYnNkMi5bWzg5XV0uKikKKysJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrCTs7CisrICAgICAgKikKKysJc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cworKwk7OworKyAgICAgIGVzYWMKKysgIGVsc2UKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcworKyAgZmkKKysgIDs7CisrCisrb3MyKikKKysgIGxpYm5hbWVfc3BlYz0nJG5h bWUnCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbGli cmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUuYScKKysgIGR5 bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKKysgIHNobGlicGF0aF92YXI9TElCUEFUSAorKyAg OzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICB2ZXJzaW9uX3R5cGU9b3NmCisrICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9Jwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIvY21wbHJzL2NjIC91c3IvbGli IC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKysgIDs7CisrCisrcmRvcyopCisrICBkeW5h bWljX2xpbmtlcj1ubworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIHZlcnNpb25fdHlwZT1saW51 eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9l eHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAjIGxkZCBj b21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhlY3V0YWJsZQorKyAgcG9zdGluc3RhbGxf Y21kcz0nY2htb2QgK3ggJGxpYicKKysgIDs7CisrCisrc3Vub3M0KikKKysgIHZlcnNpb25fdHlw ZT1zdW5vcworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysg IGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9ldGMiIGxkY29uZmlnICRsaWJkaXInCisr ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICBu ZWVkX2xpYl9wcmVmaXg9bm8KKysgIGZpCisrICBuZWVkX3ZlcnNpb249eWVzCisrICA7OworKwor K3N5c3Y0IHwgc3lzdjQuMyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpv cicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBjYXNlICRob3N0X3ZlbmRv ciBpbgorKyAgICBzbmkpCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisr ICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgK KysgICAgICA7OworKyAgICBzaWVtZW5zKQorKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAg ICAgIDs7CisrICAgIG1vdG9yb2xhKQorKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAg IG5lZWRfdmVyc2lvbj1ubworKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwor KyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9s aWInCisrICAgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc3lzdjQqTVAqKQorKyAgaWYgdGVz dCAtZCAvdXNyL25lYyA7dGhlbgorKyAgICB2ZXJzaW9uX3R5cGU9bGludXgKKysgICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7 c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3Nw ZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCisrICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBmaQorKyAgOzsKKysKKytzeXN2NSogfCBzY28zLjJ2NSogfCBzY281 djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcyKikKKysgIHZlcnNpb25fdHlw ZT1mcmVlYnNkLWVsZgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8K KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBp ZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUvbGliIC91c3IvY2NzL2xpYiAvdXNyL2xp YiAvbGliJworKyAgZWxzZQorKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy91c3IvY2Nz L2xpYiAvdXNyL2xpYicKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIHNjbzMuMnY1KikK KysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYyAvbGliIgorKwk7OworKyAgICBlc2FjCisrICBmaQorKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Jy91c3IvbGliJworKyAgOzsKKysKKyt0cGYqKQorKyAgIyBUUEYgaXMgYSBjcm9z cy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgorKyAgdmVy c2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1u bworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4 dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAg c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgOzsKKysKKysqKQorKyAg ZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYworK0FDX01TR19SRVNVTFQoWyRkeW5hbWlj X2xpbmtlcl0pCisrdGVzdCAiJGR5bmFtaWNfbGlua2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFy ZWQ9bm8KKysKKyt2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3Zh ciAkcnVucGF0aF92YXIiCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxl c19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNf UFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRIIgorK2ZpCisrCisraWYgdGVzdCAiJHts dF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytm aQorK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKytfTFRfREVDTChbXSwgW3ZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rXSwgWzFdLAorKyAgICBbVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQg YmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlwdHMgYW5kCisrICAgIHJlc3RvcmVkIGF0 IGxpbmsgdGltZV0pCisrX0xUX0RFQ0woW10sIFtuZWVkX2xpYl9wcmVmaXhdLCBbMF0sCisrICAg IFtEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/XSkKKytfTFRfREVDTChb XSwgW25lZWRfdmVyc2lvbl0sIFswXSwgW0RvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJp ZXM/XSkKKytfTFRfREVDTChbXSwgW3ZlcnNpb25fdHlwZV0sIFswXSwgW0xpYnJhcnkgdmVyc2lv bmluZyB0eXBlXSkKKytfTFRfREVDTChbXSwgW3J1bnBhdGhfdmFyXSwgWzBdLCAgW1NoYXJlZCBs aWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZV0pCisrX0xUX0RFQ0woW10sIFtzaGxpYnBhdGhf dmFyXSwgWzBdLFtTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlXSkKKytfTFRfREVDTChbXSwg W3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aF0sIFswXSwKKysgICAgW0lzIHNobGlicGF0aCBz ZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGlicmFyeSBzZWFyY2ggcGF0aD9dKQorK19M VF9ERUNMKFtdLCBbbGlibmFtZV9zcGVjXSwgWzFdLCBbRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBw cmVmaXhdKQorK19MVF9ERUNMKFtdLCBbbGlicmFyeV9uYW1lc19zcGVjXSwgWzFdLAorKyAgICBb W0xpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUg cmVzdCBhcmUgbGlua3MuCisrICAgIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBs aW5rZXIgZmluZHMgd2l0aCAtbE5BTUVdXSkKKytfTFRfREVDTChbXSwgW3NvbmFtZV9zcGVjXSwg WzFdLAorKyAgICBbW1RoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQg ZnJvbSB0aGUgcmVhbCBuYW1lXV0pCisrX0xUX0RFQ0woW10sIFtwb3N0aW5zdGFsbF9jbWRzXSwg WzJdLAorKyAgICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVk IGFyY2hpdmVdKQorK19MVF9ERUNMKFtdLCBbcG9zdHVuaW5zdGFsbF9jbWRzXSwgWzJdLAorKyAg ICBbQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5pbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2 ZV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hfY21kc10sIFsyXSwKKysgICAgW0NvbW1hbmRzIHVz ZWQgdG8gZmluaXNoIGEgbGlidG9vbCBsaWJyYXJ5IGluc3RhbGxhdGlvbiBpbiBhIGRpcmVjdG9y eV0pCisrX0xUX0RFQ0woW10sIFtmaW5pc2hfZXZhbF0sIFsxXSwKKysgICAgW1tBcyAiZmluaXNo X2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2NyaXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQK KysgICAgbm90IHNob3duXV0pCisrX0xUX0RFQ0woW10sIFtoYXJkY29kZV9pbnRvX2xpYnNdLCBb MF0sCisrICAgIFtXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8g bGlicmFyaWVzXSkKKytfTFRfREVDTChbXSwgW3N5c19saWJfc2VhcmNoX3BhdGhfc3BlY10sIFsy XSwKKysgICAgW0NvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJhcmllc10p CisrX0xUX0RFQ0woW10sIFtzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlY10sIFsyXSwKKysgICAg W1J1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKKytdKSMgX0xUX1NZ U19EWU5BTUlDX0xJTktFUgorKworKworKyMgX0xUX1BBVEhfVE9PTF9QUkVGSVgoVE9PTCkKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBmaW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNo IGNhbiByZWNvZ25pemUgc2hhcmVkIGxpYnJhcnkKKytBQ19ERUZVTihbX0xUX1BBVEhfVE9PTF9Q UkVGSVhdLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrQUNfTVNHX0NIRUNL SU5HKFtmb3IgJDFdKQorK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX01BR0lDX0NNRCwKKytbY2Fz ZSAkTUFHSUNfQ01EIGluCisrW1tcXC8qXSB8ICA/OltcXC9dKl0pCisrICBsdF9jdl9wYXRoX01B R0lDX0NNRD0iJE1BR0lDX0NNRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0 aCBhIHBhdGguCisrICA7OworKyopCisrICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIK KysgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2RubCAkYWNfZHVt bXkgZm9yY2VzIHNwbGl0dGluZyBvbiBjb25zdGFudCB1c2VyLXN1cHBsaWVkIHBhdGhzLgorK2Ru bCBQT1NJWC4yIHdvcmQgc3BsaXR0aW5nIGlzIGRvbmUgb25seSBvbiB0aGUgb3V0cHV0IG9mIHdv cmQgZXhwYW5zaW9ucywKKytkbmwgbm90IGV2ZXJ5IHdvcmQuICBUaGlzIGNsb3NlcyBhIGxvbmdz dGFuZGluZyBzaCBzZWN1cml0eSBob2xlLgorKyAgYWNfZHVtbXk9Im00X2lmKFskMl0sICwgJFBB VEgsIFskMl0pIgorKyAgZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0 X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0 ZXN0IC1mICRhY19kaXIvJDE7IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJGFj X2Rpci8kMSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVu CisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIqKQorKwkg IGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9t YWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgorKwkg IGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9u dWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVu CisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCisrCisrKioqIFdh cm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmll cywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNh bm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWls IHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBUaGlzIHdpbGwg YWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisrKioqIGRlcGVu ZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0 b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0u ICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0g dG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRvb2xAZ251Lm9y ZworKworK19MVF9FT0YKKysJICBmaSA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBicmVh aworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBNQUdJQ19DTUQ9 IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7CisrZXNhY10pCisrTUFHSUNfQ01EPSIkbHRfY3Zf cGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KKysgIEFDX01T R19SRVNVTFQoJE1BR0lDX0NNRCkKKytlbHNlCisrICBBQ19NU0dfUkVTVUxUKG5vKQorK2ZpCisr X0xUX0RFQ0woW10sIFtNQUdJQ19DTURdLCBbMF0sCisrCSBbVXNlZCB0byBleGFtaW5lIGxpYnJh cmllcyB3aGVuIGZpbGVfbWFnaWNfY21kIGJlZ2lucyB3aXRoICJmaWxlIl0pZG5sCisrXSkjIF9M VF9QQVRIX1RPT0xfUFJFRklYCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfUEFUSF9U T09MX1BSRUZJWF0sIFtfTFRfUEFUSF9UT09MX1BSRUZJWF0pCisrZG5sIGFjbG9jYWwtMS40IGJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfUEFUSF9UT09MX1BSRUZJ WF0sIFtdKQorKworKworKyMgX0xUX1BBVEhfTUFHSUMKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBm aW5kIGEgZmlsZSBwcm9ncmFtIHdoaWNoIGNhbiByZWNvZ25pemUgYSBzaGFyZWQgbGlicmFyeQor K200X2RlZnVuKFtfTFRfUEFUSF9NQUdJQ10sCisrW19MVF9QQVRIX1RPT0xfUFJFRklYKCR7YWNf dG9vbF9wcmVmaXh9ZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCkKKytpZiB0ZXN0 IC16ICIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiOyB0aGVuCisrICBpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCisrICAgIF9MVF9QQVRIX1RPT0xfUFJFRklYKGZpbGUsIC91c3IvYmlu JFBBVEhfU0VQQVJBVE9SJFBBVEgpCisrICBlbHNlCisrICAgIE1BR0lDX0NNRD06CisrICBmaQor K2ZpCisrXSkjIF9MVF9QQVRIX01BR0lDCisrCisrCisrIyBMVF9QQVRIX0xECisrIyAtLS0tLS0t LS0tCisrIyBmaW5kIHRoZSBwYXRobmFtZSB0byB0aGUgR05VIG9yIG5vbi1HTlUgbGlua2VyCisr QUNfREVGVU4oW0xUX1BBVEhfTERdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKytB Q19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisrQUNfUkVRVUlSRShbQUNfQ0FOT05J Q0FMX0JVSUxEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAorK200X3JlcXVp cmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKysKKytBQ19BUkdfV0lUSChbZ251LWxkXSwKKysgICAg W0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251LWxkXSwKKysJW2Fzc3VtZSB0aGUgQyBjb21waWxl ciB1c2VzIEdOVSBsZCBAPDpAZGVmYXVsdD1ub0A6PkBdKV0sCisrICAgIFt0ZXN0ICIkd2l0aHZh bCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXNdLAorKyAgICBbd2l0aF9nbnVfbGQ9bm9dKWRubAor KworK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgIyBDaGVjayBp ZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCisrICBBQ19NU0dfQ0hFQ0tJ TkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCisrICBjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cq KQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBz ZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNSB8 IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ct bmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX3Byb2cgaW4KKysgICAgIyBB Y2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtbXFwvXV0qIHwgPzpbW1xcL11dKikKKysgICAg ICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJworKyAgICAgICMgQ2Fub25pY2FsaXpl IHRoZSBwYXRobmFtZSBvZiBsZAorKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRT RUQgJ3MlXFxcXCUvJWcnYAorKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAi JHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KKysJYWNfcHJvZz1gJEVDSE8gJGFjX3By b2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCisrICAgICAgZG9uZQorKyAgICAgIHRlc3QgLXog IiRMRCIgJiYgTEQ9IiRhY19wcm9nIgorKyAgICAgIDs7CisrICAiIikKKysgICAgIyBJZiBpdCBm YWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCisrICAgIGFjX3Byb2c9bGQK KysgICAgOzsKKysgICopCisrICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZv ciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KKysgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorKyAgICA7 OworKyAgZXNhYworK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgQUNf TVNHX0NIRUNLSU5HKFtmb3IgR05VIGxkXSkKKytlbHNlCisrICBBQ19NU0dfQ0hFQ0tJTkcoW2Zv ciBub24tR05VIGxkXSkKKytmaQorK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRoX0xELAorK1tpZiB0 ZXN0IC16ICIkTEQiOyB0aGVuCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBB UkFUT1IKKysgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZz IgorKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICIk YWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nJGFjX2V4ZWV4dCI7 IHRoZW4KKysgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9nIgorKyAgICAgICMg Q2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0t dmVyc2lvbiwKKysgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFudHMgb2YgR05VIGxk IG9ubHkgYWNjZXB0IC12LgorKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9u b24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorKyAgICAgIGNhc2UgYCIkbHRfY3ZfcGF0aF9MRCIg LXYgMj4mMSA8L2Rldi9udWxsYCBpbgorKyAgICAgICpHTlUqIHwgKid3aXRoIEJGRCcqKQorKwl0 ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisrCTs7CisrICAgICAgKikKKysJdGVz dCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKysJOzsKKysgICAgICBlc2FjCisrICAg IGZpCisrICBkb25lCisrICBJRlM9IiRsdF9zYXZlX2lmcyIKKytlbHNlCisrICBsdF9jdl9wYXRo X0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgor K2ZpXSkKKytMRD0iJGx0X2N2X3BhdGhfTEQiCisraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorKyAg QUNfTVNHX1JFU1VMVCgkTEQpCisrZWxzZQorKyAgQUNfTVNHX1JFU1VMVChubykKKytmaQorK3Rl c3QgLXogIiRMRCIgJiYgQUNfTVNHX0VSUk9SKFtubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwk UEFUSF0pCisrX0xUX1BBVEhfTERfR05VCisrQUNfU1VCU1QoW0xEXSkKKysKKytfTFRfVEFHREVD TChbXSwgW0xEXSwgWzFdLCBbVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxpYnJhcmllc10pCisr XSkjIExUX1BBVEhfTEQKKysKKysjIE9sZCBuYW1lczoKKytBVV9BTElBUyhbQU1fUFJPR19MRF0s IFtMVF9QQVRIX0xEXSkKKytBVV9BTElBUyhbQUNfUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKKytk bmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtB TV9QUk9HX0xEXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19QUk9HX0xEXSwgW10pCisrCisrCisr IyBfTFRfUEFUSF9MRF9HTlUKKysjLSAtLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtfTFRfUEFU SF9MRF9HTlVdLAorK1tBQ19DQUNIRV9DSEVDSyhbaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUg bGRdLCBsdF9jdl9wcm9nX2dudV9sZCwKKytbIyBJJ2QgcmF0aGVyIHVzZSAtLXZlcnNpb24gaGVy ZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12LgorK2Nhc2UgYCRM RCAtdiAyPiYxIDwvZGV2L251bGxgIGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBsdF9j dl9wcm9nX2dudV9sZD15ZXMKKysgIDs7CisrKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPW5vCisr ICA7OworK2VzYWNdKQorK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorK10pIyBfTFRf UEFUSF9MRF9HTlUKKysKKysKKysjIF9MVF9DTURfUkVMT0FECisrIyAtLS0tLS0tLS0tLS0tLQor KyMgZmluZCByZWxvYWQgZmxhZyBmb3IgbGlua2VyCisrIyAgIC0tIFBPUlRNRSBTb21lIGxpbmtl cnMgbWF5IG5lZWQgYSBkaWZmZXJlbnQgcmVsb2FkIGZsYWcuCisrbTRfZGVmdW4oW19MVF9DTURf UkVMT0FEXSwKKytbQUNfQ0FDSEVfQ0hFQ0soW2ZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmpl Y3QgZmlsZXNdLAorKyAgbHRfY3ZfbGRfcmVsb2FkX2ZsYWcsCisrICBbbHRfY3ZfbGRfcmVsb2Fk X2ZsYWc9Jy1yJ10pCisrcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9mbGFnCisrY2FzZSAk cmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIgIiopIDs7CisrKikgcmVsb2FkX2ZsYWc9IiAkcmVsb2Fk X2ZsYWciIDs7CisrZXNhYworK3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1 dCRyZWxvYWRfb2JqcycKKytjYXNlICRob3N0X29zIGluCisrICBkYXJ3aW4qKQorKyAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxB R1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZWxzZQor KyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2Jq cycKKysgICAgZmkKKysgICAgOzsKKytlc2FjCisrX0xUX0RFQ0woW10sIFtyZWxvYWRfZmxhZ10s IFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXNdKWRubAorK19MVF9E RUNMKFtdLCBbcmVsb2FkX2NtZHNdLCBbMl0pZG5sCisrXSkjIF9MVF9DTURfUkVMT0FECisrCisr CisrIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr IyBob3cgdG8gY2hlY2sgZm9yIGxpYnJhcnkgZGVwZW5kZW5jaWVzCisrIyAgLS0gUE9SVE1FIGZp bGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJhY3RlcmlzdGljcworK200X2RlZnVu KFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSwKKytbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBd KQorK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKQorK0FDX0NBQ0hFX0NIRUNLKFtob3cg dG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXNdLAorK2x0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kLAorK1tsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NNRCcKKytsdF9jdl9maWxl X21hZ2ljX3Rlc3RfZmlsZT0KKytsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0ndW5rbm93bicK KysjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFibGUgb24gYWxsIHBsYXRmb3JtcyB0 aGF0IHN1cHBvcnQKKysjIGludGVybGlicmFyeSBkZXBlbmRlbmNpZXMuCisrIyAnbm9uZScgLS0g ZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCisrIyBgdW5rbm93bicgLS0gc2FtZSBhcyBub25l LCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0IGtub3cuCisrIyAncGFzc19hbGwn IC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8gY2hlY2tzLgorKyMgJ3Rlc3RfY29t cGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3JhbS4KKysjICdmaWxlX21hZ2ljIFtb cmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmlsZXMgaW4gbGlicmFyeSBwYXRoCisr IyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNfY21kIHdpdGggYSBnaXZlbiBleHRl bmRlZCByZWdleC4KKysjIElmIHlvdSBoYXZlIGBmaWxlJyBvciBlcXVpdmFsZW50IG9uIHlvdXIg c3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKKysjIHdoZXRoZXIgYHBhc3NfYWxsJyB3aWxsICph bHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMgb25lLgorKworK2Nhc2UgJGhvc3Rf b3MgaW4KKythaXhbWzQtOV1dKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3Nf YWxsCisrICA7OworKworK2Jlb3MqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFz c19hbGwKKysgIDs7CisrCisrYnNkaVtbNDVdXSopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW01MXV1TQiAoc2hhcmVk IG9iamVjdHxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4v ZmlsZSAtTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCisr ICA7OworKworK2N5Z3dpbiopCisrICAjIGZ1bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5j dGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKKysgIGx0X2N2X2ZpbGVf bWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgOzsKKysKKyttaW5ndyogfCBwdzMyKikK KysgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBu ZWVkZWQgYnkKKysgICMgZnVuY193aW4zMl9saWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEg d2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAorKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmls ZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KKysgIGlmICgg ZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCisrICAgIGx0 X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgZWxzZQorKyAgICBsdF9j dl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYo LiphcmNoaXRlY3R1cmU6IGkzODYpPycKKysgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpE VU1QIC1mJworKyAgZmkKKysgIDs7CisrCisrY2VnY2MpCisrICAjIHVzZSB0aGUgd2Vha2VyIHRl c3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgorKyAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0 ZWN0dXJlOiBhcm0pPycKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKKysg IDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCisrICA7OworKworK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgor KyAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICBpKjg2ICkKKysgICAgICAjIE5vdCBzdXJlIHdo ZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgorKyAgICAg ICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAuCisr ICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8T3Bl bkJTRHxEcmFnb25GbHkpL2lbWzMtOV1dODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFnZWQgc2hhcmVk IGxpYnJhcnknCisrICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAg ICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28uKmAK KysgICAgICA7OworKyAgICBlc2FjCisrICBlbHNlCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPXBhc3NfYWxsCisrICBmaQorKyAgOzsKKysKKytnbnUqKQorKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisraHB1eDEwLjIwKiB8IGhwdXgxMSop CisrICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCisrICBjYXNlICRob3N0X2Nw dSBpbgorKyAgaWE2NCopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21h Z2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfEVMRi1bWzAtOV1dW1swLTldXSkgc2hhcmVkIG9i amVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9s aWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBbbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxGLVswLTld WzAtOV0pIHNoYXJlZCBvYmplY3QgZmlsZSAtIFBBLVJJU0MgWzAtOV0uWzAtOV0nXQorKyAgICBs dF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9wYTIwXzY0L2xpYmMuc2wKKysgICAg OzsKKysgICopCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChz W1swLTldXVtbMC05XV1bWzAtOV1dfFBBLVJJU0NbWzAtOV1dLltbMC05XV0pIHNoYXJlZCBsaWJy YXJ5JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisr ICAgIDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbWzMtOV1dKikKKysgICMgUElDIGNv ZGUgaXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0J3Mgd2h5IHxcLmEgbm90IHxfcGljXC5h IGhlcmUKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJb W14vXV0rKFwuc298XC5hKSQnCisrICA7OworKworK2lyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1 eCopCisrICBjYXNlICRMRCBpbgorKyAgKi0zMnwqIi0zMiAiKSBsaWJtYWdpYz0zMi1iaXQ7Owor KyAgKi1uMzJ8KiItbjMyICIpIGxpYm1hZ2ljPU4zMjs7CisrICAqLTY0fCoiLTY0ICIpIGxpYm1h Z2ljPTY0LWJpdDs7CisrICAqKSBsaWJtYWdpYz1uZXZlci1tYXRjaDs7CisrICBlc2FjCisrICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKysjIFRoaXMgbXVz dCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkKKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK25ldGJzZCopCisrICBpZiBlY2hvIF9f RUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KKysgICAg bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5z b1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKKysgIGVsc2UKKysgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xfcGljXC5h KSQnCisrICBmaQorKyAgOzsKKysKKytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1bWzAtOV1dKi1iaXQgW1tNTF1dU0IgKGV4ZWN1 dGFibGV8ZHluYW1pYyBsaWIpJworKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmls ZQorKyAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7 OworKworKypudG8qIHwgKnFueCopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNz X2FsbAorKyAgOzsKKysKKytvcGVuYnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUi ID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0r fFwuc298X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0nbWF0Y2hfcGF0dGVybiAvbGliW1teL11dKyhcLnNvXC5bWzAtOV1dK1wuW1swLTldXSt8X3Bp Y1wuYSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrcmRvcyopCisrICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytzb2xhcmlzKikK KysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK3N5c3Y1 KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1 dzIqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisr c3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisrICBtb3Rvcm9sYSkK KysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgRUxGIFtbMC05XV1b WzAtOV1dKi1iaXQgW1tNTF1dU0IgKHNoYXJlZCBvYmplY3R8ZHluYW1pYyBsaWIpIE1bWzAtOV1d W1swLTldXSogVmVyc2lvbiBbWzAtOV1dJworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmls ZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikKKysgICAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNlcXVlbnQpCisrICAg IGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIChz aGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7CisrICBzbmkpCisrICAgIGx0X2N2 X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSJmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTE1dXVNCIGR5bmFtaWMg bGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAg OzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikKKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKytdKQorK2ZpbGVfbWFnaWNfY21k PSRsdF9jdl9maWxlX21hZ2ljX2NtZAorK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZAorK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVw bGlic19jaGVja19tZXRob2Q9dW5rbm93bgorKworK19MVF9ERUNMKFtdLCBbZGVwbGlic19jaGVj a19tZXRob2RdLCBbMV0sCisrICAgIFtNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQg bGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0c10pCisrX0xUX0RFQ0woW10sIFtmaWxlX21hZ2lj X2NtZF0sIFsxXSwKKysgICAgW0NvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRo b2QgPT0gImZpbGVfbWFnaWMiXSkKKytdKSMgX0xUX0NIRUNLX01BR0lDX01FVEhPRAorKworKwor KyMgTFRfUEFUSF9OTQorKyMgLS0tLS0tLS0tLQorKyMgZmluZCB0aGUgcGF0aG5hbWUgdG8gYSBC U0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIKKytBQ19ERUZVTihbTFRfUEFUSF9OTV0s CisrW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorK0FDX0NBQ0hFX0NIRUNLKFtmb3IgQlNE LSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSldLCBsdF9jdl9wYXRoX05NLAorK1tp ZiB0ZXN0IC1uICIkTk0iOyB0aGVuCisrICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KKysgIGx0X2N2X3BhdGhfTk09IiROTSIKKytlbHNlCisrICBsdF9ubV90b19jaGVjaz0iJHth Y190b29sX3ByZWZpeH1ubSIKKysgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCIgJiYgdGVz dCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKysgICAgbHRfbm1fdG9fY2hlY2s9IiRsdF9ubV90 b19jaGVjayBubSIKKysgIGZpCisrICBmb3IgbHRfdG1wX25tIGluICRsdF9ubV90b19jaGVjazsg ZG8KKysgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICAgIGZv ciBhY19kaXIgaW4gJFBBVEggL3Vzci9jY3MvYmluL2VsZiAvdXNyL2Njcy9iaW4gL3Vzci91Y2Ig L2JpbjsgZG8KKysgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgICB0ZXN0IC16ICIkYWNf ZGlyIiAmJiBhY19kaXI9LgorKyAgICAgIHRtcF9ubT0iJGFjX2Rpci8kbHRfdG1wX25tIgorKyAg ICAgIGlmIHRlc3QgLWYgIiR0bXBfbm0iIHx8IHRlc3QgLWYgIiR0bXBfbm0kYWNfZXhlZXh0IiA7 IHRoZW4KKysJIyBDaGVjayB0byBzZWUgaWYgdGhlIG5tIGFjY2VwdHMgYSBCU0QtY29tcGF0IGZs YWcuCisrCSMgQWRkaW5nIHRoZSBgc2VkIDFxJyBwcmV2ZW50cyBmYWxzZSBwb3NpdGl2ZXMgb24g SFAtVVgsIHdoaWNoIHNheXM6CisrCSMgICBubTogdW5rbm93biBvcHRpb24gIkIiIGlnbm9yZWQK KysJIyBUcnU2NCdzIG5tIGNvbXBsYWlucyB0aGF0IC9kZXYvbnVsbCBpcyBhbiBpbnZhbGlkIG9i amVjdCBmaWxlCisrCWNhc2UgYCIkdG1wX25tIiAtQiAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEn YCBpbgorKwkqL2Rldi9udWxsKiB8IConSW52YWxpZCBmaWxlIG9yIG9iamVjdCB0eXBlJyopCisr CSAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtQiIKKysJICBicmVhaworKwkgIDs7CisrCSopCisr CSAgY2FzZSBgIiR0bXBfbm0iIC1wIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGluCisrCSAg Ki9kZXYvbnVsbCopCisrCSAgICBsdF9jdl9wYXRoX05NPSIkdG1wX25tIC1wIgorKwkgICAgYnJl YWsKKysJICAgIDs7CisrCSAgKikKKysJICAgIGx0X2N2X3BhdGhfTk09JHtsdF9jdl9wYXRoX05N PSIkdG1wX25tIn0gIyBrZWVwIHRoZSBmaXJzdCBtYXRjaCwgYnV0CisrCSAgICBjb250aW51ZSAj IHNvIHRoYXQgd2UgY2FuIHRyeSB0byBmaW5kIG9uZSB0aGF0IHN1cHBvcnRzIEJTRCBmbGFncwor KwkgICAgOzsKKysJICBlc2FjCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgIGRvbmUK KysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBkb25lCisrICA6ICR7bHRfY3ZfcGF0aF9OTT1u b30KKytmaV0pCisraWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9ICJubyI7IHRoZW4KKysgIE5N PSIkbHRfY3ZfcGF0aF9OTSIKKytlbHNlCisrICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0 aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KKysgIEFDX0NIRUNLX1RPT0xTKERV TVBCSU4sIFsiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiXSwgOikKKysg IEFDX1NVQlNUKFtEVU1QQklOXSkKKysgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4K KysgICAgTk09IiREVU1QQklOIgorKyAgZmkKKytmaQorK3Rlc3QgLXogIiROTSIgJiYgTk09bm0K KytBQ19TVUJTVChbTk1dKQorK19MVF9ERUNMKFtdLCBbTk1dLCBbMV0sIFtBIEJTRC0gb3IgTVMt Y29tcGF0aWJsZSBuYW1lIGxpc3Rlcl0pZG5sCisrCisrQUNfQ0FDSEVfQ0hFQ0soW3RoZSBuYW1l IGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRfY3Zfbm1faW50ZXJmYWNlXSwKKysgIFtsdF9j dl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKysgIGVjaG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsi ID4gY29uZnRlc3QuJGFjX2V4dAorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzog JGFjX2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysgIChldmFsICIkYWNfY29tcGls ZSIgMj5jb25mdGVzdC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0df RkQKKysgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICROTSBcXFwiY29uZnRlc3Qu JGFjX29iamV4dFxcXCJcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysgIChldmFsICIkTk0gXCJj b25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQorKyAg Y2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAoZXZhbCBlY2hvICJcIlwk YXNfbWU6X19vbGluZV9fOiBvdXRwdXRcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKysgIGNhdCBj b25mdGVzdC5vdXQgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgaWYgJEdSRVAgJ0V4dGVybmFsLipz b21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4KKysgICAgbHRfY3Zf bm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgorKyAgZmkKKysgIHJtIC1mIGNvbmZ0ZXN0Kl0pCisr XSkjIExUX1BBVEhfTk0KKysKKysjIE9sZCBuYW1lczoKKytBVV9BTElBUyhbQU1fUFJPR19OTV0s IFtMVF9QQVRIX05NXSkKKytBVV9BTElBUyhbQUNfUFJPR19OTV0sIFtMVF9QQVRIX05NXSkKKytk bmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtB TV9QUk9HX05NXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBQ19QUk9HX05NXSwgW10pCisrCisrCisr IyBMVF9MSUJfTQorKyMgLS0tLS0tLS0KKysjIGNoZWNrIGZvciBtYXRoIGxpYnJhcnkKKytBQ19E RUZVTihbTFRfTElCX01dLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisr TElCTT0KKytjYXNlICRob3N0IGluCisrKi0qLWJlb3MqIHwgKi0qLWN5Z3dpbiogfCAqLSotcHcz MiogfCAqLSotZGFyd2luKikKKysgICMgVGhlc2Ugc3lzdGVtIGRvbid0IGhhdmUgbGlibSwgb3Ig ZG9uJ3QgbmVlZCBpdAorKyAgOzsKKysqLW5jci1zeXN2NC4zKikKKysgIEFDX0NIRUNLX0xJQiht dywgX213dmFsaWRjaGVja2wsIExJQk09Ii1sbXciKQorKyAgQUNfQ0hFQ0tfTElCKG0sIGNvcywg TElCTT0iJExJQk0gLWxtIikKKysgIDs7CisrKikKKysgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJ Qk09Ii1sbSIpCisrICA7OworK2VzYWMKKytBQ19TVUJTVChbTElCTV0pCisrXSkjIExUX0xJQl9N CisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbQUNfQ0hFQ0tfTElCTV0sIFtMVF9MSUJfTV0p CisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZV TihbQUNfQ0hFQ0tfTElCTV0sIFtdKQorKworKworKyMgX0xUX0NPTVBJTEVSX05PX1JUVEkoW1RB R05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK200X2RlZnVuKFtf TFRfQ09NUElMRVJfTk9fUlRUSV0sCisrW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRu bAorKworK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0K KysKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJworKworKyAgX0xUX0NP TVBJTEVSX09QVElPTihbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2Vw dGlvbnNdLAorKyAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucywKKysgICAg Wy1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLCBbXSwKKysgICAgW19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0iJF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9ub19idWlsdGluX2ZsYWcsICQxKSAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIl0pCisr ZmkKKytfTFRfVEFHREVDTChbbm9fYnVpbHRpbl9mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJfbm9f YnVpbHRpbl9mbGFnXSwgWzFdLAorKwlbQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGlu IGZ1bmN0aW9uc10pCisrXSkjIF9MVF9DT01QSUxFUl9OT19SVFRJCisrCisrCisrIyBfTFRfQ01E X0dMT0JBTF9TWU1CT0xTCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmdW4oW19M VF9DTURfR0xPQkFMX1NZTUJPTFNdLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0p ZG5sCisrQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9O TV0pZG5sCisrQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RF Q0xfU0VEXSlkbmwKKyttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbTRfcmVxdWly ZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrCisrIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFi IHRoZSByYXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KKytBQ19N U0dfQ0hFQ0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBv YmplY3RdKQorK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sCisr WworKyMgVGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3 IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUg b2xkZXIgdGhhbiBVbHRyaXg/ISEgOyldCisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmlu ZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVzLgorK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKKysKKysj IFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZy b20gQy4KKytzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpcKScKKysKKysjIERl ZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgq KQorKyAgc3ltY29kZT0nW1tCQ0RUXV0nCisrICA7OworK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMy KiB8IGNlZ2NjKikKKysgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCisrICA7OworK2hwdXgqKQor KyAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKysgICAgc3ltY29kZT0nW1tBQkNE RUdSU1RdXScKKysgIGZpCisrICA7OworK2lyaXgqIHwgbm9uc3RvcHV4KikKKysgIHN5bWNvZGU9 J1tbQkNERUdSU1RdXScKKysgIDs7Cisrb3NmKikKKysgIHN5bWNvZGU9J1tbQkNERUdRUlNUXV0n CisrICA7OworK3NvbGFyaXMqKQorKyAgc3ltY29kZT0nW1tCRFJUXV0nCisrICA7OworK3NjbzMu MnY1KikKKysgIHN5bWNvZGU9J1tbRFRdXScKKysgIDs7Cisrc3lzdjQuMnV3MiopCisrICBzeW1j b2RlPSdbW0RUXV0nCisrICA7OworK3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVu VU5JWCopCisrICBzeW1jb2RlPSdbW0FCRFRdXScKKysgIDs7Cisrc3lzdjQpCisrICBzeW1jb2Rl PSdbW0RGTlNUVV1dJworKyAgOzsKKytlc2FjCisrCisrIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0s IHRoZW4gdXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCisrY2FzZSBgJE5NIC1WIDI+JjFg IGluCisrKkdOVSogfCAqJ3dpdGggQkZEJyopCisrICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScg OzsKKytlc2FjCisrCisrIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8g YSBwcm9wZXIgQyBkZWNsYXJhdGlvbi4KKysjIFNvbWUgc3lzdGVtcyAoZXNwLiBvbiBpYTY0KSBs aW5rIGRhdGEgYW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwKKysjIHNvIHVzZSB0aGlzIGdl bmVyYWwgYXBwcm9hY2guCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAt biAtZSAncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2Rl KiAuKiBcKC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKKysKKysjIFRyYW5zZm9ybSBhbiBleHRy YWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKKyts dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146 IFwoW1teIF1dKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3lt Y29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0s L3AnIgorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVm aXg9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICop IDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwobGliW1teIF1dKlwpJC8gIHtc IlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwo W1teIF1dKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKKysKKysjIEhhbmRs ZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KKytvcHRfY3I9CisrY2FzZSAkYnVpbGRfb3MgaW4K KyttaW5ndyopCisrICBvcHRfY3I9YCRFQ0hPICd4XHswLDFcfScgfCB0ciB4ICdcMDE1J2AgIyBv cHRpb24gY3IgaW4gcmVnZXhwCisrICA7OworK2VzYWMKKysKKysjIFRyeSB3aXRob3V0IGEgcHJl Zml4IHVuZGVyc2NvcmUsIHRoZW4gd2l0aCBpdC4KKytmb3IgYWNfc3ltcHJmeCBpbiAiIiAiXyI7 IGRvCisrCisrICAjIFRyYW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8g YSByYXcgc3ltYm9sIGFuZCBhIEMgc3ltYm9sLgorKyAgc3lteGZybT0iXFwxICRhY19zeW1wcmZ4 XFwyIFxcMiIKKysKKysgICMgV3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4KKysgIGlm IHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBiaW4iOyB0aGVuCisrICAgICMg RmFrZSBpdCBmb3IgZHVtcGJpbiBhbmQgc2F5IFQgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9u CisrICAgICMgYW5kIEQgZm9yIGFueSBnbG9iYWwgdmFyaWFibGUuCisrICAgICMgQWxzbyBmaW5k IEMrKyBhbmQgX19mYXN0Y2FsbCBzeW1ib2xzIGZyb20gTVNWQysrLAorKyAgICAjIHdoaWNoIHN0 YXJ0IHdpdGggQCBvciA/LgorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSIkQVdL IFsnIlwKKysiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQgM307IlwKKysi ICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2Vj dGlvbl09MX07IlwKKysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8L3tuZXh0fTsiXAorKyIgICAg IC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07IlwKKysiICAg ICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7Zj0wfTsgXCQgMH4vXChcKS4q XHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07IlwKKysiICAgICB7c3BsaXQo XCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAorKyIgICAgIHNbMV1+L15bQD9d L3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNbMV1+cHJmeCB7c3BsaXQoc1sx XSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVuZ3RoKHByZngpKX0iXAorKyIg ICAgICcgcHJmeD1eJGFjX3N5bXByZnhdIgorKyAgZWxzZQorKyAgICBsdF9jdl9zeXNfZ2xvYmFs X3N5bWJvbF9waXBlPSJzZWQgLW4gLWUgJ3MvXi4qW1sJIF1dXCgkc3ltY29kZSRzeW1jb2RlKlwp W1sJIF1dW1sJIF1dKiRhY19zeW1wcmZ4JHN5bXBhdCRvcHRfY3IkLyRzeW14ZnJtL3AnIgorKyAg ZmkKKysKKysgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHBpcGUgd29ya3MgY29ycmVjdGx5Lgor KyAgcGlwZV93b3Jrcz1ubworKworKyAgcm0gLWYgY29uZnRlc3QqCisrICBjYXQgPiBjb25mdGVz dC4kYWNfZXh0IDw8X0xUX0VPRgorKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgewor KyNlbmRpZgorK2NoYXIgbm1fdGVzdF92YXI7Cisrdm9pZCBubV90ZXN0X2Z1bmModm9pZCk7Cisr dm9pZCBubV90ZXN0X2Z1bmModm9pZCl7fQorKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5k aWYKKytpbnQgbWFpbigpe25tX3Rlc3RfdmFyPSdhJztubV90ZXN0X2Z1bmMoKTtyZXR1cm4oMCk7 fQorK19MVF9FT0YKKysKKysgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisrICAg ICMgTm93IHRyeSB0byBncmFiIHRoZSBzeW1ib2xzLgorKyAgICBubGlzdD1jb25mdGVzdC5ubQor KyAgICBpZiBBQ19UUllfRVZBTChOTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNf Z2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgor KyAgICAgICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrICAgICAg aWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJbXYgLWYgIiRubGlz dCJUICIkbmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5saXN0IlQKKysgICAgICBmaQor KworKyAgICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2Ug bmVlZC4KKysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVs bDsgdGhlbgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7 IHRoZW4KKysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorKyNpZmRlZiBfX2Nw bHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19MVF9FT0YKKysJICAjIE5vdyBn ZW5lcmF0ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFj X2V4dCcKKysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysvKiBU aGUgbWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCisrY29uc3Qg c3RydWN0IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICAgICAgICphZGRyZXNzOwor K30KKytsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW1tdXSA9CisreworKyAgeyAi QFBST0dSQU1AIiwgKHZvaWQgKikgMCB9LAorK19MVF9FT0YKKysJICAkU0VEICJzL14kc3ltY29k ZSRzeW1jb2RlKiBcKC4qXCkgXCguKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC8iIDwg IiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQKKysJICBjYXQgPDxc X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CisrICB7MCwgKHZvaWQgKikgMH0KKyt9OworKwor Ky8qIFRoaXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtlciAqLworKyNp ZmRlZiBGUkVFQlNEX1dPUktBUk9VTkQKKytzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVk X3NldHVwKCkgeworKyAgcmV0dXJuIGx0X19QUk9HUkFNX19MVFhfcHJlbG9hZGVkX3N5bWJvbHM7 CisrfQorKyNlbmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWYKKytfTFRf RU9GCisrCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KKysJICBtdiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKKysJICBsdF9zYXZlX0xJQlM9IiRMSUJT IgorKwkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorKwkgIExJQlM9ImNvbmZ0c3RtLiRhY19v YmpleHQiCisrCSAgQ0ZMQUdTPSIkQ0ZMQUdTJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9u b19idWlsdGluX2ZsYWcsICQxKSIKKysJICBpZiBBQ19UUllfRVZBTChhY19saW5rKSAmJiB0ZXN0 IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAgICBwaXBlX3dvcmtzPXllcworKwkg IGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFH UyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3Qi ID4mQVNfTUVTU0FHRV9MT0dfRkQKKysJZmkKKysgICAgICBlbHNlCisrCWVjaG8gImNhbm5vdCBm aW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiZBU19NRVNTQUdFX0xPR19GRAorKyAgICAgIGZp CisrICAgIGVsc2UKKysgICAgICBlY2hvICJjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF9waXBlIiA+JkFTX01FU1NBR0VfTE9HX0ZECisrICAgIGZpCisrICBlbHNlCisrICAgIGVj aG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiZBU19NRVNTQUdFX0xPR19GRAor KyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysgIGZpCisrICBybSAtcmYgY29uZnRlc3Qq IGNvbmZ0c3QqCisrCisrICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9zeW1ib2xfcGlwZSB1bmxl c3MgaXQgd29ya3MuCisrICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5ZXM7IHRoZW4KKysgICAg YnJlYWsKKysgIGVsc2UKKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0KKysgIGZp CisrZG9uZQorK10pCisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUi OyB0aGVuCisrICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0KKytmaQorK2lmIHRl c3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlJGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NkZWNsIjsgdGhlbgorKyAgQUNfTVNHX1JFU1VMVChmYWlsZWQpCisrZWxzZQorKyAg QUNfTVNHX1JFU1VMVChvaykKKytmaQorKworK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3BpcGVd LCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwKKysgICAgW1Rha2UgdGhlIG91 dHB1dCBvZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFt ZXNdKQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgW2x0X2N2X3N5c19nbG9i YWxfc3ltYm9sX3RvX2NkZWNsXSwgWzFdLAorKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Yg bm0gaW4gYSBwcm9wZXIgQyBkZWNsYXJhdGlvbl0pCisrX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xf dG9fY19uYW1lX2FkZHJlc3NdLAorKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19u YW1lX2FkZHJlc3NdLCBbMV0sCisrICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBh IEMgbmFtZSBhZGRyZXNzIHBhaXJdKQorK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFt ZV9hZGRyZXNzX2xpYl9wcmVmaXhdLAorKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9f Y19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKKysgICAgW1RyYW5zZm9ybSB0aGUgb3V0 cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVl ZGVkXSkKKytdKSAjIF9MVF9DTURfR0xPQkFMX1NZTUJPTFMKKysKKysKKysjIF9MVF9DT01QSUxF Ul9QSUMoW1RBR05BTUVdKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRfZGVm dW4oW19MVF9DT01QSUxFUl9QSUNdLAorK1ttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlk bmwKKytfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0KKytfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPQorKworK0FDX01TR19DSEVDS0lORyhbZm9yICRjb21waWxlciBvcHRpb24gdG8g cHJvZHVjZSBQSUNdKQorK200X2lmKFskMV0sIFtDWFhdLCBbCisrICAjIEMrKyBzcGVjaWZpYyBj YXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsg dGhlbgorKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworKwor KyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUg aXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlY IDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisr ICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAg ICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisr ICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBh dCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAg ICAgICAgICMgYWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRp bmcgYW55dGhpbmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAg ICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1y ZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMK KysgICAgICA7OworKworKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCog fCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9y IHRoZXNlIE9TZXMuCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBw dzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2Ug ZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5j bHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4K KysgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5l ZWQgdGhpcyBmb3Igb2xkLXN0eWxlCisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBs aWJyYXJpZXMKKysgICAgICBtNF9pZihbJDFdLCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrICAg IGRhcndpbiogfCByaGFwc29keSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhp cyBwbGF0Zm9ybQorKyAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlM SUIgZmlsZXMKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1m bm8tY29tbW9uJworKyAgICAgIDs7CisrICAgICpkamdwcCopCisrICAgICAgIyBESkdQUCBkb2Vz IG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgYXQgYWxsCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQorKyAgICAgIDs7CisrICAgIGludGVyaXhbWzMtOV1d KikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRl IGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJh cmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0 ZXN0IC1kIC91c3IvbmVjOyB0aGVuCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0tS2NvbmZvcm1fcGljCisrICAgICAgZmkKKysgICAgICA7OworKyAgICBocHV4KikKKysg ICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZv ciAzMi1iaXQKKysgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBk ZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKKysgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1v ZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAg ICAgaHBwYSo2NCopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3BpYywgJDEpPSctZlBJQycKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysgICAg KnFueCogfCAqbnRvKikKKysgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRl ZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAgICMgaXQgd2lsbCBjb3Jl ZHVtcC4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElD IC1zaGFyZWQnCisrICAgICAgOzsKKysgICAgKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGVsc2UK KysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAgIGFpeFtbNC05XV0qKQorKwkjIEFsbCBBSVgg Y29kZSBpcyBQSUMuCisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBB SVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9jZXNzb3IKKysJICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAn CisrCWZpCisrCTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJ Y3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICMgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAt dSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5h ICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEi CisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGRndXgqKQorKwljYXNlICRjY19iYXNlbmFt ZSBpbgorKwkgIGVjKysqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctS1BJQycKKysJICAgIDs7CisrCSAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMr KyBDb21waWxlcgorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct cGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGZy ZWVic2QqIHwgZHJhZ29uZmx5KikKKysJIyBGcmVlQlNEIHVzZXMgR05VIEMrKworKwk7OworKyAg ICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgor KwkgIENDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2ws JworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1h ICR7d2x9YXJjaGl2ZScKKysJICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgor KwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJworKwkgICAg ZmkKKysJICAgIDs7CisrCSAgYUNDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRp YywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKKysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisr CSAgICBocHBhKjY0KnxpYTY0KikKKysJICAgICAgIyArWiB0aGUgZGVmYXVsdAorKwkgICAgICA7 OworKwkgICAgKikKKysJICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PScrWicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7 CisrCWVzYWMKKysJOzsKKysgICAgICBpbnRlcml4KikKKysJIyBUaGlzIGlzIGM4OSwgd2hpY2gg aXMgTVMgVmlzdWFsIEMrKyAobm8gc2hhcmVkIGxpYnMpCisrCSMgQW55b25lIHdhbnRzIHRvIGRv IGEgcG9ydD8KKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKwlj YXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKKysJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMg dGhlIGRlZmF1bHQuCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7Cisr ICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBL Q0MqKQorKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLS1iYWNrZW5kIC1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwkgICAgOzsKKysJICBlY3BjKiApCisrCSAg ICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMu CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCisrCSAgICA7Owor KwkgIGljcGMqICkKKysJICAgICMgSW50ZWwgQysrLCB1c2VkIHRvIGJlIGluY29tcGF0aWJsZSB3 aXRoIEdDQy4KKysJICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNjZXB0IC1LUElDIGFueSBtb3JlLgor KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworKwkgICAgOzsKKysJ ICBwZ0NDKiB8IHBnY3BwKikKKysJICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisr CSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysJICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJ ICBjeHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZs YWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFu ZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKwkgICAgOzsKKysJICB4bGMqIHwgeGxDKikK KysJICAgICMgSUJNIFhMIDguMCBvbiBQUEMKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctV2wsJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3Bp YywgJDEpPSctcXBpYycKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMs ICQxKT0nLXFzdGF0aWNsaW5rJworKwkgICAgOzsKKysJICAqKQorKwkgICAgY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCisrCSAgICAqU3VuXCBDKikKKysJICAgICAgIyBTdW4gQysrIDUu OQorKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwor KwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JworKwkgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVFvcHRpb24g bGQgJworKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgIGx5bnhvcyopCisrCTs7CisrICAgICAgbTg4ayopCisrCTs7CisrICAgICAgbXZzKikKKysJ Y2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBjeHgqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPSctVyBjLGV4cG9ydGFsbCcKKysJICAgIDs7CisrCSAgKikKKysJ ICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBuZXRic2QqKQorKwk7OworKyAgICAgICpxbngq IHwgKm50byopCisrICAgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmlu ZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAgICAgIyBpdCB3aWxsIGNvcmVk dW1wLgorKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJ QyAtc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisr CWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgS0NDKikKKysJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKKysJICAgIDs7CisrCSAgUkNDKikK KysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICA7OworKwkgIGN4eCopCisrCSAgICAjIERpZ2l0 YWwvQ29tcGFxIEMrKworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrCSAgICAjIE1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBl YXJzIHRoYXQgYWxsIEFscGhhCisrCSAgICAjIExpbnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBv YmplY3RzIGFyZSBQSUMuCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9CisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25f c2hhcmVkJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAgICAg IHBzb3MqKQorKwk7OworKyAgICAgIHNvbGFyaXMqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgor KwkgIENDKikKKysJICAgICMgU3VuIEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKKysJ ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKKysJICAg IDs7CisrCSAgZ2N4KikKKysJICAgICMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCisrCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisrCSAgICA7OworKwkg ICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgc3Vub3M0KikKKysJY2FzZSAkY2Nf YmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1waWMnCisrCSAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgICAgOzsKKysJICBsY2Mq KQorKwkgICAgIyBMdWNpZAorKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywg JDEpPSctcGljJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7OworKyAg ICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCop CisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgQ0MqKQorKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfcGljLCAkMSk9Jy1LUElDJworKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICB0 YW5kZW0qKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIE5DQyopCisrCSAgICAjIE5vblN0 b3AtVVggTkNDIDMuMjAKKysJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAg ICAgdnh3b3JrcyopCisrCTs7CisrICAgICAgKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKwk7OworKyAgICBlc2FjCisrICBmaQorK10s CisrWworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAg ICAgIGFpeCopCisrICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJv Y2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0 aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikKKysgICAgICBjYXNl ICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAgIyBzZWUgY29tbWVu dCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCisrICAgICAgICA7OworKyAgICAgIG02OGsp CisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2ODAyMCBjb2RlIHRvIGJ1 aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMgYWRkaW5nIHRoZSBgLW02 ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhpbmcgYmV0dGVyLAorKyAg ICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3Rv cmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBiZW9z KiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSop CisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAgOzsK KysKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAg ICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVy IGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQg c2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRo ZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxl CisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBtNF9p ZihbJDFdLCBbR0NKXSwgW10sCisrCVtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1ERExMX0VYUE9SVCddKQorKyAgICAgIDs7CisrCisrICAgIGRhcndpbiogfCByaGFwc29k eSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQorKyAgICAg ICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKKysgICAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJworKyAgICAg IDs7CisrCisrICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1i aXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAgICMgUEEgSFAtVVguICBPbiBJ QTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZworKyAgICAgICMg c2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisrICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJIyArWiB0aGUgZGVmYXVsdAor Kwk7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZQSUMnCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGludGVyaXhbWzMt OV1dKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVy YXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxp YnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrCisrICAgIG1zZG9zZGpncHAqKQorKyAg ICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBtZWFuIHdlIHN1ZGRlbmx5IGdl dCBzaGFyZWQgbGlicmFyaWVzCisrICAgICAgIyBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9y dCB0aGVtLgorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hh cmVkLCAkMSk9bm8KKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisrICAgICAgOzsKKysKKysgICAg Km50byogfCAqcW54KikKKysgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRl ZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQorKyAgICAgICMgaXQgd2lsbCBjb3Jl ZHVtcC4KKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElD IC1zaGFyZWQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3Qg LWQgL3Vzci9uZWM7IHRoZW4KKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PS1LY29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKKysgICAgICA7Owor KyAgICBlc2FjCisrICBlbHNlCisrICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3Mg bGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KKysgICAgY2FzZSAkaG9z dF9vcyBpbgorKyAgICBhaXgqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJworKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisr CSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCV9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisrICAgICAgZWxzZQorKwlfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ibnNvIC1iSTovbGliL3N5c2NhbGxz LmV4cCcKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBw dzMyKiB8IG9zMiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUg c291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAgICMgYnVpbHQg Zm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhh bXBsZSkuCisrICAgICAgbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorKwlbX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctRERMTF9FWFBPUlQnXSkKKysgICAgICA7OworKworKyAg ICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfd2wsICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3Ig SUE2NCBIUC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKKysgICAgICAjIG5vdCBmb3IgUEEgSFAt VVguCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBocHBhKjY0KnxpYTY0KikKKysJ IyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nK1onCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhl cmUgYSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBi dW5kbGVkIENDPworKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrICAgICAgOzsKKysKKysgICAgaXJpeDUqIHwgaXJp eDYqIHwgbm9uc3RvcHV4KikKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLVdsLCcKKysgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQuCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJl ZCcKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCisrICAgICAgIyBvbGQgSW50ZWwgZm9yIHg4Nl82NCB3aGljaCBzdGls bCBzdXBwb3J0ZWQgLUtQSUMuCisrICAgICAgZWNjKikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0nLUtQSUMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBpY2MgdXNlZCB0byBiZSBpbmNvbXBhdGli bGUgd2l0aCBHQ0MuCisrICAgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1v cmUuCisrICAgICAgaWNjKiB8IGlmb3J0KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LWZQSUMnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRp YycKKysgICAgICAgIDs7CisrICAgICAgIyBMYWhleSBGb3J0cmFuIDguMS4KKysgICAgICBsZjk1 KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrCV9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLS1zaGFyZWQnCisrCV9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMnCisrCTs7CisrICAgICAgcGdj YyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSopCisrICAgICAgICAjIFBvcnRsYW5kIEdyb3Vw IGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorKwkjIHdoaWNoIGxv b2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf d2wsICQxKT0nLVdsLCcKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct ZnBpYycKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRp YycKKysgICAgICAgIDs7CisrICAgICAgY2NjKikKKysgICAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPSctV2wsJworKyAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQ SUMuCisrICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1u b25fc2hhcmVkJworKyAgICAgICAgOzsKKysgICAgICB4bCopCisrCSMgSUJNIFhMIEMgOC4wL0Zv cnRyYW4gMTAuMSBvbiBQUEMKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9 Jy1XbCwnCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMnCisr CV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJwor Kwk7OworKyAgICAgICopCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3Vu XCBDKikKKysJICAjIFN1biBDIDUuOQorKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKT0nLUtQSUMnCisrCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctQnN0YXRpYycKKysJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKKysJICA7OworKwkqU3VuXCBGKikKKysJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMg YWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisrCSAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29t cGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPScnCisrCSAgOzsKKysJZXNhYworKwk7OworKyAgICAgIGVzYWMKKysgICAg ICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLUtQSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICA7OworKworKyAgICAqbnRvKiB8ICpxbngqKQor KyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0 aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgorKyAgICAgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKKysgICAg ICA7OworKworKyAgICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisrICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBp cyBQSUMuCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSct bm9uX3NoYXJlZCcKKysgICAgICA7OworKworKyAgICByZG9zKikKKysgICAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7Cisr CisrICAgIHNvbGFyaXMqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0nLUtQSUMnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctQnN0YXRpYycKKysgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgIGY3Nyog fCBmOTAqIHwgZjk1KikKKysJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1R b3B0aW9uIGxkICc7OworKyAgICAgICopCisrCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93 bCwgJDEpPSctV2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCop CisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxk ICcKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1QSUMnCisr ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycK KysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCisrICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKKysgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworKyAgICAgIDs7Cisr CisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtjb25mb3JtX3BpYycKKysJX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMuMnY1KiB8IHNj bzV2NiogfCBPcGVuVU5JWCopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctS1BJQycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgIHVuaWNvcyopCisrICAgICAgX0xUX1RBR1ZB UihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisrICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrCisrICAg IHV0czQqKQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXBp YycKKysgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJworKyAgICAgIDs7CisrCisrICAgICopCisrICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubworKyAgICAgIDs7CisrICAgIGVzYWMKKysg IGZpCisrXSkKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8g bm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKKysgICpkamdwcCopCisrICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KKysgICAgOzsKKysgICopCisr ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0iJF9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihb JDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgorKyAgICA7OworK2VzYWMKKytBQ19NU0dfUkVTVUxU KFskX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpXSkKKytfTFRfVEFHREVDTChb d2xdLCBbbHRfcHJvZ19jb21waWxlcl93bF0sIFsxXSwKKysJW0hvdyB0byBwYXNzIGEgbGlua2Vy IGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXJdKQorKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3Vy ZSB0aGUgUElDIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiOyB0aGVuCisrICBfTFRfQ09NUElMRVJfT1BU SU9OKFtpZiAkY29tcGlsZXIgUElDIGZsYWcgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9w aWMsICQxKSB3b3Jrc10sCisrICAgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfcGlj X3dvcmtzLCAkMSldLAorKyAgICBbJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KUAmdEBtNF9pZihbJDFdLFtdLFsgLURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtd KV0pXSwgW10sCisrICAgIFtjYXNlICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSkgaW4KKysgICAgICIiIHwgIiAiKikgOzsKKysgICAgICopIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0iICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSki IDs7CisrICAgICBlc2FjXSwKKysgICAgW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0KKysgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVk LCAkMSk9bm9dKQorK2ZpCisrX0xUX1RBR0RFQ0woW3BpY19mbGFnXSwgW2x0X3Byb2dfY29tcGls ZXJfcGljXSwgWzFdLAorKwlbQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcg bGlicmFyeSBvYmplY3RzXSkKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRp YyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSkgZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpXCIKKytfTFRfTElOS0VSX09QVElPTihbaWYgJGNvbXBpbGVy IHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3NdLAorKyAgX0xUX1RBR1ZBUihs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcywgJDEpLAorKyAgJGx0X3RtcF9zdGF0aWNf ZmxhZywKKysgIFtdLAorKyAgW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQx KT1dKQorK19MVF9UQUdERUNMKFtsaW5rX3N0YXRpY19mbGFnXSwgW2x0X3Byb2dfY29tcGlsZXJf c3RhdGljXSwgWzFdLAorKwlbQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMgbGlua2lu Z10pCisrXSkjIF9MVF9DT01QSUxFUl9QSUMKKysKKysKKysjIF9MVF9MSU5LRVJfU0hMSUJTKFtU QUdOQU1FXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFNlZSBpZiB0aGUg bGlua2VyIHN1cHBvcnRzIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJpZXMuCisrbTRfZGVmdW4oW19M VF9MSU5LRVJfU0hMSUJTXSwKKytbQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCisrQUNfUkVR VUlSRShbTFRfUEFUSF9OTV0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxU U10pZG5sCisrbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorK200X3JlcXVpcmUoW19M VF9ERUNMX1NFRF0pZG5sCisrbTRfcmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5s CisrbTRfcmVxdWlyZShbX0xUX1RBR19DT01QSUxFUl0pZG5sCisrQUNfTVNHX0NIRUNLSU5HKFt3 aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXNdKQorK200X2lmKFskMV0sIFtDWFhdLCBbCisrICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3Bp cGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xz JworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4W1s0LTldXSopCisrICAgICMgSWYgd2UncmUg dXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKyAgICAj IC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdp dGggR05VIG5tCisrICAgIGlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7 IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1C cGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8 fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkg IT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xz JworKyAgICBlbHNlCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9 JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9 PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwk IDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0 X3N5bWJvbHMnCisrICAgIGZpCisrICAgIDs7CisrICBwdzMyKikKKysgICAgX0xUX1RBR1ZBUihl eHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9IiRsdGRsbF9jbWRzIgorKyAgOzsKKysgIGN5Z3dpbiog fCBtaW5ndyogfCBjZWdjYyopCisrICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywg JDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRT RUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEv Oy9eLipbWyBdXV9fbm1fXy9zL14uKltbIF1dX19ubV9fXChbW14gXV0qXClbWyBdXVtbXiBdXSov XDEgREFUQS87L15JW1sgXV0vZDsvXltbQUlUV11dW1sgXV0vcy8uKiAvLydcJycgfCBzb3J0IHwg dW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysgIDs7CisrICAqKQorKyAgICBfTFRfVEFHVkFSKGV4 cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9i YWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4 cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMKKysgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBz eW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQorK10s IFsKKysgIHJ1bnBhdGhfdmFyPQorKyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPQorKyAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubwor KyAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8K KysgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrICBfTFRfVEFH VkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8 ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlx ID4gJGV4cG9ydF9zeW1ib2xzJworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQx KT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKyAgX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubworKyAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQsICQxKT0KKysgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciwgJDEpPQorKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KKysgIF9MVF9U QUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrICBfTFRfVEFH VkFSKGluaGVyaXRfcnBhdGgsICQxKT1ubworKyAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJz LCAkMSk9dW5rbm93bgorKyAgX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorKyAgX0xUX1RB R1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KKysgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVf ZnJvbV9uZXdfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcywgJDEpPQorKyAgX0xUX1RBR1ZBUih0aHJlYWRfc2FmZV9mbGFnX3NwZWMsICQxKT0K KysgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICMgaW5jbHVk ZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIHN5bWJvbHMgdG8g YmUgKmFsd2F5cyoKKysgICMgaW5jbHVkZWQgaW4gdGhlIHN5bWJvbCBsaXN0CisrICBfTFRfVEFH VkFSKGluY2x1ZGVfZXhwc3ltcywgJDEpPQorKyAgIyBleGNsdWRlX2V4cHN5bXMgY2FuIGJlIGFu IGV4dGVuZGVkIHJlZ2V4cCBvZiBzeW1ib2xzIHRvIGV4Y2x1ZGUKKysgICMgaXQgd2lsbCBiZSB3 cmFwcGVkIGJ5IGAgKCcgYW5kIGApJCcsIHNvIG9uZSBtdXN0IG5vdCBtYXRjaCBiZWdpbm5pbmcg b3IKKysgICMgZW5kIG9mIGxpbmUuICBFeGFtcGxlOiBgYXxiY3wuKmQuKicgd2lsbCBleGNsdWRl IHRoZSBzeW1ib2xzIGBhJyBhbmQgYGJjJywKKysgICMgYXMgd2VsbCBhcyBhbnkgc3ltYm9sIHRo YXQgY29udGFpbnMgYGQnLgorKyAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ19H TE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKiddCisrICAjIEFsdGhvdWdoIF9H TE9CQUxfT0ZGU0VUX1RBQkxFXyBpcyBhIHZhbGlkIHN5bWJvbCBDIG5hbWUsIG1vc3QgYS5vdXQK KysgICMgcGxhdGZvcm1zIChhYil1c2UgaXQgaW4gUElDIGNvZGUsIGJ1dCB0aGVpciBsaW5rZXJz IGdldCBjb25mdXNlZCBpZgorKyAgIyB0aGUgc3ltYm9sIGlzIGV4cGxpY2l0bHkgcmVmZXJlbmNl ZC4gIFNpbmNlIHBvcnRhYmxlIGNvZGUgY2Fubm90CisrICAjIHJlbHkgb24gdGhpcyBzeW1ib2wg bmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KKysgICMgcHJl bG9hZGVkIHN5bWJvbCB0YWJsZXMuCisrICAjIEV4Y2x1ZGUgc2hhcmVkIGxpYnJhcnkgaW5pdGlh bGl6YXRpb24vZmluYWxpemF0aW9uIHN5bWJvbHMuCisrZG5sIE5vdGUgYWxzbyBhZGp1c3QgZXhj bHVkZV9leHBzeW1zIGZvciBDKysgYWJvdmUuCisrICBleHRyYWN0X2V4cHN5bXNfY21kcz0KKysK KysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2Nj KikKKysgICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3RlZCBpbiBh IGxvb29vbmcgdGltZQorKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFz c3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgorKyAg ICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KKysgICAgICB3aXRoX2dudV9sZD1ubworKyAg ICBmaQorKyAgICA7OworKyAgaW50ZXJpeCopCisrICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0 aGlzIGlzIGdjYyBhbmQgbm90IGM4OSAoPSBNU1ZDKyspCisrICAgIHdpdGhfZ251X2xkPXllcwor KyAgICA7OworKyAgb3BlbmJzZCopCisrICAgIHdpdGhfZ251X2xkPW5vCisrICAgIDs7CisrICBl c2FjCisrCisrICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKyAgaWYgdGVzdCAiJHdp dGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBu b3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICB3bGFyYz0nJHt3bH0nCisrCisrICAg ICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBv cnQuIFRoZXNlCisrICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJl IG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8g YmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCisrICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRI CisrICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1y cGF0aCAke3dsfSRsaWJkaXInCisrICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKysgICAgIyBhbmNpZW50IEdOVSBsZCBk aWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorKyAgICBpZiAkTEQgLS1oZWxw IDI+JjEgfCAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKysgICAg ICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9IiR3bGFyYyInLS13aG9s ZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisrICAg IGVsc2UKKysgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Cisr ICAgIGZpCisrICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubworKyAgICBjYXNlIGAkTEQg LXYgMj4mMWAgaW4KKysgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4x MC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorKyAgICAgICpcIDIuMTEuOTMuMC4yXCAq KSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisrICAgICAgKlwg Mi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJh a2UgOC4yIC4uLgorKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisr ICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworKyAgICBlc2FjCisrCisr ICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgorKyAgICBjYXNl ICRob3N0X29zIGluCisrICAgIGFpeFtbMy05XV0qKQorKyAgICAgICMgT24gQUlYL1BQQywgdGhl IEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9 IGlhNjQ7IHRoZW4KKysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwljYXQgPDxfTFRf RU9GIDE+JjIKKysKKysqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRv IHJlbGVhc2UgMi45LjEsIGlzIHJlcG9ydGVkCisrKioqIHRvIGJlIHVuYWJsZSB0byByZWxpYWJs eSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBBSVguCisrKioqIFRoZXJlZm9yZSwgbGlidG9v bCBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgSWYgeW91CisrKioqIHJl YWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlv dXIgUEFUSAorKyoqKiBzbyB0aGF0IGEgbm9uLUdOVSBsaW5rZXIgaXMgZm91bmQsIGFuZCB0aGVu IHJlc3RhcnQuCisrCisrX0xUX0VPRgorKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgYW1p Z2FvcyopCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICBwb3dlcnBjKQorKyAgICAg ICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKKysgICAgICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicK KysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJworKyAg ICAgICAgOzsKKysgICAgICBtNjhrKQorKyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVm aW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNI TyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh dGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhs aWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0 X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFO TElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCisrICAgICAg ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRp cicKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKKysg ICAgICAgIDs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIGJlb3MqKQorKyAgICAg IGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicg PiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PXVuc3VwcG9ydGVkCisrCSMgSm9zZXBoIEJlY2tlbmJhY2ggPGpyYjNAYmVzdC5jb20+IHNheXMg c29tZSByZWxlYXNlcyBvZiBnY2MKKysJIyBzdXBwb3J0IC0tdW5kZWZpbmVkLiAgVGhpcyBkZXNl cnZlcyBzb21lIGludmVzdGlnYXRpb24uICBGSVhNRQorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBjeWd3aW4q IHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKKysgICAgICAj IGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgX0xUX1RB R1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAgICAgX0xUX1RB R1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcworKyAgICAgIF9MVF9UQUdW QVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwg JGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipb WyBdXVwoW1teIF1dKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW1tBSVRXXV1bWyBd XS9zLy4qW1sgXV0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKysKKysg ICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxs OyB0aGVuCisrICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNv bmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIg LVhsaW5rZXIgJGxpYicKKysJIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlz IGEgLmRlZiBmaWxlICgxc3QgbGluZQorKwkjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90 aGVyd2lzZSwgcHJlcGVuZC4uLgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4K KysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCWVs c2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysJICBj YXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwlmaX4K KysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJs ZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisr ICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICBpbnRlcml4W1szLTldXSopCisrICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT1ubworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHlu YW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysgICAgICAjIEhhY2s6IE9uIEludGVyaXgg My54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCisrICAg ICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1hZ2UgYmFz ZSAoMHgxMDAwMDAwMCBieQorKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5 IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysgICAgICAjIGNvbnN1bWlu ZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5k b20sCisrICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAw MDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluaworKyAgICAgICMgdGltZS4gIE1vdmluZyB1cCBmcm9t IDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKyAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFnZS1iYXNl LGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1v ICRsaWInCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3NlZCAi cyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRD QyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYg LyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAgICAgOzsKKysKKysgICAg Z251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251KQorKyAgICAgIHRtcF9kaWV0PW5vCisr ICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KKysJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15ZXM7OwkjIGxpbnV4LWRpZXRs aWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJZXNhYworKyAgICAgIGZpCisr ICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCisrICAgICAg dGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCisrCWNhc2Ug JGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQg R3JvdXAgQyBjb21waWxlcgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsg ZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVu Y2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13 aG9sZS1hcmNoaXZlJworKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJworKwkgIDs7CisrCXBn Zjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21w aWxlcnMKKysJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1u IFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7 IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2 ZScKKysJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKKysJZWNjKixpYTY0 KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0CisrCSAgdG1wX2FkZGZs YWc9JyAtaV9keW5hbWljJyA7OworKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVs IEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYyAt bm9mb3JfbWFpbicgOzsKKysJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGls ZXIKKysJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworKwlsZjk1KikJCQkJIyBMYWhl eSBGb3J0cmFuIDguMQorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0KKysJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQnIDs7CisrCXhsW1tjQ11dKikJCQkjIElC TSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCisrCSAgdG1wX3NoYXJlZGZs YWc9Jy1xbWtzaHJvYmonCisrCSAgdG1wX2FkZGZsYWc9IDs7CisrCWVzYWMKKysJY2FzZSBgJEND IC1WIDI+JjEgfCBzZWQgNXFgIGluCisrCSpTdW5cIEMqKQkJCSMgU3VuIEMgNS45CisrCSAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2 ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252 XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKKysJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcworKwkg IHRtcF9zaGFyZWRmbGFnPSctRycgOzsKKysJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMK KysJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CisrCWVzYWMKKysJX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxp YicKKysKKysgICAgICAgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5 ZXM7IHRoZW4KKysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBj YXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29i amRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICRDQyAnIiR0bXBfc2hhcmVkZmxhZyIiJHRtcF9h ZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5h bWUudmVyIC1vICRsaWInCisrICAgICAgICBmaQorKworKwljYXNlICRjY19iYXNlbmFtZSBpbgor Kwl4bGYqKQorKwkgICMgSUJNIFhMIEZvcnRyYW4gMTAuMSBvbiBQUEMgY2Fubm90IGNyZWF0ZSBz aGFyZWQgbGlicyBpdHNlbGYKKysJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj LCAkMSk9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCisr CSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrCSAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwor KwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKKysJICBpZiB0 ZXN0ICJ4JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisrCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRw dXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyB8IHNl ZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkg ICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4K KysJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1z b25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy IC1vICRsaWInCisrCSAgZmkKKysJICA7OworKwllc2FjCisrICAgICAgZWxzZQorKyAgICAgICAg X0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysg ICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwor Kwl3bGFyYz0KKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1i b2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysg ICAgICBpZiAkTEQgLXYgMj4mMSB8ICRHUkVQICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4K KysJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwljYXQgPDxfTFRfRU9GIDE+JjIKKysK KysqKiogV2FybmluZzogVGhlIHJlbGVhc2VzIDIuOC4qIG9mIHRoZSBHTlUgbGlua2VyIGNhbm5v dCByZWxpYWJseQorKyoqKiBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTb2xhcmlzIHN5c3Rl bXMuICBUaGVyZWZvcmUsIGxpYnRvb2wKKysqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJp ZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91IHRvIHVwZ3JhZGUgR05VCisrKioqIGJpbnV0aWxzIHRv IHJlbGVhc2UgMi45LjEgb3IgbmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKKysq KiogeW91ciBQQVRIIG9yIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZl IGxpbmtlciBpcworKyoqKiB1c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgorKworK19MVF9FT0YKKysg ICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q IGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5 bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9 bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNj bzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCisrICAgICAgY2FzZSBgJExEIC12IDI+JjFg IGluCisrICAgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4xW1swLTVd XS4qKQorKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCWNhdCA8PF9MVF9FT0YgMT4m MgorKworKyoqKiBXYXJuaW5nOiBSZWxlYXNlcyBvZiB0aGUgR05VIGxpbmtlciBwcmlvciB0byAy LjE2LjkxLjAuMyBjYW4gbm90CisrKioqIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVz IG9uIFNDTyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCisrKioqIGlzIGRpc2FibGluZyBz aGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQorKyoq KiBiaW51dGlscyB0byByZWxlYXNlIDIuMTYuOTEuMC4zIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRp b24gaXMgdG8gbW9kaWZ5CisrKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9u IHNvIHRoYXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKKysqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFy dC4KKysKKytfTFRfRU9GCisrCTs7CisrCSopCisrCSAgIyBGb3Igc2VjdXJpdHkgcmVhc29ucywg aXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGFsd2F5cworKwkgICMgdXNlIGFic29s dXRlIHBhdGhzIGZvciBuYW1pbmcgc2hhcmVkIGxpYnJhcmllcywgYW5kIGV4Y2x1ZGUgdGhlCisr CSAgIyBEVF9SVU5QQVRIIHRhZyBmcm9tIGV4ZWN1dGFibGVzIGFuZCBsaWJyYXJpZXMuICBCdXQg ZG9pbmcgc28KKysJICAjIHJlcXVpcmVzIHRoYXQgeW91IGNvbXBpbGUgZXZlcnl0aGluZyB0d2lj ZSwgd2hpY2ggaXMgYSBwYWluLgorKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1 cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxp YicKKysJICBlbHNlCisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgZmkK KysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFy ZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIHds YXJjPQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKwor KyAgICAqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0 YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wk ZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYg dGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm87IHRoZW4KKysgICAgICBydW5w YXRoX3Zhcj0KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0KKysgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQorKyAg ICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICAgZmkKKysg IGVsc2UKKysgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVt J3MgbGlua2VyIChub3QgR05VIGxkKQorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeDMq KQorKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRl ZAorKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRMRCAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBvcnRf c3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0X29i amRpci8kc29uYW1lJworKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRoZSBk aXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCisrICAgICAgIyBhcmUgbm8gZGlyZWN0b3Jp ZXMgc3BlY2lmaWVkIGJ5IC1MLgorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwg JDEpPXllcworKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KKysJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5nIG5v ciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCisrCSMgYnJva2VuIGNvbGxlY3Qy LgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCisrICAgICAg ZmkKKysgICAgICA7OworKworKyAgICBhaXhbWzQtOV1dKikKKysgICAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4gdGlt ZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0CisrCSMgaGF2ZSB0byBkbyBhbnl0aGlu ZyBzcGVjaWFsLgorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCWV4cF9zeW1fZmxhZz0n LUJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9IiIKKysgICAgICBlbHNlCisrCSMgSWYgd2UncmUg dXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgorKwkjIC1D IG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGgg R05VIG5tCisrCWlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4K KysJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9i anMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9 PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChbc3Vic3RyXShcJCAzLDEsMSkgIT0gIi4iKSkg eyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJworKwllbHNl CisrCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQkNwZyAkbGli b2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAy ID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIp KSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrCWZp CisrCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysKKysJIyBUZXN0IGlmIHdlIGFyZSB0cnlp bmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCisrCSMgQUlYIHN0eWxlIGxpbmtp bmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKwkjIG5lZWQgdG8gZG8g cnVudGltZSBsaW5raW5nLgorKwljYXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFpeDQuW1sy M11dLip8YWl4W1s1LTldXSopCisrCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAg aWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRs Iik7IHRoZW4KKysJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCisrCSAgICBicmVhawor KwkgIGZpCisrCSAgZG9uZQorKwkgIDs7CisrCWVzYWMKKysKKysJZXhwX3N5bV9mbGFnPSctYmV4 cG9ydCcKKysJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JworKyAgICAgIGZpCisrCisrICAgICAg IyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlY IGxkIGNhbgorKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29u dGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQorKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRz IGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgIyBD WFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBu b3QKKysgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2Mg dG8gTERGTEFHUy4KKysKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCisr ICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JworKyAgICAgIF9MVF9UQUdWQVIobGlu a19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMs ICQxKT0nJHt3bH0tZiwnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJ Y2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiopCisrCSMgV2Ugb25s eSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjaworKwkjIGJl bG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKKysJICBjb2xs ZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisrCSAgaWYgdGVzdCAt ZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAkR1JF UCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgIyBXZSBoYXZlIHJl d29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkgIGVsc2UKKysJICAjIFdlIGhhdmUgb2xkIGNvbGxl Y3QyCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT11bnN1cHBvcnRlZAorKwkg ICMgSXQgZmFpbHMgdG8gZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0 YWxsZWQKKysJICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGlicGF0aC4gIFNldHRpbmcg aGFyZGNvZGVfbWludXNfTAorKwkgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwor KwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrCSAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CisrCSAgZmkKKysJICA7OworKwllc2Fj CisrCXNoYXJlZF9mbGFnPSctc2hhcmVkJworKwlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlu a2luZyIgPSB5ZXM7IHRoZW4KKysJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0t RycKKysJZmkKKysgICAgICBlbHNlCisrCSMgbm90IHVzaW5nIGdjYworKwlpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBB SVggNUwgZm9yIElBLTY0LCBCZXRhIDMgUmVsZWFzZQorKwkjIGNob2tlcyBvbiAtV2wsLUcuIFRo ZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycKKysJZWxz ZQorKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkg ICAgc2hhcmVkX2ZsYWc9JyR7d2x9LUcnCisrCSAgZWxzZQorKwkgICAgc2hhcmVkX2ZsYWc9JyR7 d2x9LWJNOlNSRScKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisrCisrICAgICAgX0xUX1RBR1ZB UihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmV4cGFsbCcKKysgICAgICAj IEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5n IHdpdGgKKysgICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJh dGUgYSBsaXN0IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgorKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlz X2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGlt ZWxpbmtpbmciID0geWVzOyB0aGVuCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90 aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsg d2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCV9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJlcm9rJworKyAgICAgICAgIyBEZXRl cm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCisr ICAgICAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRI X0FJWAorKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9m bGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVD SE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAn Ilwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisrICAg ICAgZWxzZQorKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9s aWI6L2xpYicKKysJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ii16IG5v ZGVmcyIKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hh cmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICci XCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKysJZWxz ZQorKwkgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNv ZGVkIGluIGFuCisrCSAjIGVtcHR5IGV4ZWN1dGFibGUuCisrCSBfTFRfU1lTX01PRFVMRV9QQVRI X0FJWAorKwkgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgIyBXYXJuaW5nIC0gd2l0aG91 dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKKysJICAjIC1iZXJvayB3 aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnku CisrCSAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVybm90b2sn CisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2sn CisrCSAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0 cyBmcm9tIGFyY2hpdmVzCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPSckY29udmVuaWVuY2UnCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywg JDEpPXllcworKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBi dWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t YkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAk b3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScK KysJZmkKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JycKKysgICAgICAgIDs7CisrICAgICAg bTY4aykKKysgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1l IiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFS WV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5l IFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hP ICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJh cnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0 cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAgICAgIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCisrICAgICAgICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgICA7OworKyAgICAg IGVzYWMKKysgICAgICA7OworKworKyAgICBic2RpW1s0NV1dKikKKysgICAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPS1yZHluYW1pYworKyAgICAgIDs7CisrCisr ICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAjIFdoZW4gbm90 IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworKyAgICAg ICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisrICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcworKyAgICAgICMgbm8gc2Vh cmNoIHBhdGggZm9yIERMTHMuCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyAnCisrICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywg JDEpPXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMs IG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0bWFpbiB0 byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2NtZHM9Ii5k bGwiCisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJhZCBoYWNr LgorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJv YmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8g LWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JworKyAgICAgICMgVGhlIGxpbmtlciB3 aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCisr ICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCisr ICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3Jh bS4KKysgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nbGliIC1PVVQ6JG9s ZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJworKyAgICAgIF9MVF9UQUdWQVIoZml4X3NyY2ZpbGVf cGF0aCwgJDEpPSdgY3lncGF0aCAtdyAiJHNyY2ZpbGUiYCcKKysgICAgICBfTFRfVEFHVkFSKGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKysgICAgICA7OworKwor KyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRV UkVTKCQxKQorKyAgICAgIDs7CisrCisrICAgIGRndXgqKQorKyAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKT0nLUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0Qg Mi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3Ry dWN0b3IKKysgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGlj YWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCisrICAgICMgZG9lcyBub3QgYnJlYWsgYW55 dGhpbmcsIGFuZCBoZWxwcyBzaWduaWZpY2FudGx5IChhdCB0aGUgY29zdCBvZiBhIGxpdHRsZQor KyAgICAjIGV4dHJhIHNwYWNlKS4KKysgICAgZnJlZWJzZDIuMiopCisrICAgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFncyAvdXNyL2xpYi9jKytydDAubycKKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIFVuZm9ydHVuYXRl bHksIG9sZGVyIHZlcnNpb25zIG9mIEZyZWVCU0QgMiBkbyBub3QgaGF2ZSB0aGlzIGZlYXR1cmUu CisrICAgIGZyZWVic2QyKikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICAjIEZyZWVCU0QgMyBh bmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCisrICAg IGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIk bGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7Owor KworKyAgICBocHV4OSopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JEND IC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp YicKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0 cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli JworKyAgICAgIGZpCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXllcworKworKyAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0 aGUgc2VhcmNoIFBBVEgsCisrICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2Yg dGhlIGxpYnJhcnkuCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVz CisrICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0t RScKKysgICAgICA7OworKworKyAgICBocHV4MTAqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0g eWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAk e3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKKysgICAgICBlbHNlCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAt YiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfbGQsICQxKT0nK2IgJGxpYmRpcicKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9OgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwor KwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwlfTFRfVEFH VkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKwkjIGhhcmRjb2Rl X21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkjIGJ1dCBhcyB0aGUg ZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9t aW51c19MLCAkMSk9eWVzCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBocHV4MTEqKQor KyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzIC1hICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4K KysJY2FzZSAkaG9zdF9jcHUgaW4KKysJaHBwYSo2NCopCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJaWE2NCopCisrCSAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21k cywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7 d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzJworKwkgIDs7CisrCWVzYWMKKysgICAgICBlbHNlCisrCWNhc2UgJGhvc3RfY3B1IGluCisr CWhwcGEqNjQqKQorKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3ds fStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cycKKysJICA7OworKwlpYTY0KikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck Q0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsKKysJKikKKysJICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3 bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICBpZiB0ZXN0ICIk d2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworKwlfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrCWNhc2UgJGhvc3RfY3B1IGluCisrCWhwcGEq NjQqfGlhNjQqKQorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKysJICBf TFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwkgIDs7CisrCSopCisr CSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKKysJICBfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29kZV9taW51c19M OiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVs dCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVz X0wsICQxKT15ZXMKKysJICA7OworKwllc2FjCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0g eWVzOyB0aGVuCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1l IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9 JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJIyBUcnkgdG8gdXNlIHRoZSAtZXhwb3J0 ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKKysJIyB3b3JrLCBhc3N1bWUgdGhh dCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFuZAorKwkjIGltcGxpY2l0bHkg ZXhwb3J0IGFsbCBzeW1ib2xzLgorKyAgICAgICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKysg ICAgICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7 d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKKysgICAgICAgIEFD X0xJTktfSUZFTFNFKGludCBmb28odm9pZCkge30sCisrICAgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRg ICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z ICR7d2x9LWV4cG9ydHNfZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKyAgICAg ICAgKQorKyAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgICBlbHNlCisrCV9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYm ICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0 cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkg JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJv bHMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25l ZWRfbGMsICQxKT0nbm8nCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrICAgICAgX0xUX1RBR1ZBUihpbmhlcml0 X3JwYXRoLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9 eWVzCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKwlfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJyAgIyBhLm91dAorKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJworKyAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9z aGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBuZXdzb3M2KQorKyAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgOzsKKysKKysgICAgKm50byogfCAq cW54KikKKysgICAgICA7OworKworKyAgICBvcGVuYnNkKikKKysgICAgICBpZiB0ZXN0IC1mIC91 c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEp PXllcworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcworKwlpZiB0ZXN0IC16ICJg ZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rf b3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0X3N5 bWJvbHMnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7 d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgb3Bl bmJzZFtbMDFdXS4qIHwgb3BlbmJzZDIuW1swLTddXSB8IG9wZW5ic2QyLltbMC03XV0uKikKKysJ ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUJzaGFyZWFibGUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrCSAgICAgOzsKKysJICAg KikKKysJICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRs aWJkaXInCisrCSAgICAgOzsKKysJICBlc2FjCisrCWZpCisrICAgICAgZWxzZQorKwlfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBvczIq KQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRs aWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAg ICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisrICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUg SU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJ UFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8g REFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIiBTSU5HTEUgTk9OU0hB UkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gRVhQT1JUUyA+PiAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGly LyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworKyAgICAgIF9M VF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSdlbXhpbXAgLW8gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCisrICAgICAg OzsKKysKKysgICAgb3NmMyopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJ X0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVz b2x2ZWQgJHt3bH1cKicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVD SE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVw ZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn CisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAt ZXhwZWN0X3VucmVzb2x2ZWQgXConCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8g Ilgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKyAgICAgIGZpCisrICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPSdubycKKysgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGly JworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysg ICAgICA7OworKworKyAgICBvc2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0 aW9uIG9mIC1tc3ltIGZsYWcKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwlf TFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNv bHZlZCAke3dsfVwqJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFn cyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJp bmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2Vk YCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9u cyAtbyAkbGliJworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgIGVsc2UKKysJX0xUX1RBR1ZBUihhbGxv d191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmci IHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMg LW8gJGxpYicKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGlu IGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5 bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZTsgcHJpbnRmICIlc1xcbiIgIi1oaWRkZW4iPj4g JGxpYi5leHB+CisrCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5w dXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFt ZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAk dmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29f bG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworKworKwkjIEJvdGggYyBhbmQgY3h4IGNv bXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CisrCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKKysgICAgICBmaQorKyAgICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCisrICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKyAgICAgIDs7CisrCisrICAgIHNv bGFyaXMqKQorKyAgICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16IGRl ZnMnCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJd2xhcmM9JyR7d2x9Jwor KwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9 dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8g InsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9c KC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4K KysJICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAg JHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3N+JFJNICRsaWIuZXhwJworKyAgICAgIGVsc2UKKysJY2FzZSBgJENDIC1WIDI+JjFgIGlu CisrCSoiQ29tcGlsZXJzIDUuMCIqKQorKwkgIHdsYXJjPScnCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQg JGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNo byAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJICAkTEQgLUcke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCisrCSAgOzsKKysJKikKKysJICB3bGFyYz0nJHt3 bH0nCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRl ZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAi eyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1wo LipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgor KwkgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwor KwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAg c29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKysgICAgICAqKQorKwkj IFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRp b25zLAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRz IGl0IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9y ZGVyLgorKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwlp ZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0t eiAke3dsfWRlZmF1bHRleHRyYWN0JworKwllbHNlCisrCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRl eHRyYWN0JworKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICBfTFRfVEFHVkFSKGxpbmtf YWxsX2RlcGxpYnMsICQxKT15ZXMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQorKyAgICAg IGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRoZW4KKysJIyBVc2UgJENDIHRv IGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRyYSAubwor KwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4KKysJX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCV9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0YXRpYyAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgZmkKKysgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwor KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7OworKworKyAgICBzeXN2NCkKKysgICAg ICBjYXNlICRob3N0X3ZlbmRvciBpbgorKwlzbmkpCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzICMgaXMg dGhpcyByZWFsbHkgdHJ1ZT8/PworKwk7OworKwlzaWVtZW5zKQorKwkgICMjIExEIGlzIGxkIGl0 IG1ha2VzIGEgUExBTUxJQgorKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVsZS4KKysJ ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0n JENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKT1ubworKyAgICAgICAgOzsKKysJbW90b3JvbGEpCisrCSAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9 bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5IGxpZQor Kwk7OworKyAgICAgIGVzYWMKKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICA7Owor KworKyAgICBzeXN2NC4zKikKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mn CisrICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAg ICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSctQmV4cG9ydCcKKysg ICAgICA7OworKworKyAgICBzeXN2NCpNUCopCisrICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsg dGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCV9MVF9UQUdWQVIoaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrCXJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisr CWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcworKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPXll cworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVO SVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBdXSogfCB1bml4d2FyZTcqIHwgc2NvMy4y djUuMC5bWzAyNF1dKikKKysgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9 JyR7d2x9LXosdGV4dCcKKysgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAk MSk9bm8KKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwor KyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0ND IiA9IHllczsgdGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MnCisrCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk e3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgs JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAg ICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCisr ICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwg YmVjYXVzZSB3ZSBkbyBub3QKKysgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxk IGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrICAgICAgIyBhbHdheXMgYmUg dW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxkCisrICAg ICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1 c2UgLXogdGV4dAorKyAgICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5 bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKyAgICAgICMgYXMgLXogZGVmcy4KKysg ICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKKysg ICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZz JworKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisrICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRpcicKKysg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKKysgICAg ICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysgICAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworKyAgICAgIHJ1 bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKKysKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1o LCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCV9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhw b3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCisrICAgICAgZWxzZQorKwlfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJworKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycKKysgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0n LUwkbGliZGlyJworKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEp PW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPW5vCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBpZiB0ZXN0IHgkaG9zdF92ZW5k b3IgPSB4c25pOyB0aGVuCisrICAgICAgY2FzZSAkaG9zdCBpbgorKyAgICAgIHN5c3Y0IHwgc3lz djQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKKysJX0xUX1RBR1ZBUihleHBvcnRfZHluYW1p Y19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmxhcmdlZHluc3ltJworKwk7OworKyAgICAgIGVzYWMK KysgICAgZmkKKysgIGZpCisrXSkKKytBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihsZF9zaGxp YnMsICQxKV0pCisrdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2Fu X2J1aWxkX3NoYXJlZD1ubworKworK19MVF9UQUdWQVIod2l0aF9nbnVfbGQsICQxKT0kd2l0aF9n bnVfbGQKKysKKytfTFRfREVDTChbXSwgW2xpYmV4dF0sIFswXSwgW09sZCBhcmNoaXZlIHN1ZmZp eCAobm9ybWFsbHkgImEiKV0pZG5sCisrX0xUX0RFQ0woW10sIFtzaHJleHRfY21kc10sIFsxXSwg W1NoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpXSlkbmwKKytfTFRfREVDTChb XSwgW2V4dHJhY3RfZXhwc3ltc19jbWRzXSwgWzJdLAorKyAgICBbVGhlIGNvbW1hbmRzIHRvIGV4 dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2ZV0pCisr CisrIworKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KKysjCisrY2FzZSAi eCRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSkiIGluCisreHx4eWVzKQorKyAg IyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAorKyAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNf bmVlZF9sYywgJDEpPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSkgaW4KKysgICAgKid+JyopCisrICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8g ZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgorKyAgICAgIDs7CisrICAgICckQ0Mg JyopCisrICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mg d2l0aCAtbGMgc2luY2Ugb24gc29tZQorKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNv bWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYworKyAgICAgICMgdG8gbGQs IGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgorKyAgICAgIEFDX01TR19DSEVDS0lORyhbd2hl dGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluXSkKKysgICAgICAkUk0gY29u ZnRlc3QqCisrICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25m dGVzdC4kYWNfZXh0CisrCisrICAgICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSkgMj5jb25m dGVzdC5lcnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1jb25mdGVzdAorKyAgICAgICAgbGliPWNv bmZ0ZXN0CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICAgICAgIGRl cGxpYnM9CisrICAgICAgICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkK KysJcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKQorKyAgICAg ICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9mbGFncz0tdgorKyAgICAgICAg dmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRpcj0uCisrICAgICAgICBsaWJuYW1lPWNv bmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFS KGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0KKysgICAgICAgIGlmIEFDX1RSWV9FVkFMKF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSkgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5c JjEpCisrICAgICAgICB0aGVuCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywg JDEpPW5vCisrICAgICAgICBlbHNlCisrCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPXllcworKyAgICAgICAgZmkKKysgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworKyAgICAgIGVsc2UK KysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZpCisrICAgICAgJFJNIGNv bmZ0ZXN0KgorKyAgICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSldKQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrICA7OworK2VzYWMK KysKKytfTFRfVEFHREVDTChbYnVpbGRfbGlidG9vbF9uZWVkX2xjXSwgW2FyY2hpdmVfY21kc19u ZWVkX2xjXSwgWzBdLAorKyAgICBbV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRp bmcgc2hhcmVkIGxpYnJhcmllc10pCisrX0xUX1RBR0RFQ0woW2FsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lc10sCisrICAgIFtlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzXSwgWzBdLAorKyAgICBbV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxp YnMgd2hlbiBydW50aW1lIGxpYnMgYXJlIHN0YXRpY10pCisrX0xUX1RBR0RFQ0woW10sIFtleHBv cnRfZHluYW1pY19mbGFnX3NwZWNdLCBbMV0sCisrICAgIFtDb21waWxlciBmbGFnIHRvIGFsbG93 IHJlZmxleGl2ZSBkbG9wZW5zXSkKKytfTFRfVEFHREVDTChbXSwgW3dob2xlX2FyY2hpdmVfZmxh Z19zcGVjXSwgWzFdLAorKyAgICBbQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2Jq ZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzXSkKKytfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVy X25lZWRzX29iamVjdF0sIFsxXSwKKysgICAgW1doZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdp dGggcGFzc2luZyBubyBvYmplY3RzIGRpcmVjdGx5XSkKKytfTFRfVEFHREVDTChbXSwgW29sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHNdLCBbMl0sCisrICAgIFtDcmVhdGUgYW4gb2xkLXN0eWxlIGFy Y2hpdmUgZnJvbSBhIHNoYXJlZCBhcmNoaXZlXSkKKytfTFRfVEFHREVDTChbXSwgW29sZF9hcmNo aXZlX2Zyb21fZXhwc3ltc19jbWRzXSwgWzJdLAorKyAgICBbQ3JlYXRlIGEgdGVtcG9yYXJ5IG9s ZC1zdHlsZSBhcmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKKytf TFRfVEFHREVDTChbXSwgW2FyY2hpdmVfY21kc10sIFsyXSwgW0NvbW1hbmRzIHVzZWQgdG8gYnVp bGQgYSBzaGFyZWQgYXJjaGl2ZV0pCisrX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2V4cHN5bV9j bWRzXSwgWzJdKQorK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2NtZHNdLCBbMl0sCisrICAgIFtD b21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9t IGJ1aWxkaW5nCisrICAgIGEgc2hhcmVkIGFyY2hpdmUuXSkKKytfTFRfVEFHREVDTChbXSwgW21v ZHVsZV9leHBzeW1fY21kc10sIFsyXSkKKytfTFRfVEFHREVDTChbXSwgW3dpdGhfZ251X2xkXSwg WzFdLAorKyAgICBbV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90XSkK KytfTFRfVEFHREVDTChbXSwgW2FsbG93X3VuZGVmaW5lZF9mbGFnXSwgWzFdLAorKyAgICBbRmxh ZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8g YmUgYnVpbHRdKQorK19MVF9UQUdERUNMKFtdLCBbbm9fdW5kZWZpbmVkX2ZsYWddLCBbMV0sCisr ICAgIFtGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHNdKQorK19MVF9UQUdE RUNMKFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY10sIFsxXSwKKysgICAgW0ZsYWcgdG8g aGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgorKyAgICBUaGlz IG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdKQorK19MVF9UQUdERUNM KFtdLCBbaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF0sIFsxXSwKKysgICAgW1tJZiBsZCBp cyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5h cnkKKysgICAgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIg ZG9lcyBub3QgZXhpc3RdXSkKKytfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9zZXBh cmF0b3JdLCBbMV0sCisrICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxh ZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50XSkKKytfTFRfVEFHREVDTChbXSwgW2hhcmRjb2Rl X2RpcmVjdF0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7 c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrICAgIERJUiBpbnRvIHRoZSBy ZXN1bHRpbmcgYmluYXJ5XSkKKytfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZV0sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hh cmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrICAgIERJUiBpbnRvIHRoZSByZXN1 bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcworKyAg ICAiYWJzb2x1dGUiLCBpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyAke3NobGli cGF0aF92YXJ9IGlmIHRoZQorKyAgICBsaWJyYXJ5IGlzIHJlbG9jYXRlZF0pCisrX0xUX1RBR0RF Q0woW10sIFtoYXJkY29kZV9taW51c19MXSwgWzBdLAorKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVz aW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysgICAgaW50 byB0aGUgcmVzdWx0aW5nIGJpbmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9zaGxp YnBhdGhfdmFyXSwgWzBdLAorKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9W QVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysgICAgaW50byB0aGUgcmVzdWx0 aW5nIGJpbmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9hdXRvbWF0aWNdLCBbMF0s CisrICAgIFtTZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0 aWNhbGx5IGhhcmRjb2RlcyBESVIKKysgICAgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNl cXVlbnQgbGlicmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKKysgICAgYWdhaW5zdCBpdF0p CisrX0xUX1RBR0RFQ0woW10sIFtpbmhlcml0X3JwYXRoXSwgWzBdLAorKyAgICBbU2V0IHRvIHll cyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKKysg ICAgdG8gcnVudGltZSBwYXRoIGxpc3RdKQorK19MVF9UQUdERUNMKFtdLCBbbGlua19hbGxfZGVw bGlic10sIFswXSwKKysgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFn YWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCisrX0xUX1RBR0RFQ0woW10sIFtm aXhfc3JjZmlsZV9wYXRoXSwgWzFdLAorKyAgICBbRml4IHRoZSBzaGVsbCB2YXJpYWJsZSAkc3Jj ZmlsZSBmb3IgdGhlIGNvbXBpbGVyXSkKKytfTFRfVEFHREVDTChbXSwgW2Fsd2F5c19leHBvcnRf c3ltYm9sc10sIFswXSwKKysgICAgW1NldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFy ZSByZXF1aXJlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtleHBvcnRfc3ltYm9sc19jbWRzXSwgWzJd LAorKyAgICBbVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9sc10pCisrX0xUX1RB R0RFQ0woW10sIFtleGNsdWRlX2V4cHN5bXNdLCBbMV0sCisrICAgIFtTeW1ib2xzIHRoYXQgc2hv dWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzXSkKKytfTFRfVEFHREVD TChbXSwgW2luY2x1ZGVfZXhwc3ltc10sIFsxXSwKKysgICAgW1N5bWJvbHMgdGhhdCBtdXN0IGFs d2F5cyBiZSBleHBvcnRlZF0pCisrX0xUX1RBR0RFQ0woW10sIFtwcmVsaW5rX2NtZHNdLCBbMl0s CisrICAgIFtDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3Qg bGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlc10pCisrX0xUX1RBR0RFQ0woW10sIFtmaWxlX2xpc3Rf c3BlY10sIFsxXSwKKysgICAgW1NwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxl c10pCisrZG5sIEZJWE1FOiBOb3QgeWV0IGltcGxlbWVudGVkCisrZG5sIF9MVF9UQUdERUNMKFtd LCBbdGhyZWFkX3NhZmVfZmxhZ19zcGVjXSwgWzFdLAorK2RubCAgICBbQ29tcGlsZXIgZmxhZyB0 byBnZW5lcmF0ZSB0aHJlYWQgc2FmZSBvYmplY3RzXSkKKytdKSMgX0xUX0xJTktFUl9TSExJQlMK KysKKysKKysjIF9MVF9MQU5HX0NfQ09ORklHKFtUQUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEg QyBjb21waWxlciBhcmUgc3VpdGFibHkKKysjIGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJl IHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3JpdGUKKysjIHRoZSBjb21waWxl ciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xBTkdfQ19DT05G SUddLAorK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCisrbHRfc2F2ZV9DQz0iJEND IgorK0FDX0xBTkdfUFVTSChDKQorKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRl c3Qgc291cmNlcy4KKythY19leHQ9YworKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBj b21waWxlZCBDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAk MSk9JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3Rz CisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7Igor KworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xp bmtfdGVzdF9jb2RlPSdpbnQgbWFpbigpe3JldHVybigwKTt9JworKworK19MVF9UQUdfQ09NUElM RVIKKysjIFNhdmUgdGhlIGRlZmF1bHQgY29tcGlsZXIsIHNpbmNlIGl0IGdldHMgb3ZlcndyaXR0 ZW4gd2hlbiB0aGUgb3RoZXIKKysjIHRhZ3MgYXJlIGJlaW5nIHRlc3RlZCwgYW5kIF9MVF9UQUdW QVIoY29tcGlsZXIsIFtdKSBpcyBhIE5PUC4KKytjb21waWxlcl9ERUZBVUxUPSRDQworKworKyMg c2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrX0xUX0NPTVBJ TEVSX0JPSUxFUlBMQVRFCisrX0xUX0xJTktFUl9CT0lMRVJQTEFURQorKworKyMjIENBVkVBVCBF TVBUT1I6CisrIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2lu ZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndp c2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyMjIHdoYXQgeW91 IGFyZSBkb2luZy4uLgorK2lmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgIF9MVF9DT01Q SUxFUl9OT19SVFRJKCQxKQorKyAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgIF9MVF9DT01QSUxF Ul9DX08oJDEpCisrICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgIF9MVF9MSU5LRVJf U0hMSUJTKCQxKQorKyAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKKysgIF9MVF9MSU5LRVJf SEFSRENPREVfTElCUEFUSCgkMSkKKysgIExUX1NZU19ETE9QRU5fU0VMRgorKyAgX0xUX0NNRF9T VFJJUExJQgorKworKyAgIyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5 IGJlIGJ1aWx0CisrICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVk IGxpYnJhcmllc10pCisrICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisrCisr ICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCisr ICB0ZXN0ICIkY2FuX2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KKysK KysgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0 aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4MyopCisrICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVu CisrICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAg ICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKKysgICAgZmkKKysgICAgOzsKKysK KysgIGFpeFtbNC05XV0qKQorKyAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVz dCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0gbm8gOyB0aGVuCisrICAgICAgdGVzdCAiJGVu YWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0aWM9bm8KKysgICAgZmkKKysgICAgOzsK KysgIGVzYWMKKysgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgIEFDX01T R19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKKysgICMgTWFr ZSBzdXJlIGVpdGhlciBlbmFibGVfc2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorKyAg dGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVzCisrICBBQ19N U0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCisrCisrICBfTFRfQ09ORklHKCQxKQorK2ZpCisr QUNfTEFOR19QT1AKKytDQz0iJGx0X3NhdmVfQ0MiCisrXSkjIF9MVF9MQU5HX0NfQ09ORklHCisr CisrCisrIyBfTFRfUFJPR19DWFgKKysjIC0tLS0tLS0tLS0tLQorKyMgU2luY2UgQUNfUFJPR19D WFggaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgZysrIGlmIHRoZXJlIGlzIG5vIGMrKwor KyMgY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRfZGVmdW4oW19M VF9QUk9HX0NYWF0sCisrWworK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfY2F1Z2h0X0NY WF9lcnJvcj15ZXNdKQorK0FDX1BST0dfQ1hYCisraWYgdGVzdCAtbiAiJENYWCIgJiYgKCB0ZXN0 ICJYJENYWCIgIT0gIlhubyIgJiYKKysgICAgKCAodGVzdCAiWCRDWFgiID0gIlhnKysiICYmIGBn KysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CisrICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysi KSkpIDsgdGhlbgorKyAgQUNfUFJPR19DWFhDUFAKKytlbHNlCisrICBfbHRfY2F1Z2h0X0NYWF9l cnJvcj15ZXMKKytmaQorK3BvcGRlZihbQUNfTVNHX0VSUk9SXSkKKytdKSMgX0xUX1BST0dfQ1hY CisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19E RUZVTihbX0xUX1BST0dfQ1hYXSwgW10pCisrCisrCisrIyBfTFRfTEFOR19DWFhfQ09ORklHKFtU QUddKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRoZSBj b25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDKysgY29tcGlsZXIgYXJlIHN1aXRhYmx5Cisr IyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRf Q09ORklHIHRvIHdyaXRlCisrIyB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9v bCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX0NYWF9DT05GSUddLAorK1tBQ19SRVFVSVJFKFtfTFRf UFJPR19DWFhdKWRubAorK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAor K200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKKysKKytBQ19MQU5HX1BVU0goQysrKQor K19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworK19MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKytfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9s cywgJDEpPW5vCisrX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RB R1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubworK19MVF9UQUdWQVIoZXhwb3J0X2R5 bmFtaWNfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1u bworK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KKytfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IsICQxKT0KKytfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT1ubworK19M VF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCisrX0xUX1RB R1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubworK19MVF9UQUdWQVIoaW5oZXJpdF9ycGF0 aCwgJDEpPW5vCisrX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQorK19MVF9UQUdWQVIobW9k dWxlX2V4cHN5bV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9 dW5rbm93bgorK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9j bWRzCisrX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQorK19MVF9UQUdWQVIod2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKytfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0 aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZv ciBDKysgdGVzdCBzb3VyY2VzLgorK2FjX2V4dD1jcHAKKysKKysjIE9iamVjdCBmaWxlIGV4dGVu c2lvbiBmb3IgY29tcGlsZWQgQysrIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdW QVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhl c2UgdGVzdHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBDWFggY29tcGls ZXIgaXNuJ3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisr IyBhcmUgY3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlz IHBsYXRmb3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNl ZCBvbiBhIG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRfY2F1Z2h0X0NYWF9l cnJvciIgIT0geWVzOyB0aGVuCisrICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGls ZSB0ZXN0cworKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJs ZSA9IDA7IgorKworKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKysg IGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0naW50IG1haW4oaW50LCBjaGFyICpbW11dKSB7IHJl dHVybigwKTsgfScKKysKKysgICMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25m aWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KKysgIF9MVF9UQUdfQ09NUElMRVIK KysKKysgICMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisr ICBfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKysgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKKysK KysgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrICBs dF9zYXZlX0NDPSRDQworKyAgbHRfc2F2ZV9MRD0kTEQKKysgIGx0X3NhdmVfR0NDPSRHQ0MKKysg IEdDQz0kR1hYCisrICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAorKyAgbHRfc2F2 ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3Byb2dfZ251 X2xkY3h4K3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9nX2du dV9sZGN4eAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRfY3ZfcHJvZ19nbnVfbGQKKysgIGZp CisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKysgICAgbHRf Y3ZfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRENYWAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRf Y3ZfcGF0aF9MRAorKyAgZmkKKysgIHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExEQ1hY CisrICBDQz0ke0NYWC0iYysrIn0KKysgIGNvbXBpbGVyPSRDQworKyAgX0xUX1RBR1ZBUihjb21w aWxlciwgJDEpPSRDQworKyAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyAgaWYg dGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorKyAgICAjIFdlIGRvbid0IHdhbnQgLWZuby1leGNl cHRpb24gd2hlbiBjb21waWxpbmcgQysrIGNvZGUsIHNvIHNldCB0aGUKKysgICAgIyBub19idWls dGluX2ZsYWcgc2VwYXJhdGVseQorKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAg ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1m bm8tYnVpbHRpbicKKysgICAgZWxzZQorKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWcsICQxKT0KKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KKysgICAgICAjIFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmlndXJhdGlv bgorKworKyAgICAgIExUX1BBVEhfTEQKKysKKysgICAgICAjIENoZWNrIGlmIEdOVSBDKysgdXNl cyBHTlUgbGQgYXMgdGhlIHVuZGVybHlpbmcgbGlua2VyLCBzaW5jZSB0aGUKKysgICAgICAjIGFy Y2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4K KysgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisrICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICBfTFRfVEFHVkFSKGFy Y2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBv cnRfc3ltYm9scyAtbyAkbGliJworKworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICAgIF9M VF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHlu YW1pYycKKysKKysgICAgICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xh cmMgc2hvdWxkIGJlIGVtcHR5CisrICAgICAgICAjIFhYWCBJIHRoaW5rIHdsYXJjIGNhbiBiZSBl bGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCisrICAgICAgICAjICAgICBpbnZl c3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQorKyAgICAgICAgd2xhcmM9JyR7d2x9 JworKworKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFy Y2hpdmUgZXQuIGFsLgorKyAgICAgICAgaWYgZXZhbCAiYCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxk YCAtLWhlbHAgMj4mMSIgfAorKwkgICRHUkVQICduby13aG9sZS1hcmNoaXZlJyA+IC9kZXYvbnVs bDsgdGhlbgorKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdo b2xlLWFyY2hpdmUnCisrICAgICAgICBlbHNlCisrICAgICAgICAgIF9MVF9UQUdWQVIod2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KKysgICAgICAgIGZpCisrICAgICAgZWxzZQorKyAgICAg ICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICAgIHdsYXJjPQorKworKyAgICAgICAgIyBBIGdlbmVy aWMgYW5kIHZlcnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KKysgICAg ICAgICMgY29tbWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUg bmF0aXZlCisrICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJs ZSwgdGhpcyBzZXR0aW5nIHNob3VsZAorKyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2 YW50YWdlIG9mIHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCisrICAgICAgICAjIHRoZSBw bGF0Zm9ybSBpdCBpcyBiZWluZyB1c2VkIG9uLgorKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJworKyAg ICAgIGZpCisrCisrICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVy Ym9zZSBvdXRwdXQgdGhhdCBsaXN0cworKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMs IG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKyAgICAgICMgbGlua2luZyBh IHNoYXJlZCBsaWJyYXJ5LgorKyAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNo YXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworKwor KyAgICBlbHNlCisrICAgICAgR1hYPW5vCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgICB3 bGFyYz0KKysgICAgZmkKKysKKysgICAgIyBQT1JUTUU6IGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBv ZiB5b3VyIHN5c3RlbSdzIEMrKyBsaW5rIGNoYXJhY3RlcmlzdGljcworKyAgICBBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVk IGxpYnJhcmllc10pCisrICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCisrICAgIGNh c2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubworKyAgICAgICAgOzsKKysgICAgICBhaXhbWzQtOV1dKikKKysgICAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrICAgICAgICAgICMgT24gSUE2NCwgdGhlIGxp bmtlciBkb2VzIHJ1biB0aW1lIGxpbmtpbmcgYnkgZGVmYXVsdCwgc28gd2UgZG9uJ3QKKysgICAg ICAgICAgIyBoYXZlIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwuCisrICAgICAgICAgIGFpeF91c2Vf cnVudGltZWxpbmtpbmc9bm8KKysgICAgICAgICAgZXhwX3N5bV9mbGFnPSctQmV4cG9ydCcKKysg ICAgICAgICAgbm9fZW50cnlfZmxhZz0iIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBhaXhf dXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisrICAgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5 aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorKyAgICAgICAgICAjIEFJWCBz dHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKKysgICAg ICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysgICAgICAgICAgY2FzZSAkaG9z dF9vcyBpbiBhaXg0LltbMjNdXXxhaXg0LltbMjNdXS4qfGFpeFtbNS05XV0qKQorKwkgICAgZm9y IGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisrCSAgICAgIGNhc2UgJGxkX2ZsYWcgaW4KKysJICAg ICAgKi1icnRsKikKKysJICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAg ICAgIGJyZWFrCisrCSAgICAgICAgOzsKKysJICAgICAgZXNhYworKwkgICAgZG9uZQorKwkgICAg OzsKKysgICAgICAgICAgZXNhYworKworKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0 JworKyAgICAgICAgICBub19lbnRyeV9mbGFnPSctYm5vZW50cnknCisrICAgICAgICBmaQorKwor KyAgICAgICAgIyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBi dWlsdCwgQUlYIGxkIGNhbgorKyAgICAgICAgIyBoYXZlIHByb2JsZW1zIGNyZWF0aW5nIHRoZSB0 YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5CisrICAgICAgICAjIG9yIHBy b2dyYW0gcmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0 bworKyAgICAgICAgIyBDWFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMg d2hlcmUgdGhhdCBpcyBub3QKKysgICAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUgcHJvYmxlbSwg YWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgorKworKyAgICAgICAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT15ZXMKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9 eWVzCisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0n OicKKysgICAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKyAgICAg ICAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3dsfS1mLCcKKysKKysgICAgICAg IGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4g YWl4NC5bWzAxMl1dfGFpeDQuW1swMTJdXS4qKQorKyAgICAgICAgICAjIFdlIG9ubHkgd2FudCB0 byBkbyB0aGlzIG9uIEFJWCA0LjIgYW5kIGxvd2VyLCB0aGUgY2hlY2sKKysgICAgICAgICAgIyBi ZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qgd29yayB1bmRlciA0LjMrCisrCSAgY29s bGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYAorKwkgIGlmIHRlc3Qg LWYgIiRjb2xsZWN0Mm5hbWUiICYmCisrCSAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCAk R1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0aGVuCisrCSAgICAjIFdlIGhh dmUgcmV3b3JrZWQgY29sbGVjdDIKKysJICAgIDoKKysJICBlbHNlCisrCSAgICAjIFdlIGhhdmUg b2xkIGNvbGxlY3QyCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3Vw cG9ydGVkCisrCSAgICAjIEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdo ZW4gdGhlIHVuaW5zdGFsbGVkCisrCSAgICAjIHBhdGggaXMgbm90IGxpc3RlZCBpbiB0aGUgbGli cGF0aC4gIFNldHRpbmcgaGFyZGNvZGVfbWludXNfTAorKwkgICAgIyB0byB1bnN1cHBvcnRlZCBm b3JjZXMgcmVsaW5raW5nCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15 ZXMKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRs aWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0K KysJICBmaQorKyAgICAgICAgICBlc2FjCisrICAgICAgICAgIHNoYXJlZF9mbGFnPSctc2hhcmVk JworKwkgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkg ICAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAiJyR7d2x9LUcnCisrCSAgZmkKKysgICAgICAg IGVsc2UKKysgICAgICAgICAgIyBub3QgdXNpbmcgZ2NjCisrICAgICAgICAgIGlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUuNSBm b3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKKysJICAjIGNob2tlcyBvbiAtV2ws LUcuIFRoZSBmb2xsb3dpbmcgbGluZSBpcyBjb3JyZWN0OgorKwkgIHNoYXJlZF9mbGFnPSctRycK KysgICAgICAgICAgZWxzZQorKwkgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmci ID0geWVzOyB0aGVuCisrCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJworKwkgICAgZWxzZQor KwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgICAgZmkKKysgICAgICAgICAg ZmkKKysgICAgICAgIGZpCisrCisrICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPScke3dsfS1iZXhwYWxsJworKyAgICAgICAgIyBJdCBzZWVtcyB0aGF0IC1i ZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3aXRoCisrICAgICAgICAj IHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0IG9mIHN5 bWJvbHMgdG8KKysJIyBleHBvcnQuCisrICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRf c3ltYm9scywgJDEpPXllcworKyAgICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtp bmciID0geWVzOyB0aGVuCisrICAgICAgICAgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhl IG90aGVyIHJ1bnRpbWUgbG9hZGluZyBmbGFncyAoLWJydGwpLAorKyAgICAgICAgICAjIC1iZXJv ayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJh cnkuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nLWJl cm9rJworKyAgICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhl IHZhbHVlIGVuY29kZWQgaW4gYW4gZW1wdHkKKysgICAgICAgICAgIyBleGVjdXRhYmxlLgorKyAg ICAgICAgICBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAorKyAgICAgICAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRh aXhfbGlicGF0aCIKKysKKysgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICci XCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuICRFQ0hPICJYJHt3bH0ke2FsbG93X3VuZGVm aW5lZF9mbGFnfSIgfCAkWHNlZDsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwk ZXhwb3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwor KwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCisr CSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0iXCRDQyAkc2hhcmVkX2Zs YWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9 JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKKysgICAgICAgICAg ZWxzZQorKwkgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1 ZSBlbmNvZGVkIGluIGFuCisrCSAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCisrCSAgICBfTFRfU1lT X01PRFVMRV9QQVRIX0FJWAorKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgICAj IFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdz LAorKwkgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVj ZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywg JDEpPScgJHt3bH0tYmVybm90b2snCisrCSAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9JyAke3dsfS1iZXJvaycKKysJICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUg cHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgICAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisrCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCisrCSAgICAjIFRoaXMgaXMgc2lt aWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKysJICAgICMg bGlicmFyaWVzLgorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ilwk Q0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVw bGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1i b2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8k bGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKKysgICAgICAgICAgZmkK KysgICAgICAgIGZpCisrICAgICAgICA7OworKworKyAgICAgIGJlb3MqKQorKwlpZiAkTEQgLS1o ZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxs OyB0aGVuCisrCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9y dGVkCisrCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBzb21lIHJl bGVhc2VzIG9mIGdjYworKwkgICMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMg c29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UKKysJICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCisrCWZpCisrCTs7CisrCisrICAgICAgY2hvcnVzKikKKysgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgICopCisrCSAgIyBGSVhNRTogaW5zZXJ0IHBy b3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bworKwkgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGN5Z3dpbiog fCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisrICAgICAg ICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorKyAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKysgICAgICAg IF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorKyAgICAg ICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubworKyAgICAgICAgX0xU X1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisrCisr ICAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9u dWxsOyB0aGVuCisrICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3ds fS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIg JGxpYicKKysgICAgICAgICAgIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlz IGEgLmRlZiBmaWxlICgxc3QgbGluZQorKyAgICAgICAgICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQg YXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgorKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2Ai ID0geEVYUE9SVFM7IHRoZW4KKysJICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRp ci8kc29uYW1lLmRlZjsKKysgICAgICAgICAgZWxzZQorKwkgICAgZWNobyBFWFBPUlRTID4gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRv dXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKyAgICAgICAgICBmaX4KKysgICAgICAgICAgJEND IC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1Y bGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworKyAgICAgICAgZWxzZQorKyAgICAg ICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICBmaQorKyAgICAgICAg OzsKKysgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICAgX0xUX0RBUldJTl9MSU5L RVJfRkVBVFVSRVMoJDEpCisrCTs7CisrCisrICAgICAgZGd1eCopCisrICAgICAgICBjYXNlICRj Y19iYXNlbmFtZSBpbgorKyAgICAgICAgICBlYysrKikKKysJICAgICMgRklYTUU6IGluc2VydCBw cm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubworKwkgICAgOzsKKysgICAgICAgICAgZ2hjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMr KyBDb21waWxlcgorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBw b3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAg ICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAgICA7OworKyAgICAgICAg ZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICBmcmVlYnNkW1sxMl1dKikKKysgICAgICAgICMg QysrIHNoYXJlZCBsaWJyYXJpZXMgcmVwb3J0ZWQgdG8gYmUgZmFpcmx5IGJyb2tlbiBiZWZvcmUK KysJIyBzd2l0Y2ggdG8gRUxGCisrICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5v CisrICAgICAgICA7OworKworKyAgICAgIGZyZWVic2QtZWxmKikKKysgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubworKyAgICAgICAgOzsKKysKKysgICAgICBm cmVlYnNkKiB8IGRyYWdvbmZseSopCisrICAgICAgICAjIEZyZWVCU0QgMyBhbmQgbGF0ZXIgdXNl IEdOVSBDKysgYW5kIEdOVSBsZCB3aXRoIHN0YW5kYXJkIEVMRgorKyAgICAgICAgIyBjb252ZW50 aW9ucworKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKysgICAgICAgIDs7 CisrCisrICAgICAgZ251KikKKysgICAgICAgIDs7CisrCisrICAgICAgaHB1eDkqKQorKyAgICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3 bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQx KT0nJHt3bH0tRScKKysgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVz CisrICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMgIyBOb3QgaW4g dGhlIHNlYXJjaCBQQVRILAorKwkJCQkgICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQK KysJCQkJICAgICAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrCisrICAgICAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrICAgICAgICAgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICAgICAgX0xU X1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICAgIDs7CisrICAgICAgICAgIGFD QyopCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRw dXRfb2JqZGlyLyRzb25hbWV+JENDIC1iICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29u YW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAgICAg ICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhh dCBsaXN0cworKyAgICAgICAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBm aWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKyAgICAgICAgICAgICMgbGlua2luZyBhIHNo YXJlZCBsaWJyYXJ5LgorKyAgICAgICAgICAgICMKKysgICAgICAgICAgICAjIFRoZXJlIGRvZXNu J3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCisrICAg ICAgICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBu ZWVkIHRvIHN0cmlwIHRoZW0KKysgICAgICAgICAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0 IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrICAgICAgICAgICAgIyBk ZXBlbmRlbmNpZXMuCisrICAgICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBs aXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRFR1JFUCAi XC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVz dC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3Qg JHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworKyAgICAgICAgICAgIDs7 CisrICAgICAgICAgICopCisrICAgICAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4K KysgICAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0 X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9 JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3Qg JG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGliJworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgICAgICAgX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgOzsKKysgICAg ICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgaHB1eDEwKnxocHV4MTEqKQorKyAgICAg ICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKKysJICBfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisrICAgICAgICAgIGNh c2UgJGhvc3RfY3B1IGluCisrICAgICAgICAgICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAg ICAgICA7OworKyAgICAgICAgICAgICopCisrCSAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCisrICAgICAgICAgICAgICA7OworKyAgICAgICAg ICBlc2FjCisrICAgICAgICBmaQorKyAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICAg ICAgaHBwYSo2NCp8aWE2NCopCisrICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT1ubworKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgKikKKysgICAgICAgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcworKyAgICAgICAgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9eWVzCisrICAgICAgICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwK KysJCQkJCSAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0CisrCQkJCQkgICAgICAgICAjIGxv Y2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisr CisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgIGFDQyopCisrCSAgICBj YXNlICRob3N0X2NwdSBpbgorKwkgICAgICBocHBhKjY0KikKKysJICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgICAgaWE2NCopCisrCSAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgICAgIDs7CisrCSAgICAg ICopCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgICMgQ29tbWFuZHMgdG8gbWFr ZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICMgd2hh dCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hl bgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAjCisrCSAgICAjIFRo ZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBm cm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdl IG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5 IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkgICAgIyBkZXBlbmRlbmNpZXMu CisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3Ig eiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxp c3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVD SE8gIlgkbGlzdCIgfCAkWHNlZCcKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0 ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5v OyB0aGVuCisrCSAgICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysJICAgICAgICAgIGhwcGEqNjQq KQorKwkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJl ZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgICBpYTY0KikKKysJICAgICAgICAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7 d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz JworKwkgICAgICAgICAgICA7OworKwkgICAgICAgICAgKikKKysJICAgICAgICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9 K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAgICAgZXNhYworKwkgICAgICBmaQorKwkg ICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBv cnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAgZmkKKysJICAg IDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIGludGVyaXhbWzMtOV1d KikKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubworKwlfTFRfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubworKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKKysJIyBIYWNrOiBPbiBJbnRlcml4 IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9rZW4gZ2NjLgorKwkj IEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgw eDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0aGV5IGNvbmZsaWN0 LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBjb25zdW1pbmcgYW5kIGZyYWdtZW50 aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9tLAorKwkjIDI1NiBL aUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2RkZDMDAwMCBh dCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3Mg bW9yZSBzYnJrKDIpIHNwYWNlLgorKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8g MiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9v YmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xz LWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4 cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxp YicKKysJOzsKKysgICAgICBpcml4NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgorKyAgICAgICAgICBDQyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92 ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmlu ZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLWFy Iiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAj IG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVk ZWQKKysJICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZl X2NtZHMsICQxKT0nJENDIC1hciAtV1IsLXUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7 CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKwkgICAg ICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVn aXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkgICAg ICBlbHNlCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmlu ZyIgfCAkWHNlZGAgLW8gJGxpYicKKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgICBfTFRfVEFH VkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKKysJICAgIDs7CisrICAgICAgICBlc2FjCisr ICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0t cnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9OgorKyAgICAgICAgX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9 eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrICAgICAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBLQ0MqKQorKwkgICAgIyBLdWNrIGFu ZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgorKworKwkgICAgIyBLQ0Mgd2ls bCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQorKwkgICAg IyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0aGUgbGli cmFyeQorKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlu a2luZy4KKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9J3RlbXBleHQ9YGVjaG8g JHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkwLTlBLVphLXp7fV1dXCkvXFxcXFwx L2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiov LnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBc JHRlbXBsaWIgJGxpYicKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcncy9cKFtbXigpMC05QS1a YS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMv XCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1v IFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9sczsgbXYg XCR0ZW1wbGliICRsaWInCisrCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVj ZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2lu ZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVh ciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBs aWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRo ZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVk ZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0 IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRHUkVQICJsZCJgOyBybSAtZiBsaWJj b25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2Ug JHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICop IGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKysK KysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1y cGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKwkgICAgIyBBcmNoaXZlcyBjb250YWlu aW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjICJDQyAt QnN0YXRpYyIsIHdoZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCisrCSAgICBfTFRf VEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9s ZG9ianMnCisrCSAgICA7OworKwkgIGljcGMqIHwgZWNwYyogKQorKwkgICAgIyBJbnRlbCBDKysK KysJICAgIHdpdGhfZ251X2xkPXllcworKwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2Yg aWNwYyBjaG9rZSBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbHMKKysJICAgICMgaWYgd2UgYWRk ICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBvc3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCisr CSAgICAjIGVhcmxpZXIgZG8gbm90IGFkZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorKwkgICAg Y2FzZSBgJENDIC1WIDI+JjFgIGluCisrCSAgICAgICoiVmVyc2lvbiA3LiIqKQorKwkgICAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwor KwkJOzsKKysJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKKysJICAgICAgICB0bXBf aWR5bj0KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkJICBpYTY0KikgdG1wX2lkeW49 JyAtaV9keW5hbWljJzs7CisrCQllc2FjCisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkJX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKysJCTs7 CisrCSAgICBlc2FjCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9 bm8KKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCwkbGliZGlyJworKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAk e3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJICAgIDs7CisrICAgICAgICAgIHBnQ0MqIHwgcGdj cHAqKQorKyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCisrCSAgICBj YXNlIGAkQ0MgLVZgIGluCisrCSAgICAqcGdDQ1wgW1sxLTVdXSogfCAqcGdjcHBcIFtbMS01XV0q KQorKwkgICAgICBfTFRfVEFHVkFSKHByZWxpbmtfY21kcywgJDEpPSd0cGxkaXI9VGVtcGxhdGUu ZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0 YW50aWF0aW9uX2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRjb21waWxlX2RlcGxpYnN+Cisr CQljb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgYGZpbmQgJHRwbGRpciAtbmFtZSBc Ki5vIHwgJE5MMlNQYCInCisrCSAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSd0cGxkaXI9VGVtcGxhdGUuZGlyfgorKwkJcm0gLXJmICR0cGxkaXJ+CisrCQkkQ0MgLS1wcmVs aW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRvbGRvYmpzJG9sZF9kZXBs aWJzfgorKwkJJEFSICRBUl9GTEFHUyAkb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMgYGZpbmQg JHRwbGRpciAtbmFtZSBcKi5vIHwgJE5MMlNQYH4KKysJCSRSQU5MSUIgJG9sZGxpYicKKysJICAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJ CXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlv bl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmll bmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJT UGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSAtbyAkbGliJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJl bGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+CisrCQkkQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5k ICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICAgIDs7CisrCSAgICAqKSAjIFZl cnNpb24gNiB3aWxsIHVzZSB3ZWFrIHN5bWJvbHMKKysJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHt3bH0kc29uYW1lIC1vICRsaWInCisrCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1f Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk e3dsfSRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9s cyAtbyAkbGliJworKwkgICAgICA7OworKwkgICAgZXNhYworKworKwkgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXIn CisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0t ZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7 IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmll bmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8t d2hvbGUtYXJjaGl2ZScKKysgICAgICAgICAgICA7OworKwkgIGN4eCopCisrCSAgICAjIENvbXBh cSBDKysKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgX0xUX1RBR1ZB UihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRl eHBvcnRfc3ltYm9scycKKysKKysJICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICisrCSAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRsaWJkaXIn CisrCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CisrCisr CSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCisrCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMg YW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5 LgorKwkgICAgIworKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBw cmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lz dGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0 aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkK KysJICAgICMgZGVwZW5kZW5jaWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3Rl bXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRH UkVQICJsZCJgOyB0ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXChe LipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7 IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2Jq ZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAk WHNlZCcKKysJICAgIDs7CisrCSAgeGwqKQorKwkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQywgd2l0 aCBHTlUgbGQKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCSAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCSAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIGlm IHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJICAgICAg X0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQljYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2Vk IC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQll Y2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJCSRD QyAtcW1rc2hyb2JqICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNjcmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLnZlciAtbyAkbGliJworKwkgICAgZmkKKysJICAgIDs7CisrCSAgKikKKysJICAgIGNh c2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkgICAgKlN1blwgQyopCisrCSAgICAgICMg U3VuIEMrKyA1LjkKKysJICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScg LXpkZWZzJworKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxp Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcke2FsbG93X3VuZGVm aW5lZF9mbGFnfSAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRl cGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scycKKysJICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICAgICAgX0xUX1RBR1ZBUih3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29u dmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNv bnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7 ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKysJ ICAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMKKysKKysJICAg ICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgorKwkgICAgICAjICRDQyAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYx CisrCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgorKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5r X2NtZD0nZWNobycKKysKKysJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3Qg ZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAi Q0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICAgICAjIG5lY2Vzc2Fy eSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAg ICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRz LCAkMSk9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICAgIDs7CisrCSAgICBl c2FjCisrCSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbHlueG9zKikKKysgICAgICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwlfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCisrCTs7CisrCisrICAgICAgbTg4ayopCisrICAgICAgICAjIEZJ WE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIF9MVF9UQUdW QVIobGRfc2hsaWJzLCAkMSk9bm8KKysJOzsKKysKKysgICAgICBtdnMqKQorKyAgICAgICAgY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgY3h4KikKKysJICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubworKwkgICAgOzsKKysJICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CSAgICA7OworKwllc2FjCisrCTs7CisrCisrICAgICAgbmV0YnNkKikKKysgICAgICAgIGlmIGVj aG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisr CSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5r ZXJfZmxhZ3MnCisrCSAgd2xhcmM9CisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwg JDEpPXllcworKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCisr CWZpCisrCSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKKysJb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9i amV4dCAyPiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxj IC1sZ2NjOjoiJworKwk7OworKworKyAgICAgICpudG8qIHwgKnFueCopCisrICAgICAgICBfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPXllcworKwk7OworKworKyAgICAgIG9wZW5ic2QyKikKKysg ICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KKysJX0xUX1RB R1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwk7OworKworKyAgICAgIG9wZW5ic2QqKQorKwlpZiB0 ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgorKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0LCAkMSk9eWVzCisrCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAk MSk9bm8KKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwor KwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLW8gJGxpYicKKysJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9j cHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJworKwkgICAgX0xU X1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJj aGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJworKwkgIGZpCisr CSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZWNobworKwllbHNlCisrCSAgX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubworKwlmaQorKwk7OworKworKyAgICAgIG9zZjMqIHwgb3NmNCogfCBv c2Y1KikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIEtDQyopCisr CSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCisrCisr CSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1 dCBmaWxlCisrCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28g cmVuYW1lIHRoZSBsaWJyYXJ5CisrCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJz aW9uKSBhZnRlciBsaW5raW5nLgorKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n dGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEtWmEt ent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQgLWUgInMv XCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1v IFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCisrCisrCSAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKKysKKysJICAgICMgQXJj aGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwor KwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KKysJICAgIGNhc2UgJGhvc3QgaW4KKysJICAg ICAgb3NmMyopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLUJzdGF0aWMg LW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKKysJICAgICAgKikgX0xUX1RBR1ZBUihvbGRfYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OworKwkgICAgZXNhYworKwkg ICAgOzsKKysgICAgICAgICAgUkNDKikKKysJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCisrCSAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9U QUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgIGN4eCopCisrCSAg ICBjYXNlICRob3N0IGluCisrCSAgICAgIG9zZjMqKQorKwkgICAgICAgIF9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon CisrCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2Fs bG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIg fCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJworKwkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisrCQk7OworKwkgICAgICAqKQorKwkgICAg ICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNv bHZlZCBcKicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25h bWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJp bmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlv bnMgLW8gJGxpYicKKysJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAt ZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lfgorKwkgICAgICAgICAgZWNo byAiLWhpZGRlbiI+PiAkbGliLmV4cH4KKysJICAgICAgICAgICRDQyAtc2hhcmVkJGFsbG93X3Vu ZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgJHt3bH0taW5wdXQg JHt3bH0kbGliLmV4cCAgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJz aW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGly fS9zb19sb2NhdGlvbnMgLW8gJGxpYn4KKysJICAgICAgICAgICRSTSAkbGliLmV4cCcKKysJICAg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRs aWJkaXInCisrCQk7OworKwkgICAgZXNhYworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yLCAkMSk9OgorKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9l c24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJ ICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0 byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3Qg Z2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0 ZW1wbGlzdD1gJEVDSE8gIlgkdGVtcGxpc3QiIHwgJFhzZWQgLWUgInMvXCheLipsZC4qXClcKCAu KmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBp biBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlz dD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworKwkgICAg OzsKKysJICAqKQorKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IG5vOyB0aGVuCisrCSAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcs ICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCisrCSAgICAgIGNhc2UgJGhv c3QgaW4KKysJICAgICAgICBvc2YzKikKKysJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIg JiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7 d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCisrCQkgIDs7CisrCSAgICAgICAgKikKKysJICAgICAgICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9m bGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0 IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3Ry aW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9 L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwkJICA7OworKwkgICAgICBlc2FjCisrCisrCSAgICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAk e3dsfSRsaWJkaXInCisrCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciwgJDEpPToKKysKKysJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2Ug dmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFy aWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAgICAgIyBsaW5r aW5nIGEgc2hhcmVkIGxpYnJhcnkuCisrCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSck Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwi JworKworKwkgICAgZWxzZQorKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJy YXJ5IHN1cHBvcnQKKysJICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKwkgICAg ZmkKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAgIHBzb3Mq KQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr ICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKworKyAg ICAgIHN1bm9zNCopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBD QyopCisrCSAgICAjIFN1biBDKysgNC54CisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKysJ ICAgIDs7CisrICAgICAgICAgIGxjYyopCisrCSAgICAjIEx1Y2lkCisrCSAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hs aWJzLCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICAg IHNvbGFyaXMqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgQ0Mq KQorKwkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKworKyAgICAgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsJDEpPXllcworKwkgICAgX0xUX1RB R1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJworKwkgICAgX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFt ZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8 ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIg Pj4gJGxpYi5leHB+CisrCSAgICAgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9 LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhw JworKworKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1S JGxpYmRpcicKKysJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5v CisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIHNvbGFyaXMyLltbMC01XV0gfCBzb2xh cmlzMi5bWzAtNV1dLiopIDs7CisrCSAgICAgICopCisrCQkjIFRoZSBjb21waWxlciBkcml2ZXIg d2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAorKwkJIyBidXQgdW5kZXJz dGFuZHMgYC16IGxpbmtlcl9mbGFnJy4KKysJICAgICAgICAjIFN1cHBvcnRlZCBzaW5jZSBTb2xh cmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwkJX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRlZmF1bHRleHRyYWN0Jwor KwkgICAgICAgIDs7CisrCSAgICBlc2FjCisrCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxp YnMsICQxKT15ZXMKKysKKysJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJworKwor KwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVh dGVkIHVzaW5nCisrCSAgICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBj b21waWxlci4gIFRoaXMgaXMKKysJICAgICMgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VyZSBpbnN0YW50 aWF0ZWQgdGVtcGxhdGVzIGFyZSBpbmNsdWRlZAorKwkgICAgIyBpbiB0aGUgYXJjaGl2ZS4KKysJ ICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLXhhciAtbyAkb2xkbGli ICRvbGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgZ2N4KikKKysJICAgICMgR3JlZW4gSGls bHMgQysrIENvbXBpbGVyCisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCisrCSAgICAj IFRoZSBDKysgY29tcGlsZXIgbXVzdCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgYXJjaGl2ZS4KKysJ ICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgJExERkxBR1MgLWFyY2hp dmUgLW8gJG9sZGxpYiAkb2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICAj IEdOVSBDKysgY29tcGlsZXIgd2l0aCBTb2xhcmlzIGxpbmtlcgorKwkgICAgaWYgdGVzdCAiJEdY WCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCSAgICAgIF9MVF9U QUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LXogJHt3bH1kZWZzJworKwkgICAg ICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgor KwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0 ZGxpYiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCSAg ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFs OiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7 LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJCSAgJEND IC1zaGFyZWQgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29i amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+ JFJNICRsaWIuZXhwJworKworKwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBw cm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKKysJICAgICAgICAjIHdoYXQgImhpZGRl biIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KKysJICAg ICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEg fCAkR1JFUCAiXC1MIicKKysJICAgICAgZWxzZQorKwkgICAgICAgICMgZysrIDIuNyBhcHBlYXJz IHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKKysJICAgICAgICAjIHBsYXRm b3JtLgorKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAtbm9z dGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJworKwkg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2Jh bDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wx Oy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCQkgICRD QyAtRyAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0g JGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1 Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAgICMgd2hhdCAiaGlkZGVuIiBs aWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgICAg ICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xp bmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAi XC1MIicKKysJICAgICAgZmkKKysKKysJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIgJHdsJGxpYmRpcicKKysJICAgICAgY2FzZSAkaG9zdF9v cyBpbgorKwkJc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKKysJCSop CisrCQkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAk e3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0Jwor KwkJICA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgICAgOzsKKysgICAgICAgIGVzYWMK KysgICAgICAgIDs7CisrCisrICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1 VW5peFdhcmU3LltbMDFdXS5bWzEwXV0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuW1swMjRd XSopCisrICAgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRl eHQnCisrICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisrICAg ICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KKysgICAgICBydW5w YXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysg ICAgICAgIENDKikKKysJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3 bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4 cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrCSopCisrCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgICBzeXN2NSogfCBzY28z LjJ2NSogfCBzY281djYqKQorKwkjIE5vdGU6IFdlIGNhbiBOT1QgdXNlIC16IGRlZnMgYXMgd2Ug bWlnaHQgZGVzaXJlLCBiZWNhdXNlIHdlIGRvIG5vdAorKwkjIGxpbmsgd2l0aCAtbGMsIGFuZCB0 aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCisrCSMgYWx3YXlz IGJlIHVucmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGp1c3QgYWJvdXQgbm8gbGlicmFyeSB3b3VsZAor KwkjIGV2ZXIgbGluayBjb3JyZWN0bHkuICBJZiB3ZSdyZSBub3QgdXNpbmcgR05VIGxkIHdlIHVz ZSAteiB0ZXh0CisrCSMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMg YnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAorKwkjIGFzIC16IGRlZnMuCisrCV9MVF9UQUdWQVIo bm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teix0ZXh0JworKwlfTFRfVEFHVkFSKGFsbG93 X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosbm9kZWZzJworKwlfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhf dmFyLCAkMSk9bm8KKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LVIsJGxpYmRpcicKKysJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9JzonCisrCV9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcworKwlfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JworKwly dW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAg ICAgICAgIENDKikKKysJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9 LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIDs7CisrCSAgKikKKysJICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBv cnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MnCisrCSAgICA7OworKwllc2FjCisrICAgICAgOzsKKysKKysgICAgICB0YW5k ZW0qKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAgICAgICAgTkNDKikKKysJ ICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisr CSAgICA7OworKyAgICAgICAgICAqKQorKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrCSAg ICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAgICB2eHdvcmtzKikKKysg ICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAg ICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubworKyAgICAgICAgOzsKKysKKysgICAgICAq KQorKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Cisr ICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCisrICAgICAgICA7OworKyAgICBl c2FjCisrCisrICAgIEFDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpXSkK KysgICAgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8gJiYgY2FuX2J1aWxk X3NoYXJlZD1ubworKworKyAgICBfTFRfVEFHVkFSKEdDQywgJDEpPSIkR1hYIgorKyAgICBfTFRf VEFHVkFSKExELCAkMSk9IiRMRCIKKysKKysgICAgIyMgQ0FWRUFUIEVNUFRPUjoKKysgICAgIyMg VGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRv IG5vdCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUg dGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysgICAgIyMgd2hhdCB5b3UgYXJl IGRvaW5nLi4uCisrICAgIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoJDEpCisrICAgIF9MVF9DT01Q SUxFUl9QSUMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICAgIF9MVF9DT01QSUxF Ul9GSUxFX0xPQ0tTKCQxKQorKyAgICBfTFRfTElOS0VSX1NITElCUygkMSkKKysgICAgX0xUX1NZ U19EWU5BTUlDX0xJTktFUigkMSkKKysgICAgX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQx KQorKworKyAgICBfTFRfQ09ORklHKCQxKQorKyAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCisr CisrICBDQz0kbHRfc2F2ZV9DQworKyAgTERDWFg9JExECisrICBMRD0kbHRfc2F2ZV9MRAorKyAg R0NDPSRsdF9zYXZlX0dDQworKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKKysg IGx0X2N2X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKKysgIGx0X2N2X3BhdGhfTEQ9JGx0X3Nh dmVfcGF0aF9MRAorKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCisr ICBsdF9jdl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAorK2ZpICMgdGVzdCAiJF9s dF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXMKKysKKytBQ19MQU5HX1BPUAorK10pIyBfTFRfTEFO R19DWFhfQ09ORklHCisrCisrCisrIyBfTFRfU1lTX0hJRERFTl9MSUJERVBTKFtUQUdOQU1FXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgRmlndXJlIG91dCAiaGlk ZGVuIiBsaWJyYXJ5IGRlcGVuZGVuY2llcyBmcm9tIHZlcmJvc2UKKysjIGNvbXBpbGVyIG91dHB1 dCB3aGVuIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysjIFBhcnNlIHRoZSBjb21waWxlciBv dXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQorKyMgb2JqZWN0cywgbGlicmFyaWVzIGFu ZCBsaWJyYXJ5IGZsYWdzLgorK200X2RlZnVuKFtfTFRfU1lTX0hJRERFTl9MSUJERVBTXSwKKytb bTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCisrIyBEZXBlbmRlbmNpZXMg dG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKKytfTFRf VEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9CisrX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMs ICQxKT0KKytfTFRfVEFHVkFSKHByZWRlcHMsICQxKT0KKytfTFRfVEFHVkFSKHBvc3RkZXBzLCAk MSk9CisrX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKT0KKysKKytkbmwg d2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUgaGVyZSwKKytkbmwg YmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVuZGVkIGZvciBhbiBleGVjdXRhYmxlLAorK2Ru bCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3ZSBzaG91bGQgbGV0IGVhY2gKKytkbmwg dGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVzdF9jb2RlIHZhcmlhYmxlLAorK2RubCBi dXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgorK200X2lmKFskMV0sIFtdLCBbY2F0ID4gY29uZnRl c3QuJGFjX2V4dCA8PF9MVF9FT0YKKytpbnQgYTsKKyt2b2lkIGZvbyAodm9pZCkgeyBhID0gMDsg fQorK19MVF9FT0YKKytdLCBbJDFdLCBbQ1hYXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxf TFRfRU9GCisrY2xhc3MgRm9vCisreworK3B1YmxpYzoKKysgIEZvbyAodm9pZCkgeyBhID0gMDsg fQorK3ByaXZhdGU6CisrICBpbnQgYTsKKyt9OworK19MVF9FT0YKKytdLCBbJDFdLCBbRjc3XSwg W2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrICAgICAgc3Vicm91dGluZSBmb28K KysgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlcio0IGEKKysgICAgICBhPTAKKysg ICAgICByZXR1cm4KKysgICAgICBlbmQKKytfTFRfRU9GCisrXSwgWyQxXSwgW0ZDXSwgW2NhdCA+ IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCisrICAgICAgc3Vicm91dGluZSBmb28KKysgICAg ICBpbXBsaWNpdCBub25lCisrICAgICAgaW50ZWdlciBhCisrICAgICAgYT0wCisrICAgICAgcmV0 dXJuCisrICAgICAgZW5kCisrX0xUX0VPRgorK10sIFskMV0sIFtHQ0pdLCBbY2F0ID4gY29uZnRl c3QuJGFjX2V4dCA8PF9MVF9FT0YKKytwdWJsaWMgY2xhc3MgZm9vIHsKKysgIHByaXZhdGUgaW50 IGE7CisrICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKKysgICAgYSA9IDA7CisrICB9CisrfTsK KytfTFRfRU9GCisrXSkKKytkbmwgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFj dCB0aGUgbmVjZXNzYXJ5CisrZG5sIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFn cy4KKytpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgorKyAgIyBQYXJzZSB0aGUgY29t cGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKKysgICMgb2JqZWN0cywgbGli cmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgorKworKyAgIyBTZW50aW5lbCB1c2VkIHRvIGtlZXAg dHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQorKyAgIyB0aGUgY29uZnRlc3Qg b2JqZWN0IGZpbGUuCisrICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPW5vCisrCisrICBmb3Ig cCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7IGRvCisrICAgIGNhc2UgJHAg aW4KKysKKysgICAgLUwqIHwgLVIqIHwgLWwqKQorKyAgICAgICAjIFNvbWUgY29tcGlsZXJzIHBs YWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRoZSBwYXRoLgorKyAgICAgICAjIFJlbW92 ZSB0aGUgc3BhY2UuCisrICAgICAgIGlmIHRlc3QgJHAgPSAiLUwiIHx8CisrICAgICAgICAgIHRl c3QgJHAgPSAiLVIiOyB0aGVuCisrCSBwcmV2PSRwCisrCSBjb250aW51ZQorKyAgICAgICBlbHNl CisrCSBwcmV2PQorKyAgICAgICBmaQorKworKyAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2Jq ZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgorKwkgY2FzZSAkcCBpbgorKwkgLUwqIHwgLVIqKQor KwkgICAjIEludGVybmFsIGNvbXBpbGVyIGxpYnJhcnkgcGF0aHMgc2hvdWxkIGNvbWUgYWZ0ZXIg dGhvc2UKKysJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5IGNv bWUgYWZ0ZXIgdGhlCisrCSAgICMgdXNlciBzdXBwbGllZCBsaWJzIHNvIHRoZXJlIGlzIG5vIG5l ZWQgdG8gcHJvY2VzcyB0aGVtLgorKwkgICBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihjb21waWxl cl9saWJfc2VhcmNoX3BhdGgsICQxKSI7IHRoZW4KKysJICAgICBfTFRfVEFHVkFSKGNvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aCwgJDEpPSIke3ByZXZ9JHtwfSIKKysJICAgZWxzZQorKwkgICAgIF9M VF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9IiR7X0xUX1RBR1ZBUihjb21w aWxlcl9saWJfc2VhcmNoX3BhdGgsICQxKX0gJHtwcmV2fSR7cH0iCisrCSAgIGZpCisrCSAgIDs7 CisrCSAjIFRoZSAiLWwiIGNhc2Ugd291bGQgbmV2ZXIgY29tZSBiZWZvcmUgdGhlIG9iamVjdCBi ZWluZworKwkgIyBsaW5rZWQsIHNvIGRvbid0IGJvdGhlciBoYW5kbGluZyB0aGlzIGNhc2UuCisr CSBlc2FjCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKHBvc3RkZXBz LCAkMSkiOyB0aGVuCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0iJHtwcmV2fSR7cH0i CisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKT0iJHtfTFRfVEFHVkFSKHBv c3RkZXBzLCAkMSl9ICR7cHJldn0ke3B9IgorKwkgZmkKKysgICAgICAgZmkKKysgICAgICAgOzsK KysKKysgICAgKi4kb2JqZXh0KQorKyAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0 IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKKysgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxl ciBvdXRwdXQuCisrICAgICAgIGlmIHRlc3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0IjsgdGhl bgorKwkgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT15ZXMKKysJIGNvbnRpbnVlCisrICAgICAg IGZpCisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5v OyB0aGVuCisrCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpIjsg dGhlbgorKwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRwIgorKwkgZWxzZQor KwkgICBfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHByZWRlcF9v YmplY3RzLCAkMSkgJHAiCisrCSBmaQorKyAgICAgICBlbHNlCisrCSBpZiB0ZXN0IC16ICIkX0xU X1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKSI7IHRoZW4KKysJICAgX0xUX1RBR1ZBUihwb3N0 ZGVwX29iamVjdHMsICQxKT0iJHAiCisrCSBlbHNlCisrCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9v YmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywgJDEpICRwIgorKwkgZmkK KysgICAgICAgZmkKKysgICAgICAgOzsKKysKKysgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3Qu CisrCisrICAgIGVzYWMKKysgIGRvbmUKKysKKysgICMgQ2xlYW4gdXAuCisrICBybSAtZiBhLm91 dCBhLmV4ZQorK2Vsc2UKKysgIGVjaG8gImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBp bGluZyAkMSB0ZXN0IHByb2dyYW0iCisrZmkKKysKKyskUk0gLWYgY29uZmVzdC4kb2JqZXh0Cisr CisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lzdGVtcyB3aGVyZSBpdCBpcyBi cm9rZW4KKyttNF9pZihbJDFdLCBbQ1hYXSwKKytbY2FzZSAkaG9zdF9vcyBpbgorK2ludGVyaXhb WzMtOV1dKikKKysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEg ZmlsZXMgZm9yIEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBs ZXQncyBqdXN0IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBfTFRfVEFHVkFSKHByZWRlcF9vYmpl Y3RzLCQxKT0KKysgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCQxKT0KKysgIF9MVF9UQUdW QVIocG9zdGRlcHMsJDEpPQorKyAgOzsKKysKKytsaW51eCopCisrICBjYXNlIGAkQ0MgLVYgMj4m MSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1biBDKysgNS45CisrCisrICAg ICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQgbGlicmFyeSBpcworKyAg ICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcK KysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGliQ3J1biBhcworKyAgICAj IC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNhc2UgIiAkQ1hYICRDWFhG TEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQorKyAgICAgIHNvbGFyaXNf dXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAi JHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAgICBfTFRfVEFHVkFSKHBv c3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1DcnVuJworKyAgICBmaQorKyAgICA7 OworKyAgZXNhYworKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu CisrICBDQyopCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQg bGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2 b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGli Q3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNh c2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQor KyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysK KysgICAgIyBBZGRpbmcgdGhpcyByZXF1aXJlcyBhIGtub3duLWdvb2Qgc2V0dXAgb2Ygc2hhcmVk IGxpYnJhcmllcyBmb3IKKysgICAgIyBTdW4gY29tcGlsZXIgdmVyc2lvbnMgYmVmb3JlIDUuNiwg ZWxzZSBQSUMgb2JqZWN0cyBmcm9tIGFuIG9sZAorKyAgICAjIGFyY2hpdmUgd2lsbCBiZSBsaW5r ZWQgaW50byB0aGUgb3V0cHV0LCBsZWFkaW5nIHRvIHN1YnRsZSBidWdzLgorKyAgICBpZiB0ZXN0 ICIkc29sYXJpc191c2Vfc3RscG9ydDQiICE9IHllczsgdGhlbgorKyAgICAgIF9MVF9UQUdWQVIo cG9zdGRlcHMsJDEpPSctbGlicmFyeT1Dc3RkIC1saWJyYXJ5PUNydW4nCisrICAgIGZpCisrICAg IDs7CisrICBlc2FjCisrICA7OworK2VzYWMKKytdKQorKworK2Nhc2UgIiAkX0xUX1RBR1ZBUihw b3N0ZGVwcywgJDEpICIgaW4KKysqIiAtbGMgIiopIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25l ZWRfbGMsICQxKT1ubyA7OworK2VzYWMKKysgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNo X2RpcnMsICQxKT0KKytpZiB0ZXN0IC1uICIke19MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJj aF9wYXRoLCAkMSl9IjsgdGhlbgorKyBfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfZGly cywgJDEpPWBlY2hvICIgJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEp fSIgfCAke1NFRH0gLWUgJ3MhIC1MISAhZycgLWUgJ3MhXiAhISdgCisrZmkKKytfTFRfVEFHREVD TChbXSwgW2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc10sIFsxXSwKKysgICAgW1RoZSBkaXJlY3Rv cmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFyZWQgbGli cmFyeV0pCisrX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBfb2JqZWN0c10sIFsxXSwKKysgICAgW0Rl cGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFmdGVyIHRoZSBvYmplY3RzIGJlaW5nIGxp bmtlZCB0bworKyAgICBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeV0pCisrX0xUX1RBR0RFQ0woW10s IFtwb3N0ZGVwX29iamVjdHNdLCBbMV0pCisrX0xUX1RBR0RFQ0woW10sIFtwcmVkZXBzXSwgWzFd KQorK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcHNdLCBbMV0pCisrX0xUX1RBR0RFQ0woW10sIFtj b21waWxlcl9saWJfc2VhcmNoX3BhdGhdLCBbMV0sCisrICAgIFtUaGUgbGlicmFyeSBzZWFyY2gg cGF0aCB1c2VkIGludGVybmFsbHkgYnkgdGhlIGNvbXBpbGVyIHdoZW4gbGlua2luZworKyAgICBh IHNoYXJlZCBsaWJyYXJ5XSkKKytdKSMgX0xUX1NZU19ISURERU5fTElCREVQUworKworKworKyMg X0xUX1BST0dfRjc3CisrIyAtLS0tLS0tLS0tLS0KKysjIFNpbmNlIEFDX1BST0dfRjc3IGlzIGJy b2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcKKysjIGlmIHRoZXJlIGlz IG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCisrbTRf ZGVmdW4oW19MVF9QUk9HX0Y3N10sCisrWworK3B1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRf ZGlzYWJsZV9GNzc9eWVzXSkKKytBQ19QUk9HX0Y3NworK2lmIHRlc3QgLXogIiRGNzciIHx8IHRl c3QgIlgkRjc3IiA9ICJYbm8iOyB0aGVuCisrICBfbHRfZGlzYWJsZV9GNzc9eWVzCisrZmkKKytw b3BkZWYoW0FDX01TR19FUlJPUl0pCisrXSkjIF9MVF9QUk9HX0Y3NworKworK2RubCBhY2xvY2Fs LTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW19MVF9QUk9HX0Y3 N10sIFtdKQorKworKworKyMgX0xUX0xBTkdfRjc3X0NPTkZJRyhbVEFHXSkKKysjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJp YWJsZXMgZm9yIGEgRm9ydHJhbiA3NyBjb21waWxlciBhcmUKKysjIHN1aXRhYmx5IGRlZmluZWQu ICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKysj IHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9k ZWZ1bihbX0xUX0xBTkdfRjc3X0NPTkZJR10sCisrW0FDX1JFUVVJUkUoW19MVF9QUk9HX0Y3N10p ZG5sCisrQUNfTEFOR19QVVNIKEZvcnRyYW4gNzcpCisrCisrX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPW5vCisrX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PQorK19MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKytfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2Zs YWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKytfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCisrX0xUX1RBR1ZBUihoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y LCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KKytfTFRfVEFHVkFS KGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAk MSk9bm8KKytfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihtb2R1bGVf ZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtu b3duCisrX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMK KytfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0 YXRpY19ydW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGY3 NyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWYKKysKKysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBm b3IgY29tcGlsZWQgZjc3IHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK19MVF9UQUdWQVIob2Jq ZXh0LCAkMSk9JG9iamV4dAorKworKyMgTm8gc2Vuc2UgaW4gcnVubmluZyBhbGwgdGhlc2UgdGVz dHMgaWYgd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoYXQKKysjIHRoZSBGNzcgY29tcGlsZXIgaXNu J3Qgd29ya2luZy4gIFNvbWUgdmFyaWFibGVzIChsaWtlIGVuYWJsZV9zaGFyZWQpCisrIyBhcmUg Y3VycmVudGx5IGFzc3VtZWQgdG8gYXBwbHkgdG8gYWxsIGNvbXBpbGVycyBvbiB0aGlzIHBsYXRm b3JtLAorKyMgYW5kIHdpbGwgYmUgY29ycnVwdGVkIGJ5IHNldHRpbmcgdGhlbSBiYXNlZCBvbiBh IG5vbi13b3JraW5nIGNvbXBpbGVyLgorK2lmIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHll czsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKysg IGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUgdAorKyAg ICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKKysgICAgICBw cm9ncmFtIHQKKysgICAgICBlbmQKKysiCisrCisrICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZv ciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisrICBfTFRf VEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxl IHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrICBfTFRfTElOS0VSX0JP SUxFUlBMQVRFCisrCisrICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn dW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJENDIgorKyAgbHRfc2F2ZV9HQ0M9JEdDQworKyAgQ0M9 JHtGNzctImY3NyJ9CisrICBjb21waWxlcj0kQ0MKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQx KT0kQ0MKKysgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKysgIEdDQz0kRzc3CisrICBp ZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisrICAgIEFDX01TR19DSEVDS0lORyhbaWYgbGli dG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAgQUNfTVNHX1JFU1VMVChbJGNh bl9idWlsZF9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gYnVp bGQgc2hhcmVkIGxpYnJhcmllc10pCisrICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hhcmVkIiA9ICJu byIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyAgICAjIE9uIEFJWCwgc2hhcmVkIGxpYnJhcmll cyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBhbmQKKysgICAg IyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgorKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAg YWl4MyopCisrICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0 YXRpYz1ubworKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgICAgICAgICAg YXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgorKyAgICAgICAgICBw b3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCisrICAgICAgICBmaQorKyAgICAgICAgOzsK KysgICAgICBhaXhbWzQtOV1dKikKKysJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRl c3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorKwkgIHRlc3QgIiRlbmFi bGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrCWZpCisrICAgICAgICA7Owor KyAgICBlc2FjCisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkKKysKKysgICAg QUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJpZXNdKQorKyAg ICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHll cy4KKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9zdGF0aWM9eWVz CisrICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKKysKKysgICAgX0xUX1RBR1ZB UihHQ0MsICQxKT0iJEc3NyIKKysgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrCisrICAg ICMjIENBVkVBVCBFTVBUT1I6CisrICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0 aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisrICAgICMjIHRoZSBydW5u aW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBl eGFjdGx5CisrICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorKyAgICBfTFRfQ09NUElMRVJf UElDKCQxKQorKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQorKyAgICBfTFRfQ09NUElMRVJfRklM RV9MT0NLUygkMSkKKysgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCisrICAgIF9MVF9TWVNfRFlO QU1JQ19MSU5LRVIoJDEpCisrICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKysK KysgICAgX0xUX0NPTkZJRygkMSkKKysgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVyIgorKworKyAg R0NDPSRsdF9zYXZlX0dDQworKyAgQ0M9IiRsdF9zYXZlX0NDIgorK2ZpICMgdGVzdCAiJF9sdF9k aXNhYmxlX0Y3NyIgIT0geWVzCisrCisrQUNfTEFOR19QT1AKKytdKSMgX0xUX0xBTkdfRjc3X0NP TkZJRworKworKworKyMgX0xUX1BST0dfRkMKKysjIC0tLS0tLS0tLS0tCisrIyBTaW5jZSBBQ19Q Uk9HX0ZDIGlzIGJyb2tlbiwgaW4gdGhhdCBpdCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcKKysj IGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9u IGhlcmUuCisrbTRfZGVmdW4oW19MVF9QUk9HX0ZDXSwKKytbCisrcHVzaGRlZihbQUNfTVNHX0VS Uk9SXSwgW19sdF9kaXNhYmxlX0ZDPXllc10pCisrQUNfUFJPR19GQworK2lmIHRlc3QgLXogIiRG QyIgfHwgdGVzdCAiWCRGQyIgPSAiWG5vIjsgdGhlbgorKyAgX2x0X2Rpc2FibGVfRkM9eWVzCisr ZmkKKytwb3BkZWYoW0FDX01TR19FUlJPUl0pCisrXSkjIF9MVF9QUk9HX0ZDCisrCisrZG5sIGFj bG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbX0xUX1BS T0dfRkNdLCBbXSkKKysKKysKKysjIF9MVF9MQU5HX0ZDX0NPTkZJRyhbVEFHXSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZh cmlhYmxlcyBmb3IgYSBGb3J0cmFuIGNvbXBpbGVyIGFyZQorKyMgc3VpdGFibHkgZGVmaW5lZC4g IFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRworKyMg dG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorK200X2Rl ZnVuKFtfTFRfTEFOR19GQ19DT05GSUddLAorK1tBQ19SRVFVSVJFKFtfTFRfUFJPR19GQ10pZG5s CisrQUNfTEFOR19QVVNIKEZvcnRyYW4pCisrCisrX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVl ZF9sYywgJDEpPW5vCisrX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQorK19M VF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKytfTFRfVEFHVkFSKGFyY2hp dmVfZXhwc3ltX2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPQorK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KKytfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCisrX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkLCAkMSk9CisrX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 CisrX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KKytfTFRfVEFHVkFSKGhhcmRj b2RlX2F1dG9tYXRpYywgJDEpPW5vCisrX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8K KytfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9CisrX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3lt X2NtZHMsICQxKT0KKytfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCisr X0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKKytfTFRf VEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CisrX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYywgJDEpPQorK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lcywgJDEpPW5vCisrCisrIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGZjIHRlc3Qg c291cmNlcy4KKythY19leHQ9JHthY19mY19zcmNleHQtZn0KKysKKysjIE9iamVjdCBmaWxlIGV4 dGVuc2lvbiBmb3IgY29tcGlsZWQgZmMgdGVzdCBzb3VyY2VzLgorK29iamV4dD1vCisrX0xUX1RB R1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisrCisrIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0 aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAorKyMgdGhlIEZDIGNvbXBp bGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQor KyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhp cyBwbGF0Zm9ybSwKKysjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFz ZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KKytpZiB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMi ICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVz dHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAorKyAgICAgIHN1YnJvdXRpbmUg dAorKyAgICAgIHJldHVybgorKyAgICAgIGVuZAorKyIKKysKKysgICMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBsaW5rIHRlc3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKKysg ICAgICBwcm9ncmFtIHQKKysgICAgICBlbmQKKysiCisrCisrICAjIGx0bWFpbiBvbmx5IHVzZXMg JENDIGZvciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCisr ICBfTFRfVEFHX0NPTVBJTEVSCisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Yg c2ltcGxlIHRlc3QgY29kZQorKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCisrICBfTFRfTElO S0VSX0JPSUxFUlBMQVRFCisrCisrICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJndW1lbnRzLgorKyAgbHRfc2F2ZV9DQz0iJENDIgorKyAgbHRfc2F2ZV9HQ0M9JEdDQwor KyAgQ0M9JHtGQy0iZjk1In0KKysgIGNvbXBpbGVyPSRDQworKyAgR0NDPSRhY19jdl9mY19jb21w aWxlcl9nbnUKKysKKysgIF9MVF9UQUdWQVIoY29tcGlsZXIsICQxKT0kQ0MKKysgIF9MVF9DQ19C QVNFTkFNRShbJGNvbXBpbGVyXSkKKysKKysgIGlmIHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4K KysgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXNdKQorKyAgICBBQ19NU0dfUkVTVUxUKFskY2FuX2J1aWxkX3NoYXJlZF0pCisrCisrICAgIEFD X01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKKysgICAg dGVzdCAiJGNhbl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCisrCisr ICAgICMgT24gQUlYLCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0 aGUgc2FtZSBuYW1lc3BhY2UsIGFuZAorKyAgICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCisr ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgzKikKKysgICAgICAgIHRlc3QgIiRlbmFi bGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisrICAgICAgICBpZiB0ZXN0IC1u ICIkUkFOTElCIjsgdGhlbgorKyAgICAgICAgICBhcmNoaXZlX2NtZHM9IiRhcmNoaXZlX2NtZHN+ XCRSQU5MSUIgXCRsaWIiCisrICAgICAgICAgIHBvc3RpbnN0YWxsX2NtZHM9JyRSQU5MSUIgJGxp YicKKysgICAgICAgIGZpCisrICAgICAgICA7OworKyAgICAgIGFpeFtbNC05XV0qKQorKwlpZiB0 ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmci ID0gbm8gOyB0aGVuCisrCSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9z dGF0aWM9bm8KKysJZmkKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgICAgQUNfTVNHX1JFU1VM VChbJGVuYWJsZV9zaGFyZWRdKQorKworKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8g YnVpbGQgc3RhdGljIGxpYnJhcmllc10pCisrICAgICMgTWFrZSBzdXJlIGVpdGhlciBlbmFibGVf c2hhcmVkIG9yIGVuYWJsZV9zdGF0aWMgaXMgeWVzLgorKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJl ZCIgPSB5ZXMgfHwgZW5hYmxlX3N0YXRpYz15ZXMKKysgICAgQUNfTVNHX1JFU1VMVChbJGVuYWJs ZV9zdGF0aWNdKQorKworKyAgICBfTFRfVEFHVkFSKEdDQywgJDEpPSIkYWNfY3ZfZmNfY29tcGls ZXJfZ251IgorKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKKysKKysgICAgIyMgQ0FWRUFU IEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZv bGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5pbmcgb3JkZXIg b3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKKysg ICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgIF9MVF9TWVNfSElEREVOX0xJQkRFUFMo JDEpCisrICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCisrICAgIF9MVF9DT01QSUxFUl9DX08oJDEp CisrICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQorKyAgICBfTFRfTElOS0VSX1NITElC UygkMSkKKysgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKKysgICAgX0xUX0xJTktFUl9I QVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgICBfTFRfQ09ORklHKCQxKQorKyAgZmkgIyB0ZXN0 IC1uICIkY29tcGlsZXIiCisrCisrICBHQ0M9JGx0X3NhdmVfR0NDCisrICBDQz0iJGx0X3NhdmVf Q0MiCisrZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllcworKworK0FDX0xBTkdfUE9Q CisrXSkjIF9MVF9MQU5HX0ZDX0NPTkZJRworKworKworKyMgX0xUX0xBTkdfR0NKX0NPTkZJRyhb VEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFbnN1cmUgdGhhdCB0aGUg Y29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBHTlUgSmF2YSBDb21waWxlciBjb21waWxl cgorKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVl bnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKKysjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25maWd1 cmF0aW9uIHRvIGBsaWJ0b29sJy4KKyttNF9kZWZ1bihbX0xUX0xBTkdfR0NKX0NPTkZJR10sCisr W0FDX1JFUVVJUkUoW0xUX1BST0dfR0NKXSlkbmwKKytBQ19MQU5HX1NBVkUKKysKKysjIFNvdXJj ZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PWphdmEKKysK KysjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0IHNvdXJjZXMu Cisrb2JqZXh0PW8KKytfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKKysKKysjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cworK2x0X3NpbXBsZV9jb21waWxlX3Rl c3RfY29kZT0iY2xhc3MgZm9vIHt9IgorKworKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBs aW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xhc3MgY29uZnRl c3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9OyB9JworKwor KyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtl IHN1cmUgJENDIGlzIHNldC4KKytfTFRfVEFHX0NPTVBJTEVSCisrCisrIyBzYXZlIHdhcm5pbmdz L2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9JTEVSUExB VEUKKytfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrbHRfc2F2ZV9HQ0M9 JEdDQworK0dDQz15ZXMKKytDQz0ke0dDSi0iZ2NqIn0KKytjb21waWxlcj0kQ0MKKytfTFRfVEFH VkFSKGNvbXBpbGVyLCAkMSk9JENDCisrX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCisrX0xUX0ND X0JBU0VOQU1FKFskY29tcGlsZXJdKQorKworKyMgR0NKIGRpZCBub3QgZXhpc3QgYXQgdGhlIHRp bWUgR0NDIGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4KKytfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKysKKytfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMs ICQxKT0kb2xkX2FyY2hpdmVfY21kcworKworKyMjIENBVkVBVCBFTVBUT1I6CisrIyMgVGhlcmUg aXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBj aGFuZ2UKKysjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3Vu ZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgorK2lm IHRlc3QgLW4gIiRjb21waWxlciI7IHRoZW4KKysgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQor KyAgX0xUX0NPTVBJTEVSX1BJQygkMSkKKysgIF9MVF9DT01QSUxFUl9DX08oJDEpCisrICBfTFRf Q09NUElMRVJfRklMRV9MT0NLUygkMSkKKysgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQorKyAgX0xU X0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQorKworKyAgX0xUX0NPTkZJRygkMSkKKytmaQor KworK0FDX0xBTkdfUkVTVE9SRQorKworK0dDQz0kbHRfc2F2ZV9HQ0MKKytDQz0iJGx0X3NhdmVf Q0MiCisrXSkjIF9MVF9MQU5HX0dDSl9DT05GSUcKKysKKysKKysjIF9MVF9MQU5HX1JDX0NPTkZJ RyhbVEFHXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEVuc3VyZSB0aGF0IHRo ZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIFdpbmRvd3MgcmVzb3VyY2UgY29tcGls ZXIKKysjIGFyZSBzdWl0YWJseSBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1 ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCisrIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmln dXJhdGlvbiB0byBgbGlidG9vbCcuCisrbTRfZGVmdW4oW19MVF9MQU5HX1JDX0NPTkZJR10sCisr W0FDX1JFUVVJUkUoW0xUX1BST0dfUkNdKWRubAorK0FDX0xBTkdfU0FWRQorKworKyMgU291cmNl IGZpbGUgZXh0ZW5zaW9uIGZvciBSQyB0ZXN0IHNvdXJjZXMuCisrYWNfZXh0PXJjCisrCisrIyBP YmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIFJDIHRlc3Qgc291cmNlcy4KKytvYmpl eHQ9bworK19MVF9UQUdWQVIob2JqZXh0LCAkMSk9JG9iamV4dAorKworKyMgQ29kZSB0byBiZSB1 c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCisrbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2Rl PSdzYW1wbGUgTUVOVSB7IE1FTlVJVEVNICImU291cCIsIDEwMCwgQ0hFQ0tFRCB9JworKworKyMg Q29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCisrbHRfc2ltcGxlX2xpbmtfdGVz dF9jb2RlPSIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIgorKworKyMgbHRtYWluIG9ubHkg dXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUgJENDIGlzIHNl dC4KKytfTFRfVEFHX0NPTVBJTEVSCisrCisrIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9m IHNpbXBsZSB0ZXN0IGNvZGUKKytfTFRfQ09NUElMRVJfQk9JTEVSUExBVEUKKytfTFRfTElOS0VS X0JPSUxFUlBMQVRFCisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3VtZW50cy4KKytsdF9zYXZlX0NDPSIkQ0MiCisrbHRfc2F2ZV9HQ0M9JEdDQworK0dDQz0KKytD Qz0ke1JDLSJ3aW5kcmVzIn0KKytjb21waWxlcj0kQ0MKKytfTFRfVEFHVkFSKGNvbXBpbGVyLCAk MSk9JENDCisrX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQorK19MVF9UQUdWQVIobHRfY3Zf cHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKKysKKytpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0 aGVuCisrICA6CisrICBfTFRfQ09ORklHKCQxKQorK2ZpCisrCisrR0NDPSRsdF9zYXZlX0dDQwor K0FDX0xBTkdfUkVTVE9SRQorK0NDPSIkbHRfc2F2ZV9DQyIKKytdKSMgX0xUX0xBTkdfUkNfQ09O RklHCisrCisrCisrIyBMVF9QUk9HX0dDSgorKyMgLS0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRf UFJPR19HQ0pdLAorK1ttNF9pZmRlZihbQUNfUFJPR19HQ0pdLCBbQUNfUFJPR19HQ0pdLAorKyAg W200X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwgW0FdW01fUFJPR19HQ0pdLAorKyAgICBbQUNfQ0hF Q0tfVE9PTChHQ0osIGdjaiwpCisrICAgICAgdGVzdCAieCR7R0NKRkxBR1Mrc2V0fSIgPSB4c2V0 IHx8IEdDSkZMQUdTPSItZyAtTzIiCisrICAgICAgQUNfU1VCU1QoR0NKRkxBR1MpXSldKVtdZG5s CisrXSkKKysKKysjIE9sZCBuYW1lOgorK0FVX0FMSUFTKFtMVF9BQ19QUk9HX0dDSl0sIFtMVF9Q Uk9HX0dDSl0pCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorK2Ru bCBBQ19ERUZVTihbTFRfQUNfUFJPR19HQ0pdLCBbXSkKKysKKysKKysjIExUX1BST0dfUkMKKysj IC0tLS0tLS0tLS0KKytBQ19ERUZVTihbTFRfUFJPR19SQ10sCisrW0FDX0NIRUNLX1RPT0woUkMs IHdpbmRyZXMsKQorK10pCisrCisrIyBPbGQgbmFtZToKKytBVV9BTElBUyhbTFRfQUNfUFJPR19S Q10sIFtMVF9QUk9HX1JDXSkKKytkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxp dHk6CisrZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX1JDXSwgW10pCisrCisrCisrIyBfTFRfREVD TF9FR1JFUAorKyMgLS0tLS0tLS0tLS0tLS0KKysjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5v dWdoIEF1dG9jb25mIHRvIGNob29zZSB0aGUgYmVzdCBncmVwCisrIyBhdmFpbGFibGUsIGNob29z ZSB0aGUgb25lIGZpcnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KKyttNF9kZWZ1bihbX0xUX0RFQ0xf RUdSRVBdLAorK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0VHUkVQXSlkbmwKKytBQ19SRVFVSVJFKFtB Q19QUk9HX0ZHUkVQXSlkbmwKKyt0ZXN0IC16ICIkR1JFUCIgJiYgR1JFUD1ncmVwCisrX0xUX0RF Q0woW10sIFtHUkVQXSwgWzFdLCBbQSBncmVwIHByb2dyYW0gdGhhdCBoYW5kbGVzIGxvbmcgbGlu ZXNdKQorK19MVF9ERUNMKFtdLCBbRUdSRVBdLCBbMV0sIFtBbiBFUkUgbWF0Y2hlcl0pCisrX0xU X0RFQ0woW10sIFtGR1JFUF0sIFsxXSwgW0EgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hlcl0pCisrZG5s IE5vbi1ibGVlZGluZy1lZGdlIGF1dG9jb25mIGRvZXNuJ3Qgc3Vic3QgR1JFUCwgc28gZG8gaXQg aGVyZSB0b28KKytBQ19TVUJTVChbR1JFUF0pCisrXSkKKysKKysKKysjIF9MVF9ERUNMX09CSkRV TVAKKysjIC0tLS0tLS0tLS0tLS0tCisrIyBJZiB3ZSBkb24ndCBoYXZlIGEgbmV3IGVub3VnaCBB dXRvY29uZiB0byBjaG9vc2UgdGhlIGJlc3Qgb2JqZHVtcAorKyMgYXZhaWxhYmxlLCBjaG9vc2Ug dGhlIG9uZSBmaXJzdCBpbiB0aGUgdXNlcidzIFBBVEguCisrbTRfZGVmdW4oW19MVF9ERUNMX09C SkRVTVBdLAorK1tBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQorK3Rlc3Qg LXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKKytfTFRfREVDTChbXSwgW09CSkRVTVBd LCBbMV0sIFtBbiBvYmplY3Qgc3ltYm9sIGR1bXBlcl0pCisrQUNfU1VCU1QoW09CSkRVTVBdKQor K10pCisrCisrCisrIyBfTFRfREVDTF9TRUQKKysjIC0tLS0tLS0tLS0tLQorKyMgQ2hlY2sgZm9y IGEgZnVsbHktZnVuY3Rpb25hbCBzZWQgcHJvZ3JhbSwgdGhhdCB0cnVuY2F0ZXMKKysjIGFzIGZl dyBjaGFyYWN0ZXJzIGFzIHBvc3NpYmxlLiAgUHJlZmVyIEdOVSBzZWQgaWYgZm91bmQuCisrbTRf ZGVmdW4oW19MVF9ERUNMX1NFRF0sCisrW0FDX1BST0dfU0VECisrdGVzdCAteiAiJFNFRCIgJiYg U0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKytfTFRfREVDTChbXSwgW1NFRF0sIFsx XSwgW0Egc2VkIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXRdKQorK19MVF9E RUNMKFtdLCBbWHNlZF0sIFsiXCRTRUQgLWUgMXMvXlgvLyJdLAorKyAgICBbU2VkIHRoYXQgaGVs cHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2Ug LW5dKQorK10pIyBfTFRfREVDTF9TRUQKKysKKyttNF9pZm5kZWYoW0FDX1BST0dfU0VEXSwgWwor KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworKyMgTk9URTogVGhpcyBtYWNybyBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9yIGluY2x1c2lv biBpbnRvICAgIworKyMgIEdOVSBBdXRvY29uZiBhcyBBQ19QUk9HX1NFRC4gIFdoZW4gaXQgaXMg YXZhaWxhYmxlIGluICAgIworKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBz aG91bGQgcmVtb3ZlIHRoaXMgICAgIworKyMgIG1hY3JvIGFuZCB1c2UgaXQgaW5zdGVhZC4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIworKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKworK200X2RlZnVuKFtBQ19QUk9H X1NFRF0sCisrW0FDX01TR19DSEVDS0lORyhbZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNh dGUgb3V0cHV0XSkKKytBQ19DQUNIRV9WQUwobHRfY3ZfcGF0aF9TRUQsCisrWyMgTG9vcCB0aHJv dWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3Igc2VkIGFuZCBnc2VkLgorKyMgVGhlbiB1 c2UgdGhhdCBsaXN0IG9mIHNlZCdzIGFzIG9uZXMgdG8gdGVzdCBmb3IgdHJ1bmNhdGlvbi4KKyth c19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFU SAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19k aXI9LgorKyAgZm9yIGx0X2FjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCisrICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgICAgIGlmICRhc19l eGVjdXRhYmxlX3AgIiRhc19kaXIvJGx0X2FjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCisrICAg ICAgICBsdF9hY19zZWRfbGlzdD0iJGx0X2FjX3NlZF9saXN0ICRhc19kaXIvJGx0X2FjX3Byb2ck YWNfZXhlY19leHQiCisrICAgICAgZmkKKysgICAgZG9uZQorKyAgZG9uZQorK2RvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrbHRfYWNfbWF4PTAKKytsdF9hY19jb3VudD0wCisrIyBBZGQgL3Vzci94 cGc0L2Jpbi9zZWQgYXMgaXQgaXMgdHlwaWNhbGx5IGZvdW5kIG9uIFNvbGFyaXMKKysjIGFsb25n IHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0LgorK2ZvciBsdF9hY19zZWQgaW4g JGx0X2FjX3NlZF9saXN0IC91c3IveHBnNC9iaW4vc2VkOyBkbworKyAgdGVzdCAhIC1mICRsdF9h Y19zZWQgJiYgY29udGludWUKKysgIGNhdCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgorKyAgbHRf YWNfY291bnQ9MAorKyAgZWNobyAkRUNIT19OICIwMTIzNDU2Nzg5JEVDSE9fQyIgPmNvbmZ0ZXN0 LmluCisrICAjIENoZWNrIGZvciBHTlUgc2VkIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQu CisrICBpZiAiJGx0X2FjX3NlZCIgLS12ZXJzaW9uIDI+JjEgPCAvZGV2L251bGwgfCBncmVwICdH TlUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQKKysg ICAgYnJlYWsKKysgIGZpCisrICB3aGlsZSB0cnVlOyBkbworKyAgICBjYXQgY29uZnRlc3QuaW4g Y29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAorKyAgICBtdiBjb25mdGVzdC50bXAgY29uZnRlc3Qu aW4KKysgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwKKysgICAgZWNobyA+PmNvbmZ0ZXN0 Lm5sCisrICAgICRsdF9hY19zZWQgLWUgJ3MvYSQvLycgPCBjb25mdGVzdC5ubCA+Y29uZnRlc3Qu b3V0IHx8IGJyZWFrCisrICAgIGNtcCAtcyBjb25mdGVzdC5vdXQgY29uZnRlc3QubmwgfHwgYnJl YWsKKysgICAgIyAxMDAwMCBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisr ICAgIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgICBsdF9hY19jb3VudD1g ZXhwciAkbHRfYWNfY291bnQgKyAxYAorKyAgICBpZiB0ZXN0ICRsdF9hY19jb3VudCAtZ3QgJGx0 X2FjX21heDsgdGhlbgorKyAgICAgIGx0X2FjX21heD0kbHRfYWNfY291bnQKKysgICAgICBsdF9j dl9wYXRoX1NFRD0kbHRfYWNfc2VkCisrICAgIGZpCisrICBkb25lCisrZG9uZQorK10pCisrU0VE PSRsdF9jdl9wYXRoX1NFRAorK0FDX1NVQlNUKFtTRURdKQorK0FDX01TR19SRVNVTFQoWyRTRURd KQorK10pI0FDX1BST0dfU0VECisrXSkjbTRfaWZuZGVmCisrCisrIyBPbGQgbmFtZToKKytBVV9B TElBUyhbTFRfQUNfUFJPR19TRURdLCBbQUNfUFJPR19TRURdKQorK2RubCBhY2xvY2FsLTEuNCBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0xUX0FDX1BST0dfU0VEXSwg W10pCisrCisrCisrIyBfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVMKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyMgRmluZCBvdXQgd2hldGhlciB0aGUgc2hlbGwgaXMgQm91cm5lIG9yIFhT SSBjb21wYXRpYmxlLAorKyMgb3IgaGFzIHNvbWUgb3RoZXIgdXNlZnVsIGZlYXR1cmVzLgorK200 X2RlZnVuKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdLAorK1tBQ19NU0dfQ0hFQ0tJTkcoW3do ZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHNdKQorKyMgVHJ5 IHNvbWUgWFNJIGZlYXR1cmVzCisreHNpX3NoZWxsPW5vCisrKCBfbHRfZHVtbXk9ImEvYi9jIgor KyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sIiR7X2x0X2R1bW15JSIk X2x0X2R1bW15In0sIFwKKysgICAgICA9IGMsYS9iLCwgXAorKyAgICAmJiBldmFsICd0ZXN0ICQo KCAxICsgMSApKSAtZXEgMiBcCisrICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyAp ID4vZGV2L251bGwgMj4mMSBcCisrICAmJiB4c2lfc2hlbGw9eWVzCisrQUNfTVNHX1JFU1VMVChb JHhzaV9zaGVsbF0pCisrX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW3hzaV9zaGVsbD0nJHhzaV9z aGVsbCddKQorKworK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFu ZHMgIis9Il0pCisrbHRfc2hlbGxfYXBwZW5kPW5vCisrKCBmb289YmFyOyBzZXQgZm9vIGJhejsg ZXZhbCAiJFsxXSs9XCRbMl0iICYmIHRlc3QgIiRmb28iID0gYmFyYmF6ICkgXAorKyAgICA+L2Rl di9udWxsIDI+JjEgXAorKyAgJiYgbHRfc2hlbGxfYXBwZW5kPXllcworK0FDX01TR19SRVNVTFQo WyRsdF9zaGVsbF9hcHBlbmRdKQorK19MVF9DT05GSUdfTElCVE9PTF9JTklUKFtsdF9zaGVsbF9h cHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnXSkKKysKKytpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlM KSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGx0X3Vuc2V0PXVuc2V0CisrZWxz ZQorKyAgbHRfdW5zZXQ9ZmFsc2UKKytmaQorK19MVF9ERUNMKFtdLCBbbHRfdW5zZXRdLCBbMF0s IFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQiXSlkbmwKKysKKysjIHRlc3Qg RUJDRElDIG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorKyBBKSAjIEFT Q0lJIGJhc2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkg YnkgU29sYXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0ndHIgXDA0MCBcMDEyJworKyAg bHRfTkwyU1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsKKysgKikgIyBFQkNESUMgYmFz ZWQgc3lzdGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysgIGx0X05MMlNQPSd0ciBcclxu IFwxMDBcMTAwJworKyAgOzsKKytlc2FjCisrX0xUX0RFQ0woW1NQMk5MXSwgW2x0X1NQMk5MXSwg WzFdLCBbdHVybiBzcGFjZXMgaW50byBuZXdsaW5lc10pZG5sCisrX0xUX0RFQ0woW05MMlNQXSwg W2x0X05MMlNQXSwgWzFdLCBbdHVybiBuZXdsaW5lcyBpbnRvIHNwYWNlc10pZG5sCisrXSkjIF9M VF9DSEVDS19TSEVMTF9GRUFUVVJFUworKworKworKyMgX0xUX1BST0dfWFNJX1NIRUxMRk5TCisr IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvdXJuZSBhbmQgWFNJIGNvbXBhdGlibGUgdmFy aWFudHMgb2Ygc29tZSB1c2VmdWwgc2hlbGwgZnVuY3Rpb25zLgorK200X2RlZnVuKFtfTFRfUFJP R19YU0lfU0hFTExGTlNdLAorK1tjYXNlICR4c2lfc2hlbGwgaW4KKysgIHllcykKKysgICAgY2F0 IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVu ZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElm IG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJl c3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgY2Fz ZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7 CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKyt9Cisr CisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19i YXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1bmNfZGlybmFtZV9hbmRfYmFz ZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBwZXJmb3JtIGZ1bmNfYmFz ZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgorKyMgY2FsbDoKKysj ICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAor KyMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJl c3VsdAorKyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorKyMgICAgICAgICAg ICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKyMgICBiYXNlbmFt ZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5l ZCBpbiAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBr ZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMgYW5kIGZ1bmNfYmFzZW5hbWUu IEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KKysjIHRob3NlIGZ1bmN0aW9u cyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KKytmdW5jX2Rp cm5hbWVfYW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVu Y19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1l X3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEj IyovfSIKKyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0 cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVgg bXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJz LCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5n CisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorK2Z1bmNf c3RyaXBuYW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBj b3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMs IHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgorKyAgZnVuY19zdHJp cG5hbWVfcmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBu YW1lX3Jlc3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlw bmFtZV9yZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRf c3BsaXQgKCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KKysgIGZ1bmNfb3B0 X3NwbGl0X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8y byAoKQorK3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7 MSUubG99LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsK KysgIGVzYWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hm b3JtICgpCisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbworK30KKysKKysjIGZ1 bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0aCAoKQorK3sKKysgIGZ1bmNf YXJpdGhfcmVzdWx0PSQoKCAkWypdICkpCisrfQorKworKyMgZnVuY19sZW4gc3RyaW5nCisrIyBT VFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1bmNfbGVuICgpCisreworKyAg ZnVuY19sZW5fcmVzdWx0PSR7IzF9CisrfQorKworK19MVF9FT0YKKysgICAgOzsKKysgICopICMg Qm91cm5lIGNvbXBhdGlibGUgZnVuY3Rpb25zLgorKyAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRj ZmdmaWxlIgorKworKyMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVu dAorKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBF TkQgdG8gdGhlIHJlc3VsdCwKKysjIG90aGVyd2lzZSBzZXQgcmVzdWx0IHRvIE5PTkRJUl9SRVBM QUNFTUVOVC4KKytmdW5jX2Rpcm5hbWUgKCkKKyt7CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5 IGZyb20gdGhlIGFyZ3VtZW50LgorKyAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9 IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisrICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1 bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorKyAg ZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0i CisrICBmaQorK30KKysKKysjIGZ1bmNfYmFzZW5hbWUgZmlsZQorK2Z1bmNfYmFzZW5hbWUgKCkK Kyt7CisrICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIk YmFzZW5hbWUiYAorK30KKysKKytkbmwgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZQorK2RubCBB IHBvcnRhYmxlIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBhbHJlYWR5IGRlZmluZWQgaW4g Z2VuZXJhbC5tNHNoCisrZG5sIHNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0IGhlcmUuCisrCisr IyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0cmlwIFBSRUZJWCBhbmQg U1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBub3QgY29udGFp biBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNl bnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBkb3QgKGluIHdo aWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorKyMgZnVuY19zdHJpcF9zdWZmaXgg cHJlZml4IG5hbWUKKytmdW5jX3N0cmlwbmFtZSAoKQorK3sKKysgIGNhc2UgJHsyfSBpbgorKyAg ICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKKysgICAgICAgICAg IHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1cJCUlImA7OworKyAgICAqKSAg ZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKKysgICAgICAgICAgIHwgJFhz ZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwkJSUiYDs7CisrICBlc2FjCisrfQorKworKyMg c2VkIHNjcmlwdHM6CisrbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgtW1tePV1dKlwpPS4qL1wxLztx JworK215X3NlZF9sb25nX2FyZz0nMXMvXi1bW149XV0qPS8vJworKworKyMgZnVuY19vcHRfc3Bs aXQKKytmdW5jX29wdF9zcGxpdCAoKQorK3sKKysgIGZ1bmNfb3B0X3NwbGl0X29wdD1gJEVDSE8g IlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfb3B0ImAKKysgIGZ1bmNfb3B0X3NwbGl0 X2FyZz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKKyt9Cisr CisrIyBmdW5jX2xvMm8gb2JqZWN0CisrZnVuY19sbzJvICgpCisreworKyAgZnVuY19sbzJvX3Jl c3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJgCisrfQorKworKyMgZnVuY194 Zm9ybSBsaWJvYmotb3Itc291cmNlCisrZnVuY194Zm9ybSAoKQorK3sKKysgIGZ1bmNfeGZvcm1f cmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5bW14uXV0qJC8ubG8vJ2AKKyt9 CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorK2Z1bmNfYXJpdGggKCkKKyt7 CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJFtAXSJgCisrfQorKworKyMgZnVuY19sZW4g c3RyaW5nCisrIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgorK2Z1bmNfbGVu ICgpCisreworKyAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFdIiA6ICIuKiIgMj4vZGV2L251 bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCisrfQorKworK19MVF9FT0YKKytlc2FjCisrCisrY2Fz ZSAkbHRfc2hlbGxfYXBwZW5kIGluCisrICB5ZXMpCisrICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAi JGNmZ2ZpbGUiCisrCisrIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKysjIEFwcGVuZCBWQUxVRSB0 byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KKytmdW5jX2FwcGVuZCAoKQorK3sKKysg IGV2YWwgIiRbMV0rPVwkWzJdIgorK30KKytfTFRfRU9GCisrICAgIDs7CisrICAqKQorKyAgICBj YXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKworKyMgZnVuY19hcHBlbmQgdmFyIHZhbHVl CisrIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCisrZnVu Y19hcHBlbmQgKCkKKyt7CisrICBldmFsICIkWzFdPVwkJFsxXVwkWzJdIgorK30KKysKKytfTFRf RU9GCisrICAgIDs7CisrICBlc2FjCisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvbHRtYWluLnNoIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRtYWluLnNoCistLS0g c29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRtYWluLnNoCTIw MTAtMDEtMjMgMTQ6NDQ6NDMuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDg0MDYgQEAKKysj IEdlbmVyYXRlZCBmcm9tIGx0bWFpbi5tNHNoLgorKworKyMgbHRtYWluLnNoIChHTlUgbGlidG9v bCkgMi4yLjZiCisrIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5t aXQuZWR1PiwgMTk5NgorKworKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IDIwMDggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUg c291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTworKyMgd2FycmFudHk7 IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuCisrCisrIyBHTlUgTGlidG9vbCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK KysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgQXMgYSBzcGVj aWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisrIyBpZiB5 b3UgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gb3IgbGlicmFyeSB0 aGF0CisrIyBpcyBidWlsdCB1c2luZyBHTlUgTGlidG9vbCwgeW91IG1heSBpbmNsdWRlIHRoaXMg ZmlsZSB1bmRlciB0aGUKKysjIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBm b3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorKyMKKysjIEdOVSBMaWJ0b29sIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorKyMgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKysjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysj CisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBHTlUgTGlidG9vbDsgc2VlIHRoZSBmaWxlIENP UFlJTkcuICBJZiBub3QsIGEgY29weQorKyMgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSBodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwsCisrIyBvciBvYnRhaW5lZCBieSB3cml0aW5n IHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisrIyA1MSBGcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKysKKysjIFVz YWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gW01PREUtQVJHXS4uLgorKyMKKysjIFByb3ZpZGUg Z2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgorKyMKKysjICAg ICAtLWNvbmZpZyAgICAgICAgICAgICBzaG93IGFsbCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcwor KyMgICAgIC0tZGVidWcgICAgICAgICAgICAgIGVuYWJsZSB2ZXJib3NlIHNoZWxsIHRyYWNpbmcK KysjIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9k aWZ5aW5nIGFueSBmaWxlcworKyMgICAgIC0tZmVhdHVyZXMgICAgICAgICAgIGRpc3BsYXkgYmFz aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorKyMgICAgIC0tbW9kZT1NT0RF ICAgICAgICAgIHVzZSBvcGVyYXRpb24gbW9kZSBNT0RFCisrIyAgICAgLS1wcmVzZXJ2ZS1kdXAt ZGVwcyAgZG9uJ3QgcmVtb3ZlIGR1cGxpY2F0ZSBkZXBlbmRlbmN5IGxpYnJhcmllcworKyMgICAg IC0tcXVpZXQsIC0tc2lsZW50ICAgIGRvbid0IHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMK KysjICAgICAtLXRhZz1UQUcgICAgICAgICAgICB1c2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMg ZnJvbSB0YWcgVEFHCisrIyAtdiwgLS12ZXJib3NlICAgICAgICAgICAgcHJpbnQgaW5mb3JtYXRp b25hbCBtZXNzYWdlcyAoZGVmYXVsdCkKKysjICAgICAtLXZlcnNpb24gICAgICAgICAgICBwcmlu dCB2ZXJzaW9uIGluZm9ybWF0aW9uCisrIyAtaCwgLS1oZWxwICAgICAgICAgICAgICAgcHJpbnQg c2hvcnQgb3IgbG9uZyBoZWxwIG1lc3NhZ2UKKysjCisrIyBNT0RFIG11c3QgYmUgb25lIG9mIHRo ZSBmb2xsb3dpbmc6CisrIworKyMgICAgICAgY2xlYW4gICAgICAgICAgICAgIHJlbW92ZSBmaWxl cyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKKysjICAgICAgIGNvbXBpbGUgICAgICAgICAgICBj b21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgb2JqZWN0CisrIyAgICAgICBleGVj dXRlICAgICAgICAgICAgYXV0b21hdGljYWxseSBzZXQgbGlicmFyeSBwYXRoLCB0aGVuIHJ1biBh IHByb2dyYW0KKysjICAgICAgIGZpbmlzaCAgICAgICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFs bGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCisrIyAgICAgICBpbnN0YWxsICAgICAgICAgICAg aW5zdGFsbCBsaWJyYXJpZXMgb3IgZXhlY3V0YWJsZXMKKysjICAgICAgIGxpbmsgICAgICAgICAg ICAgICBjcmVhdGUgYSBsaWJyYXJ5IG9yIGFuIGV4ZWN1dGFibGUKKysjICAgICAgIHVuaW5zdGFs bCAgICAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQor KyMKKysjIE1PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9ERS4KKysjIFRyeSBgJHBy b2duYW1lIC0taGVscCAtLW1vZGU9TU9ERScgZm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlv biBvZiBNT0RFLgorKyMKKysjIFdoZW4gcmVwb3J0aW5nIGEgYnVnLCBwbGVhc2UgZGVzY3JpYmUg YSB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGl0IGFuZAorKyMgaW5jbHVkZSB0aGUgZm9sbG93aW5n IGluZm9ybWF0aW9uOgorKyMKKysjICAgICAgIGhvc3QtdHJpcGxldDoJJGhvc3QKKysjICAgICAg IHNoZWxsOgkJJFNIRUxMCisrIyAgICAgICBjb21waWxlcjoJCSRMVENDCisrIyAgICAgICBjb21w aWxlciBmbGFnczoJCSRMVENGTEFHUworKyMgICAgICAgbGlua2VyOgkJJExEIChnbnU/ICR3aXRo X2dudV9sZCkKKysjICAgICAgICRwcm9nbmFtZToJCShHTlUgbGlidG9vbCkgMi4yLjZiCisrIyAg ICAgICBhdXRvbWFrZToJCSRhdXRvbWFrZV92ZXJzaW9uCisrIyAgICAgICBhdXRvY29uZjoJCSRh dXRvY29uZl92ZXJzaW9uCisrIworKyMgUmVwb3J0IGJ1Z3MgdG8gPGJ1Zy1saWJ0b29sQGdudS5v cmc+LgorKworK1BST0dSQU09bHRtYWluLnNoCisrUEFDS0FHRT1saWJ0b29sCisrVkVSU0lPTj0y LjIuNmIKKytUSU1FU1RBTVA9IiIKKytwYWNrYWdlX3JldmlzaW9uPTEuMzAxNworKworKyMgQmUg Qm91cm5lIGNvbXBhdGlibGUKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChl bXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxhdGUgc2gKKysgIE5VTExD TUQ9OgorKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsx KyIkQCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRo aXMgZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5P X0dMT0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4gKnBv c2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5f U0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNo CisrCisrIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUg ZHVyaW5nIGV4ZWN1dGUgbW9kZS4KKysjIE9ubHkgc2V0IExBTkcgYW5kIExDX0FMTCB0byBDIGlm IGFscmVhZHkgc2V0LgorKyMgVGhlc2UgbXVzdCBub3QgYmUgc2V0IHVuY29uZGl0aW9uYWxseSBi ZWNhdXNlIG5vdCBhbGwgc3lzdGVtcyB1bmRlcnN0YW5kCisrIyBlLmcuIExBTkc9QyAobm90YWJs eSBTQ08pLgorK2x0X3VzZXJfbG9jYWxlPQorK2x0X3NhZmVfbG9jYWxlPQorK2ZvciBsdF92YXIg aW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwor K2RvCisrICBldmFsICJpZiB0ZXN0IFwiXCR7JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KKysg ICAgICAgICAgc2F2ZV8kbHRfdmFyPVwkJGx0X3ZhcgorKyAgICAgICAgICAkbHRfdmFyPUMKKysJ ICBleHBvcnQgJGx0X3ZhcgorKwkgIGx0X3VzZXJfbG9jYWxlPVwiJGx0X3Zhcj1cXFwkc2F2ZV9c JGx0X3ZhcjsgXCRsdF91c2VyX2xvY2FsZVwiCisrCSAgbHRfc2FmZV9sb2NhbGU9XCIkbHRfdmFy PUM7IFwkbHRfc2FmZV9sb2NhbGVcIgorKwlmaSIKKytkb25lCisrCisrJGx0X3Vuc2V0IENEUEFU SAorKworKworKworKworKworKzogJHtDUD0iY3AgLWYifQorKzogJHtFQ0hPPSJlY2hvIn0KKys6 ICR7RUdSRVA9Ii9iaW4vZ3JlcCAtRSJ9CisrOiAke0ZHUkVQPSIvYmluL2dyZXAgLUYifQorKzog JHtHUkVQPSIvYmluL2dyZXAifQorKzogJHtMTl9TPSJsbiAtcyJ9CisrOiAke01BS0U9Im1ha2Ui fQorKzogJHtNS0RJUj0ibWtkaXIifQorKzogJHtNVj0ibXYgLWYifQorKzogJHtSTT0icm0gLWYi fQorKzogJHtTRUQ9Ii9iaW4vc2VkIn0KKys6ICR7U0hFTEw9IiR7Q09ORklHX1NIRUxMLS9iaW4v c2h9In0KKys6ICR7WHNlZD0iJFNFRCAtZSAxcy9eWC8vIn0KKysKKysjIEdsb2JhbCB2YXJpYWJs ZXM6CisrRVhJVF9TVUNDRVNTPTAKKytFWElUX0ZBSUxVUkU9MQorK0VYSVRfTUlTTUFUQ0g9NjMg ICMgJD8gPSA2MyBpcyB1c2VkIHRvIGluZGljYXRlIHZlcnNpb24gbWlzbWF0Y2ggdG8gbWlzc2lu Zy4KKytFWElUX1NLSVA9NzcJICAjICQ/ID0gNzcgaXMgdXNlZCB0byBpbmRpY2F0ZSBhIHNraXBw ZWQgdGVzdCB0byBhdXRvbWFrZS4KKysKKytleGl0X3N0YXR1cz0kRVhJVF9TVUNDRVNTCisrCisr IyBNYWtlIHN1cmUgSUZTIGhhcyBhIHNlbnNpYmxlIGRlZmF1bHQKKytsdF9ubD0nCisrJworK0lG Uz0iIAkkbHRfbmwiCisrCisrZGlybmFtZT0icywvW14vXSokLCwiCisrYmFzZW5hbWU9InMsXi4q LywsIgorKworKyMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSBmaWxlIGFwcGVuZCBub25kaXJf cmVwbGFjZW1lbnQKKysjIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1lIGlu IGEgc2luZ2xlIGZ1bmN0aW9uCisrIyBjYWxsOgorKyMgICBkaXJuYW1lOiAgQ29tcHV0ZSB0aGUg ZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksCisrIyAgICAgICAgICAgICBhZGQgQVBQRU5E IHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0CisrIyAgICAgICAgICAgICB0byBO T05ESVJfUkVQTEFDRU1FTlQuCisrIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCisrIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJ TEUuCisrIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGluICIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCisrIyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGtlcHQgc3luY2hyb25pemVkIHdpdGggZnVu Y19kaXJuYW1lCisrIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVmZmljaWVuY3ksIHdlIGRvIG5v dCBkZWxlZ2F0ZSB0bworKyMgdGhvc2UgZnVuY3Rpb25zIGJ1dCBpbnN0ZWFkIGR1cGxpY2F0ZSB0 aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgorK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkKKyt7 CisrICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKyAgZnVuY19k aXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCisrICBp ZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorKyAgICBmdW5j X2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorKyAgZWxzZQorKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0 PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisrICBmaQorKyAgZnVuY19iYXNlbmFtZV9yZXN1 bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKyt9CisrCisrIyBHZW5l cmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUuCisrCisrIyBXb3JrIGFyb3VuZCBi YWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzc3VlIG9uIElSSVggNi41LiBPbiBJUklYIDYuNCssIHNo CisrIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhl IGN1cnJlbnQgdmFsdWUgb2YKKysjIHRoZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5v dCBlcXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAorKyMgcG9zaXRpb25hbCBwYXJhbWV0ZXIg JDAsIHdpdGhpbiBhIGZ1bmN0aW9uIGNhbGwsIGlzIHRoZSBuYW1lIG9mIHRoZQorKyMgZnVuY3Rp b24uCisrcHJvZ3BhdGg9IiQwIgorKworKyMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgorKyMg SW4gdGhlIHVubGlrZWx5IGV2ZW50ICRwcm9nbmFtZSBiZWdhbiB3aXRoIGEgJy0nLCBpdCB3b3Vs ZCBwbGF5IGhhdm9jIHdpdGgKKysjIGZ1bmNfZWNobyAoaW1hZ2luZSBwcm9nbmFtZT0tbiksIHNv IHdlIHByZXBlbmQgLi8gaW4gdGhhdCBjYXNlOgorK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUg IiRwcm9ncGF0aCIKKytwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKytjYXNlICRwcm9n bmFtZSBpbgorKyAgLSopIHByb2duYW1lPS4vJHByb2duYW1lIDs7CisrZXNhYworKworKyMgTWFr ZSBzdXJlIHdlIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgcmVleGVjdXRpb246CisrY2FzZSAk cHJvZ3BhdGggaW4KKysgIFtcXC9dKnxbQS1aYS16XTpcXCopIDs7CisrICAqW1xcL10qKQorKyAg ICAgcHJvZ2Rpcj0kZnVuY19kaXJuYW1lX3Jlc3VsdAorKyAgICAgcHJvZ2Rpcj1gY2QgIiRwcm9n ZGlyIiAmJiBwd2RgCisrICAgICBwcm9ncGF0aD0iJHByb2dkaXIvJHByb2duYW1lIgorKyAgICAg OzsKKysgICopCisrICAgICBzYXZlX0lGUz0iJElGUyIKKysgICAgIElGUz06CisrICAgICBmb3Ig cHJvZ2RpciBpbiAkUEFUSDsgZG8KKysgICAgICAgSUZTPSIkc2F2ZV9JRlMiCisrICAgICAgIHRl c3QgLXggIiRwcm9nZGlyLyRwcm9nbmFtZSIgJiYgYnJlYWsKKysgICAgIGRvbmUKKysgICAgIElG Uz0iJHNhdmVfSUZTIgorKyAgICAgdGVzdCAtbiAiJHByb2dkaXIiIHx8IHByb2dkaXI9YHB3ZGAK KysgICAgIHByb2dwYXRoPSIkcHJvZ2Rpci8kcHJvZ25hbWUiCisrICAgICA7OworK2VzYWMKKysK KysjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0 IGJhY2tzbGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUg d2l0aGluIGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPSIke1NFRH0iJyAtZSAxcy9eWC8v JworK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFtgIiRcXF1cKS9cXFwxL2cnCisrCisrIyBTYW1lIGFz IGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCisrZG91YmxlX3F1 b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9nJworKworKyMgUmUtYFwnIHBhcmFtZXRlciBl eHBhbnNpb25zIGluIG91dHB1dCBvZiBkb3VibGVfcXVvdGVfc3Vic3QgdGhhdCB3ZXJlCisrIyBg XCctZWQgaW4gaW5wdXQgdG8gdGhlIHNhbWUuICBJZiBhbiBvZGQgbnVtYmVyIG9mIGBcJyBwcmVj ZWRlZCBhICckJworKyMgaW4gaW5wdXQgdG8gZG91YmxlX3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3 YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5zaW9uLgorKyMgU2luY2UgZWFjaCBpbnB1dCBgXCcgaXMg bm93IHR3byBgXCdzLCBsb29rIGZvciBhbnkgbnVtYmVyIG9mIHJ1bnMgb2YKKysjIGZvdXIgYFwn cyBmb2xsb3dlZCBieSB0d28gYFwncyBhbmQgdGhlbiBhICckJy4gIGBcJyB0aGF0ICckJy4KKyti cz0nXFwnCisrYnMyPSdcXFxcJworK2JzND0nXFxcXFxcXFwnCisrZG9sbGFyPSdcJCcKKytzZWRf ZG91YmxlX2JhY2tzbGFzaD0iXAorKyAgcy8kYnM0LyZcXAorKy9nCisrICBzL14kYnMyJGRvbGxh ci8kYnMmLworKyAgcy9cXChbXiRic11cXCkkYnMyJGRvbGxhci9cXDEkYnMyJGJzJGRvbGxhci9n CisrICBzL1xuLy9nIgorKworKyMgU3RhbmRhcmQgb3B0aW9uczoKKytvcHRfZHJ5X3J1bj1mYWxz ZQorK29wdF9oZWxwPWZhbHNlCisrb3B0X3F1aWV0PWZhbHNlCisrb3B0X3ZlcmJvc2U9ZmFsc2UK KytvcHRfd2FybmluZz06CisrCisrIyBmdW5jX2VjaG8gYXJnLi4uCisrIyBFY2hvIHByb2dyYW0g bmFtZSBwcmVmaXhlZCBtZXNzYWdlLCBhbG9uZyB3aXRoIHRoZSBjdXJyZW50IG1vZGUKKysjIG5h bWUgaWYgaXQgaGFzIGJlZW4gc2V0IHlldC4KKytmdW5jX2VjaG8gKCkKKyt7CisrICAgICRFQ0hP ICIkcHJvZ25hbWUke21vZGUrOiB9JG1vZGU6ICQqIgorK30KKysKKysjIGZ1bmNfdmVyYm9zZSBh cmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgaW4gdmVyYm9zZSBt b2RlIG9ubHkuCisrZnVuY192ZXJib3NlICgpCisreworKyAgICAkb3B0X3ZlcmJvc2UgJiYgZnVu Y19lY2hvICR7MSsiJEAifQorKworKyAgICAjIEEgYnVnIGluIGJhc2ggaGFsdHMgdGhlIHNjcmlw dCBpZiB0aGUgbGFzdCBsaW5lIG9mIGEgZnVuY3Rpb24KKysgICAgIyBmYWlscyB3aGVuIHNldCAt ZSBpcyBpbiBmb3JjZSwgc28gd2UgbmVlZCBhbm90aGVyIGNvbW1hbmQgdG8KKysgICAgIyB3b3Jr IGFyb3VuZCB0aGF0OgorKyAgICA6CisrfQorKworKyMgZnVuY19lcnJvciBhcmcuLi4KKysjIEVj aG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCisrZnVu Y19lcnJvciAoKQorK3sKKysgICAgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogIiR7 MSsiJEAifSAxPiYyCisrfQorKworKyMgZnVuY193YXJuaW5nIGFyZy4uLgorKyMgRWNobyBwcm9n cmFtIG5hbWUgcHJlZml4ZWQgd2FybmluZyBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLgorK2Z1 bmNfd2FybmluZyAoKQorK3sKKysgICAgJG9wdF93YXJuaW5nICYmICRFQ0hPICIkcHJvZ25hbWUk e21vZGUrOiB9JG1vZGU6IHdhcm5pbmc6ICIkezErIiRAIn0gMT4mMgorKworKyAgICAjIGJhc2gg YnVnIGFnYWluOgorKyAgICA6CisrfQorKworKyMgZnVuY19mYXRhbF9lcnJvciBhcmcuLi4KKysj IEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGFu ZCBleGl0LgorK2Z1bmNfZmF0YWxfZXJyb3IgKCkKKyt7CisrICAgIGZ1bmNfZXJyb3IgJHsxKyIk QCJ9CisrICAgIGV4aXQgJEVYSVRfRkFJTFVSRQorK30KKysKKysjIGZ1bmNfZmF0YWxfaGVscCBh cmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQg ZXJyb3IsIGZvbGxvd2VkIGJ5CisrIyBhIGhlbHAgaGludCwgYW5kIGV4aXQuCisrZnVuY19mYXRh bF9oZWxwICgpCisreworKyAgICBmdW5jX2Vycm9yICR7MSsiJEAifQorKyAgICBmdW5jX2ZhdGFs X2Vycm9yICIkaGVscCIKKyt9CisraGVscD0iVHJ5IFxgJHByb2duYW1lIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24uIiAgIyMgZGVmYXVsdAorKworKworKyMgZnVuY19ncmVwIGV4cHJlc3Np b24gZmlsZW5hbWUKKysjIENoZWNrIHdoZXRoZXIgRVhQUkVTU0lPTiBtYXRjaGVzIGFueSBsaW5l IG9mIEZJTEVOQU1FLCB3aXRob3V0IG91dHB1dC4KKytmdW5jX2dyZXAgKCkKKyt7CisrICAgICRH UkVQICIkMSIgIiQyIiA+L2Rldi9udWxsIDI+JjEKKyt9CisrCisrCisrIyBmdW5jX21rZGlyX3Ag ZGlyZWN0b3J5LXBhdGgKKysjIE1ha2Ugc3VyZSB0aGUgZW50aXJlIHBhdGggdG8gRElSRUNUT1JZ LVBBVEggaXMgYXZhaWxhYmxlLgorK2Z1bmNfbWtkaXJfcCAoKQorK3sKKysgICAgbXlfZGlyZWN0 b3J5X3BhdGg9IiQxIgorKyAgICBteV9kaXJfbGlzdD0KKysKKysgICAgaWYgdGVzdCAtbiAiJG15 X2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0ICIkb3B0X2RyeV9ydW4iICE9ICI6IjsgdGhlbgorKwor KyAgICAgICMgUHJvdGVjdCBkaXJlY3RvcnkgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScKKysgICAg ICBjYXNlICRteV9kaXJlY3RvcnlfcGF0aCBpbgorKyAgICAgICAgLSopIG15X2RpcmVjdG9yeV9w YXRoPSIuLyRteV9kaXJlY3RvcnlfcGF0aCIgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBX aGlsZSBzb21lIHBvcnRpb24gb2YgRElSIGRvZXMgbm90IHlldCBleGlzdC4uLgorKyAgICAgIHdo aWxlIHRlc3QgISAtZCAiJG15X2RpcmVjdG9yeV9wYXRoIjsgZG8KKysgICAgICAgICMgLi4ubWFr ZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJzdCBvcmRlci4gIFVzZSBhIGNvbG9uIGRlbGltaXRlZAor KwkjIGxpc3QgaW5jYXNlIHNvbWUgcG9ydGlvbiBvZiBwYXRoIGNvbnRhaW5zIHdoaXRlc3BhY2Uu CisrICAgICAgICBteV9kaXJfbGlzdD0iJG15X2RpcmVjdG9yeV9wYXRoOiRteV9kaXJfbGlzdCIK KysKKysgICAgICAgICMgSWYgdGhlIGxhc3QgcG9ydGlvbiBhZGRlZCBoYXMgbm8gc2xhc2ggaW4g aXQsIHRoZSBsaXN0IGlzIGRvbmUKKysgICAgICAgIGNhc2UgJG15X2RpcmVjdG9yeV9wYXRoIGlu ICovKikgOzsgKikgYnJlYWsgOzsgZXNhYworKworKyAgICAgICAgIyAuLi5vdGhlcndpc2UgdGhy b3cgYXdheSB0aGUgY2hpbGQgZGlyZWN0b3J5IGFuZCBsb29wCisrICAgICAgICBteV9kaXJlY3Rv cnlfcGF0aD1gJEVDSE8gIlgkbXlfZGlyZWN0b3J5X3BhdGgiIHwgJFhzZWQgLWUgIiRkaXJuYW1l ImAKKysgICAgICBkb25lCisrICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hPICJYJG15X2Rpcl9saXN0 IiB8ICRYc2VkIC1lICdzLDoqJCwsJ2AKKysKKysgICAgICBzYXZlX21rZGlyX3BfSUZTPSIkSUZT IjsgSUZTPSc6JworKyAgICAgIGZvciBteV9kaXIgaW4gJG15X2Rpcl9saXN0OyBkbworKwlJRlM9 IiRzYXZlX21rZGlyX3BfSUZTIgorKyAgICAgICAgIyBta2RpciBjYW4gZmFpbCB3aXRoIGEgYEZp bGUgZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNzZXMKKysgICAgICAgICMgdHJ5IHRvIGNyZWF0 ZSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4gIERvbid0CisrICAgICAgICAj IHN0b3AgaW4gdGhhdCBjYXNlIQorKyAgICAgICAgJE1LRElSICIkbXlfZGlyIiAyPi9kZXYvbnVs bCB8fCA6CisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJHNhdmVfbWtkaXJfcF9JRlMiCisrCisr ICAgICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBvdGhlciBwcm9jZXNzKSBmYWlsZWQgdG8g Y3JlYXRlIGEgZGlyZWN0b3J5LgorKyAgICAgIHRlc3QgLWQgIiRteV9kaXJlY3RvcnlfcGF0aCIg fHwgXAorKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiRmFpbGVkIHRvIGNyZWF0ZSBcYCQxJyIK KysgICAgZmkKKyt9CisrCisrCisrIyBmdW5jX21rdGVtcGRpciBbc3RyaW5nXQorKyMgTWFrZSBh IHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3aXRoIG90aGVyIHJ1bm5pbmcK KysjIGxpYnRvb2wgcHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBpZiBwb3Nz aWJsZS4gIElmCisrIyBnaXZlbiwgU1RSSU5HIGlzIHRoZSBiYXNlbmFtZSBmb3IgdGhhdCBkaXJl Y3RvcnkuCisrZnVuY19ta3RlbXBkaXIgKCkKKyt7CisrICAgIG15X3RlbXBsYXRlPSIke1RNUERJ Ui0vdG1wfS8kezEtJHByb2duYW1lfSIKKysKKysgICAgaWYgdGVzdCAiJG9wdF9kcnlfcnVuIiA9 ICI6IjsgdGhlbgorKyAgICAgICMgUmV0dXJuIGEgZGlyZWN0b3J5IG5hbWUsIGJ1dCBkb24ndCBj cmVhdGUgaXQgaW4gZHJ5LXJ1biBtb2RlCisrICAgICAgbXlfdG1wZGlyPSIke215X3RlbXBsYXRl fS0kJCIKKysgICAgZWxzZQorKworKyAgICAgICMgSWYgbWt0ZW1wIHdvcmtzLCB1c2UgdGhhdCBm aXJzdCBhbmQgZm9yZW1vc3QKKysgICAgICBteV90bXBkaXI9YG1rdGVtcCAtZCAiJHtteV90ZW1w bGF0ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAorKworKyAgICAgIGlmIHRlc3QgISAtZCAiJG15 X3RtcGRpciI7IHRoZW4KKysgICAgICAgICMgRmFpbGluZyB0aGF0LCBhdCBsZWFzdCB0cnkgYW5k IHVzZSAkUkFORE9NIHRvIGF2b2lkIGEgcmFjZQorKyAgICAgICAgbXlfdG1wZGlyPSIke215X3Rl bXBsYXRlfS0ke1JBTkRPTS0wfSQkIgorKworKyAgICAgICAgc2F2ZV9ta3RlbXBkaXJfdW1hc2s9 YHVtYXNrYAorKyAgICAgICAgdW1hc2sgMDA3NworKyAgICAgICAgJE1LRElSICIkbXlfdG1wZGly IgorKyAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNrCisrICAgICAgZmkKKysKKysg ICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUsIGJvbWIgb3V0IG9uIGZhaWx1cmUK KysgICAgICB0ZXN0IC1kICIkbXlfdG1wZGlyIiB8fCBcCisrICAgICAgICBmdW5jX2ZhdGFsX2Vy cm9yICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIKKysg ICAgZmkKKysKKysgICAgJEVDSE8gIlgkbXlfdG1wZGlyIiB8ICRYc2VkCisrfQorKworKworKyMg ZnVuY19xdW90ZV9mb3JfZXZhbCBhcmcKKysjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJl IGV2YWxlZCBsYXRlci4KKysjIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0d28gdmFsdWVzOiBGVU5D X1FVT1RFX0ZPUl9FVkFMX1JFU1VMVAorKyMgaXMgZG91YmxlLXF1b3RlZCwgc3VpdGFibGUgZm9y IGEgc3Vic2VxdWVudCBldmFsLCB3aGVyZWFzCisrIyBGVU5DX1FVT1RFX0ZPUl9FVkFMX1VOUVVP VEVEX1JFU1VMVCBoYXMgbWVyZWx5IGFsbCBjaGFyYWN0ZXJzCisrIyB3aGljaCBhcmUgc3RpbGwg YWN0aXZlIHdpdGhpbiBkb3VibGUgcXVvdGVzIGJhY2tzbGFzaGlmaWVkLgorK2Z1bmNfcXVvdGVf Zm9yX2V2YWwgKCkKKyt7CisrICAgIGNhc2UgJDEgaW4KKysgICAgICAqW1xcXGBcIlwkXSopCisr CWZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PWAkRUNITyAiWCQxIiB8ICRYc2Vk IC1lICIkc2VkX3F1b3RlX3N1YnN0ImAgOzsKKysgICAgICAqKQorKyAgICAgICAgZnVuY19xdW90 ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9IiQxIiA7OworKyAgICBlc2FjCisrCisrICAgIGNh c2UgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IGluCisrICAgICAgIyBEb3Vi bGUtcXVvdGUgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0ZXJzIHRvIGRlbGF5Cisr ICAgICAgIyB3b3JkIHNwbGl0dGluZywgY29tbWFuZCBzdWJzdGl0dXRpb24gYW5kIGFuZCB2YXJp YWJsZQorKyAgICAgICMgZXhwYW5zaW9uIGZvciBhIHN1YnNlcXVlbnQgZXZhbC4KKysgICAgICAj IE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3NlIGJyYWNrZXRzIGNvcnJlY3Rs eQorKyAgICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5IGl0IHNlcGFyYXRlbHkuCisr ICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisr ICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdD0iXCIkZnVuY19xdW90ZV9mb3JfZXZh bF91bnF1b3RlZF9yZXN1bHRcIiIKKysgICAgICAgIDs7CisrICAgICAgKikKKysgICAgICAgIGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0PSIkZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9y ZXN1bHQiCisrICAgIGVzYWMKKyt9CisrCisrCisrIyBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgYXJn CisrIyBBZXN0aGV0aWNhbGx5IHF1b3RlIEFSRyB0byBiZSBldmFsZWQgbGF0ZXI7IHNhbWUgYXMg YWJvdmUsCisrIyBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCisrZnVuY19x dW90ZV9mb3JfZXhwYW5kICgpCisreworKyAgICBjYXNlICQxIGluCisrICAgICAgKltcXFxgXCJd KikKKysJbXlfYXJnPWAkRUNITyAiWCQxIiB8ICRYc2VkIFwKKysJICAgIC1lICIkZG91YmxlX3F1 b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFja3NsYXNoImAgOzsKKysgICAgICAqKQorKyAg ICAgICAgbXlfYXJnPSIkMSIgOzsKKysgICAgZXNhYworKworKyAgICBjYXNlICRteV9hcmcgaW4K KysgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YWNoYXJhY3Rl cnMgdG8gZGVsYXkKKysgICAgICAjIHdvcmQgc3BsaXR0aW5nIGFuZCBjb21tYW5kIHN1YnN0aXR1 dGlvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCisrICAgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMg Y2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKKysgICAgICAjIGluIHNjYW4g c2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgorKyAgICAgICpbXFtcflwjXF5cJlwq XChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorKyAgICAgICAgbXlfYXJnPSJcIiRt eV9hcmdcIiIKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysKKysgICAgZnVuY19xdW90ZV9mb3Jf ZXhwYW5kX3Jlc3VsdD0iJG15X2FyZyIKKyt9CisrCisrCisrIyBmdW5jX3Nob3dfZXZhbCBjbWQg W2ZhaWxfZXhwXQorKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01E LiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcworKyMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElm IHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCisrIyBpcyBnaXZlbiwg dGhlbiBldmFsdWF0ZSBpdC4KKytmdW5jX3Nob3dfZXZhbCAoKQorK3sKKysgICAgbXlfY21kPSIk MSIKKysgICAgbXlfZmFpbF9leHA9IiR7Mi06fSIKKysKKysgICAgJHtvcHRfc2lsZW50LWZhbHNl fSB8fCB7CisrICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkbXlfY21kIgorKyAgICAgIGV2 YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKKysgICAgfQorKwor KyAgICBpZiAke29wdF9kcnlfcnVuLWZhbHNlfTsgdGhlbiA6OyBlbHNlCisrICAgICAgZXZhbCAi JG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8KKysgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVz IiAtZXEgMDsgdGhlbiA6OyBlbHNlCisrCWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFp bF9leHAiCisrICAgICAgZmkKKysgICAgZmkKKyt9CisrCisrCisrIyBmdW5jX3Nob3dfZXZhbF9s b2NhbGUgY21kIFtmYWlsX2V4cF0KKysjIFVubGVzcyBvcHRfc2lsZW50IGlzIHRydWUsIHRoZW4g b3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMKKysjIG5vdCB0cnVlLCBldmFsdWF0 ZSBDTUQuICBJZiB0aGUgZXZhbHVhdGlvbiBvZiBDTUQgZmFpbHMsIGFuZCBGQUlMX0VYUAorKyMg aXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBVc2UgdGhlIHNhdmVkIGxvY2FsZSBmb3IgZXZh bHVhdGlvbi4KKytmdW5jX3Nob3dfZXZhbF9sb2NhbGUgKCkKKyt7CisrICAgIG15X2NtZD0iJDEi CisrICAgIG15X2ZhaWxfZXhwPSIkezItOn0iCisrCisrICAgICR7b3B0X3NpbGVudC1mYWxzZX0g fHwgeworKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJG15X2NtZCIKKysgICAgICBldmFs ICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCisrICAgIH0KKysKKysg ICAgaWYgJHtvcHRfZHJ5X3J1bi1mYWxzZX07IHRoZW4gOjsgZWxzZQorKyAgICAgIGV2YWwgIiRs dF91c2VyX2xvY2FsZQorKwkgICAgJG15X2NtZCIKKysgICAgICBteV9zdGF0dXM9JD8KKysgICAg ICBldmFsICIkbHRfc2FmZV9sb2NhbGUiCisrICAgICAgaWYgdGVzdCAiJG15X3N0YXR1cyIgLWVx IDA7IHRoZW4gOjsgZWxzZQorKwlldmFsICIoZXhpdCAkbXlfc3RhdHVzKTsgJG15X2ZhaWxfZXhw IgorKyAgICAgIGZpCisrICAgIGZpCisrfQorKworKworKworKworKworKyMgZnVuY192ZXJzaW9u CisrIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCisr ZnVuY192ZXJzaW9uICgpCisreworKyAgICAkU0VEIC1uICcvXiMgJyRQUk9HUkFNJyAoR05VIC8s LyMgd2FycmFudHk7IC8geworKyAgICAgICAgcy9eIyAvLworKwlzL14jICokLy8KKysgICAgICAg IHMvXCgoQylcKVsgMC05LC1dKlwoIFsxLTldWzAtOV0qXCkvXDFcMi8KKysgICAgICAgIHAKKysg ICAgIH0nIDwgIiRwcm9ncGF0aCIKKysgICAgIGV4aXQgJD8KKyt9CisrCisrIyBmdW5jX3VzYWdl CisrIyBFY2hvIHNob3J0IGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQu CisrZnVuY191c2FnZSAoKQorK3sKKysgICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgLWgvIHsK KysgICAgICAgIHMvXiMgLy8KKysJcy9eIyAqJC8vCisrCXMvXCRwcm9nbmFtZS8nJHByb2duYW1l Jy8KKysJcAorKyAgICB9JyA8ICIkcHJvZ3BhdGgiCisrICAgICRFQ0hPCisrICAgICRFQ0hPICJy dW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9yZScgZm9yIGZ1bGwgdXNhZ2UiCisrICAgIGV4aXQg JD8KKyt9CisrCisrIyBmdW5jX2hlbHAKKysjIEVjaG8gbG9uZyBoZWxwIG1lc3NhZ2UgdG8gc3Rh bmRhcmQgb3V0cHV0IGFuZCBleGl0LgorK2Z1bmNfaGVscCAoKQorK3sKKysgICAgJFNFRCAtbiAn L14jIFVzYWdlOi8sLyMgUmVwb3J0IGJ1Z3MgdG8vIHsKKysgICAgICAgIHMvXiMgLy8KKysJcy9e IyAqJC8vCisrCXMqXCRwcm9nbmFtZSonJHByb2duYW1lJyoKKysJcypcJGhvc3QqJyIkaG9zdCIn KgorKwlzKlwkU0hFTEwqJyIkU0hFTEwiJyoKKysJcypcJExUQ0MqJyIkTFRDQyInKgorKwlzKlwk TFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoKKysJcypcJExEKiciJExEIicqCisrCXMvXCR3aXRoX2du dV9sZC8nIiR3aXRoX2dudV9sZCInLworKwlzL1wkYXV0b21ha2VfdmVyc2lvbi8nImAoYXV0b21h a2UgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KKysJcy9cJGF1dG9jb25mX3Zl cnNpb24vJyJgKGF1dG9jb25mIC0tdmVyc2lvbikgMj4vZGV2L251bGwgfCRTRUQgMXFgIicvCisr CXAKKysgICAgIH0nIDwgIiRwcm9ncGF0aCIKKysgICAgZXhpdCAkPworK30KKysKKysjIGZ1bmNf bWlzc2luZ19hcmcgYXJnbmFtZQorKyMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2Fn ZSB0byBzdGFuZGFyZCBlcnJvciBhbmQgc2V0IGdsb2JhbAorKyMgZXhpdF9jbWQuCisrZnVuY19t aXNzaW5nX2FyZyAoKQorK3sKKysgICAgZnVuY19lcnJvciAibWlzc2luZyBhcmd1bWVudCBmb3Ig JDEiCisrICAgIGV4aXRfY21kPWV4aXQKKyt9CisrCisrZXhpdF9jbWQ9OgorKworKworKworKwor KworKyMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkRUNITy4KKytpZiB0ZXN0ICJYJDEi ID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAjIERpc2NhcmQgdGhlIC0tbm8tcmVleGVjIGZsYWcs IGFuZCBjb250aW51ZS4KKysgIHNoaWZ0CisrZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2st ZWNobzsgdGhlbgorKyAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxl ZnQgb3ZlcgorKyAgOgorK2VsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxg IiA9ICdYXHQnOyB0aGVuCisrICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCisrICA6CisrZWxzZQor KyAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSAkRUNI TyB3aWxsIHdvcmsuCisrICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAtLW5vLXJlZXhlYyAkezEr IiRAIn0KKytmaQorKworK2lmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCisr ICAjIHVzZWQgYXMgZmFsbGJhY2sgZWNobworKyAgc2hpZnQKKysgIGNhdCA8PEVPRgorKyQqCisr RU9GCisrICBleGl0ICRFWElUX1NVQ0NFU1MKKytmaQorKworK21hZ2ljPSIlJSVNQUdJQyB2YXJp YWJsZSUlJSIKKyttYWdpY19leGU9IiUlJU1BR0lDIEVYRSB2YXJpYWJsZSUlJSIKKysKKysjIEds b2JhbCB2YXJpYWJsZXMuCisrIyAkbW9kZSBpcyB1bnNldAorK25vbm9wdD0KKytleGVjdXRlX2Rs ZmlsZXM9CisrcHJlc2VydmVfYXJncz0KKytsbzJvPSJzL1xcLmxvXCQvLiR7b2JqZXh0fS8iCisr bzJsbz0icy9cXC4ke29iamV4dH1cJC8ubG8vIgorK2V4dHJhY3RlZF9hcmNoaXZlcz0KKytleHRy YWN0ZWRfc2VyaWFsPTAKKysKKytvcHRfZHJ5X3J1bj1mYWxzZQorK29wdF9kdXBsaWNhdGVfZGVw cz1mYWxzZQorK29wdF9zaWxlbnQ9ZmFsc2UKKytvcHRfZGVidWc9OgorKworKyMgSWYgdGhpcyB2 YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAor KyMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMgcHJldmVudHMgaGVyZS1kb2N1bWVu dHMgZnJvbSBiZWluZworKyMgbGVmdCBvdmVyIGJ5IHNoZWxscy4KKytleGVjX2NtZD0KKysKKysj IGZ1bmNfZmF0YWxfY29uZmlndXJhdGlvbiBhcmcuLi4KKysjIEVjaG8gcHJvZ3JhbSBuYW1lIHBy ZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CisrIyBhIGNvbmZp Z3VyYXRpb24gZmFpbHVyZSBoaW50LCBhbmQgZXhpdC4KKytmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRp b24gKCkKKyt7CisrICAgIGZ1bmNfZXJyb3IgJHsxKyIkQCJ9CisrICAgIGZ1bmNfZXJyb3IgIlNl ZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisrICAg IGZ1bmNfZmF0YWxfZXJyb3IgIkZhdGFsIGNvbmZpZ3VyYXRpb24gZXJyb3IuIgorK30KKysKKysK KysjIGZ1bmNfY29uZmlnCisrIyBEaXNwbGF5IHRoZSBjb25maWd1cmF0aW9uIGZvciBhbGwgdGhl IHRhZ3MgaW4gdGhpcyBzY3JpcHQuCisrZnVuY19jb25maWcgKCkKKyt7CisrICAgIHJlX2JlZ2lu Y2Y9J14jICMjIyBCRUdJTiBMSUJUT09MJworKyAgICByZV9lbmRjZj0nXiMgIyMjIEVORCBMSUJU T09MJworKworKyAgICAjIERlZmF1bHQgY29uZmlndXJhdGlvbi4KKysgICAgJFNFRCAiMSwvJHJl X2JlZ2luY2YgQ09ORklHL2Q7LyRyZV9lbmRjZiBDT05GSUcvLFwkZCIgPCAiJHByb2dwYXRoIgor KworKyAgICAjIE5vdyBwcmludCB0aGUgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB0YWdzLgorKyAg ICBmb3IgdGFnbmFtZSBpbiAkdGFnbGlzdDsgZG8KKysgICAgICAkU0VEIC1uICIvJHJlX2JlZ2lu Y2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC8sLyRyZV9lbmRjZiBUQUcgQ09ORklHOiAkdGFnbmFt ZVwkL3AiIDwgIiRwcm9ncGF0aCIKKysgICAgZG9uZQorKworKyAgICBleGl0ICQ/CisrfQorKwor KyMgZnVuY19mZWF0dXJlcworKyMgRGlzcGxheSB0aGUgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRo aXMgc2NyaXB0LgorK2Z1bmNfZmVhdHVyZXMgKCkKKyt7CisrICAgICRFQ0hPICJob3N0OiAkaG9z dCIKKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAg ICAkRUNITyAiZW5hYmxlIHNoYXJlZCBsaWJyYXJpZXMiCisrICAgIGVsc2UKKysgICAgICAkRUNI TyAiZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIgorKyAgICBmaQorKyAgICBpZiB0ZXN0ICIkYnVp bGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrICAgICAgJEVDSE8gImVuYWJsZSBzdGF0aWMgbGli cmFyaWVzIgorKyAgICBlbHNlCisrICAgICAgJEVDSE8gImRpc2FibGUgc3RhdGljIGxpYnJhcmll cyIKKysgICAgZmkKKysKKysgICAgZXhpdCAkPworK30KKysKKysjIGZ1bmNfZW5hYmxlX3RhZyB0 YWduYW1lCisrIyBWZXJpZnkgdGhhdCBUQUdOQU1FIGlzIHZhbGlkLCBhbmQgZWl0aGVyIGZsYWcg YW4gZXJyb3IgYW5kIGV4aXQsIG9yCisrIyBlbmFibGUgdGhlIFRBR05BTUUgdGFnLiAgV2UgYWxz byBhZGQgVEFHTkFNRSB0byB0aGUgZ2xvYmFsICR0YWdsaXN0CisrIyB2YXJpYWJsZSBoZXJlLgor K2Z1bmNfZW5hYmxlX3RhZyAoKQorK3sKKysgICMgR2xvYmFsIHZhcmlhYmxlOgorKyAgdGFnbmFt ZT0iJDEiCisrCisrICByZV9iZWdpbmNmPSJeIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklH OiAkdGFnbmFtZVwkIgorKyAgcmVfZW5kY2Y9Il4jICMjIyBFTkQgTElCVE9PTCBUQUcgQ09ORklH OiAkdGFnbmFtZVwkIgorKyAgc2VkX2V4dHJhY3RjZj0iLyRyZV9iZWdpbmNmLywvJHJlX2VuZGNm L3AiCisrCisrICAjIFZhbGlkYXRlIHRhZ25hbWUuCisrICBjYXNlICR0YWduYW1lIGluCisrICAg ICpbIS1fQS1aYS16MC05LC9dKikKKysgICAgICBmdW5jX2ZhdGFsX2Vycm9yICJpbnZhbGlkIHRh ZyBuYW1lOiAkdGFnbmFtZSIKKysgICAgICA7OworKyAgZXNhYworKworKyAgIyBEb24ndCB0ZXN0 IGZvciB0aGUgImRlZmF1bHQiIEMgdGFnLCBhcyB3ZSBrbm93IGl0J3MKKysgICMgdGhlcmUgYnV0 IG5vdCBzcGVjaWFsbHkgbWFya2VkLgorKyAgY2FzZSAkdGFnbmFtZSBpbgorKyAgICBDQykgOzsK KysgICAgKikKKysgICAgICBpZiAkR1JFUCAiJHJlX2JlZ2luY2YiICIkcHJvZ3BhdGgiID4vZGV2 L251bGwgMj4mMTsgdGhlbgorKwl0YWdsaXN0PSIkdGFnbGlzdCAkdGFnbmFtZSIKKysKKysJIyBF dmFsdWF0ZSB0aGUgY29uZmlndXJhdGlvbi4gIEJlIGNhcmVmdWwgdG8gcXVvdGUgdGhlIHBhdGgK KysJIyBhbmQgdGhlIHNlZCBzY3JpcHQsIHRvIGF2b2lkIHNwbGl0dGluZyBvbiB3aGl0ZXNwYWNl LCBidXQKKysJIyBhbHNvIGRvbid0IHVzZSBub24tcG9ydGFibGUgcXVvdGVzIHdpdGhpbiBiYWNr cXVvdGVzIHdpdGhpbgorKwkjIHF1b3RlcyB3ZSBoYXZlIHRvIGRvIGl0IGluIDIgc3RlcHM6Cisr CWV4dHJhY3RlZGNmPWAkU0VEIC1uIC1lICIkc2VkX2V4dHJhY3RjZiIgPCAiJHByb2dwYXRoImAK KysJZXZhbCAiJGV4dHJhY3RlZGNmIgorKyAgICAgIGVsc2UKKysJZnVuY19lcnJvciAiaWdub3Jp bmcgdW5rbm93biB0YWcgJHRhZ25hbWUiCisrICAgICAgZmkKKysgICAgICA7OworKyAgZXNhYwor K30KKysKKysjIFBhcnNlIG9wdGlvbnMgb25jZSwgdGhvcm91Z2hseS4gIFRoaXMgY29tZXMgYXMg c29vbiBhcyBwb3NzaWJsZSBpbgorKyMgdGhlIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBsaWtlIGBs aWJ0b29sIC0tdmVyc2lvbicgaGFwcGVuIHF1aWNrbHkuCisreworKworKyAgIyBTaG9ydGhhbmQg Zm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50CisrICBjYXNl ICQxIGluCisrICBjbGVhbnxjbGVhfGNsZXxjbCkKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1v ZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAgY29tcGlsZXxjb21waWx8Y29t cGl8Y29tcHxjb218Y298YykKKysgICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAk ezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBleGVjdXRlfGV4ZWN1dHxleGVjdXxleGVjfGV4 ZXxleHxlKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsg c2hpZnQKKysgICAgOzsKKysgIGZpbmlzaHxmaW5pc3xmaW5pfGZpbnxmaXxmKQorKyAgICBzaGlm dDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAorKyAgICA7OworKyAg aW5zdGFsbHxpbnN0YWx8aW5zdGF8aW5zdHxpbnN8aW58aSkKKysgICAgc2hpZnQ7IHNldCBkdW1t eSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0CisrICAgIDs7CisrICBsaW5rfGxpbnxs aXxsKQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQK KysgICAgOzsKKysgIHVuaW5zdGFsbHx1bmluc3RhbHx1bmluc3RhfHVuaW5zdHx1bmluc3x1bmlu fHVuaXx1bnx1KQorKyAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIk QCJ9OyBzaGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgIyBQYXJzZSBub24tbW9kZSBzcGVj aWZpYyBhcmd1bWVudHM6CisrICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCisrICAgIG9wdD0i JDEiCisrICAgIHNoaWZ0CisrCisrICAgIGNhc2UgJG9wdCBpbgorKyAgICAgIC0tY29uZmlnKQkJ ZnVuY19jb25maWcJCQkJCTs7CisrCisrICAgICAgLS1kZWJ1ZykJCXByZXNlcnZlX2FyZ3M9IiRw cmVzZXJ2ZV9hcmdzICRvcHQiCisrCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBt b2RlIgorKwkJCW9wdF9kZWJ1Zz0nc2V0IC14JworKwkJCSRvcHRfZGVidWcKKysJCQk7OworKwor KyAgICAgIC1kbG9wZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9w dCIgJiYgYnJlYWsKKysJCQlleGVjdXRlX2RsZmlsZXM9IiRleGVjdXRlX2RsZmlsZXMgJDEiCisr CQkJc2hpZnQKKysJCQk7OworKworKyAgICAgIC0tZHJ5LXJ1biB8IC1uKQlvcHRfZHJ5X3J1bj06 CQkJCQk7OworKyAgICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNfZmVhdHVyZXMJCQkJCTs7Cisr ICAgICAgLS1maW5pc2gpCQltb2RlPSJmaW5pc2giCQkJCQk7OworKworKyAgICAgIC0tbW9kZSkJ CXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhaworKwkJ CWNhc2UgJDEgaW4KKysJCQkgICMgVmFsaWQgbW9kZSBhcmd1bWVudHM6CisrCQkJICBjbGVhbikJ OzsKKysJCQkgIGNvbXBpbGUpCTs7CisrCQkJICBleGVjdXRlKQk7OworKwkJCSAgZmluaXNoKQk7 OworKwkJCSAgaW5zdGFsbCkJOzsKKysJCQkgIGxpbmspCQk7OworKwkJCSAgcmVsaW5rKQk7Owor KwkJCSAgdW5pbnN0YWxsKQk7OworKworKwkJCSAgIyBDYXRjaCBhbnl0aGluZyBlbHNlIGFzIGFu IGVycm9yCisrCQkJICAqKSBmdW5jX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50IGZvciAkb3B0Igor KwkJCSAgICAgZXhpdF9jbWQ9ZXhpdAorKwkJCSAgICAgYnJlYWsKKysJCQkgICAgIDs7CisrCQkg ICAgICAgIGVzYWMKKysKKysJCQltb2RlPSIkMSIKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAg ICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcykKKysJCQlvcHRfZHVwbGljYXRlX2RlcHM9OgkJCQk7Owor KworKyAgICAgIC0tcXVpZXR8LS1zaWxlbnQpCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdz ICRvcHQiCisrCQkJb3B0X3NpbGVudD06CisrCQkJOzsKKysKKysgICAgICAtLXZlcmJvc2V8IC12 KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgorKwkJCW9wdF9zaWxlbnQ9ZmFs c2UKKysJCQk7OworKworKyAgICAgIC0tdGFnKQkJdGVzdCAiJCMiIC1lcSAwICYmIGZ1bmNfbWlz c2luZ19hcmcgIiRvcHQiICYmIGJyZWFrCisrCQkJcHJlc2VydmVfYXJncz0iJHByZXNlcnZlX2Fy Z3MgJG9wdCAkMSIKKysJCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkjIHRhZ25hbWUgaXMgc2V0IGhl cmUKKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIGxv bmcgb3B0aW9uczoKKysgICAgICAtZGxvcGVuPSp8LS1tb2RlPSp8LS10YWc9KikKKysJCQlmdW5j X29wdF9zcGxpdCAiJG9wdCIKKysJCQlzZXQgZHVtbXkgIiRmdW5jX29wdF9zcGxpdF9vcHQiICIk ZnVuY19vcHRfc3BsaXRfYXJnIiAkezErIiRAIn0KKysJCQlzaGlmdAorKwkJCTs7CisrCisrICAg ICAgLVw/fC1oKQkJZnVuY191c2FnZQkJCQkJOzsKKysgICAgICAtLWhlbHApCQlvcHRfaGVscD06 CQkJCQk7OworKyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJCQk7OworKworKyAgICAg IC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9wdCciCTs7Cisr CisrICAgICAgKikJCW5vbm9wdD0iJG9wdCIKKysJCQlicmVhaworKwkJCTs7CisrICAgIGVzYWMK KysgIGRvbmUKKysKKysKKysgIGNhc2UgJGhvc3QgaW4KKysgICAgKmN5Z3dpbiogfCAqbWluZ3cq IHwgKnB3MzIqIHwgKmNlZ2NjKikKKysgICAgICAjIGRvbid0IGVsaW1pbmF0ZSBkdXBsaWNhdGlv bnMgaW4gJHBvc3RkZXBzIGFuZCAkcHJlZGVwcworKyAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGls ZXJfZ2VuZXJhdGVkX2RlcHM9OgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgb3B0X2R1cGxp Y2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxpY2F0ZV9kZXBzCisrICAgICAg OzsKKysgIGVzYWMKKysKKysgICMgSGF2aW5nIHdhcm5lZCBhYm91dCBhbGwgbWlzLXNwZWNpZmll ZCBvcHRpb25zLCBiYWlsIG91dCBpZgorKyAgIyBhbnl0aGluZyB3YXMgd3JvbmcuCisrICAkZXhp dF9jbWQgJEVYSVRfRkFJTFVSRQorK30KKysKKysjIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAor KyMgRW5zdXJlIHRoYXQgd2UgYXJlIHVzaW5nIG00IG1hY3JvcywgYW5kIGxpYnRvb2wgc2NyaXB0 IGZyb20gdGhlIHNhbWUKKysjIHJlbGVhc2Ugb2YgbGlidG9vbC4KKytmdW5jX2NoZWNrX3ZlcnNp b25fbWF0Y2ggKCkKKyt7CisrICBpZiB0ZXN0ICIkcGFja2FnZV9yZXZpc2lvbiIgIT0gIiRtYWNy b19yZXZpc2lvbiI7IHRoZW4KKysgICAgaWYgdGVzdCAiJFZFUlNJT04iICE9ICIkbWFjcm9fdmVy c2lvbiI7IHRoZW4KKysgICAgICBpZiB0ZXN0IC16ICIkbWFjcm9fdmVyc2lvbiI7IHRoZW4KKysg ICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2duYW1lOiBWZXJzaW9uIG1pc21hdGNoIGVy cm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwgYnV0IHRoZQorKyRwcm9nbmFtZTogZGVm aW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJvbSBhbiBvbGRlciByZWxlYXNlLgorKyRw cm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBhY2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20g JFBBQ0tBR0UgJFZFUlNJT04KKyskcHJvZ25hbWU6IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCisr X0xUX0VPRgorKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCA+JjIgPDxfTFRfRU9GCisrJHByb2du YW1lOiBWZXJzaW9uIG1pc21hdGNoIGVycm9yLiAgVGhpcyBpcyAkUEFDS0FHRSAkVkVSU0lPTiwg YnV0IHRoZQorKyRwcm9nbmFtZTogZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQgY29tZXMgZnJv bSAkUEFDS0FHRSAkbWFjcm9fdmVyc2lvbi4KKyskcHJvZ25hbWU6IFlvdSBzaG91bGQgcmVjcmVh dGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tICRQQUNLQUdFICRWRVJTSU9OCisrJHByb2du YW1lOiBhbmQgcnVuIGF1dG9jb25mIGFnYWluLgorK19MVF9FT0YKKysgICAgICBmaQorKyAgICBl bHNlCisrICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKKyskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0 Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCByZXZpc2lvbiAkcGFja2FnZV9y ZXZpc2lvbiwKKyskcHJvZ25hbWU6IGJ1dCB0aGUgZGVmaW5pdGlvbiBvZiB0aGlzIExUX0lOSVQg Y29tZXMgZnJvbSByZXZpc2lvbiAkbWFjcm9fcmV2aXNpb24uCisrJHByb2duYW1lOiBZb3Ugc2hv dWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSByZXZpc2lvbiAkcGFja2Fn ZV9yZXZpc2lvbgorKyRwcm9nbmFtZTogb2YgJFBBQ0tBR0UgJFZFUlNJT04gYW5kIHJ1biBhdXRv Y29uZiBhZ2Fpbi4KKytfTFRfRU9GCisrICAgIGZpCisrCisrICAgIGV4aXQgJEVYSVRfTUlTTUFU Q0gKKysgIGZpCisrfQorKworKworKyMjIC0tLS0tLS0tLS0tICMjCisrIyMgICAgTWFpbi4gICAg IyMKKysjIyAtLS0tLS0tLS0tLSAjIworKworKyRvcHRfaGVscCB8fCB7CisrICAjIFNhbml0eSBj aGVja3MgZmlyc3Q6CisrICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKKysKKysgIGlmIHRlc3Qg IiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiICE9 IHllczsgdGhlbgorKyAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVk IHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCisrICBmaQorKworKyAgdGVzdCAteiAiJG1v ZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERS4i CisrCisrCisrICAjIERhcndpbiBzdWNrcworKyAgZXZhbCBzdGRfc2hyZXh0PVwiJHNocmV4dF9j bWRzXCIKKysKKysKKysgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0byBoYXZlIC1k bG9wZW4gZmxhZ3MuCisrICBpZiB0ZXN0IC1uICIkZXhlY3V0ZV9kbGZpbGVzIiAmJiB0ZXN0ICIk bW9kZSIgIT0gZXhlY3V0ZTsgdGhlbgorKyAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0 aW9uIFxgLWRsb3BlbiciCisrICAgICRFQ0hPICIkaGVscCIgMT4mMgorKyAgICBleGl0ICRFWElU X0ZBSUxVUkUKKysgIGZpCisrCisrICAjIENoYW5nZSB0aGUgaGVscCBtZXNzYWdlIHRvIGEgbW9k ZS1zcGVjaWZpYyBvbmUuCisrICBnZW5lcmljX2hlbHA9IiRoZWxwIgorKyAgaGVscD0iVHJ5IFxg JHByb2duYW1lIC0taGVscCAtLW1vZGU9JG1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKyt9 CisrCisrCisrIyBmdW5jX2xhbGliX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRv b2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysjIFRoaXMgZnVuY3Rpb24g aXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJkbHkgZmx1c2ggb3V0Cisr IyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2xhbGliX3AgKCkKKyt7CisrICAgIHRlc3Qg LWYgIiQxIiAmJgorKyAgICAgICRTRUQgLWUgNHEgIiQxIiAyPi9kZXYvbnVsbCBcCisrICAgICAg ICB8ICRHUkVQICJeIyBHZW5lcmF0ZWQgYnkgLiokUEFDS0FHRSIgPiAvZGV2L251bGwgMj4mMQor K30KKysKKysjIGZ1bmNfbGFsaWJfdW5zYWZlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBh IGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KKysjIFRoaXMgZnVu Y3Rpb24gaW1wbGVtZW50cyB0aGUgc2FtZSBjaGVjayBhcyBmdW5jX2xhbGliX3Agd2l0aG91dAor KyMgcmVzb3J0aW5nIHRvIGV4dGVybmFsIHByb2dyYW1zLiAgVG8gdGhpcyBlbmQsIGl0IHJlZGly ZWN0cyBzdGRpbiBhbmQKKysjIGNsb3NlcyBpdCBhZnRlcndhcmRzLCB3aXRob3V0IHNhdmluZyB0 aGUgb3JpZ2luYWwgZmlsZSBkZXNjcmlwdG9yLgorKyMgQXMgYSBzYWZldHkgbWVhc3VyZSwgdXNl IGl0IG9ubHkgd2hlcmUgYSBuZWdhdGl2ZSByZXN1bHQgd291bGQgYmUKKysjIGZhdGFsIGFueXdh eS4gIFdvcmtzIGlmIGBmaWxlJyBkb2VzIG5vdCBleGlzdC4KKytmdW5jX2xhbGliX3Vuc2FmZV9w ICgpCisreworKyAgICBsYWxpYl9wPW5vCisrICAgIGlmIHRlc3QgLWYgIiQxIiAmJiB0ZXN0IC1y ICIkMSIgJiYgZXhlYyA1PCYwIDwiJDEiOyB0aGVuCisrCWZvciBsYWxpYl9wX2wgaW4gMSAyIDMg NAorKwlkbworKwkgICAgcmVhZCBsYWxpYl9wX2xpbmUKKysJICAgIGNhc2UgIiRsYWxpYl9wX2xp bmUiIGluCisrCQlcI1wgR2VuZXJhdGVkXCBieVwgKiRQQUNLQUdFKiApIGxhbGliX3A9eWVzOyBi cmVhazs7CisrCSAgICBlc2FjCisrCWRvbmUKKysJZXhlYyAwPCY1IDU8Ji0KKysgICAgZmkKKysg ICAgdGVzdCAiJGxhbGliX3AiID0geWVzCisrfQorKworKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0 X3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQKKysj IFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQgd2lsbCBoYXJk bHkgZmx1c2ggb3V0CisrIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KKytmdW5jX2x0d3JhcHBlcl9z Y3JpcHRfcCAoKQorK3sKKysgICAgZnVuY19sYWxpYl9wICIkMSIKKyt9CisrCisrIyBmdW5jX2x0 d3JhcHBlcl9leGVjdXRhYmxlX3AgZmlsZQorKyMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wg d3JhcHBlciBleGVjdXRhYmxlCisrIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5p dHkgY2hlY2s7IGl0IHdpbGwgaGFyZGx5IGZsdXNoIG91dAorKyMgZGV0ZXJtaW5lZCBpbXBvc3Rl cnMuCisrZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICgpCisreworKyAgICBmdW5jX2x0d3Jh cHBlcl9leGVjX3N1ZmZpeD0KKysgICAgY2FzZSAkMSBpbgorKyAgICAqLmV4ZSkgOzsKKysgICAg KikgZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXg9LmV4ZSA7OworKyAgICBlc2FjCisrICAgICRH UkVQICIkbWFnaWNfZXhlIiAiJDEkZnVuY19sdHdyYXBwZXJfZXhlY19zdWZmaXgiID4vZGV2L251 bGwgMj4mMQorK30KKysKKysjIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgZmlsZQorKyMgQXNz dW1lcyBmaWxlIGlzIGFuIGx0d3JhcHBlcl9leGVjdXRhYmxlCisrIyB1c2VzICRmaWxlIHRvIGRl dGVybWluZSB0aGUgYXBwcm9wcmlhdGUgZmlsZW5hbWUgZm9yIGEKKysjIHRlbXBvcmFyeSBsdHdy YXBwZXJfc2NyaXB0LgorK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgKCkKKyt7CisrICAgIGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIiCisrICAgIGlmIGZ1bmNfbHR3cmFwcGVy X2V4ZWN1dGFibGVfcCAiJDEiOyB0aGVuCisrCWZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiQx IiAiIiAiLiIKKysJZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZnVuY19iYXNlbmFtZV9yZXN1 bHQiCisrCWZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jl c3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9sdHNod3JhcHBlciIKKysgICAg ZmkKKyt9CisrCisrIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKKysjIFRydWUgaWZmIEZJTEUgaXMg YSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9yIHdyYXBwZXIgZXhlY3V0YWJsZQorKyMgVGhpcyBm dW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVz aCBvdXQKKysjIGRldGVybWluZWQgaW1wb3N0ZXJzLgorK2Z1bmNfbHR3cmFwcGVyX3AgKCkKKyt7 CisrICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkMSIgfHwgZnVuY19sdHdyYXBwZXJfZXhl Y3V0YWJsZV9wICIkMSIKKyt9CisrCisrCisrIyBmdW5jX2V4ZWN1dGVfY21kcyBjb21tYW5kcyBm YWlsX2NtZAorKyMgRXhlY3V0ZSB0aWxkZS1kZWxpbWl0ZWQgQ09NTUFORFMuCisrIyBJZiBGQUlM X0NNRCBpcyBnaXZlbiwgZXZhbCB0aGF0IHVwb24gZmFpbHVyZS4KKysjIEZBSUxfQ01EIG1heSBy ZWFkLWFjY2VzcyB0aGUgY3VycmVudCBjb21tYW5kIGluIHZhcmlhYmxlIENNRCEKKytmdW5jX2V4 ZWN1dGVfY21kcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBzYXZlX2lmcz0kSUZTOyBJ RlM9J34nCisrICAgIGZvciBjbWQgaW4gJDE7IGRvCisrICAgICAgSUZTPSRzYXZlX2lmcworKyAg ICAgIGV2YWwgY21kPVwiJGNtZFwiCisrICAgICAgZnVuY19zaG93X2V2YWwgIiRjbWQiICIkezIt On0iCisrICAgIGRvbmUKKysgICAgSUZTPSRzYXZlX2lmcworK30KKysKKysKKysjIGZ1bmNfc291 cmNlIGZpbGUKKysjIFNvdXJjZSBGSUxFLCBhZGRpbmcgZGlyZWN0b3J5IGNvbXBvbmVudCBpZiBu ZWNlc3NhcnkuCisrIyBOb3RlIHRoYXQgaXQgaXMgbm90IG5lY2Vzc2FyeSBvbiBjeWd3aW4vbWlu Z3cgdG8gYXBwZW5kIGEgZG90IHRvCisrIyBGSUxFIGV2ZW4gaWYgYm90aCBGSUxFIGFuZCBGSUxF LmV4ZSBleGlzdDogYXV0b21hdGljLWFwcGVuZC0uZXhlCisrIyBiZWhhdmlvciBoYXBwZW5zIG9u bHkgZm9yIGV4ZWMoMyksIG5vdCBmb3Igb3BlbigyKSEgIEFsc28sIHNvdXJjaW5nCisrIyBgRklM RS4nIGRvZXMgbm90IHdvcmsgb24gY3lnd2luIG1hbmFnZWQgbW91bnRzLgorK2Z1bmNfc291cmNl ICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIGNhc2UgJDEgaW4KKysgICAgKi8qIHwgKlxc KikJLiAiJDEiIDs7CisrICAgICopCQkuICIuLyQxIiA7OworKyAgICBlc2FjCisrfQorKworKwor KyMgZnVuY19pbmZlcl90YWcgYXJnCisrIyBJbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiB0byB1 c2UgaWYgYW55IGFyZSBhdmFpbGFibGUgYW5kCisrIyBpZiBvbmUgd2Fzbid0IGNob3NlbiB2aWEg dGhlICItLXRhZyIgY29tbWFuZCBsaW5lIG9wdGlvbi4KKysjIE9ubHkgYXR0ZW1wdCB0aGlzIGlm IHRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21waWxlCisrIyBjb21tYW5kIGRvZXNuJ3QgbWF0 Y2ggdGhlIGRlZmF1bHQgY29tcGlsZXIuCisrIyBhcmcgaXMgdXN1YWxseSBvZiB0aGUgZm9ybSAn Z2NjIC4uLicKKytmdW5jX2luZmVyX3RhZyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBp ZiB0ZXN0IC1uICIkYXZhaWxhYmxlX3RhZ3MiICYmIHRlc3QgLXogIiR0YWduYW1lIjsgdGhlbgor KyAgICAgIENDX3F1b3RlZD0KKysgICAgICBmb3IgYXJnIGluICRDQzsgZG8KKysgICAgICAgIGZ1 bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCisrCUNDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrICAgICAgZG9uZQorKyAgICAgIGNhc2UgJEAgaW4KKysg ICAgICAjIEJsYW5rcyBpbiB0aGUgY29tbWFuZCBtYXkgaGF2ZSBiZWVuIHN0cmlwcGVkIGJ5IHRo ZSBjYWxsaW5nIHNoZWxsLAorKyAgICAgICMgYnV0IG5vdCBmcm9tIHRoZSBDQyBlbnZpcm9ubWVu dCB2YXJpYWJsZSB3aGVuIGNvbmZpZ3VyZSB3YXMgcnVuLgorKyAgICAgICIgJENDICIqIHwgIiRD QyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2AgIiogfCAiICRDQ19xdW90ZWQi KiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3RlZGAgIiogfCAiYCRFQ0hPICRD Q19xdW90ZWRgICIqKSA7OworKyAgICAgICMgQmxhbmtzIGF0IHRoZSBzdGFydCBvZiAkYmFzZV9j b21waWxlIHdpbGwgY2F1c2UgdGhpcyB0byBmYWlsCisrICAgICAgIyBpZiB3ZSBkb24ndCBjaGVj ayBmb3IgdGhlbSBhcyB3ZWxsLgorKyAgICAgICopCisrCWZvciB6IGluICRhdmFpbGFibGVfdGFn czsgZG8KKysJICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHok IiA8ICIkcHJvZ3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAjIEV2YWx1YXRlIHRoZSBj b25maWd1cmF0aW9uLgorKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBM SUJUT09MIFRBRyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6 ICckeickL3AnIDwgJHByb2dwYXRoYCIKKysJICAgIENDX3F1b3RlZD0KKysJICAgIGZvciBhcmcg aW4gJENDOyBkbworKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3RoZXIg c2hlbGwgbWV0YWNoYXJhY3RlcnMuCisrCSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmci CisrCSAgICAgIENDX3F1b3RlZD0iJENDX3F1b3RlZCAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQiCisrCSAgICBkb25lCisrCSAgICBjYXNlICIkQCAiIGluCisrCSAgICAgICIgJENDICIqIHwg IiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2AgIiogfCAiICRDQ19xdW90 ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3RlZGAgIiogfCAiYCRFQ0hP ICRDQ19xdW90ZWRgICIqKQorKwkgICAgICAjIFRoZSBjb21waWxlciBpbiB0aGUgYmFzZSBjb21w aWxlIGNvbW1hbmQgbWF0Y2hlcworKwkgICAgICAjIHRoZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25m aWd1cmF0aW9uLgorKwkgICAgICAjIEFzc3VtZSB0aGlzIGlzIHRoZSB0YWdnZWQgY29uZmlndXJh dGlvbiB3ZSB3YW50LgorKwkgICAgICB0YWduYW1lPSR6CisrCSAgICAgIGJyZWFrCisrCSAgICAg IDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJZG9uZQorKwkjIElmICR0YWduYW1lIHN0aWxsIGlz bid0IHNldCwgdGhlbiBubyB0YWdnZWQgY29uZmlndXJhdGlvbgorKwkjIHdhcyBmb3VuZCBhbmQg bGV0IHRoZSB1c2VyIGtub3cgdGhhdCB0aGUgIi0tdGFnIiBjb21tYW5kCisrCSMgbGluZSBvcHRp b24gbXVzdCBiZSB1c2VkLgorKwlpZiB0ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KKysJICBmdW5j X2VjaG8gInVuYWJsZSB0byBpbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiIKKysJICBmdW5jX2Zh dGFsX2Vycm9yICJzcGVjaWZ5IGEgdGFnIHdpdGggXGAtLXRhZyciCisrIwllbHNlCisrIwkgIGZ1 bmNfdmVyYm9zZSAidXNpbmcgJHRhZ25hbWUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCisrCWZpCisr CTs7CisrICAgICAgZXNhYworKyAgICBmaQorK30KKysKKysKKysKKysjIGZ1bmNfd3JpdGVfbGli dG9vbF9vYmplY3Qgb3V0cHV0X25hbWUgcGljX25hbWUgbm9ucGljX25hbWUKKysjIENyZWF0ZSBh IGxpYnRvb2wgb2JqZWN0IGZpbGUgKGFuYWxvZ291cyB0byBhICIubGEiIGZpbGUpLAorKyMgYnV0 IGRvbid0IGNyZWF0ZSBpdCBpZiB3ZSdyZSBkb2luZyBhIGRyeSBydW4uCisrZnVuY193cml0ZV9s aWJ0b29sX29iamVjdCAoKQorK3sKKysgICAgd3JpdGVfbGlib2JqPSR7MX0KKysgICAgaWYgdGVz dCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKysgICAgICB3cml0ZV9sb2JqPVwn JHsyfVwnCisrICAgIGVsc2UKKysgICAgICB3cml0ZV9sb2JqPW5vbmUKKysgICAgZmkKKysKKysg ICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKyAgICAgIHdyaXRlX29s ZG9iaj1cJyR7M31cJworKyAgICBlbHNlCisrICAgICAgd3JpdGVfb2xkb2JqPW5vbmUKKysgICAg ZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysgICAgICBjYXQgPiR7d3JpdGVfbGlib2Jq fVQgPDxFT0YKKysjICR3cml0ZV9saWJvYmogLSBhIGxpYnRvb2wgb2JqZWN0IGZpbGUKKysjIEdl bmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysj CisrIyBQbGVhc2UgRE8gTk9UIGRlbGV0ZSB0aGlzIGZpbGUhCisrIyBJdCBpcyBuZWNlc3Nhcnkg Zm9yIGxpbmtpbmcgdGhlIGxpYnJhcnkuCisrCisrIyBOYW1lIG9mIHRoZSBQSUMgb2JqZWN0Lgor K3BpY19vYmplY3Q9JHdyaXRlX2xvYmoKKysKKysjIE5hbWUgb2YgdGhlIG5vbi1QSUMgb2JqZWN0 Cisrbm9uX3BpY19vYmplY3Q9JHdyaXRlX29sZG9iagorKworK0VPRgorKyAgICAgICRNViAiJHt3 cml0ZV9saWJvYmp9VCIgIiR7d3JpdGVfbGlib2JqfSIKKysgICAgfQorK30KKysKKysjIGZ1bmNf bW9kZV9jb21waWxlIGFyZy4uLgorK2Z1bmNfbW9kZV9jb21waWxlICgpCisreworKyAgICAkb3B0 X2RlYnVnCisrICAgICMgR2V0IHRoZSBjb21waWxhdGlvbiBjb21tYW5kIGFuZCB0aGUgc291cmNl IGZpbGUuCisrICAgIGJhc2VfY29tcGlsZT0KKysgICAgc3JjZmlsZT0iJG5vbm9wdCIgICMgIGFs d2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJzcmNmaWxlIgorKyAgICBzdXBwcmVzc19v cHQ9eWVzCisrICAgIHN1cHByZXNzX291dHB1dD0KKysgICAgYXJnX21vZGU9bm9ybWFsCisrICAg IGxpYm9iaj0KKysgICAgbGF0ZXI9CisrICAgIHBpZV9mbGFnPQorKworKyAgICBmb3IgYXJnCisr ICAgIGRvCisrICAgICAgY2FzZSAkYXJnX21vZGUgaW4KKysgICAgICBhcmcgICkKKysJIyBkbyBu b3QgImNvbnRpbnVlIi4gIEluc3RlYWQsIGFkZCB0aGlzIHRvIGJhc2VfY29tcGlsZQorKwlsYXN0 YXJnPSIkYXJnIgorKwlhcmdfbW9kZT1ub3JtYWwKKysJOzsKKysKKysgICAgICB0YXJnZXQgKQor KwlsaWJvYmo9IiRhcmciCisrCWFyZ19tb2RlPW5vcm1hbAorKwljb250aW51ZQorKwk7OworKwor KyAgICAgIG5vcm1hbCApCisrCSMgQWNjZXB0IGFueSBjb21tYW5kLWxpbmUgb3B0aW9ucy4KKysJ Y2FzZSAkYXJnIGluCisrCS1vKQorKwkgIHRlc3QgLW4gIiRsaWJvYmoiICYmIFwKKysJICAgIGZ1 bmNfZmF0YWxfZXJyb3IgInlvdSBjYW5ub3Qgc3BlY2lmeSBcYC1vJyBtb3JlIHRoYW4gb25jZSIK KysJICBhcmdfbW9kZT10YXJnZXQKKysJICBjb250aW51ZQorKwkgIDs7CisrCisrCS1waWUgfCAt ZnBpZSB8IC1mUElFKQorKyAgICAgICAgICBwaWVfZmxhZz0iJHBpZV9mbGFnICRhcmciCisrCSAg Y29udGludWUKKysJICA7OworKworKwktc2hhcmVkIHwgLXN0YXRpYyB8IC1wcmVmZXItcGljIHwg LXByZWZlci1ub24tcGljKQorKwkgIGxhdGVyPSIkbGF0ZXIgJGFyZyIKKysJICBjb250aW51ZQor KwkgIDs7CisrCisrCS1uby1zdXBwcmVzcykKKysJICBzdXBwcmVzc19vcHQ9bm8KKysJICBjb250 aW51ZQorKwkgIDs7CisrCisrCS1YY29tcGlsZXIpCisrCSAgYXJnX21vZGU9YXJnICAjICB0aGUg bmV4dCBvbmUgZ29lcyBpbnRvIHRoZSAiYmFzZV9jb21waWxlIiBhcmcgbGlzdAorKwkgIGNvbnRp bnVlICAgICAgIyAgVGhlIGN1cnJlbnQgInNyY2ZpbGUiIHdpbGwgZWl0aGVyIGJlIHJldGFpbmVk IG9yCisrCSAgOzsgICAgICAgICAgICAjICByZXBsYWNlZCBsYXRlci4gIEkgd291bGQgZ3Vlc3Mg dGhhdCB3b3VsZCBiZSBhIGJ1Zy4KKysKKysJLVdjLCopCisrCSAgZnVuY19zdHJpcG5hbWUgJy1X YywnICcnICIkYXJnIgorKwkgIGFyZ3M9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgIGxhc3Rh cmc9CisrCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCisrCSAgZm9yIGFyZyBpbiAkYXJnczsg ZG8KKysJICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFy ZyIKKysJICAgIGxhc3Rhcmc9IiRsYXN0YXJnICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIK KysJICBkb25lCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrCSAgZnVuY19zdHJpcG5hbWUgJyAnICcn ICIkbGFzdGFyZyIKKysJICBsYXN0YXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysKKysJICAj IEFkZCB0aGUgYXJndW1lbnRzIHRvIGJhc2VfY29tcGlsZS4KKysJICBiYXNlX2NvbXBpbGU9IiRi YXNlX2NvbXBpbGUgJGxhc3RhcmciCisrCSAgY29udGludWUKKysJICA7OworKworKwkqKQorKwkg ICMgQWNjZXB0IHRoZSBjdXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KKysJICAj IFRoZSBwcmV2aW91cyAic3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KKysJ ICAjCisrCSAgbGFzdGFyZz0iJHNyY2ZpbGUiCisrCSAgc3JjZmlsZT0iJGFyZyIKKysJICA7Owor Kwllc2FjICAjICBjYXNlICRhcmcKKysJOzsKKysgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19t b2RlCisrCisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVu dC4KKysgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbGFzdGFyZyIKKysgICAgICBiYXNlX2Nv bXBpbGU9IiRiYXNlX2NvbXBpbGUgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICBk b25lICMgZm9yIGFyZworKworKyAgICBjYXNlICRhcmdfbW9kZSBpbgorKyAgICBhcmcpCisrICAg ICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qgc3BlY2lmeSBhbiBhcmd1bWVudCBmb3IgLVhj b21waWxlIgorKyAgICAgIDs7CisrICAgIHRhcmdldCkKKysgICAgICBmdW5jX2ZhdGFsX2Vycm9y ICJ5b3UgbXVzdCBzcGVjaWZ5IGEgdGFyZ2V0IHdpdGggXGAtbyciCisrICAgICAgOzsKKysgICAg KikKKysgICAgICAjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSBvYmplY3QuCisrICAgICAg dGVzdCAteiAiJGxpYm9iaiIgJiYgeworKwlmdW5jX2Jhc2VuYW1lICIkc3JjZmlsZSIKKysJbGli b2JqPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgfQorKyAgICAgIDs7CisrICAgIGVz YWMKKysKKysgICAgIyBSZWNvZ25pemUgc2V2ZXJhbCBkaWZmZXJlbnQgZmlsZSBzdWZmaXhlcy4K KysgICAgIyBJZiB0aGUgdXNlciBzcGVjaWZpZXMgLW8gZmlsZS5vLCBpdCBpcyByZXBsYWNlZCB3 aXRoIGZpbGUubG8KKysgICAgY2FzZSAkbGlib2JqIGluCisrICAgICouW2NDRlNpZm1zb10gfCBc CisrICAgICouYWRhIHwgKi5hZGIgfCAqLmFkcyB8ICouYXNtIHwgXAorKyAgICAqLmMrKyB8ICou Y2MgfCAqLmlpIHwgKi5jbGFzcyB8ICouY3BwIHwgKi5jeHggfCBcCisrICAgICouW2ZGXVswOV0/ IHwgKi5mb3IgfCAqLmphdmEgfCAqLm9iaiB8ICouc3gpCisrICAgICAgZnVuY194Zm9ybSAiJGxp Ym9iaiIKKysgICAgICBsaWJvYmo9JGZ1bmNfeGZvcm1fcmVzdWx0CisrICAgICAgOzsKKysgICAg ZXNhYworKworKyAgICBjYXNlICRsaWJvYmogaW4KKysgICAgKi5sbykgZnVuY19sbzJvICIkbGli b2JqIjsgb2JqPSRmdW5jX2xvMm9fcmVzdWx0IDs7CisrICAgICopCisrICAgICAgZnVuY19mYXRh bF9lcnJvciAiY2Fubm90IGRldGVybWluZSBuYW1lIG9mIGxpYnJhcnkgb2JqZWN0IGZyb20gXGAk bGlib2JqJyIKKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGZ1bmNfaW5mZXJfdGFnICRi YXNlX2NvbXBpbGUKKysKKysgICAgZm9yIGFyZyBpbiAkbGF0ZXI7IGRvCisrICAgICAgY2FzZSAk YXJnIGluCisrICAgICAgLXNoYXJlZCkKKysJdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0g eWVzICYmIFwKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gImNhbiBub3QgYnVpbGQgYSBz aGFyZWQgbGlicmFyeSIKKysJYnVpbGRfb2xkX2xpYnM9bm8KKysJY29udGludWUKKysJOzsKKysK KysgICAgICAtc3RhdGljKQorKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJYnVpbGRfb2xkX2xp YnM9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXByZWZlci1waWMpCisrCXBpY19t b2RlPXllcworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1wcmVmZXItbm9uLXBpYykKKysJ cGljX21vZGU9bm8KKysJY29udGludWUKKysJOzsKKysgICAgICBlc2FjCisrICAgIGRvbmUKKysK KysgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGxpYm9iaiIKKysgICAgdGVzdCAiWCRsaWJvYmoi ICE9ICJYJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IiBcCisrICAgICAgJiYgJEVDSE8gIlgk bGlib2JqIiB8ICRHUkVQICdbXX4jXip7fTs8Pj8iJyInIicJICYoKXxgJFtdJyBcCisrICAgICAg JiYgZnVuY193YXJuaW5nICJsaWJvYmogbmFtZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBz aGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgorKyAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1l ICIkb2JqIiAiLyIgIiIKKysgICAgb2JqbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyAg ICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKKysgICAgbG9iaj0ke3hkaXJ9JG9iamRpci8k b2JqbmFtZQorKworKyAgICB0ZXN0IC16ICIkYmFzZV9jb21waWxlIiAmJiBcCisrICAgICAgZnVu Y19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgY29tcGlsYXRpb24gY29tbWFuZCIKKysK KysgICAgIyBEZWxldGUgYW55IGxlZnRvdmVyIGxpYnJhcnkgb2JqZWN0cy4KKysgICAgaWYgdGVz dCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKyAgICAgIHJlbW92ZWxpc3Q9IiRvYmog JGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorKyAgICBlbHNlCisrICAgICAgcmVtb3ZlbGlzdD0i JGxvYmogJGxpYm9iaiAke2xpYm9ian1UIgorKyAgICBmaQorKworKyAgICAjIE9uIEN5Z3dpbiB0 aGVyZSdzIG5vICJyZWFsIiBQSUMgZmxhZyBzbyB3ZSBtdXN0IGJ1aWxkIGJvdGggb2JqZWN0IHR5 cGVzCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIq IHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICBwaWNfbW9kZT1kZWZhdWx0CisrICAgICAgOzsKKysg ICAgZXNhYworKyAgICBpZiB0ZXN0ICIkcGljX21vZGUiID0gbm8gJiYgdGVzdCAiJGRlcGxpYnNf Y2hlY2tfbWV0aG9kIiAhPSBwYXNzX2FsbDsgdGhlbgorKyAgICAgICMgbm9uLVBJQyBjb2RlIGlu IHNoYXJlZCBsaWJyYXJpZXMgaXMgbm90IHN1cHBvcnRlZAorKyAgICAgIHBpY19tb2RlPWRlZmF1 bHQKKysgICAgZmkKKysKKysgICAgIyBDYWxjdWxhdGUgdGhlIGZpbGVuYW1lIG9mIHRoZSBvdXRw dXQgb2JqZWN0IGlmIGNvbXBpbGVyIGRvZXMKKysgICAgIyBub3Qgc3VwcG9ydCAtbyB3aXRoIC1j CisrICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRoZW4KKysgICAgICBvdXRwdXRf b2JqPWAkRUNITyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICdzJV4uKi8lJScgLWUgJ3MlXC5bXi5d KiQlJSdgLiR7b2JqZXh0fQorKyAgICAgIGxvY2tmaWxlPSIkb3V0cHV0X29iai5sb2NrIgorKyAg ICBlbHNlCisrICAgICAgb3V0cHV0X29iaj0KKysgICAgICBuZWVkX2xvY2tzPW5vCisrICAgICAg bG9ja2ZpbGU9CisrICAgIGZpCisrCisrICAgICMgTG9jayB0aGlzIGNyaXRpY2FsIHNlY3Rpb24g aWYgaXQgaXMgbmVlZGVkCisrICAgICMgV2UgdXNlIHRoaXMgc2NyaXB0IGZpbGUgdG8gbWFrZSB0 aGUgbGluaywgaXQgYXZvaWRzIGNyZWF0aW5nIGEgbmV3IGZpbGUKKysgICAgaWYgdGVzdCAiJG5l ZWRfbG9ja3MiID0geWVzOyB0aGVuCisrICAgICAgdW50aWwgJG9wdF9kcnlfcnVuIHx8IGxuICIk cHJvZ3BhdGgiICIkbG9ja2ZpbGUiIDI+L2Rldi9udWxsOyBkbworKwlmdW5jX2VjaG8gIldhaXRp bmcgZm9yICRsb2NrZmlsZSB0byBiZSByZW1vdmVkIgorKwlzbGVlcCAyCisrICAgICAgZG9uZQor KyAgICBlbGlmIHRlc3QgIiRuZWVkX2xvY2tzIiA9IHdhcm47IHRoZW4KKysgICAgICBpZiB0ZXN0 IC1mICIkbG9ja2ZpbGUiOyB0aGVuCisrCSRFQ0hPICJcCisrKioqIEVSUk9SLCAkbG9ja2ZpbGUg ZXhpc3RzIGFuZCBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysKKytU aGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBz YW1lCisrdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBh cm91bmQgaXQgYmVjYXVzZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBh bmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQg bWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFyYWxs ZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKKytj b21waWxlci4iCisrCisrCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysJZXhpdCAk RVhJVF9GQUlMVVJFCisrICAgICAgZmkKKysgICAgICByZW1vdmVsaXN0PSIkcmVtb3ZlbGlzdCAk b3V0cHV0X29iaiIKKysgICAgICAkRUNITyAiJHNyY2ZpbGUiID4gIiRsb2NrZmlsZSIKKysgICAg ZmkKKysKKysgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorKyAgICByZW1vdmVs aXN0PSIkcmVtb3ZlbGlzdCAkbG9ja2ZpbGUiCisrICAgIHRyYXAgJyRvcHRfZHJ5X3J1biB8fCAk Uk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScgMSAyIDE1CisrCisrICAgIGlmIHRl c3QgLW4gIiRmaXhfc3JjZmlsZV9wYXRoIjsgdGhlbgorKyAgICAgIGV2YWwgc3JjZmlsZT1cIiRm aXhfc3JjZmlsZV9wYXRoXCIKKysgICAgZmkKKysgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHNy Y2ZpbGUiCisrICAgIHFzcmNmaWxlPSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdAorKworKyAg ICAjIE9ubHkgYnVpbGQgYSBQSUMgb2JqZWN0IGlmIHdlIGFyZSBidWlsZGluZyBsaWJ0b29sIGxp YnJhcmllcy4KKysgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4K KysgICAgICAjIFdpdGhvdXQgdGhpcyBhc3NpZ25tZW50LCBiYXNlX2NvbXBpbGUgZ2V0cyBlbXB0 aWVkLgorKyAgICAgIGZic2RfaGlkZW91c19zaF9idWc9JGJhc2VfY29tcGlsZQorKworKyAgICAg IGlmIHRlc3QgIiRwaWNfbW9kZSIgIT0gbm87IHRoZW4KKysJY29tbWFuZD0iJGJhc2VfY29tcGls ZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgorKyAgICAgIGVsc2UKKysJIyBEb24ndCBidWlsZCBQSUMg Y29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSIKKysgICAgICBmaQorKwor KyAgICAgIGZ1bmNfbWtkaXJfcCAiJHhkaXIkb2JqZGlyIgorKworKyAgICAgIGlmIHRlc3QgLXog IiRvdXRwdXRfb2JqIjsgdGhlbgorKwkjIFBsYWNlIFBJQyBvYmplY3RzIGluICRvYmpkaXIKKysJ Y29tbWFuZD0iJGNvbW1hbmQgLW8gJGxvYmoiCisrICAgICAgZmkKKysKKysgICAgICBmdW5jX3No b3dfZXZhbF9sb2NhbGUgIiRjb21tYW5kIglcCisrICAgICAgICAgICd0ZXN0IC1uICIkb3V0cHV0 X29iaiIgJiYgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnCisrCisrICAgICAg aWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgorKwkgdGVzdCAiWGBjYXQgJGxvY2tmaWxl IDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KKysJJEVDSE8gIlwKKysqKiogRVJS T1IsICRsb2NrZmlsZSBjb250YWluczoKKytgY2F0ICRsb2NrZmlsZSAyPi9kZXYvbnVsbGAKKysK KytidXQgaXQgc2hvdWxkIGNvbnRhaW46CisrJHNyY2ZpbGUKKysKKytUaGlzIGluZGljYXRlcyB0 aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBzYW1lCisrdGVtcG9yYXJ5 IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBhcm91bmQgaXQgYmVjYXVz ZQorK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBhbmQgXGAtbycgdG9nZXRo ZXIuICBJZiB5b3UKKytyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQgbWF5IHN1Y2NlZWQsIGJ5 IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCisrYXZvaWQgcGFyYWxsZWwgYnVpbGRzIChtYWtl IC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKKytjb21waWxlci4iCisrCisr CSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKKysJZXhpdCAkRVhJVF9GQUlMVVJFCisr ICAgICAgZmkKKysKKysgICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0IGlmIG5lZWRlZCwgdGhl biBnbyBvbiB0byBjb21waWxlIHRoZSBuZXh0IG9uZQorKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRw dXRfb2JqIiAmJiB0ZXN0ICJYJG91dHB1dF9vYmoiICE9ICJYJGxvYmoiOyB0aGVuCisrCWZ1bmNf c2hvd19ldmFsICckTVYgIiRvdXRwdXRfb2JqIiAiJGxvYmoiJyBcCisrCSAgJ2Vycm9yPSQ/OyAk b3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRlcnJvcicKKysgICAgICBmaQor KworKyAgICAgICMgQWxsb3cgZXJyb3IgbWVzc2FnZXMgb25seSBmcm9tIHRoZSBmaXJzdCBjb21w aWxhdGlvbi4KKysgICAgICBpZiB0ZXN0ICIkc3VwcHJlc3Nfb3B0IiA9IHllczsgdGhlbgorKwlz dXBwcmVzc19vdXRwdXQ9JyA+L2Rldi9udWxsIDI+JjEnCisrICAgICAgZmkKKysgICAgZmkKKysK KysgICAgIyBPbmx5IGJ1aWxkIGEgcG9zaXRpb24tZGVwZW5kZW50IG9iamVjdCBpZiB3ZSBidWls ZCBvbGQgbGlicmFyaWVzLgorKyAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0 aGVuCisrICAgICAgaWYgdGVzdCAiJHBpY19tb2RlIiAhPSB5ZXM7IHRoZW4KKysJIyBEb24ndCBi dWlsZCBQSUMgY29kZQorKwljb21tYW5kPSIkYmFzZV9jb21waWxlICRxc3JjZmlsZSRwaWVfZmxh ZyIKKysgICAgICBlbHNlCisrCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNf ZmxhZyIKKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0geWVzOyB0 aGVuCisrCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRvYmoiCisrICAgICAgZmkKKysKKysgICAgICAj IFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5IGRpZCBhIFBJQyBjb21waWxh dGlvbi4KKysgICAgICBjb21tYW5kPSIkY29tbWFuZCRzdXBwcmVzc19vdXRwdXQiCisrICAgICAg ZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIgXAorKyAgICAgICAgJyRvcHRfZHJ5X3J1 biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScKKysKKysgICAgICBpZiB0 ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCisrCSB0ZXN0ICJYYGNhdCAkbG9ja2ZpbGUgMj4v ZGV2L251bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgorKwkkRUNITyAiXAorKyoqKiBFUlJPUiwg JGxvY2tmaWxlIGNvbnRhaW5zOgorK2BjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYAorKworK2J1 dCBpdCBzaG91bGQgY29udGFpbjoKKyskc3JjZmlsZQorKworK1RoaXMgaW5kaWNhdGVzIHRoYXQg YW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUKKyt0ZW1wb3Jhcnkgb2Jq ZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3VuZCBpdCBiZWNhdXNlCisr eW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBcYC1vJyB0b2dldGhlci4g IElmIHlvdQorK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkgc3VjY2VlZCwgYnkgY2hh bmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKKythdm9pZCBwYXJhbGxlbCBidWlsZHMgKG1ha2UgLWop IGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgorK2NvbXBpbGVyLiIKKysKKysJJG9w dF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAorKwlleGl0ICRFWElUX0ZBSUxVUkUKKysgICAg ICBmaQorKworKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYgbmVlZGVkCisrICAgICAg aWYgdGVzdCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkb2Jq IjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJE1WICIkb3V0cHV0X29iaiIgIiRvYmoiJyBcCisr CSAgJ2Vycm9yPSQ/OyAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRlcnJv cicKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICAkb3B0X2RyeV9ydW4gfHwgeworKyAgICAg IGZ1bmNfd3JpdGVfbGlidG9vbF9vYmplY3QgIiRsaWJvYmoiICIkb2JqZGlyLyRvYmpuYW1lIiAi JG9iam5hbWUiCisrCisrICAgICAgIyBVbmxvY2sgdGhlIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQg d2FzIGxvY2tlZAorKyAgICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKwly ZW1vdmVsaXN0PSRsb2NrZmlsZQorKyAgICAgICAgJFJNICIkbG9ja2ZpbGUiCisrICAgICAgZmkK KysgICAgfQorKworKyAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyt9CisrCisrJG9wdF9oZWxwIHx8 IHsKKyt0ZXN0ICIkbW9kZSIgPSBjb21waWxlICYmIGZ1bmNfbW9kZV9jb21waWxlICR7MSsiJEAi fQorK30KKysKKytmdW5jX21vZGVfaGVscCAoKQorK3sKKysgICAgIyBXZSBuZWVkIHRvIGRpc3Bs YXkgaGVscCBmb3IgZWFjaCBvZiB0aGUgbW9kZXMuCisrICAgIGNhc2UgJG1vZGUgaW4KKysgICAg ICAiIikKKysgICAgICAgICMgR2VuZXJpYyBoZWxwIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2Fn ZSBjb21tZW50cworKyAgICAgICAgIyBhdCB0aGUgc3RhcnQgb2YgdGhpcyBmaWxlLgorKyAgICAg ICAgZnVuY19oZWxwCisrICAgICAgICA7OworKworKyAgICAgIGNsZWFuKQorKyAgICAgICAgJEVD SE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1jbGVhbiBSTSBbUk0t T1BUSU9OXS4uLiBGSUxFLi4uCisrCisrUmVtb3ZlIGZpbGVzIGZyb20gdGhlIGJ1aWxkIGRpcmVj dG9yeS4KKysKKytSTSBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvZ3JhbSB0byB1c2UgdG8gZGVsZXRl IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEZJTEUKKysodHlwaWNhbGx5IFxgL2Jpbi9ybScp LiAgUk0tT1BUSU9OUyBhcmUgb3B0aW9ucyAoc3VjaCBhcyBcYC1mJykgdG8gYmUgcGFzc2VkCisr dG8gUk0uCisrCisrSWYgRklMRSBpcyBhIGxpYnRvb2wgbGlicmFyeSwgb2JqZWN0IG9yIHByb2dy YW0sIGFsbCB0aGUgZmlsZXMgYXNzb2NpYXRlZAorK3dpdGggaXQgYXJlIGRlbGV0ZWQuIE90aGVy d2lzZSwgb25seSBGSUxFIGl0c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKKysgICAgICAgIDs7 CisrCisrICAgICAgY29tcGlsZSkKKysgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUg W09QVElPTl0uLi4gLS1tb2RlPWNvbXBpbGUgQ09NUElMRS1DT01NQU5ELi4uIFNPVVJDRUZJTEUK KysKKytDb21waWxlIGEgc291cmNlIGZpbGUgaW50byBhIGxpYnRvb2wgbGlicmFyeSBvYmplY3Qu CisrCisrVGhpcyBtb2RlIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9wdGlvbnM6 CisrCisrICAtbyBPVVRQVVQtRklMRSAgICBzZXQgdGhlIG91dHB1dCBmaWxlIG5hbWUgdG8gT1VU UFVULUZJTEUKKysgIC1uby1zdXBwcmVzcyAgICAgIGRvIG5vdCBzdXBwcmVzcyBjb21waWxlciBv dXRwdXQgZm9yIG11bHRpcGxlIHBhc3NlcworKyAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1 aWxkaW5nIFBJQyBvYmplY3RzIG9ubHkKKysgIC1wcmVmZXItbm9uLXBpYyAgIHRyeSB0byBidWls ZGluZyBub24tUElDIG9iamVjdHMgb25seQorKyAgLXNoYXJlZCAgICAgICAgICAgZG8gbm90IGJ1 aWxkIGEgXGAubycgZmlsZSBzdWl0YWJsZSBmb3Igc3RhdGljIGxpbmtpbmcKKysgIC1zdGF0aWMg ICAgICAgICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlu a2luZworKworK0NPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVh dGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCisrZnJvbSB0aGUgZ2l2ZW4gU09VUkNFRklM RS4KKysKKytUaGUgb3V0cHV0IGZpbGUgbmFtZSBpcyBkZXRlcm1pbmVkIGJ5IHJlbW92aW5nIHRo ZSBkaXJlY3RvcnkgY29tcG9uZW50IGZyb20KKytTT1VSQ0VGSUxFLCB0aGVuIHN1YnN0aXR1dGlu ZyB0aGUgQyBzb3VyY2UgY29kZSBzdWZmaXggXGAuYycgd2l0aCB0aGUKKytsaWJyYXJ5IG9iamVj dCBzdWZmaXgsIFxgLmxvJy4iCisrICAgICAgICA7OworKworKyAgICAgIGV4ZWN1dGUpCisrICAg ICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWV4ZWN1 dGUgQ09NTUFORCBbQVJHU10uLi4KKysKKytBdXRvbWF0aWNhbGx5IHNldCBsaWJyYXJ5IHBhdGgs IHRoZW4gcnVuIGEgcHJvZ3JhbS4KKysKKytUaGlzIG1vZGUgYWNjZXB0cyB0aGUgZm9sbG93aW5n IGFkZGl0aW9uYWwgb3B0aW9uczoKKysKKysgIC1kbG9wZW4gRklMRSAgICAgIGFkZCB0aGUgZGly ZWN0b3J5IGNvbnRhaW5pbmcgRklMRSB0byB0aGUgbGlicmFyeSBwYXRoCisrCisrVGhpcyBtb2Rl IHNldHMgdGhlIGxpYnJhcnkgcGF0aCBlbnZpcm9ubWVudCB2YXJpYWJsZSBhY2NvcmRpbmcgdG8g XGAtZGxvcGVuJworK2ZsYWdzLgorKworK0lmIGFueSBvZiB0aGUgQVJHUyBhcmUgbGlidG9vbCBl eGVjdXRhYmxlIHdyYXBwZXJzLCB0aGVuIHRoZXkgYXJlIHRyYW5zbGF0ZWQKKytpbnRvIHRoZWly IGNvcnJlc3BvbmRpbmcgdW5pbnN0YWxsZWQgYmluYXJ5LCBhbmQgYW55IG9mIHRoZWlyIHJlcXVp cmVkIGxpYnJhcnkKKytkaXJlY3RvcmllcyBhcmUgYWRkZWQgdG8gdGhlIGxpYnJhcnkgcGF0aC4K KysKKytUaGVuLCBDT01NQU5EIGlzIGV4ZWN1dGVkLCB3aXRoIEFSR1MgYXMgYXJndW1lbnRzLiIK KysgICAgICAgIDs7CisrCisrICAgICAgZmluaXNoKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2Fn ZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0tbW9kZT1maW5pc2ggW0xJQkRJUl0uLi4KKysKKytD b21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzLgorKworK0VhY2gg TElCRElSIGlzIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlidG9vbCBsaWJyYXJpZXMuCisr CisrVGhlIGNvbW1hbmRzIHRoYXQgdGhpcyBtb2RlIGV4ZWN1dGVzIG1heSByZXF1aXJlIHN1cGVy dXNlciBwcml2aWxlZ2VzLiAgVXNlCisrdGhlIFxgLS1kcnktcnVuJyBvcHRpb24gaWYgeW91IGp1 c3Qgd2FudCB0byBzZWUgd2hhdCB3b3VsZCBiZSBleGVjdXRlZC4iCisrICAgICAgICA7OworKwor KyAgICAgIGluc3RhbGwpCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09Q VElPTl0uLi4gLS1tb2RlPWluc3RhbGwgSU5TVEFMTC1DT01NQU5ELi4uCisrCisrSW5zdGFsbCBl eGVjdXRhYmxlcyBvciBsaWJyYXJpZXMuCisrCisrSU5TVEFMTC1DT01NQU5EIGlzIHRoZSBpbnN0 YWxsYXRpb24gY29tbWFuZC4gIFRoZSBmaXJzdCBjb21wb25lbnQgc2hvdWxkIGJlCisrZWl0aGVy IHRoZSBcYGluc3RhbGwnIG9yIFxgY3AnIHByb2dyYW0uCisrCisrVGhlIGZvbGxvd2luZyBjb21w b25lbnRzIG9mIElOU1RBTEwtQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisrCisrICAt aW5zdC1wcmVmaXggUFJFRklYLURJUiAgVXNlIFBSRUZJWC1ESVIgYXMgYSBzdGFnaW5nIGFyZWEg Zm9yIGluc3RhbGxhdGlvbgorKworK1RoZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRl cnByZXRlZCBhcyBhcmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChvbmx5CisrQlNELWNvbXBhdGli bGUgaW5zdGFsbCBvcHRpb25zIGFyZSByZWNvZ25pemVkKS4iCisrICAgICAgICA7OworKworKyAg ICAgIGxpbmspCisrICAgICAgICAkRUNITyBcCisrIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0u Li4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4uCisrCisrTGluayBvYmplY3QgZmlsZXMgb3Ig bGlicmFyaWVzIHRvZ2V0aGVyIHRvIGZvcm0gYW5vdGhlciBsaWJyYXJ5LCBvciB0bworK2NyZWF0 ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0uCisrCisrTElOSy1DT01NQU5EIGlzIGEgY29tbWFuZCB1 c2luZyB0aGUgQyBjb21waWxlciB0aGF0IHlvdSB3b3VsZCB1c2UgdG8gY3JlYXRlCisrYSBwcm9n cmFtIGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMuCisrCisrVGhlIGZvbGxvd2luZyBjb21wb25l bnRzIG9mIExJTkstQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CisrCisrICAtYWxsLXN0 YXRpYyAgICAgICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBhdCBhbGwKKysgIC1hdm9p ZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZpeCBpZiBwb3NzaWJsZQorKyAg LWRsb3BlbiBGSUxFICAgICAgXGAtZGxwcmVvcGVuJyBGSUxFIGlmIGl0IGNhbm5vdCBiZSBkbG9w ZW5lZCBhdCBydW50aW1lCisrICAtZGxwcmVvcGVuIEZJTEUgICBsaW5rIGluIEZJTEUgYW5kIGFk ZCBpdHMgc3ltYm9scyB0byBsdF9wcmVsb2FkZWRfc3ltYm9scworKyAgLWV4cG9ydC1keW5hbWlj ICAgYWxsb3cgc3ltYm9scyBmcm9tIE9VVFBVVC1GSUxFIHRvIGJlIHJlc29sdmVkIHdpdGggZGxz eW0oMykKKysgIC1leHBvcnQtc3ltYm9scyBTWU1GSUxFCisrICAgICAgICAgICAgICAgICAgICB0 cnkgdG8gZXhwb3J0IG9ubHkgdGhlIHN5bWJvbHMgbGlzdGVkIGluIFNZTUZJTEUKKysgIC1leHBv cnQtc3ltYm9scy1yZWdleCBSRUdFWAorKyAgICAgICAgICAgICAgICAgICAgdHJ5IHRvIGV4cG9y dCBvbmx5IHRoZSBzeW1ib2xzIG1hdGNoaW5nIFJFR0VYCisrICAtTExJQkRJUiAgICAgICAgICBz ZWFyY2ggTElCRElSIGZvciByZXF1aXJlZCBpbnN0YWxsZWQgbGlicmFyaWVzCisrICAtbE5BTUUg ICAgICAgICAgICBPVVRQVVQtRklMRSByZXF1aXJlcyB0aGUgaW5zdGFsbGVkIGxpYnJhcnkgbGli TkFNRQorKyAgLW1vZHVsZSAgICAgICAgICAgYnVpbGQgYSBsaWJyYXJ5IHRoYXQgY2FuIGRsb3Bl bmVkCisrICAtbm8tZmFzdC1pbnN0YWxsICBkaXNhYmxlIHRoZSBmYXN0LWluc3RhbGwgbW9kZQor KyAgLW5vLWluc3RhbGwgICAgICAgbGluayBhIG5vdC1pbnN0YWxsYWJsZSBleGVjdXRhYmxlCisr ICAtbm8tdW5kZWZpbmVkICAgICBkZWNsYXJlIHRoYXQgYSBsaWJyYXJ5IGRvZXMgbm90IHJlZmVy IHRvIGV4dGVybmFsIHN5bWJvbHMKKysgIC1vIE9VVFBVVC1GSUxFICAgIGNyZWF0ZSBPVVRQVVQt RklMRSBmcm9tIHRoZSBzcGVjaWZpZWQgb2JqZWN0cworKyAgLW9iamVjdGxpc3QgRklMRSAgVXNl IGEgbGlzdCBvZiBvYmplY3QgZmlsZXMgZm91bmQgaW4gRklMRSB0byBzcGVjaWZ5IG9iamVjdHMK KysgIC1wcmVjaW91cy1maWxlcy1yZWdleCBSRUdFWAorKyAgICAgICAgICAgICAgICAgICAgZG9u J3QgcmVtb3ZlIG91dHB1dCBmaWxlcyBtYXRjaGluZyBSRUdFWAorKyAgLXJlbGVhc2UgUkVMRUFT RSAgc3BlY2lmeSBwYWNrYWdlIHJlbGVhc2UgaW5mb3JtYXRpb24KKysgIC1ycGF0aCBMSUJESVIg ICAgIHRoZSBjcmVhdGVkIGxpYnJhcnkgd2lsbCBldmVudHVhbGx5IGJlIGluc3RhbGxlZCBpbiBM SUJESVIKKysgIC1SWyBdTElCRElSICAgICAgIGFkZCBMSUJESVIgdG8gdGhlIHJ1bnRpbWUgcGF0 aCBvZiBwcm9ncmFtcyBhbmQgbGlicmFyaWVzCisrICAtc2hhcmVkICAgICAgICAgICBvbmx5IGRv IGR5bmFtaWMgbGlua2luZyBvZiBsaWJ0b29sIGxpYnJhcmllcworKyAgLXNocmV4dCBTVUZGSVgg ICAgb3ZlcnJpZGUgdGhlIHN0YW5kYXJkIHNoYXJlZCBsaWJyYXJ5IGZpbGUgZXh0ZW5zaW9uCisr ICAtc3RhdGljICAgICAgICAgICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBvZiB1bmlu c3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcworKyAgLXN0YXRpYy1saWJ0b29sLWxpYnMKKysgICAg ICAgICAgICAgICAgICAgIGRvIG5vdCBkbyBhbnkgZHluYW1pYyBsaW5raW5nIG9mIGxpYnRvb2wg bGlicmFyaWVzCisrICAtdmVyc2lvbi1pbmZvIENVUlJFTlRbOlJFVklTSU9OWzpBR0VdXQorKyAg ICAgICAgICAgICAgICAgICAgc3BlY2lmeSBsaWJyYXJ5IHZlcnNpb24gaW5mbyBbZWFjaCB2YXJp YWJsZSBkZWZhdWx0cyB0byAwXQorKyAgLXdlYWsgTElCTkFNRSAgICAgZGVjbGFyZSB0aGF0IHRo ZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJQk5BTUUgaW50ZXJmYWNlCisrCisrQWxsIG90aGVyIG9w dGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KKysKKytF dmVyeSBvdGhlciBhcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgZmlsZW5hbWUuICBGaWxlcyBlbmRp bmcgaW4gXGAubGEnIGFyZQorK3RyZWF0ZWQgYXMgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJp ZXMsIG90aGVyIGZpbGVzIGFyZSBzdGFuZGFyZCBvciBsaWJyYXJ5Cisrb2JqZWN0IGZpbGVzLgor KworK0lmIHRoZSBPVVRQVVQtRklMRSBlbmRzIGluIFxgLmxhJywgdGhlbiBhIGxpYnRvb2wgbGli cmFyeSBpcyBjcmVhdGVkLAorK29ubHkgbGlicmFyeSBvYmplY3RzIChcYC5sbycgZmlsZXMpIG1h eSBiZSBzcGVjaWZpZWQsIGFuZCBcYC1ycGF0aCcgaXMKKytyZXF1aXJlZCwgZXhjZXB0IHdoZW4g Y3JlYXRpbmcgYSBjb252ZW5pZW5jZSBsaWJyYXJ5LgorKworK0lmIE9VVFBVVC1GSUxFIGVuZHMg aW4gXGAuYScgb3IgXGAubGliJywgdGhlbiBhIHN0YW5kYXJkIGxpYnJhcnkgaXMgY3JlYXRlZAor K3VzaW5nIFxgYXInIGFuZCBcYHJhbmxpYicsIG9yIG9uIFdpbmRvd3MgdXNpbmcgXGBsaWInLgor KworK0lmIE9VVFBVVC1GSUxFIGVuZHMgaW4gXGAubG8nIG9yIFxgLiR7b2JqZXh0fScsIHRoZW4g YSByZWxvYWRhYmxlIG9iamVjdCBmaWxlCisraXMgY3JlYXRlZCwgb3RoZXJ3aXNlIGFuIGV4ZWN1 dGFibGUgcHJvZ3JhbSBpcyBjcmVhdGVkLiIKKysgICAgICAgIDs7CisrCisrICAgICAgdW5pbnN0 YWxsKQorKyAgICAgICAgJEVDSE8gXAorKyJVc2FnZTogJHByb2duYW1lIFtPUFRJT05dLi4uIC0t bW9kZT11bmluc3RhbGwgUk0gW1JNLU9QVElPTl0uLi4gRklMRS4uLgorKworK1JlbW92ZSBsaWJy YXJpZXMgZnJvbSBhbiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LgorKworK1JNIGlzIHRoZSBuYW1l IG9mIHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVh Y2ggRklMRQorKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25z IChzdWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKKyt0byBSTS4KKysKKytJZiBGSUxFIGlzIGEg bGlidG9vbCBsaWJyYXJ5LCBhbGwgdGhlIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBpdCBhcmUgZGVs ZXRlZC4KKytPdGhlcndpc2UsIG9ubHkgRklMRSBpdHNlbGYgaXMgZGVsZXRlZCB1c2luZyBSTS4i CisrICAgICAgICA7OworKworKyAgICAgICopCisrICAgICAgICBmdW5jX2ZhdGFsX2hlbHAgImlu dmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisrICAgICAgICA7OworKyAgICBlc2FjCisr CisrICAgICRFQ0hPCisrICAgICRFQ0hPICJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy4iCisrCisrICAgIGV4aXQgJD8KKyt9Cisr CisrICAjIE5vdyB0aGF0IHdlJ3ZlIGNvbGxlY3RlZCBhIHBvc3NpYmxlIC0tbW9kZSBhcmcsIHNo b3cgaGVscCBpZiBuZWNlc3NhcnkKKysgICRvcHRfaGVscCAmJiBmdW5jX21vZGVfaGVscAorKwor KworKyMgZnVuY19tb2RlX2V4ZWN1dGUgYXJnLi4uCisrZnVuY19tb2RlX2V4ZWN1dGUgKCkKKyt7 CisrICAgICRvcHRfZGVidWcKKysgICAgIyBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIGNvbW1h bmQgbmFtZS4KKysgICAgY21kPSIkbm9ub3B0IgorKyAgICB0ZXN0IC16ICIkY21kIiAmJiBcCisr ICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIKKysKKysg ICAgIyBIYW5kbGUgLWRsb3BlbiBmbGFncyBpbW1lZGlhdGVseS4KKysgICAgZm9yIGZpbGUgaW4g JGV4ZWN1dGVfZGxmaWxlczsgZG8KKysgICAgICB0ZXN0IC1mICIkZmlsZSIgXAorKwl8fCBmdW5j X2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIGZpbGUiCisrCisrICAgICAgZGlyPQorKyAg ICAgIGNhc2UgJGZpbGUgaW4KKysgICAgICAqLmxhKQorKwkjIENoZWNrIHRvIHNlZSB0aGF0IHRo aXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorKwlmdW5jX2xhbGliX3Vuc2FmZV9wICIk ZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBs aWJ0b29sIGFyY2hpdmUiCisrCisrCSMgUmVhZCB0aGUgbGlidG9vbCBsaWJyYXJ5LgorKwlkbG5h bWU9CisrCWxpYnJhcnlfbmFtZXM9CisrCWZ1bmNfc291cmNlICIkZmlsZSIKKysKKysJIyBTa2lw IHRoaXMgbGlicmFyeSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQuCisrCWlmIHRlc3QgLXogIiRk bG5hbWUiOyB0aGVuCisrCSAgIyBXYXJuIGlmIGl0IHdhcyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkg IHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJiBcCisrCSAgICBmdW5jX3dhcm5pbmcgIlxgJGZp bGUnIHdhcyBub3QgbGlua2VkIHdpdGggXGAtZXhwb3J0LWR5bmFtaWMnIgorKwkgIGNvbnRpbnVl CisrCWZpCisrCisrCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgorKwlkaXI9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0IgorKworKwlpZiB0ZXN0IC1mICIkZGlyLyRvYmpkaXIvJGRsbmFtZSI7IHRo ZW4KKysJICBkaXI9IiRkaXIvJG9iamRpciIKKysJZWxzZQorKwkgIGlmIHRlc3QgISAtZiAiJGRp ci8kZGxuYW1lIjsgdGhlbgorKwkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgXGAk ZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIKKysJICBmaQorKwlmaQorKwk7 OworKworKyAgICAgICoubG8pCisrCSMgSnVzdCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5n IHRoZSAubG8gZmlsZS4KKysJZnVuY19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCisrCWRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCisrCTs7CisrCisrICAgICAgKikKKysJZnVuY193YXJuaW5nICJc YC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIG5vbi1saWJ0b29sIGxpYnJhcmllcyBhbmQgb2JqZWN0 cyIKKysJY29udGludWUKKysJOzsKKysgICAgICBlc2FjCisrCisrICAgICAgIyBHZXQgdGhlIGFi c29sdXRlIHBhdGhuYW1lLgorKyAgICAgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKysgICAg ICB0ZXN0IC1uICIkYWJzZGlyIiAmJiBkaXI9IiRhYnNkaXIiCisrCisrICAgICAgIyBOb3cgYWRk IHRoZSBkaXJlY3RvcnkgdG8gc2hsaWJwYXRoX3Zhci4KKysgICAgICBpZiBldmFsICJ0ZXN0IC16 IFwiXCQkc2hsaWJwYXRoX3ZhclwiIjsgdGhlbgorKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwk ZGlyXCIiCisrICAgICAgZWxzZQorKwlldmFsICIkc2hsaWJwYXRoX3Zhcj1cIlwkZGlyOlwkJHNo bGlicGF0aF92YXJcIiIKKysgICAgICBmaQorKyAgICBkb25lCisrCisrICAgICMgVGhpcyB2YXJp YWJsZSB0ZWxscyB3cmFwcGVyIHNjcmlwdHMganVzdCB0byBzZXQgc2hsaWJwYXRoX3ZhcgorKyAg ICAjIHJhdGhlciB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfZXhl Y3V0ZV9tYWdpYz0iJG1hZ2ljIgorKworKyAgICAjIENoZWNrIGlmIGFueSBvZiB0aGUgYXJndW1l bnRzIGlzIGEgd3JhcHBlciBzY3JpcHQuCisrICAgIGFyZ3M9CisrICAgIGZvciBmaWxlCisrICAg IGRvCisrICAgICAgY2FzZSAkZmlsZSBpbgorKyAgICAgIC0qKSA7OworKyAgICAgICopCisrCSMg RG8gYSB0ZXN0IHRvIHNlZSBpZiB0aGlzIGlzIHJlYWxseSBhIGxpYnRvb2wgcHJvZ3JhbS4KKysJ aWYgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiRmaWxlIjsgdGhlbgorKwkgIGZ1bmNfc291cmNl ICIkZmlsZSIKKysJICAjIFRyYW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorKwkgIGZpbGU9 IiRwcm9nZGlyLyRwcm9ncmFtIgorKwllbGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAi JGZpbGUiOyB0aGVuCisrCSAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisrCSAg ZnVuY19zb3VyY2UgIiRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKKysJICAjIFRy YW5zZm9ybSBhcmcgdG8gd3JhcHBlZCBuYW1lLgorKwkgIGZpbGU9IiRwcm9nZGlyLyRwcm9ncmFt IgorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysgICAgICAjIFF1b3RlIGFyZ3VtZW50cyAodG8g cHJlc2VydmUgc2hlbGwgbWV0YWNoYXJhY3RlcnMpLgorKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2 YWwgIiRmaWxlIgorKyAgICAgIGFyZ3M9IiRhcmdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3Vs dCIKKysgICAgZG9uZQorKworKyAgICBpZiB0ZXN0ICJYJG9wdF9kcnlfcnVuIiA9IFhmYWxzZTsg dGhlbgorKyAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKwkjIEV4cG9y dCB0aGUgc2hsaWJwYXRoX3Zhci4KKysJZXZhbCAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgorKyAg ICAgIGZpCisrCisrICAgICAgIyBSZXN0b3JlIHNhdmVkIGVudmlyb25tZW50IHZhcmlhYmxlcwor KyAgICAgIGZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09M TEFURSBMQ19NRVNTQUdFUworKyAgICAgIGRvCisrCWV2YWwgImlmIHRlc3QgXCJcJHtzYXZlXyRs dF92YXIrc2V0fVwiID0gc2V0OyB0aGVuCisrICAgICAgICAgICAgICAgICRsdF92YXI9XCRzYXZl XyRsdF92YXI7IGV4cG9ydCAkbHRfdmFyCisrCSAgICAgIGVsc2UKKysJCSRsdF91bnNldCAkbHRf dmFyCisrCSAgICAgIGZpIgorKyAgICAgIGRvbmUKKysKKysgICAgICAjIE5vdyBwcmVwYXJlIHRv IGFjdHVhbGx5IGV4ZWMgdGhlIGNvbW1hbmQuCisrICAgICAgZXhlY19jbWQ9IlwkY21kJGFyZ3Mi CisrICAgIGVsc2UKKysgICAgICAjIERpc3BsYXkgd2hhdCB3b3VsZCBiZSBkb25lLgorKyAgICAg IGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKwlldmFsICJcJEVDSE8gXCJcJHNo bGlicGF0aF92YXI9XCQkc2hsaWJwYXRoX3ZhclwiIgorKwkkRUNITyAiZXhwb3J0ICRzaGxpYnBh dGhfdmFyIgorKyAgICAgIGZpCisrICAgICAgJEVDSE8gIiRjbWQkYXJncyIKKysgICAgICBleGl0 ICRFWElUX1NVQ0NFU1MKKysgICAgZmkKKyt9CisrCisrdGVzdCAiJG1vZGUiID0gZXhlY3V0ZSAm JiBmdW5jX21vZGVfZXhlY3V0ZSAkezErIiRAIn0KKysKKysKKysjIGZ1bmNfbW9kZV9maW5pc2gg YXJnLi4uCisrZnVuY19tb2RlX2ZpbmlzaCAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBs aWJkaXJzPSIkbm9ub3B0IgorKyAgICBhZG1pbmNtZHM9CisrCisrICAgIGlmIHRlc3QgLW4gIiRm aW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCisrICAg ICAgZm9yIGRpcgorKyAgICAgIGRvCisrCWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCisrICAgICAg ZG9uZQorKworKyAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrCWlmIHRlc3QgLW4g IiRmaW5pc2hfY21kcyI7IHRoZW4KKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgZmluaXNo IGNvbW1hbmRzLgorKwkgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkZmluaXNoX2NtZHMiICdhZG1pbmNt ZHM9IiRhZG1pbmNtZHMKKysnIiRjbWQiJyInCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5pc2hf ZXZhbCI7IHRoZW4KKysJICAjIERvIHRoZSBzaW5nbGUgZmluaXNoX2V2YWwuCisrCSAgZXZhbCBj bWRzPVwiJGZpbmlzaF9ldmFsXCIKKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZHMiIHx8 IGFkbWluY21kcz0iJGFkbWluY21kcworKyAgICAgICAkY21kcyIKKysJZmkKKysgICAgICBkb25l CisrICAgIGZpCisrCisrICAgICMgRXhpdCBoZXJlIGlmIHRoZXkgd2FudGVkIHNpbGVudCBtb2Rl LgorKyAgICAkb3B0X3NpbGVudCAmJiBleGl0ICRFWElUX1NVQ0NFU1MKKysKKysgICAgJEVDSE8g IlgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIiB8ICRYc2VkCisrICAgICRFQ0hPICJMaWJyYXJpZXMgaGF2ZSBiZWVu IGluc3RhbGxlZCBpbjoiCisrICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCisrICAgICAg JEVDSE8gIiAgICRsaWJkaXIiCisrICAgIGRvbmUKKysgICAgJEVDSE8KKysgICAgJEVDSE8gIklm IHlvdSBldmVyIGhhcHBlbiB0byB3YW50IHRvIGxpbmsgYWdhaW5zdCBpbnN0YWxsZWQgbGlicmFy aWVzIgorKyAgICAkRUNITyAiaW4gYSBnaXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3Qg ZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCisrICAgICRFQ0hPICJzcGVjaWZ5IHRoZSBmdWxsIHBh dGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBvciB1c2UgdGhlIFxgLUxMSUJESVInIgorKyAgICAkRUNI TyAiZmxhZyBkdXJpbmcgbGlua2luZyBhbmQgZG8gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dp bmc6IgorKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKysgICAgICAkRUNI TyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2 YXJpYWJsZSIKKysgICAgICAkRUNITyAiICAgICBkdXJpbmcgZXhlY3V0aW9uIgorKyAgICBmaQor KyAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisrICAgICAgJEVDSE8gIiAgIC0g YWRkIExJQkRJUiB0byB0aGUgXGAkcnVucGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgor KyAgICAgICRFQ0hPICIgICAgIGR1cmluZyBsaW5raW5nIgorKyAgICBmaQorKyAgICBpZiB0ZXN0 IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysgICAgICBsaWJkaXI9TElC RElSCisrICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorKwor KyAgICAgICRFQ0hPICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCisrICAgIGZp CisrICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCisrICAgICAgJEVDSE8gIiAgIC0g aGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHJ1biB0aGVzZSBjb21tYW5kczokYWRtaW5j bWRzIgorKyAgICBmaQorKyAgICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgorKyAg ICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElS IHRvIFxgL2V0Yy9sZC5zby5jb25mJyIKKysgICAgZmkKKysgICAgJEVDSE8KKysKKysgICAgJEVD SE8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBs aWJyYXJpZXMgZm9yIgorKyAgICBjYXNlICRob3N0IGluCisrICAgICAgc29sYXJpczIuWzY3ODld fHNvbGFyaXMyLjFbMC05XSkKKysgICAgICAgICRFQ0hPICJtb3JlIGluZm9ybWF0aW9uLCBzdWNo IGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFsIgorKwkkRUNITyAicGFn ZXMuIgorKwk7OworKyAgICAgICopCisrICAgICAgICAkRUNITyAibW9yZSBpbmZvcm1hdGlvbiwg c3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBwYWdlcy4iCisrICAgICAgICA7 OworKyAgICBlc2FjCisrICAgICRFQ0hPICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAorKyAgICBl eGl0ICRFWElUX1NVQ0NFU1MKKyt9CisrCisrdGVzdCAiJG1vZGUiID0gZmluaXNoICYmIGZ1bmNf bW9kZV9maW5pc2ggJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21vZGVfaW5zdGFsbCBhcmcuLi4K KytmdW5jX21vZGVfaW5zdGFsbCAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICAjIFRoZXJl IG1heSBiZSBhbiBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCisr ICAgICMgaW5zdGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgorKyAgICBpZiB0 ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAor KyAgICAgICAjIEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4K KysgICAgICAgJEVDSE8gIlgkbm9ub3B0IiB8ICRHUkVQIHNodG9vbCA+L2Rldi9udWxsOyB0aGVu CisrICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgorKyAgICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiRub25vcHQiCisrICAgICAgaW5zdGFsbF9wcm9nPSIkZnVuY19xdW90ZV9mb3JfZXZh bF9yZXN1bHQgIgorKyAgICAgIGFyZz0kMQorKyAgICAgIHNoaWZ0CisrICAgIGVsc2UKKysgICAg ICBpbnN0YWxsX3Byb2c9CisrICAgICAgYXJnPSRub25vcHQKKysgICAgZmkKKysKKysgICAgIyBU aGUgcmVhbCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxh dGlvbiBwcm9ncmFtLgorKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCisrICAgIGZ1bmNf cXVvdGVfZm9yX2V2YWwgIiRhcmciCisrICAgIGluc3RhbGxfcHJvZz0iJGluc3RhbGxfcHJvZyRm dW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysKKysgICAgIyBXZSBuZWVkIHRvIGFjY2VwdCBh dCBsZWFzdCBhbGwgdGhlIEJTRCBpbnN0YWxsIGZsYWdzLgorKyAgICBkZXN0PQorKyAgICBmaWxl cz0KKysgICAgb3B0cz0KKysgICAgcHJldj0KKysgICAgaW5zdGFsbF90eXBlPQorKyAgICBpc2Rp cj1ubworKyAgICBzdHJpcG1lPQorKyAgICBmb3IgYXJnCisrICAgIGRvCisrICAgICAgaWYgdGVz dCAtbiAiJGRlc3QiOyB0aGVuCisrCWZpbGVzPSIkZmlsZXMgJGRlc3QiCisrCWRlc3Q9JGFyZwor Kwljb250aW51ZQorKyAgICAgIGZpCisrCisrICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLWQp IGlzZGlyPXllcyA7OworKyAgICAgIC1mKQorKwljYXNlICIgJGluc3RhbGxfcHJvZyAiIGluCisr CSpbXFxcIC9dY3BcICopIDs7CisrCSopIHByZXY9JGFyZyA7OworKwllc2FjCisrCTs7CisrICAg ICAgLWcgfCAtbSB8IC1vKQorKwlwcmV2PSRhcmcKKysJOzsKKysgICAgICAtcykKKysJc3RyaXBt ZT0iIC1zIgorKwljb250aW51ZQorKwk7OworKyAgICAgIC0qKQorKwk7OworKyAgICAgICopCisr CSMgSWYgdGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkZWQgYW4gYXJndW1lbnQsIHRoZW4gc2tpcCBp dC4KKysJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisrCSAgcHJldj0KKysJZWxzZQorKwkgIGRl c3Q9JGFyZworKwkgIGNvbnRpbnVlCisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAg ICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgYXJndW1lbnQuCisrICAgICAgZnVuY19xdW90ZV9m b3JfZXZhbCAiJGFyZyIKKysgICAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2cgJGZ1bmNf cXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKyAgICBkb25lCisrCisrICAgIHRlc3QgLXogIiRpbnN0 YWxsX3Byb2ciICYmIFwKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkg YW4gaW5zdGFsbCBwcm9ncmFtIgorKworKyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorKyAgICAg IGZ1bmNfZmF0YWxfaGVscCAidGhlIFxgJHByZXYnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVu dCIKKysKKysgICAgaWYgdGVzdCAteiAiJGZpbGVzIjsgdGhlbgorKyAgICAgIGlmIHRlc3QgLXog IiRkZXN0IjsgdGhlbgorKwlmdW5jX2ZhdGFsX2hlbHAgIm5vIGZpbGUgb3IgZGVzdGluYXRpb24g c3BlY2lmaWVkIgorKyAgICAgIGVsc2UKKysJZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVj aWZ5IGEgZGVzdGluYXRpb24iCisrICAgICAgZmkKKysgICAgZmkKKysKKysgICAgIyBTdHJpcCBh bnkgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgZGVzdGluYXRpb24uCisrICAgIGZ1bmNfc3RyaXBu YW1lICcnICcvJyAiJGRlc3QiCisrICAgIGRlc3Q9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwor KyAgICAjIENoZWNrIHRvIHNlZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeS4K KysgICAgdGVzdCAtZCAiJGRlc3QiICYmIGlzZGlyPXllcworKyAgICBpZiB0ZXN0ICIkaXNkaXIi ID0geWVzOyB0aGVuCisrICAgICAgZGVzdGRpcj0iJGRlc3QiCisrICAgICAgZGVzdG5hbWU9Cisr ICAgIGVsc2UKKysgICAgICBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkZGVzdCIgIiIgIi4i CisrICAgICAgZGVzdGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCisrICAgICAgZGVzdG5hbWU9 IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysKKysgICAgICAjIE5vdCBhIGRpcmVjdG9yeSwgc28g Y2hlY2sgdG8gc2VlIHRoYXQgdGhlcmUgaXMgb25seSBvbmUgZmlsZSBzcGVjaWZpZWQuCisrICAg ICAgc2V0IGR1bW15ICRmaWxlczsgc2hpZnQKKysgICAgICB0ZXN0ICIkIyIgLWd0IDEgJiYgXAor KwlmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3QnIGlzIG5vdCBhIGRpcmVjdG9yeSIKKysgICAgZmkK KysgICAgY2FzZSAkZGVzdGRpciBpbgorKyAgICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7 CisrICAgICopCisrICAgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworKwljYXNlICRmaWxlIGlu CisrCSoubG8pIDs7CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxwICJcYCRkZXN0ZGlyJyBtdXN0 IGJlIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIgorKwkgIDs7CisrCWVzYWMKKysgICAgICBk b25lCisrICAgICAgOzsKKysgICAgZXNhYworKworKyAgICAjIFRoaXMgdmFyaWFibGUgdGVsbHMg d3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKKysgICAgIyB0aGFu IHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCisrICAgIGxpYnRvb2xfaW5zdGFsbF9tYWdpYz0iJG1h Z2ljIgorKworKyAgICBzdGF0aWNsaWJzPQorKyAgICBmdXR1cmVfbGliZGlycz0KKysgICAgY3Vy cmVudF9saWJkaXJzPQorKyAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCisrCisrICAgICAgIyBE byBlYWNoIGluc3RhbGxhdGlvbi4KKysgICAgICBjYXNlICRmaWxlIGluCisrICAgICAgKi4kbGli ZXh0KQorKwkjIERvIHRoZSBzdGF0aWMgbGlicmFyaWVzIGxhdGVyLgorKwlzdGF0aWNsaWJzPSIk c3RhdGljbGlicyAkZmlsZSIKKysJOzsKKysKKysgICAgICAqLmxhKQorKwkjIENoZWNrIHRvIHNl ZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgorKwlmdW5jX2xhbGliX3Vu c2FmZV9wICIkZmlsZSIgXAorKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90 IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKworKwlsaWJyYXJ5X25hbWVzPQorKwlvbGRfbGli cmFyeT0KKysJcmVsaW5rX2NvbW1hbmQ9CisrCWZ1bmNfc291cmNlICIkZmlsZSIKKysKKysJIyBB ZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMgaWYgaXQgaXMgdGhlIGRlc3RpbmF0aW9u LgorKwlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGliZGlyIjsgdGhlbgorKwkgIGNhc2UgIiRj dXJyZW50X2xpYmRpcnMgIiBpbgorKwkgICoiICRsaWJkaXIgIiopIDs7CisrCSAgKikgY3VycmVu dF9saWJkaXJzPSIkY3VycmVudF9saWJkaXJzICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwllbHNl CisrCSAgIyBOb3RlIHRoZSBsaWJkaXIgYXMgYSBmdXR1cmUgbGliZGlyLgorKwkgIGNhc2UgIiRm dXR1cmVfbGliZGlycyAiIGluCisrCSAgKiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmdXR1cmVf bGliZGlycz0iJGZ1dHVyZV9saWJkaXJzICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlmaQorKwor KwlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKKysJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3Vs dCIKKysJZGlyPSIkZGlyJG9iamRpciIKKysKKysJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5k IjsgdGhlbgorKwkgICMgRGV0ZXJtaW5lIHRoZSBwcmVmaXggdGhlIHVzZXIgaGFzIGFwcGxpZWQg dG8gb3VyIGZ1dHVyZSBkaXIuCisrCSAgaW5zdF9wcmVmaXhfZGlyPWAkRUNITyAiWCRkZXN0ZGly IiB8ICRYc2VkIC1lICJzJSRsaWJkaXJcJCUlImAKKysKKysJICAjIERvbid0IGFsbG93IHRoZSB1 c2VyIHRvIHBsYWNlIHVzIG91dHNpZGUgb2Ygb3VyIGV4cGVjdGVkCisrCSAgIyBsb2NhdGlvbiBi L2MgdGhpcyBwcmV2ZW50cyBmaW5kaW5nIGRlcGVuZGVudCBsaWJyYXJpZXMgdGhhdAorKwkgICMg YXJlIGluc3RhbGxlZCB0byB0aGUgc2FtZSBwcmVmaXguCisrCSAgIyBBdCBwcmVzZW50LCB0aGlz IGNoZWNrIGRvZXNuJ3QgYWZmZWN0IHdpbmRvd3MgLmRsbCdzIHRoYXQKKysJICAjIGFyZSBpbnN0 YWxsZWQgaW50byAkbGliZGlyLy4uL2JpbiAoY3VycmVudGx5LCB0aGF0IHdvcmtzIGZpbmUpCisr CSAgIyBidXQgaXQncyBzb21ldGhpbmcgdG8ga2VlcCBhbiBleWUgb24uCisrCSAgdGVzdCAiJGlu c3RfcHJlZml4X2RpciIgPSAiJGRlc3RkaXIiICYmIFwKKysJICAgIGZ1bmNfZmF0YWxfZXJyb3Ig ImVycm9yOiBjYW5ub3QgaW5zdGFsbCBcYCRmaWxlJyB0byBhIGRpcmVjdG9yeSBub3QgZW5kaW5n IGluICRsaWJkaXIiCisrCisrCSAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4K KysJICAgICMgU3RpY2sgdGhlIGluc3RfcHJlZml4X2RpciBkYXRhIGludG8gdGhlIGxpbmsgY29t bWFuZC4KKysJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAk WHNlZCAtZSAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZp eF9kaXIlImAKKysJICBlbHNlCisrCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5r X2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2RpckAlJSJgCisrCSAgZmkKKysK KysJICBmdW5jX3dhcm5pbmcgInJlbGlua2luZyBcYCRmaWxlJyIKKysJICBmdW5jX3Nob3dfZXZh bCAiJHJlbGlua19jb21tYW5kIiBcCisrCSAgICAnZnVuY19mYXRhbF9lcnJvciAiZXJyb3I6IHJl bGluayBcYCRmaWxlJ1wnJyB3aXRoIHRoZSBhYm92ZSBjb21tYW5kIGJlZm9yZSBpbnN0YWxsaW5n IGl0IicKKysJZmkKKysKKysJIyBTZWUgdGhlIG5hbWVzIG9mIHRoZSBzaGFyZWQgbGlicmFyeS4K KysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzOyBzaGlmdAorKwlpZiB0ZXN0IC1uICIkMSI7IHRo ZW4KKysJICByZWFsbmFtZT0iJDEiCisrCSAgc2hpZnQKKysKKysJICBzcmNuYW1lPSIkcmVhbG5h bWUiCisrCSAgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIiAmJiBzcmNuYW1lPSIkcmVhbG5hbWUi VAorKworKwkgICMgSW5zdGFsbCB0aGUgc2hhcmVkIGxpYnJhcnkgYW5kIGJ1aWxkIHRoZSBzeW1s aW5rcy4KKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZGlyLyRzcmNuYW1lICRk ZXN0ZGlyLyRyZWFsbmFtZSIgXAorKwkgICAgICAnZXhpdCAkPycKKysJICB0c3RyaXBtZT0iJHN0 cmlwbWUiCisrCSAgY2FzZSAkaG9zdF9vcyBpbgorKwkgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMy KiB8IGNlZ2NjKikKKysJICAgIGNhc2UgJHJlYWxuYW1lIGluCisrCSAgICAqLmRsbC5hKQorKwkg ICAgICB0c3RyaXBtZT0iIgorKwkgICAgICA7OworKwkgICAgZXNhYworKwkgICAgOzsKKysJICBl c2FjCisrCSAgaWYgdGVzdCAtbiAiJHRzdHJpcG1lIiAmJiB0ZXN0IC1uICIkc3RyaXBsaWIiOyB0 aGVuCisrCSAgICBmdW5jX3Nob3dfZXZhbCAiJHN0cmlwbGliICRkZXN0ZGlyLyRyZWFsbmFtZSIg J2V4aXQgJD8nCisrCSAgZmkKKysKKysJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAg ICMgRGVsZXRlIHRoZSBvbGQgc3ltbGlua3MsIGFuZCBjcmVhdGUgbmV3IG9uZXMuCisrCSAgICAj IFRyeSBgbG4gLXNmJyBmaXJzdCwgYmVjYXVzZSB0aGUgYGxuJyBiaW5hcnkgbWlnaHQgZGVwZW5k IG9uCisrCSAgICAjIHRoZSBzeW1saW5rIHdlIHJlcGxhY2UhICBTb2xhcmlzIC9iaW4vbG4gZG9l cyBub3QgdW5kZXJzdGFuZCAtZiwKKysJICAgICMgc28gd2UgYWxzbyBuZWVkIHRvIHRyeSBybSAm JiBsbiAtcy4KKysJICAgIGZvciBsaW5rbmFtZQorKwkgICAgZG8KKysJICAgICAgdGVzdCAiJGxp bmtuYW1lIiAhPSAiJHJlYWxuYW1lIiBcCisrCQkmJiBmdW5jX3Nob3dfZXZhbCAiKGNkICRkZXN0 ZGlyICYmIHsgJExOX1MgLWYgJHJlYWxuYW1lICRsaW5rbmFtZSB8fCB7ICRSTSAkbGlua25hbWUg JiYgJExOX1MgJHJlYWxuYW1lICRsaW5rbmFtZTsgfTsgfSkiCisrCSAgICBkb25lCisrCSAgZmkK KysKKysJICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgcG9zdGluc3RhbGwgY29tbWFuZHMuCisr CSAgbGliPSIkZGVzdGRpci8kcmVhbG5hbWUiCisrCSAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0 aW5zdGFsbF9jbWRzIiAnZXhpdCAkPycKKysJZmkKKysKKysJIyBJbnN0YWxsIHRoZSBwc2V1ZG8t bGlicmFyeSBmb3IgaW5mb3JtYXRpb24gcHVycG9zZXMuCisrCWZ1bmNfYmFzZW5hbWUgIiRmaWxl IgorKwluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCWluc3RuYW1lPSIkZGlyLyRuYW1l ImkKKysJZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGluc3RuYW1lICRkZXN0ZGlyLyRu YW1lIiAnZXhpdCAkPycKKysKKysJIyBNYXliZSBpbnN0YWxsIHRoZSBzdGF0aWMgbGlicmFyeSwg dG9vLgorKwl0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHN0YXRpY2xpYnM9IiRzdGF0aWNsaWJz ICRkaXIvJG9sZF9saWJyYXJ5IgorKwk7OworKworKyAgICAgICoubG8pCisrCSMgSW5zdGFsbCAo aS5lLiBjb3B5KSBhIGxpYnRvb2wgb2JqZWN0LgorKworKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRp b24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCisrCWlmIHRlc3Qg LW4gIiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgor KwllbHNlCisrCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrCSAgZGVzdGZpbGU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorKwlmaQor KworKwkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGluYXRpb24gb2xkLXN0eWxlIG9iamVj dCBmaWxlLgorKwljYXNlICRkZXN0ZmlsZSBpbgorKwkqLmxvKQorKwkgIGZ1bmNfbG8ybyAiJGRl c3RmaWxlIgorKwkgIHN0YXRpY2Rlc3Q9JGZ1bmNfbG8yb19yZXN1bHQKKysJICA7OworKwkqLiRv YmpleHQpCisrCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgorKwkgIGRlc3RmaWxlPQorKwkgIDs7 CisrCSopCisrCSAgZnVuY19mYXRhbF9oZWxwICJjYW5ub3QgY29weSBhIGxpYnRvb2wgb2JqZWN0 IHRvIFxgJGRlc3RmaWxlJyIKKysJICA7OworKwllc2FjCisrCisrCSMgSW5zdGFsbCB0aGUgbGli dG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgorKwl0ZXN0IC1uICIkZGVzdGZpbGUiICYmIFwKKysJ ICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiICdleGl0ICQ/ JworKworKwkjIEluc3RhbGwgdGhlIG9sZCBvYmplY3QgaWYgZW5hYmxlZC4KKysJaWYgdGVzdCAi JGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgorKwkgICMgRGVkdWNlIHRoZSBuYW1lIG9mIHRo ZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCisrCSAgZnVuY19sbzJvICIkZmlsZSIKKysJICBzdGF0 aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQKKysJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJv ZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rlc3QiICdleGl0ICQ/JworKwlmaQorKwlleGl0ICRFWElU X1NVQ0NFU1MKKysJOzsKKysKKysgICAgICAqKQorKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRpb24g ZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCisrCWlmIHRlc3QgLW4g IiRkZXN0bmFtZSI7IHRoZW4KKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgorKwll bHNlCisrCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrCSAgZGVzdGZpbGU9IiRmdW5jX2Jhc2Vu YW1lX3Jlc3VsdCIKKysJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgorKwlmaQorKwor KwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhlIGVu ZCwgc3RyaXAgaXQKKysJIyBiZWNhdXNlIGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBzY3Jp cHQgd2UgYWN0dWFsbHkgd2FudCB0bworKwkjIGluc3RhbGwKKysJc3RyaXBwZWRfZXh0PSIiCisr CWNhc2UgJGZpbGUgaW4KKysJICAqLmV4ZSkKKysJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUiOyB0 aGVuCisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCisrCSAgICAgIGZp bGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgICBzdHJpcHBlZF9leHQ9Ii5leGUiCisr CSAgICBmaQorKwkgICAgOzsKKysJZXNhYworKworKwkjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhp cyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCisrCWNhc2UgJGhvc3QgaW4KKysJKmN5Z3dp biogfCAqbWluZ3cqKQorKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkZmls ZSI7IHRoZW4KKysJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCisrCSAg ICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CisrCSAgICBlbHNl CisrCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCisrCSAgICAgIHdyYXBw ZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgZmkKKysJICAgIDs7CisrCSopCisrCSAg ICB3cmFwcGVyPSRmaWxlCisrCSAgICA7OworKwllc2FjCisrCWlmIGZ1bmNfbHR3cmFwcGVyX3Nj cmlwdF9wICIkd3JhcHBlciI7IHRoZW4KKysJICBub3RpbnN0X2RlcGxpYnM9CisrCSAgcmVsaW5r X2NvbW1hbmQ9CisrCisrCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgorKworKwkgICMgQ2hlY2sg dGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0LgorKwkgIHRlc3QgLXogIiRn ZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uIiAmJiBcCisrCSAgICBmdW5jX2ZhdGFsX2Vycm9y ICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3JhcHBlciciCisrCisrCSAgZmlu YWxpemU9eWVzCisrCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBsaWJzOyBkbworKwkgICAgIyBD aGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgorKwkgICAgbGliZGly PQorKwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KKysJICAgICAgZnVuY19zb3VyY2UgIiRs aWIiCisrCSAgICBmaQorKwkgICAgbGliZmlsZT0iJGxpYmRpci8iYCRFQ0hPICJYJGxpYiIgfCAk WHNlZCAtZSAncyVeLiovJSVnJ2AgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0 ZXN0CisrCSAgICBpZiB0ZXN0IC1uICIkbGliZGlyIiAmJiB0ZXN0ICEgLWYgIiRsaWJmaWxlIjsg dGhlbgorKwkgICAgICBmdW5jX3dhcm5pbmcgIlxgJGxpYicgaGFzIG5vdCBiZWVuIGluc3RhbGxl ZCBpbiBcYCRsaWJkaXInIgorKwkgICAgICBmaW5hbGl6ZT1ubworKwkgICAgZmkKKysJICBkb25l CisrCisrCSAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgorKwor KwkgIG91dHB1dG5hbWU9CisrCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSBubyAmJiB0ZXN0 IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkg ICAgICBpZiB0ZXN0ICIkZmluYWxpemUiID0geWVzOyB0aGVuCisrCSAgICAgICAgdG1wZGlyPWBm dW5jX21rdGVtcGRpcmAKKysJCWZ1bmNfYmFzZW5hbWUgIiRmaWxlJHN0cmlwcGVkX2V4dCIKKysJ CWZpbGU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJICAgICAgICBvdXRwdXRuYW1lPSIkdG1w ZGlyLyRmaWxlIgorKwkgICAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNh dGlvbi4KKysJICAgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQi IHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0bmFtZSInJWcnYAorKworKwkgICAgICAg ICRvcHRfc2lsZW50IHx8IHsKKysJICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJHJl bGlua19jb21tYW5kIgorKwkJICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFu ZF9yZXN1bHQiCisrCSAgICAgICAgfQorKwkgICAgICAgIGlmIGV2YWwgIiRyZWxpbmtfY29tbWFu ZCI7IHRoZW4gOgorKwkgICAgICAgICAgZWxzZQorKwkJICBmdW5jX2Vycm9yICJlcnJvcjogcmVs aW5rIFxgJGZpbGUnIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQgYmVmb3JlIGluc3RhbGxpbmcgaXQi CisrCQkgICRvcHRfZHJ5X3J1biB8fCAke1JNfXIgIiR0bXBkaXIiCisrCQkgIGNvbnRpbnVlCisr CSAgICAgICAgZmkKKysJICAgICAgICBmaWxlPSIkb3V0cHV0bmFtZSIKKysJICAgICAgZWxzZQor KwkgICAgICAgIGZ1bmNfd2FybmluZyAiY2Fubm90IHJlbGluayBcYCRmaWxlJyIKKysJICAgICAg ZmkKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAjIEluc3RhbGwgdGhlIGJpbmFyeSB0aGF0IHdl IGNvbXBpbGVkIGVhcmxpZXIuCisrCSAgICBmaWxlPWAkRUNITyAiWCRmaWxlJHN0cmlwcGVkX2V4 dCIgfCAkWHNlZCAtZSAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAKKysJICBmaQorKwlmaQor KworKwkjIHJlbW92ZSAuZXhlIHNpbmNlIGN5Z3dpbiAvdXNyL2Jpbi9pbnN0YWxsIHdpbGwgYXBw ZW5kIGFub3RoZXIKKysJIyBvbmUgYW55d2F5CisrCWNhc2UgJGluc3RhbGxfcHJvZywkaG9zdCBp bgorKwkqL3Vzci9iaW4vaW5zdGFsbCosKmN5Z3dpbiopCisrCSAgY2FzZSAkZmlsZTokZGVzdGZp bGUgaW4KKysJICAqLmV4ZToqLmV4ZSkKKysJICAgICMgdGhpcyBpcyBvaworKwkgICAgOzsKKysJ ICAqLmV4ZToqKQorKwkgICAgZGVzdGZpbGU9JGRlc3RmaWxlLmV4ZQorKwkgICAgOzsKKysJICAq OiouZXhlKQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZGVzdGZpbGUiCisrCSAg ICBkZXN0ZmlsZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICA7OworKwkgIGVzYWMKKysJ ICA7OworKwllc2FjCisrCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwk ZmlsZSBcJGRlc3RmaWxlIiAnZXhpdCAkPycKKysJJG9wdF9kcnlfcnVuIHx8IGlmIHRlc3QgLW4g IiRvdXRwdXRuYW1lIjsgdGhlbgorKwkgICR7Uk19ciAiJHRtcGRpciIKKysJZmkKKysJOzsKKysg ICAgICBlc2FjCisrICAgIGRvbmUKKysKKysgICAgZm9yIGZpbGUgaW4gJHN0YXRpY2xpYnM7IGRv CisrICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCisrICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5h bWVfcmVzdWx0IgorKworKyAgICAgICMgU2V0IHVwIHRoZSByYW5saWIgcGFyYW1ldGVycy4KKysg ICAgICBvbGRsaWI9IiRkZXN0ZGlyLyRuYW1lIgorKworKyAgICAgIGZ1bmNfc2hvd19ldmFsICIk aW5zdGFsbF9wcm9nIFwkZmlsZSBcJG9sZGxpYiIgJ2V4aXQgJD8nCisrCisrICAgICAgaWYgdGVz dCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBsaWIiOyB0aGVuCisrCWZ1bmNf c2hvd19ldmFsICIkb2xkX3N0cmlwbGliICRvbGRsaWIiICdleGl0ICQ/JworKyAgICAgIGZpCisr CisrICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0YWxsIGNvbW1hbmRzLgor KyAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/ JworKyAgICBkb25lCisrCisrICAgIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyIgJiYgXAorKyAg ICAgIGZ1bmNfd2FybmluZyAicmVtZW1iZXIgdG8gcnVuIFxgJHByb2duYW1lIC0tZmluaXNoJGZ1 dHVyZV9saWJkaXJzJyIKKysKKysgICAgaWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGlycyI7IHRo ZW4KKysgICAgICAjIE1heWJlIGp1c3QgZG8gYSBkcnkgcnVuLgorKyAgICAgICRvcHRfZHJ5X3J1 biAmJiBjdXJyZW50X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMiCisrICAgICAgZXhlY19j bWQ9JyRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJk aXJzJworKyAgICBlbHNlCisrICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgIGZpCisrfQor KworK3Rlc3QgIiRtb2RlIiA9IGluc3RhbGwgJiYgZnVuY19tb2RlX2luc3RhbGwgJHsxKyIkQCJ9 CisrCisrCisrIyBmdW5jX2dlbmVyYXRlX2Rsc3ltcyBvdXRwdXRuYW1lIG9yaWdpbmF0b3IgcGlj X3AKKysjIEV4dHJhY3Qgc3ltYm9scyBmcm9tIGRscHJlZmlsZXMgYW5kIGNyZWF0ZSAke291dHB1 dG5hbWV9Uy5vIHdpdGgKKysjIGEgZGxwcmVvcGVuIHN5bWJvbCB0YWJsZS4KKytmdW5jX2dlbmVy YXRlX2Rsc3ltcyAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBteV9vdXRwdXRuYW1lPSIk MSIKKysgICAgbXlfb3JpZ2luYXRvcj0iJDIiCisrICAgIG15X3BpY19wPSIkezMtbm99IgorKyAg ICBteV9wcmVmaXg9YCRFQ0hPICIkbXlfb3JpZ2luYXRvciIgfCBzZWQgJ3MlW15hLXpBLVowLTld JV8lZydgCisrICAgIG15X2Rsc3ltcz0KKysKKysgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxw cmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87IHRoZW4KKysgICAgICBpZiB0ZXN0IC1u ICIkTk0iICYmIHRlc3QgLW4gIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCW15X2Rsc3lt cz0iJHtteV9vdXRwdXRuYW1lfVMuYyIKKysgICAgICBlbHNlCisrCWZ1bmNfZXJyb3IgIm5vdCBj b25maWd1cmVkIHRvIGV4dHJhY3QgZ2xvYmFsIHN5bWJvbHMgZnJvbSBkbHByZW9wZW5lZCBmaWxl cyIKKysgICAgICBmaQorKyAgICBmaQorKworKyAgICBpZiB0ZXN0IC1uICIkbXlfZGxzeW1zIjsg dGhlbgorKyAgICAgIGNhc2UgJG15X2Rsc3ltcyBpbgorKyAgICAgICIiKSA7OworKyAgICAgICou YykKKysJIyBEaXNjb3ZlciB0aGUgbmxpc3Qgb2YgZWFjaCBvZiB0aGUgZGxmaWxlcy4KKysJbmxp c3Q9IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX0ubm0iCisrCisrCWZ1bmNfc2hvd19l dmFsICIkUk0gJG5saXN0ICR7bmxpc3R9UyAke25saXN0fVQiCisrCisrCSMgUGFyc2UgdGhlIG5h bWUgbGlzdCBpbnRvIGEgc291cmNlIGZpbGUuCisrCWZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91 dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKKysKKysJJG9wdF9kcnlfcnVuIHx8ICRFQ0hPID4gIiRv dXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrLyogJG15X2Rsc3ltcyAtIHN5bWJvbCByZXNv bHV0aW9uIHRhYmxlIGZvciBcYCRteV9vdXRwdXRuYW1lJyBkbHN5bSBlbXVsYXRpb24uICovCisr LyogR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lP TiAqLworKworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiBcIkNcIiB7CisrI2VuZGlmCisr CisrLyogRXh0ZXJuYWwgc3ltYm9sIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGNvbXBpbGVyLiAqL1wK KysiCisrCisrCWlmIHRlc3QgIiRkbHNlbGYiID0geWVzOyB0aGVuCisrCSAgZnVuY192ZXJib3Nl ICJnZW5lcmF0aW5nIHN5bWJvbCBsaXN0IGZvciBcYCRvdXRwdXQnIgorKworKwkgICRvcHRfZHJ5 X3J1biB8fCBlY2hvICc6IEBQUk9HUkFNQCAnID4gIiRubGlzdCIKKysKKysJICAjIEFkZCBvdXIg b3duIHByb2dyYW0gb2JqZWN0cyB0byB0aGUgc3ltYm9sIGxpc3QuCisrCSAgcHJvZ2ZpbGVzPWAk RUNITyAiWCRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICIkbG8ybyIgfCAk TkwyU1BgCisrCSAgZm9yIHByb2dmaWxlIGluICRwcm9nZmlsZXM7IGRvCisrCSAgICBmdW5jX3Zl cmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMgc3ltYm9scyBmcm9tIFxgJHByb2dmaWxlJyIKKysJ ICAgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkTk0gJHByb2dmaWxlIHwgJGdsb2JhbF9zeW1ib2xf cGlwZSA+PiAnJG5saXN0JyIKKysJICBkb25lCisrCisrCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVf ZXhwc3ltcyI7IHRoZW4KKysJICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCSAgICAgIGV2YWwgJyRF R1JFUCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkg ICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJworKwkgICAgfQorKwkgIGZpCisrCisr CSAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgJG9wdF9k cnlfcnVuIHx8IHsKKysJICAgICAgZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVn ZXgiICIkbmxpc3QiID4gIiRubGlzdCJUJworKwkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIk bmxpc3QiJworKwkgICAgfQorKwkgIGZpCisrCisrCSAgIyBQcmVwYXJlIHRoZSBsaXN0IG9mIGV4 cG9ydGVkIHN5bWJvbHMKKysJICBpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisr CSAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIgorKwkg ICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgJFJNICRleHBvcnRfc3ltYm9scworKwkgICAg ICBldmFsICIke1NFRH0gLW4gLWUgJy9eOiBAUFJPR1JBTUAgJC9kJyAtZSAncy9eLiogXCguKlwp JC9cMS9wJyAiJzwgIiRubGlzdCIgPiAiJGV4cG9ydF9zeW1ib2xzIicKKysJICAgICAgY2FzZSAk aG9zdCBpbgorKwkgICAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKKysgICAgICAg ICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5h bWUuZGVmIicKKysgICAgICAgICAgICAgICAgZXZhbCAnY2F0ICIkZXhwb3J0X3N5bWJvbHMiID4+ ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAgICAgIDs7CisrCSAgICAg IGVzYWMKKysJICAgIH0KKysJICBlbHNlCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgeworKwkgICAg ICBldmFsICIke1NFRH0gLWUgJ3MvXChbXS5bKl4kXVwpL1xcXFxcMS9nJyAtZSAncy9eLyAvJyAt ZSAncy8kLyQvJyInIDwgIiRleHBvcnRfc3ltYm9scyIgPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1 dG5hbWUuZXhwIicKKysJICAgICAgZXZhbCAnJEdSRVAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRw dXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKKysJICAgICAgZXZhbCAnJE1WICIk bmxpc3QiVCAiJG5saXN0IicKKysJICAgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICAgICpjeWd3 aW4gfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisrCSAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMg Iic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAgICAgICAgZXZhbCAn Y2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJworKwkgICAg ICAgICAgOzsKKysJICAgICAgZXNhYworKwkgICAgfQorKwkgIGZpCisrCWZpCisrCisrCWZvciBk bHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCisrCSAgZnVuY192ZXJib3NlICJleHRyYWN0aW5n IGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZpbGUnIgorKwkgIGZ1bmNfYmFzZW5hbWUg IiRkbHByZWZpbGUiCisrCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICRvcHRf ZHJ5X3J1biB8fCB7CisrCSAgICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIkbmxpc3QiJwor KwkgICAgZXZhbCAiJE5NICRkbHByZWZpbGUgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9w aXBlID4+ICckbmxpc3QnIgorKwkgIH0KKysJZG9uZQorKworKwkkb3B0X2RyeV9ydW4gfHwgewor KwkgICMgTWFrZSBzdXJlIHdlIGhhdmUgYXQgbGVhc3QgYW4gZW1wdHkgZmlsZS4KKysJICB0ZXN0 IC1mICIkbmxpc3QiIHx8IDogPiAiJG5saXN0IgorKworKwkgIGlmIHRlc3QgLW4gIiRleGNsdWRl X2V4cHN5bXMiOyB0aGVuCisrCSAgICAkRUdSRVAgLXYgIiAoJGV4Y2x1ZGVfZXhwc3ltcykkIiAi JG5saXN0IiA+ICIkbmxpc3QiVAorKwkgICAgJE1WICIkbmxpc3QiVCAiJG5saXN0IgorKwkgIGZp CisrCisrCSAgIyBUcnkgc29ydGluZyBhbmQgdW5pcXVpZnlpbmcgdGhlIG91dHB1dC4KKysJICBp ZiAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiIHwKKysJICAgICAgaWYgc29ydCAtayAzIDwvZGV2 L251bGwgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCQlzb3J0IC1rIDMKKysJICAgICAgZWxzZQor KwkJc29ydCArMgorKwkgICAgICBmaSB8CisrCSAgICAgIHVuaXEgPiAiJG5saXN0IlM7IHRoZW4K KysJICAgIDoKKysJICBlbHNlCisrCSAgICAkR1JFUCAtdiAiXjogIiA8ICIkbmxpc3QiID4gIiRu bGlzdCJTCisrCSAgZmkKKysKKysJICBpZiB0ZXN0IC1mICIkbmxpc3QiUzsgdGhlbgorKwkgICAg ZXZhbCAiJGdsb2JhbF9zeW1ib2xfdG9fY2RlY2wiJyA8ICIkbmxpc3QiUyA+PiAiJG91dHB1dF9v YmpkaXIvJG15X2Rsc3ltcyInCisrCSAgZWxzZQorKwkgICAgJEVDSE8gJy8qIE5PTkUgKi8nID4+ ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorKwkgIGZpCisrCisrCSAgJEVDSE8gPj4gIiRv dXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisrCisrLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBz eW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLworK3R5cGVkZWYgc3RydWN0IHsKKysgIGNvbnN0 IGNoYXIgKm5hbWU7CisrICB2b2lkICphZGRyZXNzOworK30gbHRfZGxzeW1saXN0OworKyIKKysJ ICBjYXNlICRob3N0IGluCisrCSAgKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisrCSAg ICAkRUNITyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKKysvKiBEQVRBIGltcG9y dHMgZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBiZWNhdXNlCisrICAgcnVudGlt ZSByZWxvY2F0aW9ucyBhcmUgcGVyZm9ybWVkIC0tIHNlZSBsZCdzIGRvY3VtZW50YXRpb24KKysg ICBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAq b3NmNSopCisrCSAgICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorKy8q IFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0 IGRhdGEgKi8iCisrCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKKysJICAqKQorKwkgICAgbHRfZGxz eW1fY29uc3Q9Y29uc3QgOzsKKysJICBlc2FjCisrCisrCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2Jq ZGlyLyRteV9kbHN5bXMiICJcCisrZXh0ZXJuICRsdF9kbHN5bV9jb25zdCBsdF9kbHN5bWxpc3QK KytsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW107CisrJGx0X2Rsc3ltX2Nv bnN0IGx0X2Rsc3ltbGlzdAorK2x0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHNb XSA9Cisre1wKKysgIHsgXCIkbXlfb3JpZ2luYXRvclwiLCAodm9pZCAqKSAwIH0sIgorKworKwkg IGNhc2UgJG5lZWRfbGliX3ByZWZpeCBpbgorKwkgIG5vKQorKwkgICAgZXZhbCAiJGdsb2JhbF9z eW1ib2xfdG9fY19uYW1lX2FkZHJlc3MiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGlyLyRt eV9kbHN5bXMiCisrCSAgICA7OworKwkgICopCisrCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiA8ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRp ci8kbXlfZGxzeW1zIgorKwkgICAgOzsKKysJICBlc2FjCisrCSAgJEVDSE8gPj4gIiRvdXRwdXRf b2JqZGlyLyRteV9kbHN5bXMiICJcCisrICB7MCwgKHZvaWQgKikgMH0KKyt9OworKworKy8qIFRo aXMgd29ya3MgYXJvdW5kIGEgcHJvYmxlbSBpbiBGcmVlQlNEIGxpbmtlciAqLworKyNpZmRlZiBG UkVFQlNEX1dPUktBUk9VTkQKKytzdGF0aWMgY29uc3Qgdm9pZCAqbHRfcHJlbG9hZGVkX3NldHVw KCkgeworKyAgcmV0dXJuIGx0XyR7bXlfcHJlZml4fV9MVFhfcHJlbG9hZGVkX3N5bWJvbHM7Cisr fQorKyNlbmRpZgorKworKyNpZmRlZiBfX2NwbHVzcGx1cworK30KKysjZW5kaWZcCisrIgorKwl9 ICMgISRvcHRfZHJ5X3J1bgorKworKwlwaWNfZmxhZ19mb3Jfc3ltdGFibGU9CisrCWNhc2UgIiRj b21waWxlX2NvbW1hbmQgIiBpbgorKwkqIiAtc3RhdGljICIqKSA7OworKwkqKQorKwkgIGNhc2Ug JGhvc3QgaW4KKysJICAjIGNvbXBpbGluZyB0aGUgc3ltYm9sIHRhYmxlIGZpbGUgd2l0aCBwaWNf ZmxhZyB3b3JrcyBhcm91bmQKKysJICAjIGEgRnJlZUJTRCBidWcgdGhhdCBjYXVzZXMgcHJvZ3Jh bXMgdG8gY3Jhc2ggd2hlbiAtbG0gaXMKKysJICAjIGxpbmtlZCBiZWZvcmUgYW55IG90aGVyIFBJ QyBvYmplY3QuICBCdXQgd2UgbXVzdCBub3QgdXNlCisrCSAgIyBwaWNfZmxhZyB3aGVuIGxpbmtp bmcgd2l0aCAtc3RhdGljLiAgVGhlIHByb2JsZW0gZXhpc3RzIGluCisrCSAgIyBGcmVlQlNEIDIu Mi42IGFuZCBpcyBmaXhlZCBpbiBGcmVlQlNEIDMuMS4KKysJICAqLSotZnJlZWJzZDIqfCotKi1m cmVlYnNkMy4wKnwqLSotZnJlZWJzZGVsZjMuMCopCisrCSAgICBwaWNfZmxhZ19mb3Jfc3ltdGFi bGU9IiAkcGljX2ZsYWcgLURGUkVFQlNEX1dPUktBUk9VTkQiIDs7CisrCSAgKi0qLWhwdXgqKQor KwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxlPSIgJHBpY19mbGFnIiAgOzsKKysJICAqKQorKwkg ICAgaWYgdGVzdCAiWCRteV9waWNfcCIgIT0gWG5vOyB0aGVuCisrCSAgICAgIHBpY19mbGFnX2Zv cl9zeW10YWJsZT0iICRwaWNfZmxhZyIKKysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJ ICA7OworKwllc2FjCisrCXN5bXRhYl9jZmxhZ3M9CisrCWZvciBhcmcgaW4gJExUQ0ZMQUdTOyBk bworKwkgIGNhc2UgJGFyZyBpbgorKwkgIC1waWUgfCAtZnBpZSB8IC1mUElFKSA7OworKwkgICop IHN5bXRhYl9jZmxhZ3M9IiRzeW10YWJfY2ZsYWdzICRhcmciIDs7CisrCSAgZXNhYworKwlkb25l CisrCisrCSMgTm93IGNvbXBpbGUgdGhlIGR5bmFtaWMgc3ltYm9sIGZpbGUuCisrCWZ1bmNfc2hv d19ldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJExUQ0Mkc3ltdGFiX2NmbGFncyAtYyRub19i dWlsdGluX2ZsYWckcGljX2ZsYWdfZm9yX3N5bXRhYmxlICIkbXlfZGxzeW1zIiknICdleGl0ICQ/ JworKworKwkjIENsZWFuIHVwIHRoZSBnZW5lcmF0ZWQgZmlsZXMuCisrCWZ1bmNfc2hvd19ldmFs ICckUk0gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICIkbmxpc3QiICIke25saXN0fVMiICIk e25saXN0fVQiJworKworKwkjIFRyYW5zZm9ybSB0aGUgc3ltYm9sIGZpbGUgaW50byB0aGUgY29y cmVjdCBuYW1lLgorKwlzeW1maWxlb2JqPSIkb3V0cHV0X29iamRpci8ke215X291dHB1dG5hbWV9 Uy4kb2JqZXh0IgorKwljYXNlICRob3N0IGluCisrCSpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdj YyogKQorKwkgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyRteV9vdXRwdXRuYW1lLmRlZiI7 IHRoZW4KKysJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8 ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYg JHN5bWZpbGVvYmolImAKKysJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXpl X2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRvdXRwdXRfb2JqZGlyLyRteV9vdXRw dXRuYW1lLmRlZiAkc3ltZmlsZW9iaiUiYAorKwkgIGVsc2UKKysJICAgIGNvbXBpbGVfY29tbWFu ZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3lt ZmlsZW9iaiUiYAorKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29t bWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKysJICBmaQorKwkg IDs7CisrCSopCisrCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQi IHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisrCSAgZmluYWxpemVfY29t bWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAl JHN5bWZpbGVvYmolImAKKysJICA7OworKwllc2FjCisrCTs7CisrICAgICAgKikKKysJZnVuY19m YXRhbF9lcnJvciAidW5rbm93biBzdWZmaXggZm9yIFxgJG15X2Rsc3ltcyciCisrCTs7CisrICAg ICAgZXNhYworKyAgICBlbHNlCisrICAgICAgIyBXZSBrZWVwIGdvaW5nIGp1c3QgaW4gY2FzZSB0 aGUgdXNlciBkaWRuJ3QgcmVmZXIgdG8KKysgICAgICAjIGx0X3ByZWxvYWRlZF9zeW1ib2xzLiAg VGhlIGxpbmtlciB3aWxsIGZhaWwgaWYgZ2xvYmFsX3N5bWJvbF9waXBlCisrICAgICAgIyByZWFs bHkgd2FzIHJlcXVpcmVkLgorKworKyAgICAgICMgTnVsbGlmeSB0aGUgc3ltYm9sIGZpbGUuCisr ICAgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQg LWUgInMlIEBTWU1GSUxFQCUlImAKKysgICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRm aW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSJgCisrICAgIGZpCisr fQorKworKyMgZnVuY193aW4zMl9saWJpZCBhcmcKKysjIHJldHVybiB0aGUgbGlicmFyeSB0eXBl IG9mIGZpbGUgJ2FyZycKKysjCisrIyBOZWVkIGEgbG90IG9mIGdvbyB0byBoYW5kbGUgKmJvdGgq IERMTHMgYW5kIGltcG9ydCBsaWJzCisrIyBIYXMgdG8gYmUgYSBzaGVsbCBmdW5jdGlvbiBpbiBv cmRlciB0byAnZWF0JyB0aGUgYXJndW1lbnQKKysjIHRoYXQgaXMgc3VwcGxpZWQgd2hlbiAkZmls ZV9tYWdpY19jb21tYW5kIGlzIGNhbGxlZC4KKytmdW5jX3dpbjMyX2xpYmlkICgpCisreworKyAg JG9wdF9kZWJ1ZworKyAgd2luMzJfbGliaWRfdHlwZT0idW5rbm93biIKKysgIHdpbjMyX2ZpbGVy ZXM9YGZpbGUgLUwgJDEgMj4vZGV2L251bGxgCisrICBjYXNlICR3aW4zMl9maWxlcmVzIGluCisr ICAqYXJcIGFyY2hpdmVcIGltcG9ydFwgbGlicmFyeSopICMgZGVmaW5pdGVseSBpbXBvcnQKKysg ICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgaW1wb3J0IgorKyAgICA7OworKyAgKmFy XCBhcmNoaXZlKikgIyBjb3VsZCBiZSBhbiBpbXBvcnQsIG9yIHN0YXRpYworKyAgICBpZiBldmFs ICRPQkpEVU1QIC1mICQxIHwgJFNFRCAtZSAnMTBxJyAyPi9kZXYvbnVsbCB8CisrICAgICAgICRF R1JFUCAnZmlsZSBmb3JtYXQgcGUtaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JyA+L2Rldi9u dWxsIDsgdGhlbgorKyAgICAgIHdpbjMyX25tcmVzPWBldmFsICROTSAtZiBwb3NpeCAtQSAkMSB8 CisrCSRTRUQgLW4gLWUgJworKwkgICAgMSwxMDB7CisrCQkvIEkgL3sKKysJCSAgICBzLC4qLGlt cG9ydCwKKysJCSAgICBwCisrCQkgICAgcQorKwkJfQorKwkgICAgfSdgCisrICAgICAgY2FzZSAk d2luMzJfbm1yZXMgaW4KKysgICAgICBpbXBvcnQqKSAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFy Y2hpdmUgaW1wb3J0Ijs7CisrICAgICAgKikgICAgICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBh cmNoaXZlIHN0YXRpYyI7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgICAgOzsKKysgICpETEwq KQorKyAgICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgRExMIgorKyAgICA7OworKyAgKmV4ZWN1dGFi bGUqKSAjIGJ1dCBzaGVsbCBzY3JpcHRzIGFyZSAiZXhlY3V0YWJsZSIgdG9vLi4uCisrICAgIGNh c2UgJHdpbjMyX2ZpbGVyZXMgaW4KKysgICAgKk1TXCBXaW5kb3dzXCBQRVwgSW50ZWwqKQorKyAg ICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBETEwiCisrICAgICAgOzsKKysgICAgZXNhYworKyAg ICA7OworKyAgZXNhYworKyAgJEVDSE8gIiR3aW4zMl9saWJpZF90eXBlIgorK30KKysKKysKKysK KysjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKKytmdW5jX2V4dHJhY3RfYW5f YXJjaGl2ZSAoKQorK3sKKysgICAgJG9wdF9kZWJ1ZworKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEi OyBzaGlmdAorKyAgICBmX2V4X2FuX2FyX29sZGxpYj0iJDEiCisrICAgIGZ1bmNfc2hvd19ldmFs ICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIiki ICdleGl0ICQ/JworKyAgICBpZiAoJEFSIHQgIiRmX2V4X2FuX2FyX29sZGxpYiIgfCBzb3J0IHwg c29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgorKyAgICAgOgorKyAgICBlbHNlCisrICAg ICAgZnVuY19mYXRhbF9lcnJvciAib2JqZWN0IG5hbWUgY29uZmxpY3RzIGluIGFyY2hpdmU6ICRm X2V4X2FuX2FyX2Rpci8kZl9leF9hbl9hcl9vbGRsaWIiCisrICAgIGZpCisrfQorKworKworKyMg ZnVuY19leHRyYWN0X2FyY2hpdmVzIGdlbnRvcCBvbGRsaWIgLi4uCisrZnVuY19leHRyYWN0X2Fy Y2hpdmVzICgpCisreworKyAgICAkb3B0X2RlYnVnCisrICAgIG15X2dlbnRvcD0iJDEiOyBzaGlm dAorKyAgICBteV9vbGRsaWJzPSR7MSsiJEAifQorKyAgICBteV9vbGRvYmpzPSIiCisrICAgIG15 X3hsaWI9IiIKKysgICAgbXlfeGFicz0iIgorKyAgICBteV94ZGlyPSIiCisrCisrICAgIGZvciBt eV94bGliIGluICRteV9vbGRsaWJzOyBkbworKyAgICAgICMgRXh0cmFjdCB0aGUgb2JqZWN0cy4K KysgICAgICBjYXNlICRteV94bGliIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgbXlf eGFicz0iJG15X3hsaWIiIDs7CisrCSopIG15X3hhYnM9YHB3ZGAiLyRteV94bGliIiA7OworKyAg ICAgIGVzYWMKKysgICAgICBmdW5jX2Jhc2VuYW1lICIkbXlfeGxpYiIKKysgICAgICBteV94bGli PSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgICAgbXlfeGxpYl91PSRteV94bGliCisrICAg ICAgd2hpbGUgOjsgZG8KKysgICAgICAgIGNhc2UgIiAkZXh0cmFjdGVkX2FyY2hpdmVzICIgaW4K KysJKiIgJG15X3hsaWJfdSAiKikKKysJICBmdW5jX2FyaXRoICRleHRyYWN0ZWRfc2VyaWFsICsg MQorKwkgIGV4dHJhY3RlZF9zZXJpYWw9JGZ1bmNfYXJpdGhfcmVzdWx0CisrCSAgbXlfeGxpYl91 PWx0JGV4dHJhY3RlZF9zZXJpYWwtJG15X3hsaWIgOzsKKysJKikgYnJlYWsgOzsKKysJZXNhYwor KyAgICAgIGRvbmUKKysgICAgICBleHRyYWN0ZWRfYXJjaGl2ZXM9IiRleHRyYWN0ZWRfYXJjaGl2 ZXMgJG15X3hsaWJfdSIKKysgICAgICBteV94ZGlyPSIkbXlfZ2VudG9wLyRteV94bGliX3UiCisr CisrICAgICAgZnVuY19ta2Rpcl9wICIkbXlfeGRpciIKKysKKysgICAgICBjYXNlICRob3N0IGlu CisrICAgICAgKi1kYXJ3aW4qKQorKwlmdW5jX3ZlcmJvc2UgIkV4dHJhY3RpbmcgJG15X3hhYnMi CisrCSMgRG8gbm90IGJvdGhlciBkb2luZyBhbnl0aGluZyBpZiBqdXN0IGEgZHJ5IHJ1bgorKwkk b3B0X2RyeV9ydW4gfHwgeworKwkgIGRhcndpbl9vcmlnX2Rpcj1gcHdkYAorKwkgIGNkICRteV94 ZGlyIHx8IGV4aXQgJD8KKysJICBkYXJ3aW5fYXJjaGl2ZT0kbXlfeGFicworKwkgIGRhcndpbl9j dXJkaXI9YHB3ZGAKKysJICBkYXJ3aW5fYmFzZV9hcmNoaXZlPWBiYXNlbmFtZSAiJGRhcndpbl9h cmNoaXZlImAKKysJICBkYXJ3aW5fYXJjaGVzPWAkTElQTyAtaW5mbyAiJGRhcndpbl9hcmNoaXZl IiAyPi9kZXYvbnVsbCB8ICRHUkVQIEFyY2hpdGVjdHVyZXMgMj4vZGV2L251bGwgfHwgdHJ1ZWAK KysJICBpZiB0ZXN0IC1uICIkZGFyd2luX2FyY2hlcyI7IHRoZW4KKysJICAgIGRhcndpbl9hcmNo ZXM9YCRFQ0hPICIkZGFyd2luX2FyY2hlcyIgfCAkU0VEIC1lICdzLy4qYXJlOi8vJ2AKKysJICAg IGRhcndpbl9hcmNoPQorKwkgICAgZnVuY192ZXJib3NlICIkZGFyd2luX2Jhc2VfYXJjaGl2ZSBo YXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFyd2luX2FyY2hlcyIKKysJICAgIGZvciBkYXJ3 aW5fYXJjaCBpbiAgJGRhcndpbl9hcmNoZXMgOyBkbworKwkgICAgICBmdW5jX21rZGlyX3AgInVu ZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCisrCSAgICAgICRM SVBPIC10aGluICRkYXJ3aW5fYXJjaCAtb3V0cHV0ICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2Fy Y2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iICIke2Rhcndpbl9h cmNoaXZlfSIKKysJICAgICAgY2QgInVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtk YXJ3aW5fYXJjaH0iCisrCSAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICJgcHdkYCIgIiR7 ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisrCSAgICAgIGNkICIkZGFyd2luX2N1cmRpciIKKysJICAg ICAgJFJNICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7 ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iCisrCSAgICBkb25lICMgJGRhcndpbl9hcmNoZXMKKysgICAg ICAgICAgICAjIyBPa2F5IG5vdyB3ZSd2ZSBhIGJ1bmNoIG9mIHRoaW4gb2JqZWN0cywgZ290dGEg ZmF0dGVuIHRoZW0gdXAgOikKKysJICAgIGRhcndpbl9maWxlbGlzdD1gZmluZCB1bmZhdC0kJCAt dHlwZSBmIC1uYW1lIFwqLm8gLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICRTRUQgLWUg IiRiYXNlbmFtZSIgfCBzb3J0IC11YAorKwkgICAgZGFyd2luX2ZpbGU9CisrCSAgICBkYXJ3aW5f ZmlsZXM9CisrCSAgICBmb3IgZGFyd2luX2ZpbGUgaW4gJGRhcndpbl9maWxlbGlzdDsgZG8KKysJ ICAgICAgZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQkIC1uYW1lICRkYXJ3aW5fZmlsZSAtcHJp bnQgfCAkTkwyU1BgCisrCSAgICAgICRMSVBPIC1jcmVhdGUgLW91dHB1dCAiJGRhcndpbl9maWxl IiAkZGFyd2luX2ZpbGVzCisrCSAgICBkb25lICMgJGRhcndpbl9maWxlbGlzdAorKwkgICAgJFJN IC1yZiB1bmZhdC0kJAorKwkgICAgY2QgIiRkYXJ3aW5fb3JpZ19kaXIiCisrCSAgZWxzZQorKwkg ICAgY2QgJGRhcndpbl9vcmlnX2RpcgorKwkgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRt eV94ZGlyIiAiJG15X3hhYnMiCisrCSAgZmkgIyAkZGFyd2luX2FyY2hlcworKwl9ICMgISRvcHRf ZHJ5X3J1bgorKwk7OworKyAgICAgICopCisrICAgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2 ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgbXlfb2xk b2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1uYW1lIFwqLiRvYmpleHQgLXByaW50 IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8ICROTDJTUGAKKysgICAgZG9uZQorKworKyAgICBmdW5j X2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlfb2xkb2JqcyIKKyt9CisrCisrCisrCisrIyBm dW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSBbYXJnPW5vXQorKyMKKysjIEVtaXQgdGhlIGZpcnN0IHBh cnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKysjIEZvciBtb3JlIGlu Zm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uIGFzc29jaWF0ZWQgd2l0aAorKyMgZnVuY19l bWl0X3dyYXBwZXIoKSwgYmVsb3cuCisrZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgKCkKKyt7Cisr CWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9bm8KKysJaWYgdGVzdCAtbiAiJDEiIDsgdGhl bgorKwkgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxX2FyZzE9JDEKKysJZmkKKysKKysJJEVDSE8g IlwKKysjISAkU0hFTEwKKysKKysjICRvdXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQg Zm9yICRvYmpkaXIvJG91dHB1dG5hbWUKKysjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQ QUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjCisrIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNh bm5vdCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKKysjIGxpYnJh cmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KKysjCisrIyBUaGlzIHdyYXBw ZXIgc2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9y eS4KKysjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KKysKKysjIFNl ZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tz bGFzaGlmaWVzCisrIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGlu IGRvdWJsZS1xdW90ZWQgc3RyaW5ncy4KKytYc2VkPScke1NFRH0gLWUgMXMvXlgvLycKKytzZWRf cXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCisrCisrIyBCZSBCb3VybmUgY29tcGF0aWJs ZQorK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lPTitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4v ZGV2L251bGwgMj4mMTsgdGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFpz aCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3 aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVy ZS4KKysgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKKysgIHNldG9wdCBOT19H TE9CX1NVQlNUCisrZWxzZQorKyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBv c2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYworK2ZpCisrQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5f U0ggIyBmb3IgVHJ1NjQKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNo CisrCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRp cmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkg Pi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3JlbGlua19jb21tYW5kPVwiJHJl bGlua19jb21tYW5kXCIKKysKKysjIFRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5l cyBvdXIgb3BlcmF0aW9uIG1vZGUuCisraWYgdGVzdCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2lj XCIgPSBcIiRtYWdpY1wiOyB0aGVuCisrICAjIGluc3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93 aW5nIHZhcmlhYmxlczoKKysgIGdlbmVyYXRlZF9ieV9saWJ0b29sX3ZlcnNpb249JyRtYWNyb192 ZXJzaW9uJworKyAgbm90aW5zdF9kZXBsaWJzPSckbm90aW5zdF9kZXBsaWJzJworK2Vsc2UKKysg ICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hP IGFyZSBhbHJlYWR5IHNldC4KKysgIGlmIHRlc3QgXCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wi ICE9IFwiJG1hZ2ljXCI7IHRoZW4KKysgICAgRUNITz1cIiRxZWNob1wiCisrICAgIGZpbGU9XCJc JDBcIgorKyAgICAjIE1ha2Ugc3VyZSBlY2hvIHdvcmtzLgorKyAgICBpZiB0ZXN0IFwiWFwkMVwi ID0gWC0tbm8tcmVleGVjOyB0aGVuCisrICAgICAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBm bGFnLCBhbmQgY29udGludWUuCisrICAgICAgc2hpZnQKKysgICAgZWxpZiB0ZXN0IFwiWFxgeyBc JEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbFxgXCIgPSAnWFx0JzsgdGhlbgorKyAgICAgICMgWWlw cGVlLCBcJEVDSE8gd29ya3MhCisrICAgICAgOgorKyAgICBlbHNlCisrICAgICAgIyBSZXN0YXJ0 IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSBcJEVDSE8gd2lsbCB3b3Jr LgorKyAgICAgIGV4ZWMgJFNIRUxMIFwiXCQwXCIgLS1uby1yZWV4ZWMgXCR7MStcIlwkQFwifQor KyAgICBmaQorKyAgZmlcCisrIgorKwkkRUNITyAiXAorKworKyAgIyBGaW5kIHRoZSBkaXJlY3Rv cnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBpbi4KKysgIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCRm aWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qJCUlJ1xgCisrICB0ZXN0IFwieFwkdGhpc2Rpclwi ID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCisrCisrICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5r cyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KKysgIGZpbGU9XGBscyAtbGQgXCJc JGZpbGVcIiB8ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorKyAgd2hpbGUgdGVzdCAtbiBcIlwk ZmlsZVwiOyBkbworKyAgICBkZXN0ZGlyPVxgXCRFQ0hPIFwiWFwkZmlsZVwiIHwgXCRYc2VkIC1l ICdzJS9bXi9dKlwkJSUnXGAKKysKKysgICAgIyBJZiB0aGVyZSB3YXMgYSBkaXJlY3RvcnkgY29t cG9uZW50LCB0aGVuIGNoYW5nZSB0aGlzZGlyLgorKyAgICBpZiB0ZXN0IFwieFwkZGVzdGRpclwi ICE9IFwieFwkZmlsZVwiOyB0aGVuCisrICAgICAgY2FzZSBcIlwkZGVzdGRpclwiIGluCisrICAg ICAgW1xcXFwvXSogfCBbQS1aYS16XTpbXFxcXC9dKikgdGhpc2Rpcj1cIlwkZGVzdGRpclwiIDs7 CisrICAgICAgKikgdGhpc2Rpcj1cIlwkdGhpc2Rpci9cJGRlc3RkaXJcIiA7OworKyAgICAgIGVz YWMKKysgICAgZmkKKysKKysgICAgZmlsZT1cYFwkRUNITyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAt ZSAncyVeLiovJSUnXGAKKysgICAgZmlsZT1cYGxzIC1sZCBcIlwkdGhpc2Rpci9cJGZpbGVcIiB8 ICR7U0VEfSAtbiAncy8uKi0+IC8vcCdcYAorKyAgZG9uZQorKyIKKyt9CisrIyBlbmQ6IGZ1bmNf ZW1pdF93cmFwcGVyX3BhcnQxCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiBbYXJnPW5v XQorKyMKKysjIEVtaXQgdGhlIHNlY29uZCBwYXJ0IG9mIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlw dCBvbiBzdGRvdXQuCisrIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlv biBhc3NvY2lhdGVkIHdpdGgKKysjIGZ1bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgorK2Z1bmNf ZW1pdF93cmFwcGVyX3BhcnQyICgpCisreworKwlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcx PW5vCisrCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KKysJICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0 Ml9hcmcxPSQxCisrCWZpCisrCisrCSRFQ0hPICJcCisrCisrICAjIFVzdWFsbHkgJ25vJywgZXhj ZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVtYmVkZGVkIGludG8KKysgICMgdGhlIGN3cmFwcGVy LgorKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNfZW1pdF93cmFwcGVy X3BhcnQyX2FyZzEKKysgIGlmIHRlc3QgXCJcJFdSQVBQRVJfU0NSSVBUX0JFTE9OR1NfSU5fT0JK RElSXCIgPSBcInllc1wiOyB0aGVuCisrICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKKysgICAg aWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KKysgICAgICB0aGlzZGlyPVxgcHdk XGAKKysgICAgZmkKKysgICAgIyByZW1vdmUgLmxpYnMgZnJvbSB0aGlzZGlyCisrICAgIGNhc2Ug XCJcJHRoaXNkaXJcIiBpbgorKyAgICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxgXCRFQ0hP IFwiWFwkdGhpc2RpclwiIHwgXCRYc2VkIC1lICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsK KysgICAgJG9iamRpciApICAgdGhpc2Rpcj0uIDs7CisrICAgIGVzYWMKKysgIGZpCisrCisrICAj IFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lLgorKyAgYWJzZGlyPVxgY2Qg XCJcJHRoaXNkaXJcIiAmJiBwd2RcYAorKyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rp cj1cIlwkYWJzZGlyXCIKKysiCisrCisrCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0 aGVuCisrCSAgJEVDSE8gIlwKKysgIHByb2dyYW09bHQtJyRvdXRwdXRuYW1lJyRleGVleHQKKysg IHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCisrCisrICBpZiB0ZXN0ICEgLWYgXCJcJHBy b2dkaXIvXCRwcm9ncmFtXCIgfHwKKysgICAgIHsgZmlsZT1cYGxzIC0xZHQgXCJcJHByb2dkaXIv XCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfCAke1NF RH0gMXFcYDsgXFwKKysgICAgICAgdGVzdCBcIlhcJGZpbGVcIiAhPSBcIlhcJHByb2dkaXIvXCRw cm9ncmFtXCI7IH07IHRoZW4KKysKKysgICAgZmlsZT1cIlwkXCQtXCRwcm9ncmFtXCIKKysKKysg ICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KKysgICAgICAkTUtESVIgXCJcJHBy b2dkaXJcIgorKyAgICBlbHNlCisrICAgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICAg IGZpIgorKworKwkgICRFQ0hPICJcCisrCisrICAgICMgcmVsaW5rIGV4ZWN1dGFibGUgaWYgbmVj ZXNzYXJ5CisrICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21tYW5kXCI7IHRoZW4KKysgICAg ICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVsaW5rX2NvbW1hbmQgMj4mMVxg OyB0aGVuIDoKKysgICAgICBlbHNlCisrCSRFQ0hPIFwiXCRyZWxpbmtfY29tbWFuZF9vdXRwdXRc IiA+JjIKKysJJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrCWV4aXQgMQorKyAgICAgIGZpCisr ICAgIGZpCisrCisrICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHBy b2dyYW1cIiAyPi9kZXYvbnVsbCB8fAorKyAgICB7ICRSTSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1c IjsKKysgICAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFt XCI7IH0KKysgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCisrICBmaSIKKysJZWxzZQorKwkg ICRFQ0hPICJcCisrICBwcm9ncmFtPSckb3V0cHV0bmFtZScKKysgIHByb2dkaXI9XCJcJHRoaXNk aXIvJG9iamRpclwiCisrIgorKwlmaQorKworKwkkRUNITyAiXAorKworKyAgaWYgdGVzdCAtZiBc IlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgdGhlbiIKKysKKysJIyBFeHBvcnQgb3VyIHNobGlicGF0 aF92YXIgaWYgd2UgaGF2ZSBvbmUuCisrCWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVt cF9ycGF0aCI7IHRoZW4KKysJICAkRUNITyAiXAorKyAgICAjIEFkZCBvdXIgb3duIGxpYnJhcnkg cGF0aCB0byAkc2hsaWJwYXRoX3ZhcgorKyAgICAkc2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3JwYXRo XCQkc2hsaWJwYXRoX3ZhclwiCisrCisrICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdp dGggY29sb24tdGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgorKyAgICAjIFRoZSBzZWNvbmQgY29s b24gaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNlZAorKyAgICAkc2hsaWJw YXRoX3Zhcj1cYFwkRUNITyBcIlhcJCRzaGxpYnBhdGhfdmFyXCIgfCBcJFhzZWQgLWUgJ3MvOjoq XCQvLydcYAorKworKyAgICBleHBvcnQgJHNobGlicGF0aF92YXIKKysiCisrCWZpCisrCisrCSMg Zml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8uCisrCWlmIHRlc3QgLW4gIiRk bGxzZWFyY2hwYXRoIjsgdGhlbgorKwkgICRFQ0hPICJcCisrICAgICMgQWRkIHRoZSBkbGwgc2Vh cmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICisrICAgIFBBVEg9JGRs bHNlYXJjaHBhdGg6XCRQQVRICisrIgorKwlmaQorKworKwkkRUNITyAiXAorKyAgICBpZiB0ZXN0 IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCisrICAgICAg IyBSdW4gdGhlIGFjdHVhbCBwcm9ncmFtIHdpdGggb3VyIGFyZ3VtZW50cy4KKysiCisrCWNhc2Ug JGhvc3QgaW4KKysJIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBvbiBwbGFpbiB3 aW5kb3dzCisrCSotKi1taW5ndyB8ICotKi1vczIqIHwgKi1jZWdjYyopCisrCSAgJEVDSE8gIlwK KysgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKysi CisrCSAgOzsKKysKKysJKikKKysJICAkRUNITyAiXAorKyAgICAgIGV4ZWMgXCJcJHByb2dkaXIv XCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorKyIKKysJICA7OworKwllc2FjCisrCSRFQ0hPICJc CisrICAgICAgXCRFQ0hPIFwiXCQwOiBjYW5ub3QgZXhlYyBcJHByb2dyYW0gXCQqXCIgMT4mMgor KyAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgZWxzZQorKyAgICAjIFRoZSBwcm9ncmFtIGRvZXNu J3QgZXhpc3QuCisrICAgIFwkRUNITyBcIlwkMDogZXJyb3I6IFxcXGBcJHByb2dkaXIvXCRwcm9n cmFtJyBkb2VzIG5vdCBleGlzdFwiIDE+JjIKKysgICAgXCRFQ0hPIFwiVGhpcyBzY3JpcHQgaXMg anVzdCBhIHdyYXBwZXIgZm9yIFwkcHJvZ3JhbS5cIiAxPiYyCisrICAgICRFQ0hPIFwiU2VlIHRo ZSAkUEFDS0FHRSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiIDE+JjIKKysg ICAgZXhpdCAxCisrICBmaQorK2ZpXAorKyIKKyt9CisrIyBlbmQ6IGZ1bmNfZW1pdF93cmFwcGVy X3BhcnQyCisrCisrCisrIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJnPW5vXQorKyMKKysjIEVtaXQg YSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KKysjIERvbid0IGRpcmVjdGx5IG9w ZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KKysjIGluY29ycG9yYXRlIHRoZSBzY3Jp cHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3CisrIyB3cmFwcGVyIGV4ZWN1dGFibGUu ICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCisrIyBmdW5jX21vZGVfbGluayBiZWNh dXNlIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGVzCisrIyBzZXQgdGhlcmVpbi4K KysjCisrIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JFTE9OR1Nf SU5fT0JKRElSCisrIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0aGUgZW1p dHRlZCBzY3JpcHQKKysjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBp dCBpcyBzdG9yZWQgaXMKKysjIHRoZSAkb2JqZGlyIGRpcmVjdG9yeS4gIFRoaXMgaXMgYSBjeWd3 aW4vbWluZ3ctc3BlY2lmaWMKKysjIGJlaGF2aW9yLgorK2Z1bmNfZW1pdF93cmFwcGVyICgpCisr eworKwlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPW5vCisrCWlmIHRlc3QgLW4gIiQxIiA7IHRoZW4K KysJICBmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSQxCisrCWZpCisrCisrCSMgc3BsaXQgdGhpcyB1 cCBzbyB0aGF0IGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKysJIyBjYW4gY2FsbCBlYWNoIHBh cnQgaW5kZXBlbmRlbnRseS4KKysJZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgIiR7ZnVuY19lbWl0 X3dyYXBwZXJfYXJnMX0iCisrCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyICIke2Z1bmNfZW1pdF93 cmFwcGVyX2FyZzF9IgorK30KKysKKysKKysjIGZ1bmNfdG9faG9zdF9wYXRoIGFyZworKyMKKysj IENvbnZlcnQgcGF0aHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMu CisrIyBJbnRlbmRlZCBmb3IgdXNlIHdpdGggIm5hdGl2ZSIgbWluZ3cgKHdoZXJlIGxpYnRvb2wg aXRzZWxmCisrIyBpcyBydW5uaW5nIHVuZGVyIHRoZSBtc3lzIHNoZWxsKSwgb3IgaW4gdGhlIGZv bGxvd2luZyBjcm9zcy0KKysjIGJ1aWxkIGVudmlyb25tZW50czoKKysjICAgICRidWlsZCAgICAg ICAgICAkaG9zdAorKyMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCisr IyAgICBjeWd3aW4gICAgICAgICAgbWluZ3cKKysjICAgICpuaXggKyB3aW5lICAgICBtaW5ndwor KyMgd2hlcmUgd2luZSBpcyBlcXVpcHBlZCB3aXRoIHRoZSBgd2luZXBhdGgnIGV4ZWN1dGFibGUu CisrIyBJbiB0aGUgbmF0aXZlIG1pbmd3IGNhc2UsIHRoZSAobXN5cykgc2hlbGwgYXV0b21hdGlj YWxseQorKyMgY29udmVydHMgcGF0aHMgZm9yIGFueSBub24tbXN5cyBhcHBsaWNhdGlvbnMgaXQg bGF1bmNoZXMsCisrIyBidXQgdGhhdCBmYWNpbGl0eSBpc24ndCBhdmFpbGFibGUgZnJvbSBpbnNp ZGUgdGhlIGN3cmFwcGVyLgorKyMgU2ltaWxhciBhY2NvbW1vZGF0aW9ucyBhcmUgbmVjZXNzYXJ5 IGZvciAkaG9zdCBtaW5ndyBhbmQKKysjICRidWlsZCBjeWd3aW4uICBDYWxsaW5nIHRoaXMgZnVu Y3Rpb24gZG9lcyBubyBoYXJtIGZvciBvdGhlcgorKyMgJGhvc3QvJGJ1aWxkIGNvbWJpbmF0aW9u cyBub3QgbGlzdGVkIGFib3ZlLgorKyMKKysjIEFSRyBpcyB0aGUgcGF0aCAob24gJGJ1aWxkKSB0 aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8KKysjIHRoZSBwcm9wZXIgcmVwcmVzZW50YXRpb24g Zm9yICRob3N0LiBUaGUgcmVzdWx0IGlzIHN0b3JlZAorKyMgaW4gJGZ1bmNfdG9faG9zdF9wYXRo X3Jlc3VsdC4KKytmdW5jX3RvX2hvc3RfcGF0aCAoKQorK3sKKysgIGZ1bmNfdG9faG9zdF9wYXRo X3Jlc3VsdD0iJDEiCisrICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCisrICAgIGNhc2UgJGhvc3Qg aW4KKysgICAgICAqbWluZ3cqICkKKysgICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9 J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKKysgICAgICAgIGNhc2UgJGJ1aWxk IGluCisrICAgICAgICAgICptaW5ndyogKSAjIGFjdHVhbGx5LCBtc3lzCisrICAgICAgICAgICAg IyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0CisrICAgICAgICAgICAgbHRf c2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcz0icy9bIF0qXCQvLyIKKysgICAgICAgICAgICBmdW5j X3RvX2hvc3RfcGF0aF90bXAxPWAoIGNtZCAvL2MgZWNobyAiJDEiIHxcCisrICAgICAgICAgICAg ICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVsbCB8 fCBlY2hvICIiYAorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAi JGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCisrICAgICAgICAgICAgICAkU0VEIC1lICIkbHRf c2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisrICAgICAgICAgICAgOzsKKysgICAgICAgICAgKmN5 Z3dpbiogKQorKyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YGN5Z3BhdGggLXcg IiQxImAKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5j X3RvX2hvc3RfcGF0aF90bXAxIiB8XAorKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9u YWl2ZV9iYWNrc2xhc2hpZnkiYAorKyAgICAgICAgICAgIDs7CisrICAgICAgICAgICogKQorKyAg ICAgICAgICAgICMgVW5mb3J0dW5hdGVseSwgd2luZXBhdGggZG9lcyBub3QgZXhpdCB3aXRoIGEg bm9uLXplcm8KKysgICAgICAgICAgICAjIGVycm9yIGNvZGUsIHNvIHdlIGFyZSBmb3JjZWQgdG8g Y2hlY2sgdGhlIGNvbnRlbnRzIG9mCisrICAgICAgICAgICAgIyBzdGRvdXQuIE9uIHRoZSBvdGhl ciBoYW5kLCBpZiB0aGUgY29tbWFuZCBpcyBub3QKKysgICAgICAgICAgICAjIGZvdW5kLCB0aGUg c2hlbGwgd2lsbCBzZXQgYW4gZXhpdCBjb2RlIG9mIDEyNyBhbmQgcHJpbnQKKysgICAgICAgICAg ICAjICphbiBlcnJvciBtZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdlIG11c3QgY2hlY2sgZm9yIGJv dGgKKysgICAgICAgICAgICAjIGVycm9yIGNvZGUgb2YgemVybyBBTkQgbm9uLWVtcHR5IHN0ZG91 dCwgd2hpY2ggZXhwbGFpbnMKKysgICAgICAgICAgICAjIHRoZSBvZGQgY29uc3RydWN0aW9uOgor KyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9YHdpbmVwYXRoIC13ICIkMSIgMj4v ZGV2L251bGxgCisrICAgICAgICAgICAgaWYgdGVzdCAiJD8iIC1lcSAwICYmIHRlc3QgLW4gIiR7 ZnVuY190b19ob3N0X3BhdGhfdG1wMX0iOyB0aGVuCisrICAgICAgICAgICAgICBmdW5jX3RvX2hv c3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAorKyAgICAg ICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCisrICAgICAg ICAgICAgZWxzZQorKyAgICAgICAgICAgICAgIyBBbGxvdyB3YXJuaW5nIGJlbG93LgorKyAgICAg ICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIiCisrICAgICAgICAgICAgZmkKKysg ICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNf dG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICAgIGZ1bmNfZXJyb3IgIkNvdWxk IG5vdCBkZXRlcm1pbmUgaG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8iCisrICAgICAgICAgIGZ1 bmNfZXJyb3IgIiAgJyQxJyIKKysgICAgICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0 IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCisrICAgICAgICAgICMgRmFs bGJhY2s6CisrICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisrICAgICAg ICBmaQorKyAgICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKyt9CisrIyBlbmQ6IGZ1bmNfdG9f aG9zdF9wYXRoCisrCisrIyBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgYXJnCisrIworKyMgQ29udmVy dCBwYXRobGlzdHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMuCisr IyBTZWUgZnVuY190b19ob3N0X3BhdGgoKSwgYWJvdmUuIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMg dGhlCisrIyBmb2xsb3dpbmcgJGJ1aWxkLyRob3N0IGNvbWJpbmF0aW9ucyAoYnV0IGRvZXMgbm8g aGFybSBmb3IKKysjIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGhlcmUpOgorKyMgICAgJGJ1aWxk ICAgICAgICAgICRob3N0CisrIyAgICBtaW5ndyAobXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2 ZV0KKysjICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndworKyMgICAgKm5peCArIHdpbmUgICAgIG1p bmd3CisrIworKyMgUGF0aCBzZXBhcmF0b3JzIGFyZSBhbHNvIGNvbnZlcnRlZCBmcm9tICRidWls ZCBmb3JtYXQgdG8KKysjICRob3N0IGZvcm1hdC4gSWYgQVJHIGJlZ2lucyBvciBlbmRzIHdpdGgg YSBwYXRoIHNlcGFyYXRvcgorKyMgY2hhcmFjdGVyLCBpdCBpcyBwcmVzZXJ2ZWQgKGJ1dCBjb252 ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KQorKyMgb24gb3V0cHV0LgorKyMKKysjIEFSRyBpcyBhIHBh dGhsaXN0IChvbiAkYnVpbGQpIHRoYXQgc2hvdWxkIGJlIGNvbnZlcnRlZCB0bworKyMgdGhlIHBy b3BlciByZXByZXNlbnRhdGlvbiBvbiAkaG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKKysjIGlu ICRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0LgorK2Z1bmNfdG9faG9zdF9wYXRobGlzdCAo KQorK3sKKysgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiQxIgorKyAgaWYgdGVzdCAt biAiJDEiIDsgdGhlbgorKyAgICBjYXNlICRob3N0IGluCisrICAgICAgKm1pbmd3KiApCisrICAg ICAgICBsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xc XHxcXFxcfGcnCisrICAgICAgICAjIFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBwYXRoIHNl cGFyYXRvciBjaGFyYWN0ZXJzIGZyb20KKysgICAgICAgICMgQVJHLiBtc3lzIGJlaGF2aW9yIGlz IGluY29uc2lzdGVudCBoZXJlLCBjeWdwYXRoIHR1cm5zIHRoZW0KKysgICAgICAgICMgaW50byAn LjsnIGFuZCAnOy4nLCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCisrICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj0iJDEiCisrICAgICAgICAjIE9uY2Ugc2V0 IGZvciB0aGlzIGNhbGwsIHRoaXMgdmFyaWFibGUgc2hvdWxkIG5vdCBiZQorKyAgICAgICAgIyBy ZWFzc2lnbmVkLiBJdCBpcyB1c2VkIGluIHRoYSBmYWxsYmFjayBjYXNlLgorKyAgICAgICAgZnVu Y190b19ob3N0X3BhdGhsaXN0X3RtcDE9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1w MiIgfFwKKysgICAgICAgICAgJFNFRCAtZSAnc3xeOip8fCcgLWUgJ3N8OiokfHwnYAorKyAgICAg ICAgY2FzZSAkYnVpbGQgaW4KKysgICAgICAgICAgKm1pbmd3KiApICMgQWN0dWFsbHksIG1zeXMu CisrICAgICAgICAgICAgIyBBd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0Lgor KyAgICAgICAgICAgIGx0X3NlZF9zdHJpcF90cmFpbGluZ19zcGFjZXM9InMvWyBdKlwkLy8iCisr ICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9YCggY21kIC8vYyBlY2hvICIk ZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCisrICAgICAgICAgICAgICAkU0VEIC1lICIk bHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAor KyAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKKysgICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRf bmFpdmVfYmFja3NsYXNoaWZ5ImAKKysgICAgICAgICAgICA7OworKyAgICAgICAgICAqY3lnd2lu KiApCisrICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9YGN5Z3BhdGggLXcg LXAgIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSJgCisrICAgICAgICAgICAgZnVuY190b19o b3N0X3BhdGhsaXN0X3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF90bXAyIiB8 XAorKyAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAor KyAgICAgICAgICAgIDs7CisrICAgICAgICAgICogKQorKyAgICAgICAgICAgICMgdW5mb3J0dW5h dGVseSwgd2luZXBhdGggZG9lc24ndCBjb252ZXJ0IHBhdGhsaXN0cworKyAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiIKKysgICAgICAgICAgICBmdW5jX3RvX2hvc3Rf cGF0aGxpc3Rfb2xkSUZTPSRJRlMKKysgICAgICAgICAgICBJRlM9OgorKyAgICAgICAgICAgIGZv ciBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiBpbiAkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEg OyBkbworKyAgICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTCisr ICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3BhdGhsaXN0X2YiIDsgdGhl bgorKyAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aCAiJGZ1bmNfdG9faG9zdF9wYXRo bGlzdF9mIgorKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkZnVuY190b19ob3N0X3BhdGhf cmVzdWx0IiA7IHRoZW4KKysgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY190b19o b3N0X3BhdGhsaXN0X3Jlc3VsdCIgOyB0aGVuCisrICAgICAgICAgICAgICAgICAgICBmdW5jX3Rv X2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorKyAgICAg ICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRo bGlzdF9yZXN1bHQ9IiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0OyRmdW5jX3RvX2hvc3Rf cGF0aF9yZXN1bHQiCisrICAgICAgICAgICAgICAgICAgZmkKKysgICAgICAgICAgICAgICAgZmkK KysgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICBJRlM9OgorKyAgICAgICAgICAgIGRv bmUKKysgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKKysgICAg ICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9f aG9zdF9wYXRobGlzdF9yZXN1bHQiIDsgdGhlbgorKyAgICAgICAgICBmdW5jX2Vycm9yICJDb3Vs ZCBub3QgZGV0ZXJtaW5lIHRoZSBob3N0IHBhdGgocykgY29ycmVzcG9uZGluZyB0byIKKysgICAg ICAgICAgZnVuY19lcnJvciAiICAnJDEnIgorKyAgICAgICAgICBmdW5jX2Vycm9yICJDb250aW51 aW5nLCBidXQgdW5pbnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKKysgICAgICAg ICAgIyBGYWxsYmFjay4gVGhpcyBtYXkgYnJlYWsgaWYgJDEgY29udGFpbnMgRE9TLXN0eWxlIGRy aXZlCisrICAgICAgICAgICMgc3BlY2lmaWNhdGlvbnMuIFRoZSBmaXggaXMgbm90IHRvIGNvbXBs aWNhdGUgdGhlIGV4cHJlc3Npb24KKysgICAgICAgICAgIyBiZWxvdywgYnV0IGZvciB0aGUgdXNl ciB0byBwcm92aWRlIGEgd29ya2luZyB3aW5lIGluc3RhbGxhdGlvbgorKyAgICAgICAgICAjIHdp dGggd2luZXBhdGggc28gdGhhdCBwYXRoIHRyYW5zbGF0aW9uIGluIHRoZSBjcm9zcy10by1taW5n dworKyAgICAgICAgICAjIGNhc2Ugd29ya3MgcHJvcGVybHkuCisrICAgICAgICAgIGx0X3JlcGxh Y2VfcGF0aHNlcF9uaXhfdG9fZG9zPSJzfDp8O3xnIgorKyAgICAgICAgICBmdW5jX3RvX2hvc3Rf cGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCisr ICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3JlcGxhY2VfcGF0aHNlcF9uaXhfdG9fZG9zImAKKysg ICAgICAgIGZpCisrICAgICAgICAjIE5vdywgYWRkIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBw YXRoIHNlcGFyYXRvcnMgYmFjaworKyAgICAgICAgY2FzZSAiJDEiIGluCisrICAgICAgICAgIDoq ICkgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iOyRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rf cmVzdWx0IgorKyAgICAgICAgICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBjYXNlICIk MSIgaW4KKysgICAgICAgICAgKjogKSBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVu Y190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdDsiCisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVz YWMKKysgICAgICAgIDs7CisrICAgIGVzYWMKKysgIGZpCisrfQorKyMgZW5kOiBmdW5jX3RvX2hv c3RfcGF0aGxpc3QKKysKKysjIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKKysjIGVtaXQgdGhl IHNvdXJjZSBjb2RlIGZvciBhIHdyYXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKKysjIE11c3Qg T05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gZnVuY19tb2RlX2xpbmsgYmVjYXVzZQorKyMgaXQg ZGVwZW5kcyBvbiBhIG51bWJlciBvZiB2YXJpYWJsZSBzZXQgdGhlcmVpbi4KKytmdW5jX2VtaXRf Y3dyYXBwZXJleGVfc3JjICgpCisreworKwljYXQgPDxFT0YKKysKKysvKiAkY3dyYXBwZXJzb3Vy Y2UgLSB0ZW1wb3Jhcnkgd3JhcHBlciBleGVjdXRhYmxlIGZvciAkb2JqZGlyLyRvdXRwdXRuYW1l CisrICAgR2VuZXJhdGVkIGJ5ICRQUk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVS U0lPTgorKworKyAgIFRoZSAkb3V0cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1 dGVkIHVudGlsIGFsbCB0aGUgbGlidG9vbAorKyAgIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMg b24gYXJlIGluc3RhbGxlZC4KKysKKysgICBUaGlzIHdyYXBwZXIgZXhlY3V0YWJsZSBzaG91bGQg bmV2ZXIgYmUgbW92ZWQgb3V0IG9mIHRoZSBidWlsZCBkaXJlY3RvcnkuCisrICAgSWYgaXQgaXMs IGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgorKworKyAgIEN1cnJlbnRseSwgaXQgc2lt cGx5IGV4ZWNzIHRoZSB3cmFwcGVyICpzY3JpcHQqICIkU0hFTEwgJG91dHB1dCIsCisrICAgYnV0 IGNvdWxkIGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2NyaXB0cyBmdW5jdGlvbmFsaXR5 IGFuZAorKyAgIGV4ZWMgJG9iamRpci8kb3V0cHV0bmFtZSBkaXJlY3RseS4KKysqLworK0VPRgor KwkgICAgY2F0IDw8IkVPRiIKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3RkbGli Lmg+CisrI2lmZGVmIF9NU0NfVkVSCisrIyBpbmNsdWRlIDxkaXJlY3QuaD4KKysjIGluY2x1ZGUg PHByb2Nlc3MuaD4KKysjIGluY2x1ZGUgPGlvLmg+CisrIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9k ZQorKyNlbHNlCisrIyBpbmNsdWRlIDx1bmlzdGQuaD4KKysjIGluY2x1ZGUgPHN0ZGludC5oPgor KyMgaWZkZWYgX19DWUdXSU5fXworKyMgIGluY2x1ZGUgPGlvLmg+CisrIyAgZGVmaW5lIEhBVkVf U0VURU5WCisrIyAgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCisrY2hhciAqcmVhbHBhdGggKGNvbnN0 IGNoYXIgKiwgY2hhciAqKTsKKytpbnQgcHV0ZW52IChjaGFyICopOworK2ludCBzZXRlbnYgKGNv bnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOworKyMgIGVuZGlmCisrIyBlbmRpZgorKyNl bmRpZgorKyNpbmNsdWRlIDxtYWxsb2MuaD4KKysjaW5jbHVkZSA8c3RkYXJnLmg+CisrI2luY2x1 ZGUgPGFzc2VydC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8Y3R5cGUuaD4K KysjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8ZmNudGwuaD4KKysjaW5jbHVkZSA8c3lz L3N0YXQuaD4KKysKKysjaWYgZGVmaW5lZChQQVRIX01BWCkKKysjIGRlZmluZSBMVF9QQVRITUFY IFBBVEhfTUFYCisrI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQorKyMgZGVmaW5lIExUX1BBVEhN QVggTUFYUEFUSExFTgorKyNlbHNlCisrIyBkZWZpbmUgTFRfUEFUSE1BWCAxMDI0CisrI2VuZGlm CisrCisrI2lmbmRlZiBTX0lYT1RICisrIyBkZWZpbmUgU19JWE9USCAwCisrI2VuZGlmCisrI2lm bmRlZiBTX0lYR1JQCisrIyBkZWZpbmUgU19JWEdSUCAwCisrI2VuZGlmCisrCisrI2lmZGVmIF9N U0NfVkVSCisrIyBkZWZpbmUgU19JWFVTUiBfU19JRVhFQworKyMgZGVmaW5lIHN0YXQgX3N0YXQK KysjIGlmbmRlZiBfSU5UUFRSX1RfREVGSU5FRAorKyMgIGRlZmluZSBpbnRwdHJfdCBpbnQKKysj IGVuZGlmCisrI2VuZGlmCisrCisrI2lmbmRlZiBESVJfU0VQQVJBVE9SCisrIyBkZWZpbmUgRElS X1NFUEFSQVRPUiAnLycKKysjIGRlZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKKysjZW5kaWYKKysK KysjaWYgZGVmaW5lZCAoX1dJTjMyKSB8fCBkZWZpbmVkIChfX01TRE9TX18pIHx8IGRlZmluZWQg KF9fREpHUFBfXykgfHwgXAorKyAgZGVmaW5lZCAoX19PUzJfXykKKysjIGRlZmluZSBIQVZFX0RP U19CQVNFRF9GSUxFX1NZU1RFTQorKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKKysjIGlmbmRlZiBE SVJfU0VQQVJBVE9SXzIKKysjICBkZWZpbmUgRElSX1NFUEFSQVRPUl8yICdcXCcKKysjIGVuZGlm CisrIyBpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgorKyMgIGRlZmluZSBQQVRIX1NFUEFSQVRPUl8y ICc7JworKyMgZW5kaWYKKysjZW5kaWYKKysKKysjaWZuZGVmIERJUl9TRVBBUkFUT1JfMgorKyMg ZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpICgoY2gpID09IERJUl9TRVBBUkFUT1IpCisrI2Vs c2UgLyogRElSX1NFUEFSQVRPUl8yICovCisrIyBkZWZpbmUgSVNfRElSX1NFUEFSQVRPUihjaCkg XAorKwkoKChjaCkgPT0gRElSX1NFUEFSQVRPUikgfHwgKChjaCkgPT0gRElSX1NFUEFSQVRPUl8y KSkKKysjZW5kaWYgLyogRElSX1NFUEFSQVRPUl8yICovCisrCisrI2lmbmRlZiBQQVRIX1NFUEFS QVRPUl8yCisrIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gpICgoY2gpID09IFBBVEhfU0VQ QVJBVE9SKQorKyNlbHNlIC8qIFBBVEhfU0VQQVJBVE9SXzIgKi8KKysjIGRlZmluZSBJU19QQVRI X1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1JfMikKKysjZW5kaWYgLyogUEFU SF9TRVBBUkFUT1JfMiAqLworKworKyNpZmRlZiBfX0NZR1dJTl9fCisrIyBkZWZpbmUgRk9QRU5f V0IgIndiIgorKyNlbmRpZgorKworKyNpZm5kZWYgRk9QRU5fV0IKKysjIGRlZmluZSBGT1BFTl9X QiAidyIKKysjZW5kaWYKKysjaWZuZGVmIF9PX0JJTkFSWQorKyMgZGVmaW5lIF9PX0JJTkFSWSAw CisrI2VuZGlmCisrCisrI2RlZmluZSBYTUFMTE9DKHR5cGUsIG51bSkgICAgICAoKHR5cGUgKikg eG1hbGxvYyAoKG51bSkgKiBzaXplb2YodHlwZSkpKQorKyNkZWZpbmUgWEZSRUUoc3RhbGUpIGRv IHsgXAorKyAgaWYgKHN0YWxlKSB7IGZyZWUgKCh2b2lkICopIHN0YWxlKTsgc3RhbGUgPSAwOyB9 IFwKKyt9IHdoaWxlICgwKQorKworKyN1bmRlZiBMVFdSQVBQRVJfREVCVUdQUklOVEYKKysjaWYg ZGVmaW5lZCBERUJVR1dSQVBQRVIKKysjIGRlZmluZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJn cykgbHR3cmFwcGVyX2RlYnVncHJpbnRmIGFyZ3MKKytzdGF0aWMgdm9pZAorK2x0d3JhcHBlcl9k ZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZm10LCAuLi4pCisreworKyAgICB2YV9saXN0IGFyZ3M7 CisrICAgIHZhX3N0YXJ0IChhcmdzLCBmbXQpOworKyAgICAodm9pZCkgdmZwcmludGYgKHN0ZGVy ciwgZm10LCBhcmdzKTsKKysgICAgdmFfZW5kIChhcmdzKTsKKyt9CisrI2Vsc2UKKysjIGRlZmlu ZSBMVFdSQVBQRVJfREVCVUdQUklOVEYoYXJncykKKysjZW5kaWYKKysKKytjb25zdCBjaGFyICpw cm9ncmFtX25hbWUgPSBOVUxMOworKworK3ZvaWQgKnhtYWxsb2MgKHNpemVfdCBudW0pOworK2No YXIgKnhzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZyk7CisrY29uc3QgY2hhciAqYmFzZV9uYW1l IChjb25zdCBjaGFyICpuYW1lKTsKKytjaGFyICpmaW5kX2V4ZWN1dGFibGUgKGNvbnN0IGNoYXIg KndyYXBwZXIpOworK2NoYXIgKmNoYXNlX3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYyk7 CisraW50IG1ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7CisraW50IGNoZWNrX2V4 ZWN1dGFibGUgKGNvbnN0IGNoYXIgKnBhdGgpOworK2NoYXIgKnN0cmVuZHphcCAoY2hhciAqc3Ry LCBjb25zdCBjaGFyICpwYXQpOworK3ZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2Us IC4uLik7Cisrdm9pZCBsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZh bHVlKTsKKytjaGFyICpsdF9leHRlbmRfc3RyIChjb25zdCBjaGFyICpvcmlnX3ZhbHVlLCBjb25z dCBjaGFyICphZGQsIGludCB0b19lbmQpOworK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X3NldCAo Y29uc3QgY2hhciAqYXJnKTsKKyt2b2lkIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChjb25z dCBjaGFyICphcmcpOworK3ZvaWQgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoY29uc3QgY2hh ciAqYXJnKTsKKytpbnQgbHRfc3BsaXRfbmFtZV92YWx1ZSAoY29uc3QgY2hhciAqYXJnLCBjaGFy KiogbmFtZSwgY2hhcioqIHZhbHVlKTsKKyt2b2lkIGx0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworK3ZvaWQgbHRfdXBkYXRlX2xpYl9wYXRo IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSk7CisrCisrc3RhdGljIGNvbnN0 IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQxID0KKytFT0YKKysKKysJICAgIGZ1bmNfZW1pdF93cmFw cGVyX3BhcnQxIHllcyB8CisrCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBc CisrCSAgICAgICAgICAgICAtZSAncy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCisrCSAgICBlY2hv ICI7IgorKwkgICAgY2F0IDw8RU9GCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0 X3BhcnQyID0KKytFT0YKKysJICAgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyIHllcyB8CisrCSAg ICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCisrCSAgICAgICAgICAgICAtZSAn cy9eLyAgIi8nIC1lICdzLyQvXFxuIi8nCisrCSAgICBlY2hvICI7IgorKworKwkgICAgY2F0IDw8 RU9GCisrY29uc3QgY2hhciAqIE1BR0lDX0VYRSA9ICIkbWFnaWNfZXhlIjsKKytjb25zdCBjaGFy ICogTElCX1BBVEhfVkFSTkFNRSA9ICIkc2hsaWJwYXRoX3ZhciI7CisrRU9GCisrCisrCSAgICBp ZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyAmJiB0ZXN0IC1uICIk c2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgiOyB0aGVuCisrICAgICAgICAg ICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiR0ZW1wX3JwYXRoIgorKwkgICAgICBjYXQgPDxF T0YKKytjb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhs aXN0X3Jlc3VsdCI7CisrRU9GCisrCSAgICBlbHNlCisrCSAgICAgIGNhdCA8PCJFT0YiCisrY29u c3QgY2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiIjsKKytFT0YKKysJICAgIGZpCisrCisrCSAg ICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KKysgICAgICAgICAgICAgIGZ1bmNf dG9faG9zdF9wYXRobGlzdCAiJGRsbHNlYXJjaHBhdGg6IgorKwkgICAgICBjYXQgPDxFT0YKKytj b25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICJQQVRIIjsKKytjb25zdCBjaGFyICogRVhF X1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7CisrRU9GCisr CSAgICBlbHNlCisrCSAgICAgIGNhdCA8PCJFT0YiCisrY29uc3QgY2hhciAqIEVYRV9QQVRIX1ZB Uk5BTUUgPSAiIjsKKytjb25zdCBjaGFyICogRVhFX1BBVEhfVkFMVUUgICA9ICIiOworK0VPRgor KwkgICAgZmkKKysKKysJICAgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0aGVuCisr CSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBUQVJHRVRfUFJPR1JBTV9OQU1FID0gImx0 LSRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICovCisrRU9GCisrCSAgICBlbHNl CisrCSAgICAgIGNhdCA8PEVPRgorK2NvbnN0IGNoYXIgKiBUQVJHRVRfUFJPR1JBTV9OQU1FID0g IiRvdXRwdXRuYW1lIjsgLyogaG9wZWZ1bGx5LCBubyAuZXhlICovCisrRU9GCisrCSAgICBmaQor KworKworKwkgICAgY2F0IDw8IkVPRiIKKysKKysjZGVmaW5lIExUV1JBUFBFUl9PUFRJT05fUFJF RklYICAgICAgICAgIi0tbHQtIgorKyNkZWZpbmUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVO R1RIICA1CisrCisrc3RhdGljIGNvbnN0IHNpemVfdCBvcHRfcHJlZml4X2xlbiAgICAgICAgID0g TFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIOworK3N0YXRpYyBjb25zdCBjaGFyICpsdHdy YXBwZXJfb3B0aW9uX3ByZWZpeCA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYOworKworK3N0YXRp YyBjb25zdCBjaGFyICpkdW1wc2NyaXB0X29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJF RklYICJkdW1wLXNjcmlwdCI7CisrCisrc3RhdGljIGNvbnN0IHNpemVfdCBlbnZfc2V0X29wdF9s ZW4gICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsgNzsKKytzdGF0aWMgY29u c3QgY2hhciAqZW52X3NldF9vcHQgICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAi ZW52LXNldCI7CisrICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZvbz1iYXIiLCB2YWx1 ZSBvZiBmb28gaXMgc2V0IHRvIGJhciAqLworKworK3N0YXRpYyBjb25zdCBzaXplX3QgZW52X3By ZXBlbmRfb3B0X2xlbiA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDExOworK3N0 YXRpYyBjb25zdCBjaGFyICplbnZfcHJlcGVuZF9vcHQgICAgICA9IExUV1JBUFBFUl9PUFRJT05f UFJFRklYICJlbnYtcHJlcGVuZCI7CisrICAvKiBhcmd1bWVudCBpcyBwdXRlbnYtc3R5bGUgImZv bz1iYXIiLCBuZXcgdmFsdWUgb2YgZm9vIGlzIGJhciR7Zm9vfSAqLworKworK3N0YXRpYyBjb25z dCBzaXplX3QgZW52X2FwcGVuZF9vcHRfbGVuICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xF TkdUSCArIDEwOworK3N0YXRpYyBjb25zdCBjaGFyICplbnZfYXBwZW5kX29wdCAgICAgICA9IExU V1JBUFBFUl9PUFRJT05fUFJFRklYICJlbnYtYXBwZW5kIjsKKysgIC8qIGFyZ3VtZW50IGlzIHB1 dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28gaXMgJHtmb299YmFyICovCisr CisraW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyt7CisrICBjaGFyICoqbmV3 YXJnejsKKysgIGludCAgbmV3YXJnYzsKKysgIGNoYXIgKnRtcF9wYXRoc3BlYzsKKysgIGNoYXIg KmFjdHVhbF9jd3JhcHBlcl9wYXRoOworKyAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX25hbWU7Cisr ICBjaGFyICp0YXJnZXRfbmFtZTsKKysgIGNoYXIgKmx0X2FyZ3ZfemVybzsKKysgIGludHB0cl90 IHJ2YWwgPSAxMjc7CisrCisrICBpbnQgaTsKKysKKysgIHByb2dyYW1fbmFtZSA9IChjaGFyICop IHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRG ICgoIihtYWluKSBhcmd2WzBdICAgICAgOiAlc1xuIiwgYXJndlswXSkpOworKyAgTFRXUkFQUEVS X0RFQlVHUFJJTlRGICgoIihtYWluKSBwcm9ncmFtX25hbWUgOiAlc1xuIiwgcHJvZ3JhbV9uYW1l KSk7CisrCisrICAvKiB2ZXJ5IHNpbXBsZSBhcmcgcGFyc2luZzsgZG9uJ3Qgd2FudCB0byByZWx5 IG9uIGdldG9wdCAqLworKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKKysgICAgeworKyAg ICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGR1bXBzY3JpcHRfb3B0KSA9PSAwKQorKwl7CisrRU9G CisrCSAgICBjYXNlICIkaG9zdCIgaW4KKysJICAgICAgKm1pbmd3KiB8ICpjeWd3aW4qICkKKysJ CSMgbWFrZSBzdGRvdXQgdXNlICJ1bml4IiBsaW5lIGVuZGluZ3MKKysJCWVjaG8gIiAgICAgICAg ICBzZXRtb2RlKDEsX09fQklOQVJZKTsiCisrCQk7OworKwkgICAgICBlc2FjCisrCisrCSAgICBj YXQgPDwiRU9GIgorKwkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDEpOworKwkgIHBy aW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDIpOworKwkgIHJldHVybiAwOworKwl9CisrICAg IH0KKysKKysgIG5ld2FyZ3ogPSBYTUFMTE9DIChjaGFyICosIGFyZ2MgKyAxKTsKKysgIHRtcF9w YXRoc3BlYyA9IGZpbmRfZXhlY3V0YWJsZSAoYXJndlswXSk7CisrICBpZiAodG1wX3BhdGhzcGVj ID09IE5VTEwpCisrICAgIGx0X2ZhdGFsICgiQ291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOwor KyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBleGUgKGJlZm9yZSBzeW1s aW5rIGNoYXNlKSBhdCA6ICVzXG4iLAorKwkJCSAgdG1wX3BhdGhzcGVjKSk7CisrCisrICBhY3R1 YWxfY3dyYXBwZXJfcGF0aCA9IGNoYXNlX3N5bWxpbmtzICh0bXBfcGF0aHNwZWMpOworKyAgTFRX UkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBleGUgKGFmdGVyIHN5bWxpbmsgY2hh c2UpIGF0IDogJXNcbiIsCisrCQkJICBhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOworKyAgWEZSRUUg KHRtcF9wYXRoc3BlYyk7CisrCisrICBhY3R1YWxfY3dyYXBwZXJfbmFtZSA9IHhzdHJkdXAoIGJh c2VfbmFtZSAoYWN0dWFsX2N3cmFwcGVyX3BhdGgpKTsKKysgIHN0cmVuZHphcCAoYWN0dWFsX2N3 cmFwcGVyX3BhdGgsIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysKKysgIC8qIHdyYXBwZXIgbmFt ZSB0cmFuc2Zvcm1zICovCisrICBzdHJlbmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9uYW1lLCAiLmV4 ZSIpOworKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAoYWN0dWFsX2N3cmFwcGVyX25h bWUsICIuZXhlIiwgMSk7CisrICBYRlJFRSAoYWN0dWFsX2N3cmFwcGVyX25hbWUpOworKyAgYWN0 dWFsX2N3cmFwcGVyX25hbWUgPSB0bXBfcGF0aHNwZWM7CisrICB0bXBfcGF0aHNwZWMgPSAwOwor KworKyAgLyogdGFyZ2V0X25hbWUgdHJhbnNmb3JtcyAtLSB1c2UgYWN0dWFsIHRhcmdldCBwcm9n cmFtIG5hbWU7IG1pZ2h0IGhhdmUgbHQtIHByZWZpeCAqLworKyAgdGFyZ2V0X25hbWUgPSB4c3Ry ZHVwIChiYXNlX25hbWUgKFRBUkdFVF9QUk9HUkFNX05BTUUpKTsKKysgIHN0cmVuZHphcCAodGFy Z2V0X25hbWUsICIuZXhlIik7CisrICB0bXBfcGF0aHNwZWMgPSBsdF9leHRlbmRfc3RyICh0YXJn ZXRfbmFtZSwgIi5leGUiLCAxKTsKKysgIFhGUkVFICh0YXJnZXRfbmFtZSk7CisrICB0YXJnZXRf bmFtZSA9IHRtcF9wYXRoc3BlYzsKKysgIHRtcF9wYXRoc3BlYyA9IDA7CisrCisrICBMVFdSQVBQ RVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGxpYnRvb2wgdGFyZ2V0IG5hbWU6ICVzXG4iLAorKwkJ CSAgdGFyZ2V0X25hbWUpKTsKKytFT0YKKysKKysJICAgIGNhdCA8PEVPRgorKyAgbmV3YXJnelsw XSA9CisrICAgIFhNQUxMT0MgKGNoYXIsIChzdHJsZW4gKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSAr CisrCQkgICAgc3RybGVuICgiJG9iamRpciIpICsgMSArIHN0cmxlbiAoYWN0dWFsX2N3cmFwcGVy X25hbWUpICsgMSkpOworKyAgc3RyY3B5IChuZXdhcmd6WzBdLCBhY3R1YWxfY3dyYXBwZXJfcGF0 aCk7CisrICBzdHJjYXQgKG5ld2FyZ3pbMF0sICIkb2JqZGlyIik7CisrICBzdHJjYXQgKG5ld2Fy Z3pbMF0sICIvIik7CisrRU9GCisrCisrCSAgICBjYXQgPDwiRU9GIgorKyAgLyogc3RvcCBoZXJl LCBhbmQgY29weSBzbyB3ZSBkb24ndCBoYXZlIHRvIGRvIHRoaXMgdHdpY2UgKi8KKysgIHRtcF9w YXRoc3BlYyA9IHhzdHJkdXAgKG5ld2FyZ3pbMF0pOworKworKyAgLyogZG8gTk9UIHdhbnQgdGhl IGx0LSBwcmVmaXggaGVyZSwgc28gdXNlIGFjdHVhbF9jd3JhcHBlcl9uYW1lICovCisrICBzdHJj YXQgKG5ld2FyZ3pbMF0sIGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKKysKKysgIC8qIERPIHdhbnQg dGhlIGx0LSBwcmVmaXggaGVyZSBpZiBpdCBleGlzdHMsIHNvIHVzZSB0YXJnZXRfbmFtZSAqLwor KyAgbHRfYXJndl96ZXJvID0gbHRfZXh0ZW5kX3N0ciAodG1wX3BhdGhzcGVjLCB0YXJnZXRfbmFt ZSwgMSk7CisrICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKKysgIHRtcF9wYXRoc3BlYyA9IE5VTEw7 CisrRU9GCisrCisrCSAgICBjYXNlICRob3N0X29zIGluCisrCSAgICAgIG1pbmd3KikKKysJICAg IGNhdCA8PCJFT0YiCisrICB7CisrICAgIGNoYXIqIHA7CisrICAgIHdoaWxlICgocCA9IHN0cmNo ciAobmV3YXJnelswXSwgJ1xcJykpICE9IE5VTEwpCisrICAgICAgeworKwkqcCA9ICcvJzsKKysg ICAgICB9CisrICAgIHdoaWxlICgocCA9IHN0cmNociAobHRfYXJndl96ZXJvLCAnXFwnKSkgIT0g TlVMTCkKKysgICAgICB7CisrCSpwID0gJy8nOworKyAgICAgIH0KKysgIH0KKytFT0YKKysJICAg IDs7CisrCSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorKyAgWEZSRUUgKHRhcmdldF9u YW1lKTsKKysgIFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfcGF0aCk7CisrICBYRlJFRSAoYWN0dWFs X2N3cmFwcGVyX25hbWUpOworKworKyAgbHRfc2V0ZW52ICgiQklOX1NIIiwgInhwZzQiKTsgLyog Zm9yIFRydTY0ICovCisrICBsdF9zZXRlbnYgKCJEVUFMQ0FTRSIsICIxIik7ICAvKiBmb3IgTVNL IHNoICovCisrICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRI X1ZBTFVFKTsKKysgIGx0X3VwZGF0ZV9leGVfcGF0aCAoRVhFX1BBVEhfVkFSTkFNRSwgRVhFX1BB VEhfVkFMVUUpOworKworKyAgbmV3YXJnYz0wOworKyAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkr KykKKysgICAgeworKyAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfc2V0X29wdCwgZW52 X3NldF9vcHRfbGVuKSA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAgICBpZiAoYXJndltpXVtl bnZfc2V0X29wdF9sZW5dID09ICc9JykKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBj b25zdCBjaGFyICpwID0gYXJndltpXSArIGVudl9zZXRfb3B0X2xlbiArIDE7CisrICAgICAgICAg ICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChwKTsKKysgICAgICAgICAgICB9CisrICAgICAg ICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X3NldF9vcHRfbGVuXSA9PSAnXDAnICYmIGkgKyAxIDwg YXJnYykKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZf c2V0IChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCisrICAgICAgICAgICAgfQorKyAgICAg ICAgICBlbHNlCisrICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFy Z3VtZW50IiwgZW52X3NldF9vcHQpOworKyAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0K KysgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X3ByZXBlbmRfb3B0LCBlbnZfcHJlcGVu ZF9vcHRfbGVuKSA9PSAwKQorKyAgICAgICAgeworKyAgICAgICAgICBpZiAoYXJndltpXVtlbnZf cHJlcGVuZF9vcHRfbGVuXSA9PSAnPScpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAg Y29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfcHJlcGVuZF9vcHRfbGVuICsgMTsKKysgICAg ICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChwKTsKKysgICAgICAgICAgICB9 CisrICAgICAgICAgIGVsc2UgaWYgKGFyZ3ZbaV1bZW52X3ByZXBlbmRfb3B0X2xlbl0gPT0gJ1ww JyAmJiBpICsgMSA8IGFyZ2MpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgbHRfb3B0 X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KKysgICAg ICAgICAgICB9CisrICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1p c3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfcHJlcGVuZF9vcHQpOworKyAgICAgICAgICBj b250aW51ZTsKKysgICAgICAgIH0KKysgICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgZW52X2Fw cGVuZF9vcHQsIGVudl9hcHBlbmRfb3B0X2xlbikgPT0gMCkKKysgICAgICAgIHsKKysgICAgICAg ICAgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnPScpCisrICAgICAgICAgICAg eworKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfYXBwZW5kX29w dF9sZW4gKyAxOworKyAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAocCk7 CisrICAgICAgICAgICAgfQorKyAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9hcHBlbmRf b3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCisrICAgICAgICAgICAgeworKyAgICAg ICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3Qg Y29weSAqLworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGx0 X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9hcHBlbmRfb3B0KTsK KysgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgaWYgKHN0cm5jbXAgKGFy Z3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBvcHRfcHJlZml4X2xlbikgPT0gMCkKKysg ICAgICAgIHsKKysgICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gb3B0aW9uIGlu IHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorKyAgICAgICAgICAgICBuYW1lc3BhY2UsIGJ1 dCBpdCBpcyBub3Qgb25lIG9mIHRoZSBvbmVzIHdlIGtub3cgYWJvdXQgYW5kCisrICAgICAgICAg ICAgIGhhdmUgYWxyZWFkeSBkZWFsdCB3aXRoLCBhYm92ZSAoaW5sdWRpbmcgZHVtcC1zY3JpcHQp LCB0aGVuCisrICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4gT3RoZXJ3aXNlLCB0YXJnZXRz IG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKKysgICAgICAgICAgICAgdGhleSBhcmUgYWxsb3dlZCB0 byB1c2Ugb3B0aW9ucyBpbiB0aGUgTFRXUkFQUEVSX09QVElPTl9QUkVGSVgKKysgICAgICAgICAg ICAgbmFtZXNwYWNlLiBUaGUgZmlyc3QgdGltZSBhbnkgdXNlciBjb21wbGFpbnMgYWJvdXQgdGhp cywgd2UnbGwKKysgICAgICAgICAgICAgbmVlZCB0byBtYWtlIExUV1JBUFBFUl9PUFRJT05fUFJF RklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCisrICAgICAgICAgICAgIG9yIGEgY29uZmlndXJl LmFjLXNldHRhYmxlIHZhbHVlLgorKyAgICAgICAgICAgKi8KKysgICAgICAgICAgbHRfZmF0YWwg KCJVbnJlY29nbml6ZWQgb3B0aW9uIGluICVzIG5hbWVzcGFjZTogJyVzJyIsCisrICAgICAgICAg ICAgICAgICAgICBsdHdyYXBwZXJfb3B0aW9uX3ByZWZpeCwgYXJndltpXSk7CisrICAgICAgICB9 CisrICAgICAgLyogb3RoZXJ3aXNlIC4uLiAqLworKyAgICAgIG5ld2FyZ3pbKytuZXdhcmdjXSA9 IHhzdHJkdXAgKGFyZ3ZbaV0pOworKyAgICB9CisrICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxM OworKworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICAgICAoKCIobWFpbikgbHRfYXJndl96ZXJv IDogJXNcbiIsIChsdF9hcmd2X3plcm8gPyBsdF9hcmd2X3plcm8gOiAiPE5VTEw+IikpKTsKKysg IGZvciAoaSA9IDA7IGkgPCBuZXdhcmdjOyBpKyspCisrICAgIHsKKysgICAgICBMVFdSQVBQRVJf REVCVUdQUklOVEYgKCgiKG1haW4pIG5ld2FyZ3pbJWRdICAgOiAlc1xuIiwgaSwgKG5ld2FyZ3pb aV0gPyBuZXdhcmd6W2ldIDogIjxOVUxMPiIpKSk7CisrICAgIH0KKysKKytFT0YKKysKKysJICAg IGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgICAgbWluZ3cqKQorKwkJY2F0IDw8IkVPRiIKKysgIC8q IGV4ZWN2IGRvZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBhcyBleHBlY3RlZCBvbiB1bml4 ICovCisrICBydmFsID0gX3NwYXdudiAoX1BfV0FJVCwgbHRfYXJndl96ZXJvLCAoY29uc3QgY2hh ciAqIGNvbnN0ICopIG5ld2FyZ3opOworKyAgaWYgKHJ2YWwgPT0gLTEpCisrICAgIHsKKysgICAg ICAvKiBmYWlsZWQgdG8gc3RhcnQgcHJvY2VzcyAqLworKyAgICAgIExUV1JBUFBFUl9ERUJVR1BS SU5URiAoKCIobWFpbikgZmFpbGVkIHRvIGxhdW5jaCB0YXJnZXQgXCIlc1wiOiBlcnJubyA9ICVk XG4iLCBsdF9hcmd2X3plcm8sIGVycm5vKSk7CisrICAgICAgcmV0dXJuIDEyNzsKKysgICAgfQor KyAgcmV0dXJuIHJ2YWw7CisrRU9GCisrCQk7OworKwkgICAgICAqKQorKwkJY2F0IDw8IkVPRiIK KysgIGV4ZWN2IChsdF9hcmd2X3plcm8sIG5ld2FyZ3opOworKyAgcmV0dXJuIHJ2YWw7IC8qID0x MjcsIGJ1dCBhdm9pZHMgdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgKi8KKytFT0YKKysJCTs7Cisr CSAgICBlc2FjCisrCisrCSAgICBjYXQgPDwiRU9GIgorK30KKysKKyt2b2lkICoKKyt4bWFsbG9j IChzaXplX3QgbnVtKQorK3sKKysgIHZvaWQgKnAgPSAodm9pZCAqKSBtYWxsb2MgKG51bSk7Cisr ICBpZiAoIXApCisrICAgIGx0X2ZhdGFsICgiTWVtb3J5IGV4aGF1c3RlZCIpOworKworKyAgcmV0 dXJuIHA7CisrfQorKworK2NoYXIgKgorK3hzdHJkdXAgKGNvbnN0IGNoYXIgKnN0cmluZykKKyt7 CisrICByZXR1cm4gc3RyaW5nID8gc3RyY3B5ICgoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKHN0 cmluZykgKyAxKSwKKysJCQkgIHN0cmluZykgOiBOVUxMOworK30KKysKKytjb25zdCBjaGFyICoK KytiYXNlX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCisreworKyAgY29uc3QgY2hhciAqYmFzZTsK KysKKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisrICAvKiBTa2lw IG92ZXIgdGhlIGRpc2sgbmFtZSBpbiBNU0RPUyBwYXRobmFtZXMuICovCisrICBpZiAoaXNhbHBo YSAoKHVuc2lnbmVkIGNoYXIpIG5hbWVbMF0pICYmIG5hbWVbMV0gPT0gJzonKQorKyAgICBuYW1l ICs9IDI7CisrI2VuZGlmCisrCisrICBmb3IgKGJhc2UgPSBuYW1lOyAqbmFtZTsgbmFtZSsrKQor KyAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAoKm5hbWUpKQorKyAgICAgIGJhc2UgPSBuYW1lICsg MTsKKysgIHJldHVybiBiYXNlOworK30KKysKKytpbnQKKytjaGVja19leGVjdXRhYmxlIChjb25z dCBjaGFyICpwYXRoKQorK3sKKysgIHN0cnVjdCBzdGF0IHN0OworKworKyAgTFRXUkFQUEVSX0RF QlVHUFJJTlRGICgoIihjaGVja19leGVjdXRhYmxlKSAgOiAlc1xuIiwKKysJCQkgIHBhdGggPyAo KnBhdGggPyBwYXRoIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworKyAgaWYgKCghcGF0aCkgfHwg KCEqcGF0aCkpCisrICAgIHJldHVybiAwOworKworKyAgaWYgKChzdGF0IChwYXRoLCAmc3QpID49 IDApCisrICAgICAgJiYgKHN0LnN0X21vZGUgJiAoU19JWFVTUiB8IFNfSVhHUlAgfCBTX0lYT1RI KSkpCisrICAgIHJldHVybiAxOworKyAgZWxzZQorKyAgICByZXR1cm4gMDsKKyt9CisrCisraW50 CisrbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKQorK3sKKysgIGludCBydmFsID0g MDsKKysgIHN0cnVjdCBzdGF0IHN0OworKworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIiht YWtlX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKKysJCQkgIHBhdGggPyAoKnBhdGggPyBwYXRoIDog IkVNUFRZISIpIDogIk5VTEwhIikpOworKyAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCisrICAg IHJldHVybiAwOworKworKyAgaWYgKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKKysgICAgeworKyAg ICAgIHJ2YWwgPSBjaG1vZCAocGF0aCwgc3Quc3RfbW9kZSB8IFNfSVhPVEggfCBTX0lYR1JQIHwg U19JWFVTUik7CisrICAgIH0KKysgIHJldHVybiBydmFsOworK30KKysKKysvKiBTZWFyY2hlcyBm b3IgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgd3JhcHBlci4gIFJldHVybnMKKysgICBuZXdseSBhbGxv Y2F0ZWQgZnVsbCBwYXRoIG5hbWUgaWYgZm91bmQsIE5VTEwgb3RoZXJ3aXNlCisrICAgRG9lcyBu b3QgY2hhc2Ugc3ltbGlua3MsIGV2ZW4gb24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCB0aGVtLgor KyovCisrY2hhciAqCisrZmluZF9leGVjdXRhYmxlIChjb25zdCBjaGFyICp3cmFwcGVyKQorK3sK KysgIGludCBoYXNfc2xhc2ggPSAwOworKyAgY29uc3QgY2hhciAqcDsKKysgIGNvbnN0IGNoYXIg KnBfbmV4dDsKKysgIC8qIHN0YXRpYyBidWZmZXIgZm9yIGdldGN3ZCAqLworKyAgY2hhciB0bXBb TFRfUEFUSE1BWCArIDFdOworKyAgaW50IHRtcF9sZW47CisrICBjaGFyICpjb25jYXRfbmFtZTsK KysKKysgIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoZmluZF9leGVjdXRhYmxlKSAgIDogJXNc biIsCisrCQkJICB3cmFwcGVyID8gKCp3cmFwcGVyID8gd3JhcHBlciA6ICJFTVBUWSEiKSA6ICJO VUxMISIpKTsKKysKKysgIGlmICgod3JhcHBlciA9PSBOVUxMKSB8fCAoKndyYXBwZXIgPT0gJ1ww JykpCisrICAgIHJldHVybiBOVUxMOworKworKyAgLyogQWJzb2x1dGUgcGF0aD8gKi8KKysjaWYg ZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisrICBpZiAoaXNhbHBoYSAoKHVu c2lnbmVkIGNoYXIpIHdyYXBwZXJbMF0pICYmIHdyYXBwZXJbMV0gPT0gJzonKQorKyAgICB7Cisr ICAgICAgY29uY2F0X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKysgICAgICBpZiAoY2hlY2tf ZXhlY3V0YWJsZSAoY29uY2F0X25hbWUpKQorKwlyZXR1cm4gY29uY2F0X25hbWU7CisrICAgICAg WEZSRUUgKGNvbmNhdF9uYW1lKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrI2VuZGlmCisr ICAgICAgaWYgKElTX0RJUl9TRVBBUkFUT1IgKHdyYXBwZXJbMF0pKQorKwl7CisrCSAgY29uY2F0 X25hbWUgPSB4c3RyZHVwICh3cmFwcGVyKTsKKysJICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29u Y2F0X25hbWUpKQorKwkgICAgcmV0dXJuIGNvbmNhdF9uYW1lOworKwkgIFhGUkVFIChjb25jYXRf bmFtZSk7CisrCX0KKysjaWYgZGVmaW5lZCAoSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU0pCisr ICAgIH0KKysjZW5kaWYKKysKKysgIGZvciAocCA9IHdyYXBwZXI7ICpwOyBwKyspCisrICAgIGlm ICgqcCA9PSAnLycpCisrICAgICAgeworKwloYXNfc2xhc2ggPSAxOworKwlicmVhazsKKysgICAg ICB9CisrICBpZiAoIWhhc19zbGFzaCkKKysgICAgeworKyAgICAgIC8qIG5vIHNsYXNoZXM7IHNl YXJjaCBQQVRIICovCisrICAgICAgY29uc3QgY2hhciAqcGF0aCA9IGdldGVudiAoIlBBVEgiKTsK KysgICAgICBpZiAocGF0aCAhPSBOVUxMKQorKwl7CisrCSAgZm9yIChwID0gcGF0aDsgKnA7IHAg PSBwX25leHQpCisrCSAgICB7CisrCSAgICAgIGNvbnN0IGNoYXIgKnE7CisrCSAgICAgIHNpemVf dCBwX2xlbjsKKysJICAgICAgZm9yIChxID0gcDsgKnE7IHErKykKKysJCWlmIChJU19QQVRIX1NF UEFSQVRPUiAoKnEpKQorKwkJICBicmVhazsKKysJICAgICAgcF9sZW4gPSBxIC0gcDsKKysJICAg ICAgcF9uZXh0ID0gKCpxID09ICdcMCcgPyBxIDogcSArIDEpOworKwkgICAgICBpZiAocF9sZW4g PT0gMCkKKysJCXsKKysJCSAgLyogZW1wdHkgcGF0aDogY3VycmVudCBkaXJlY3RvcnkgKi8KKysJ CSAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQorKwkJICAgIGx0X2ZhdGFs ICgiZ2V0Y3dkIGZhaWxlZCIpOworKwkJICB0bXBfbGVuID0gc3RybGVuICh0bXApOworKwkJICBj b25jYXRfbmFtZSA9CisrCQkgICAgWE1BTExPQyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4g KHdyYXBwZXIpICsgMSk7CisrCQkgIG1lbWNweSAoY29uY2F0X25hbWUsIHRtcCwgdG1wX2xlbik7 CisrCQkgIGNvbmNhdF9uYW1lW3RtcF9sZW5dID0gJy8nOworKwkJICBzdHJjcHkgKGNvbmNhdF9u YW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOworKwkJfQorKwkgICAgICBlbHNlCisrCQl7Cisr CQkgIGNvbmNhdF9uYW1lID0KKysJCSAgICBYTUFMTE9DIChjaGFyLCBwX2xlbiArIDEgKyBzdHJs ZW4gKHdyYXBwZXIpICsgMSk7CisrCQkgIG1lbWNweSAoY29uY2F0X25hbWUsIHAsIHBfbGVuKTsK KysJCSAgY29uY2F0X25hbWVbcF9sZW5dID0gJy8nOworKwkJICBzdHJjcHkgKGNvbmNhdF9uYW1l ICsgcF9sZW4gKyAxLCB3cmFwcGVyKTsKKysJCX0KKysJICAgICAgaWYgKGNoZWNrX2V4ZWN1dGFi bGUgKGNvbmNhdF9uYW1lKSkKKysJCXJldHVybiBjb25jYXRfbmFtZTsKKysJICAgICAgWEZSRUUg KGNvbmNhdF9uYW1lKTsKKysJICAgIH0KKysJfQorKyAgICAgIC8qIG5vdCBmb3VuZCBpbiBQQVRI OyBhc3N1bWUgY3VyZGlyICovCisrICAgIH0KKysgIC8qIFJlbGF0aXZlIHBhdGggfCBub3QgZm91 bmQgaW4gcGF0aDogcHJlcGVuZCBjd2QgKi8KKysgIGlmIChnZXRjd2QgKHRtcCwgTFRfUEFUSE1B WCkgPT0gTlVMTCkKKysgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVkIik7CisrICB0bXBfbGVu ID0gc3RybGVuICh0bXApOworKyAgY29uY2F0X25hbWUgPSBYTUFMTE9DIChjaGFyLCB0bXBfbGVu ICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsKKysgIG1lbWNweSAoY29uY2F0X25hbWUsIHRt cCwgdG1wX2xlbik7CisrICBjb25jYXRfbmFtZVt0bXBfbGVuXSA9ICcvJzsKKysgIHN0cmNweSAo Y29uY2F0X25hbWUgKyB0bXBfbGVuICsgMSwgd3JhcHBlcik7CisrCisrICBpZiAoY2hlY2tfZXhl Y3V0YWJsZSAoY29uY2F0X25hbWUpKQorKyAgICByZXR1cm4gY29uY2F0X25hbWU7CisrICBYRlJF RSAoY29uY2F0X25hbWUpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK2NoYXIgKgorK2NoYXNl X3N5bWxpbmtzIChjb25zdCBjaGFyICpwYXRoc3BlYykKKyt7CisrI2lmbmRlZiBTX0lTTE5LCisr ICByZXR1cm4geHN0cmR1cCAocGF0aHNwZWMpOworKyNlbHNlCisrICBjaGFyIGJ1ZltMVF9QQVRI TUFYXTsKKysgIHN0cnVjdCBzdGF0IHM7CisrICBjaGFyICp0bXBfcGF0aHNwZWMgPSB4c3RyZHVw IChwYXRoc3BlYyk7CisrICBjaGFyICpwOworKyAgaW50IGhhc19zeW1saW5rcyA9IDA7CisrICB3 aGlsZSAoc3RybGVuICh0bXBfcGF0aHNwZWMpICYmICFoYXNfc3ltbGlua3MpCisrICAgIHsKKysg ICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiY2hlY2tpbmcgcGF0aCBjb21wb25lbnQgZm9y IHN5bWxpbmtzOiAlc1xuIiwKKysJCQkgICAgICB0bXBfcGF0aHNwZWMpKTsKKysgICAgICBpZiAo bHN0YXQgKHRtcF9wYXRoc3BlYywgJnMpID09IDApCisrCXsKKysJICBpZiAoU19JU0xOSyAocy5z dF9tb2RlKSAhPSAwKQorKwkgICAgeworKwkgICAgICBoYXNfc3ltbGlua3MgPSAxOworKwkgICAg ICBicmVhazsKKysJICAgIH0KKysKKysJICAvKiBzZWFyY2ggYmFja3dhcmRzIGZvciBsYXN0IERJ Ul9TRVBBUkFUT1IgKi8KKysJICBwID0gdG1wX3BhdGhzcGVjICsgc3RybGVuICh0bXBfcGF0aHNw ZWMpIC0gMTsKKysJICB3aGlsZSAoKHAgPiB0bXBfcGF0aHNwZWMpICYmICghSVNfRElSX1NFUEFS QVRPUiAoKnApKSkKKysJICAgIHAtLTsKKysJICBpZiAoKHAgPT0gdG1wX3BhdGhzcGVjKSAmJiAo IUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCisrCSAgICB7CisrCSAgICAgIC8qIG5vIG1vcmUgRElS X1NFUEFSQVRPUlMgbGVmdCAqLworKwkgICAgICBicmVhazsKKysJICAgIH0KKysJICAqcCA9ICdc MCc7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBjaGFyICplcnJzdHIgPSBzdHJlcnJvciAo ZXJybm8pOworKwkgIGx0X2ZhdGFsICgiRXJyb3IgYWNjZXNzaW5nIGZpbGUgJXMgKCVzKSIsIHRt cF9wYXRoc3BlYywgZXJyc3RyKTsKKysJfQorKyAgICB9CisrICBYRlJFRSAodG1wX3BhdGhzcGVj KTsKKysKKysgIGlmICghaGFzX3N5bWxpbmtzKQorKyAgICB7CisrICAgICAgcmV0dXJuIHhzdHJk dXAgKHBhdGhzcGVjKTsKKysgICAgfQorKworKyAgdG1wX3BhdGhzcGVjID0gcmVhbHBhdGggKHBh dGhzcGVjLCBidWYpOworKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSAwKQorKyAgICB7CisrICAgICAg bHRfZmF0YWwgKCJDb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZvciAlcyIsIHBhdGhzcGVjKTsK KysgICAgfQorKyAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRoc3BlYyk7CisrI2VuZGlmCisrfQor KworK2NoYXIgKgorK3N0cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpCisrewor KyAgc2l6ZV90IGxlbiwgcGF0bGVuOworKworKyAgYXNzZXJ0IChzdHIgIT0gTlVMTCk7CisrICBh c3NlcnQgKHBhdCAhPSBOVUxMKTsKKysKKysgIGxlbiA9IHN0cmxlbiAoc3RyKTsKKysgIHBhdGxl biA9IHN0cmxlbiAocGF0KTsKKysKKysgIGlmIChwYXRsZW4gPD0gbGVuKQorKyAgICB7CisrICAg ICAgc3RyICs9IGxlbiAtIHBhdGxlbjsKKysgICAgICBpZiAoc3RyY21wIChzdHIsIHBhdCkgPT0g MCkKKysJKnN0ciA9ICdcMCc7CisrICAgIH0KKysgIHJldHVybiBzdHI7CisrfQorKworK3N0YXRp YyB2b2lkCisrbHRfZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVzLCBjb25zdCBjaGFyICptb2Rl LAorKwkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwgdmFfbGlzdCBhcCkKKyt7CisrICBmcHJp bnRmIChzdGRlcnIsICIlczogJXM6ICIsIHByb2dyYW1fbmFtZSwgbW9kZSk7CisrICB2ZnByaW50 ZiAoc3RkZXJyLCBtZXNzYWdlLCBhcCk7CisrICBmcHJpbnRmIChzdGRlcnIsICIuXG4iKTsKKysK KysgIGlmIChleGl0X3N0YXR1cyA+PSAwKQorKyAgICBleGl0IChleGl0X3N0YXR1cyk7CisrfQor KworK3ZvaWQKKytsdF9mYXRhbCAoY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQorK3sKKysgIHZh X2xpc3QgYXA7CisrICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOworKyAgbHRfZXJyb3JfY29yZSAo RVhJVF9GQUlMVVJFLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7CisrICB2YV9lbmQgKGFwKTsKKyt9 CisrCisrdm9pZAorK2x0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFs dWUpCisreworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF9zZXRlbnYpIHNldHRpbmcg JyVzJyB0byAnJXMnXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1l IDogIjxOVUxMPiIpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlID8gdmFsdWUg OiAiPE5VTEw+IikpKTsKKysgIHsKKysjaWZkZWYgSEFWRV9TRVRFTlYKKysgICAgLyogYWx3YXlz IG1ha2UgYSBjb3B5LCBmb3IgY29uc2lzdGVuY3kgd2l0aCAhSEFWRV9TRVRFTlYgKi8KKysgICAg Y2hhciAqc3RyID0geHN0cmR1cCAodmFsdWUpOworKyAgICBzZXRlbnYgKG5hbWUsIHN0ciwgMSk7 CisrI2Vsc2UKKysgICAgaW50IGxlbiA9IHN0cmxlbiAobmFtZSkgKyAxICsgc3RybGVuICh2YWx1 ZSkgKyAxOworKyAgICBjaGFyICpzdHIgPSBYTUFMTE9DIChjaGFyLCBsZW4pOworKyAgICBzcHJp bnRmIChzdHIsICIlcz0lcyIsIG5hbWUsIHZhbHVlKTsKKysgICAgaWYgKHB1dGVudiAoc3RyKSAh PSBFWElUX1NVQ0NFU1MpCisrICAgICAgeworKyAgICAgICAgWEZSRUUgKHN0cik7CisrICAgICAg fQorKyNlbmRpZgorKyAgfQorK30KKysKKytjaGFyICoKKytsdF9leHRlbmRfc3RyIChjb25zdCBj aGFyICpvcmlnX3ZhbHVlLCBjb25zdCBjaGFyICphZGQsIGludCB0b19lbmQpCisreworKyAgY2hh ciAqbmV3X3ZhbHVlOworKyAgaWYgKG9yaWdfdmFsdWUgJiYgKm9yaWdfdmFsdWUpCisrICAgIHsK KysgICAgICBpbnQgb3JpZ192YWx1ZV9sZW4gPSBzdHJsZW4gKG9yaWdfdmFsdWUpOworKyAgICAg IGludCBhZGRfbGVuID0gc3RybGVuIChhZGQpOworKyAgICAgIG5ld192YWx1ZSA9IFhNQUxMT0Mg KGNoYXIsIGFkZF9sZW4gKyBvcmlnX3ZhbHVlX2xlbiArIDEpOworKyAgICAgIGlmICh0b19lbmQp CisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAobmV3X3ZhbHVlLCBvcmlnX3ZhbHVlKTsK KysgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBvcmlnX3ZhbHVlX2xlbiwgYWRkKTsKKysg ICAgICAgIH0KKysgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgIHN0cmNweSAobmV3 X3ZhbHVlLCBhZGQpOworKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSArIGFkZF9sZW4sIG9y aWdfdmFsdWUpOworKyAgICAgICAgfQorKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBu ZXdfdmFsdWUgPSB4c3RyZHVwIChhZGQpOworKyAgICB9CisrICByZXR1cm4gbmV3X3ZhbHVlOwor K30KKysKKytpbnQKKytsdF9zcGxpdF9uYW1lX3ZhbHVlIChjb25zdCBjaGFyICphcmcsIGNoYXIq KiBuYW1lLCBjaGFyKiogdmFsdWUpCisreworKyAgY29uc3QgY2hhciAqcDsKKysgIGludCBsZW47 CisrICBpZiAoIWFyZyB8fCAhKmFyZykKKysgICAgcmV0dXJuIDE7CisrCisrICBwID0gc3RyY2hy IChhcmcsIChpbnQpJz0nKTsKKysKKysgIGlmICghcCkKKysgICAgcmV0dXJuIDE7CisrCisrICAq dmFsdWUgPSB4c3RyZHVwICgrK3ApOworKworKyAgbGVuID0gc3RybGVuIChhcmcpIC0gc3RybGVu ICgqdmFsdWUpOworKyAgKm5hbWUgPSBYTUFMTE9DIChjaGFyLCBsZW4pOworKyAgc3RybmNweSAo Km5hbWUsIGFyZywgbGVuLTEpOworKyAgKCpuYW1lKVtsZW4gLSAxXSA9ICdcMCc7CisrCisrICBy ZXR1cm4gMDsKKyt9CisrCisrdm9pZAorK2x0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNo YXIgKmFyZykKKyt7CisrICBjaGFyICpuYW1lID0gTlVMTDsKKysgIGNoYXIgKnZhbHVlID0gTlVM TDsKKysKKysgIGlmIChsdF9zcGxpdF9uYW1lX3ZhbHVlIChhcmcsICZuYW1lLCAmdmFsdWUpICE9 IDApCisrICAgIHsKKysgICAgICBYRlJFRSAobmFtZSk7CisrICAgICAgWEZSRUUgKHZhbHVlKTsK KysgICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfc2V0X29w dCwgYXJnKTsKKysgICAgfQorKworKyAgbHRfc2V0ZW52IChuYW1lLCB2YWx1ZSk7CisrICBYRlJF RSAobmFtZSk7CisrICBYRlJFRSAodmFsdWUpOworK30KKysKKyt2b2lkCisrbHRfb3B0X3Byb2Nl c3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZykKKyt7CisrICBjaGFyICpuYW1lID0gTlVM TDsKKysgIGNoYXIgKnZhbHVlID0gTlVMTDsKKysgIGNoYXIgKm5ld192YWx1ZSA9IE5VTEw7Cisr CisrICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQor KyAgICB7CisrICAgICAgWEZSRUUgKG5hbWUpOworKyAgICAgIFhGUkVFICh2YWx1ZSk7CisrICAg ICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X3ByZXBlbmRfb3B0 LCBhcmcpOworKyAgICB9CisrCisrICBuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYg KG5hbWUpLCB2YWx1ZSwgMCk7CisrICBsdF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICBY RlJFRSAobmV3X3ZhbHVlKTsKKysgIFhGUkVFIChuYW1lKTsKKysgIFhGUkVFICh2YWx1ZSk7Cisr fQorKworK3ZvaWQKKytsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcp CisreworKyAgY2hhciAqbmFtZSA9IE5VTEw7CisrICBjaGFyICp2YWx1ZSA9IE5VTEw7CisrICBj aGFyICpuZXdfdmFsdWUgPSBOVUxMOworKworKyAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFy ZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKKysgICAgeworKyAgICAgIFhGUkVFIChuYW1lKTsKKysg ICAgICBYRlJFRSAodmFsdWUpOworKyAgICAgIGx0X2ZhdGFsICgiYmFkIGFyZ3VtZW50IGZvciAl czogJyVzJyIsIGVudl9hcHBlbmRfb3B0LCBhcmcpOworKyAgICB9CisrCisrICBuZXdfdmFsdWUg PSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwgMSk7CisrICBsdF9zZXRlbnYg KG5hbWUsIG5ld192YWx1ZSk7CisrICBYRlJFRSAobmV3X3ZhbHVlKTsKKysgIFhGUkVFIChuYW1l KTsKKysgIFhGUkVFICh2YWx1ZSk7CisrfQorKworK3ZvaWQKKytsdF91cGRhdGVfZXhlX3BhdGgg KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQorK3sKKysgIExUV1JBUFBFUl9E RUJVR1BSSU5URiAoKCIobHRfdXBkYXRlX2V4ZV9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVw ZW5kaW5nICclcydcbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSA/IG5hbWUg OiAiPE5VTEw+IiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6 ICI8TlVMTD4iKSkpOworKworKyAgaWYgKG5hbWUgJiYgKm5hbWUgJiYgdmFsdWUgJiYgKnZhbHVl KQorKyAgICB7CisrICAgICAgY2hhciAqbmV3X3ZhbHVlID0gbHRfZXh0ZW5kX3N0ciAoZ2V0ZW52 IChuYW1lKSwgdmFsdWUsIDApOworKyAgICAgIC8qIHNvbWUgc3lzdGVtcyBjYW4ndCBjb3BlIHdp dGggYSAnOictdGVybWluYXRlZCBwYXRoICMnICovCisrICAgICAgaW50IGxlbiA9IHN0cmxlbiAo bmV3X3ZhbHVlKTsKKysgICAgICB3aGlsZSAoKChsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSkpID4g MCkgJiYgSVNfUEFUSF9TRVBBUkFUT1IgKG5ld192YWx1ZVtsZW4tMV0pKQorKyAgICAgICAgewor KyAgICAgICAgICBuZXdfdmFsdWVbbGVuLTFdID0gJ1wwJzsKKysgICAgICAgIH0KKysgICAgICBs dF9zZXRlbnYgKG5hbWUsIG5ld192YWx1ZSk7CisrICAgICAgWEZSRUUgKG5ld192YWx1ZSk7Cisr ICAgIH0KKyt9CisrCisrdm9pZAorK2x0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFt ZSwgY29uc3QgY2hhciAqdmFsdWUpCisreworKyAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihs dF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lID8gbmFtZSA6ICI8TlVMTD4iKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7Cisr CisrICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCisrICAgIHsKKysgICAg ICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2YWx1ZSwg MCk7CisrICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOworKyAgICAgIFhGUkVFIChu ZXdfdmFsdWUpOworKyAgICB9CisrfQorKworKworK0VPRgorK30KKysjIGVuZDogZnVuY19lbWl0 X2N3cmFwcGVyZXhlX3NyYworKworKyMgZnVuY19tb2RlX2xpbmsgYXJnLi4uCisrZnVuY19tb2Rl X2xpbmsgKCkKKyt7CisrICAgICRvcHRfZGVidWcKKysgICAgY2FzZSAkaG9zdCBpbgorKyAgICAq LSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2Mq KQorKyAgICAgICMgSXQgaXMgaW1wb3NzaWJsZSB0byBsaW5rIGEgZGxsIHdpdGhvdXQgdGhpcyBz ZXR0aW5nLCBhbmQKKysgICAgICAjIHdlIHNob3VsZG4ndCBmb3JjZSB0aGUgbWFrZWZpbGUgbWFp bnRhaW5lciB0byBmaWd1cmUgb3V0CisrICAgICAgIyB3aGljaCBzeXN0ZW0gd2UgYXJlIGNvbXBp bGluZyBmb3IgaW4gb3JkZXIgdG8gcGFzcyBhbiBleHRyYQorKyAgICAgICMgZmxhZyBmb3IgZXZl cnkgbGlidG9vbCBpbnZvY2F0aW9uLgorKyAgICAgICMgYWxsb3dfdW5kZWZpbmVkPW5vCisrCisr ICAgICAgIyBGSVhNRTogVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhl IGFib3ZlIHdoZW4gdHJ5aW5nCisrICAgICAgIyB0byBtYWtlIGEgZGxsIHdoaWNoIGhhcyB1bmRl ZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKKysgICAgICAjIGV2ZW4gYSBzdGF0aWMg bGlicmFyeSBpcyBidWlsdC4gIEZvciBub3csIHdlIG5lZWQgdG8gc3BlY2lmeQorKyAgICAgICMg LW5vLXVuZGVmaW5lZCBvbiB0aGUgbGlidG9vbCBsaW5rIGxpbmUgd2hlbiB3ZSBjYW4gYmUgY2Vy dGFpbgorKyAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBhcmUgc2F0aXNmaWVkLCBvdGhlcndpc2Ug d2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCisrICAgICAgYWxsb3dfdW5kZWZpbmVkPXllcworKyAg ICAgIDs7CisrICAgICopCisrICAgICAgYWxsb3dfdW5kZWZpbmVkPXllcworKyAgICAgIDs7Cisr ICAgIGVzYWMKKysgICAgbGlidG9vbF9hcmdzPSRub25vcHQKKysgICAgYmFzZV9jb21waWxlPSIk bm9ub3B0ICRAIgorKyAgICBjb21waWxlX2NvbW1hbmQ9JG5vbm9wdAorKyAgICBmaW5hbGl6ZV9j b21tYW5kPSRub25vcHQKKysKKysgICAgY29tcGlsZV9ycGF0aD0KKysgICAgZmluYWxpemVfcnBh dGg9CisrICAgIGNvbXBpbGVfc2hsaWJwYXRoPQorKyAgICBmaW5hbGl6ZV9zaGxpYnBhdGg9Cisr ICAgIGNvbnZlbmllbmNlPQorKyAgICBvbGRfY29udmVuaWVuY2U9CisrICAgIGRlcGxpYnM9Cisr ICAgIG9sZF9kZXBsaWJzPQorKyAgICBjb21waWxlcl9mbGFncz0KKysgICAgbGlua2VyX2ZsYWdz PQorKyAgICBkbGxzZWFyY2hwYXRoPQorKyAgICBsaWJfc2VhcmNoX3BhdGg9YHB3ZGAKKysgICAg aW5zdF9wcmVmaXhfZGlyPQorKyAgICBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0KKysKKysg ICAgYXZvaWRfdmVyc2lvbj1ubworKyAgICBkbGZpbGVzPQorKyAgICBkbHByZWZpbGVzPQorKyAg ICBkbHNlbGY9bm8KKysgICAgZXhwb3J0X2R5bmFtaWM9bm8KKysgICAgZXhwb3J0X3N5bWJvbHM9 CisrICAgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PQorKyAgICBnZW5lcmF0ZWQ9CisrICAgIGxpYm9i anM9CisrICAgIGx0bGlicz0KKysgICAgbW9kdWxlPW5vCisrICAgIG5vX2luc3RhbGw9bm8KKysg ICAgb2Jqcz0KKysgICAgbm9uX3BpY19vYmplY3RzPQorKyAgICBwcmVjaW91c19maWxlc19yZWdl eD0KKysgICAgcHJlZmVyX3N0YXRpY19saWJzPW5vCisrICAgIHByZWxvYWQ9bm8KKysgICAgcHJl dj0KKysgICAgcHJldmFyZz0KKysgICAgcmVsZWFzZT0KKysgICAgcnBhdGg9CisrICAgIHhycGF0 aD0KKysgICAgcGVybV9ycGF0aD0KKysgICAgdGVtcF9ycGF0aD0KKysgICAgdGhyZWFkX3NhZmU9 bm8KKysgICAgdmluZm89CisrICAgIHZpbmZvX251bWJlcj1ubworKyAgICB3ZWFrX2xpYnM9Cisr ICAgIHNpbmdsZV9tb2R1bGU9IiR7d2x9LXNpbmdsZV9tb2R1bGUiCisrICAgIGZ1bmNfaW5mZXJf dGFnICRiYXNlX2NvbXBpbGUKKysKKysgICAgIyBXZSBuZWVkIHRvIGtub3cgLXN0YXRpYywgdG8g Z2V0IHRoZSByaWdodCBvdXRwdXQgZmlsZW5hbWVzLgorKyAgICBmb3IgYXJnCisrICAgIGRvCisr ICAgICAgY2FzZSAkYXJnIGluCisrICAgICAgLXNoYXJlZCkKKysJdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgIT0geWVzICYmIFwKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gImNhbiBu b3QgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSIKKysJYnVpbGRfb2xkX2xpYnM9bm8KKysJYnJlYWsK KysJOzsKKysgICAgICAtYWxsLXN0YXRpYyB8IC1zdGF0aWMgfCAtc3RhdGljLWxpYnRvb2wtbGli cykKKysJY2FzZSAkYXJnIGluCisrCS1hbGwtc3RhdGljKQorKwkgIGlmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgLXogIiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgor KwkgICAgZnVuY193YXJuaW5nICJjb21wbGV0ZSBzdGF0aWMgbGlua2luZyBpcyBpbXBvc3NpYmxl IGluIHRoaXMgY29uZmlndXJhdGlvbiIKKysJICBmaQorKwkgIGlmIHRlc3QgLW4gIiRsaW5rX3N0 YXRpY19mbGFnIjsgdGhlbgorKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxmX3N0YXRpYwor KwkgIGZpCisrCSAgcHJlZmVyX3N0YXRpY19saWJzPXllcworKwkgIDs7CisrCS1zdGF0aWMpCisr CSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0IC1uICIkbGlua19zdGF0aWNfZmxhZyI7 IHRoZW4KKysJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5fc2VsZl9zdGF0aWMKKysJICBmaQorKwkg IHByZWZlcl9zdGF0aWNfbGlicz1idWlsdAorKwkgIDs7CisrCS1zdGF0aWMtbGlidG9vbC1saWJz KQorKwkgIGlmIHRlc3QgLXogIiRwaWNfZmxhZyIgJiYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2Zs YWciOyB0aGVuCisrCSAgICBkbG9wZW5fc2VsZj0kZGxvcGVuX3NlbGZfc3RhdGljCisrCSAgZmkK KysJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCisrCSAgOzsKKysJZXNhYworKwlidWlsZF9saWJ0 b29sX2xpYnM9bm8KKysJYnVpbGRfb2xkX2xpYnM9eWVzCisrCWJyZWFrCisrCTs7CisrICAgICAg ZXNhYworKyAgICBkb25lCisrCisrICAgICMgU2VlIGlmIG91ciBzaGFyZWQgYXJjaGl2ZXMgZGVw ZW5kIG9uIHN0YXRpYyBhcmNoaXZlcy4KKysgICAgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21f bmV3X2NtZHMiICYmIGJ1aWxkX29sZF9saWJzPXllcworKworKyAgICAjIEdvIHRocm91Z2ggdGhl IGFyZ3VtZW50cywgdHJhbnNmb3JtaW5nIHRoZW0gb24gdGhlIHdheS4KKysgICAgd2hpbGUgdGVz dCAiJCMiIC1ndCAwOyBkbworKyAgICAgIGFyZz0iJDEiCisrICAgICAgc2hpZnQKKysgICAgICBm dW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgorKyAgICAgIHFhcmc9JGZ1bmNfcXVvdGVfZm9yX2V2 YWxfdW5xdW90ZWRfcmVzdWx0CisrICAgICAgZnVuY19hcHBlbmQgbGlidG9vbF9hcmdzICIgJGZ1 bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorKworKyAgICAgICMgSWYgdGhlIHByZXZpb3VzIG9w dGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgorKyAgICAgIGlmIHRlc3QgLW4gIiRw cmV2IjsgdGhlbgorKwljYXNlICRwcmV2IGluCisrCW91dHB1dCkKKysJICBmdW5jX2FwcGVuZCBj b21waWxlX2NvbW1hbmQgIiBAT1VUUFVUQCIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21t YW5kICIgQE9VVFBVVEAiCisrCSAgOzsKKysJZXNhYworKworKwljYXNlICRwcmV2IGluCisrCWRs ZmlsZXN8ZGxwcmVmaWxlcykKKysJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSBubzsgdGhlbgorKwkg ICAgIyBBZGQgdGhlIHN5bWJvbCBvYmplY3QgaW50byB0aGUgbGlua2luZyBjb21tYW5kcy4KKysJ ICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBTWU1GSUxFQCIKKysJICAgIGZ1bmNf YXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAU1lNRklMRUAiCisrCSAgICBwcmVsb2FkPXllcwor KwkgIGZpCisrCSAgY2FzZSAkYXJnIGluCisrCSAgKi5sYSB8ICoubG8pIDs7ICAjIFdlIGhhbmRs ZSB0aGVzZSBjYXNlcyBiZWxvdy4KKysJICBmb3JjZSkKKysJICAgIGlmIHRlc3QgIiRkbHNlbGYi ID0gbm87IHRoZW4KKysJICAgICAgZGxzZWxmPW5lZWRsZXNzCisrCSAgICAgIGV4cG9ydF9keW5h bWljPXllcworKwkgICAgZmkKKysJICAgIHByZXY9CisrCSAgICBjb250aW51ZQorKwkgICAgOzsK KysJICBzZWxmKQorKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgorKwkg ICAgICBkbHNlbGY9eWVzCisrCSAgICBlbGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXMgJiYgdGVz dCAiJGRsb3Blbl9zZWxmIiAhPSB5ZXM7IHRoZW4KKysJICAgICAgZGxzZWxmPXllcworKwkgICAg ZWxzZQorKwkgICAgICBkbHNlbGY9bmVlZGxlc3MKKysJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVz CisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAgIGNvbnRpbnVlCisrCSAgICA7OworKwkgICop CisrCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCisrCSAgICAgIGRsZmlsZXM9 IiRkbGZpbGVzICRhcmciCisrCSAgICBlbHNlCisrCSAgICAgIGRscHJlZmlsZXM9IiRkbHByZWZp bGVzICRhcmciCisrCSAgICBmaQorKwkgICAgcHJldj0KKysJICAgIGNvbnRpbnVlCisrCSAgICA7 OworKwkgIGVzYWMKKysJICA7OworKwlleHBzeW1zKQorKwkgIGV4cG9ydF9zeW1ib2xzPSIkYXJn IgorKwkgIHRlc3QgLWYgIiRhcmciIFwKKysJICAgIHx8IGZ1bmNfZmF0YWxfZXJyb3IgInN5bWJv bCBmaWxlIFxgJGFyZycgZG9lcyBub3QgZXhpc3QiCisrCSAgcHJldj0KKysJICBjb250aW51ZQor KwkgIDs7CisrCWV4cHN5bXNfcmVnZXgpCisrCSAgZXhwb3J0X3N5bWJvbHNfcmVnZXg9IiRhcmci CisrCSAgcHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCWZyYW1ld29yaykKKysJICBjYXNl ICRob3N0IGluCisrCSAgICAqLSotZGFyd2luKikKKysJICAgICAgY2FzZSAiJGRlcGxpYnMgIiBp bgorKwkJKiIgJHFhcmcubHRmcmFtZXdvcmsgIiopIDs7CisrCQkqKSBkZXBsaWJzPSIkZGVwbGli cyAkcWFyZy5sdGZyYW1ld29yayIgIyB0aGlzIGlzIGZpeGVkIGxhdGVyCisrCQkgICA7OworKwkg ICAgICBlc2FjCisrCSAgICAgIDs7CisrCSAgZXNhYworKwkgIHByZXY9CisrCSAgY29udGludWUK KysJICA7OworKwlpbnN0X3ByZWZpeCkKKysJICBpbnN0X3ByZWZpeF9kaXI9IiRhcmciCisrCSAg cHJldj0KKysJICBjb250aW51ZQorKwkgIDs7CisrCW9iamVjdGxpc3QpCisrCSAgaWYgdGVzdCAt ZiAiJGFyZyI7IHRoZW4KKysJICAgIHNhdmVfYXJnPSRhcmcKKysJICAgIG1vcmVhcmdzPQorKwkg ICAgZm9yIGZpbCBpbiBgY2F0ICIkc2F2ZV9hcmciYAorKwkgICAgZG8KKysjCSAgICAgIG1vcmVh cmdzPSIkbW9yZWFyZ3MgJGZpbCIKKysJICAgICAgYXJnPSRmaWwKKysJICAgICAgIyBBIGxpYnRv b2wtY29udHJvbGxlZCBvYmplY3QuCisrCisrCSAgICAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhp cyByZWFsbHkgaXMgYSBsaWJ0b29sIG9iamVjdC4KKysJICAgICAgaWYgZnVuY19sYWxpYl91bnNh ZmVfcCAiJGFyZyI7IHRoZW4KKysJCXBpY19vYmplY3Q9CisrCQlub25fcGljX29iamVjdD0KKysK KysJCSMgUmVhZCB0aGUgLmxvIGZpbGUKKysJCWZ1bmNfc291cmNlICIkYXJnIgorKworKwkJaWYg dGVzdCAteiAiJHBpY19vYmplY3QiIHx8CisrCQkgICB0ZXN0IC16ICIkbm9uX3BpY19vYmplY3Qi IHx8CisrCQkgICB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lICYmCisrCQkgICB0ZXN0ICIkbm9u X3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3Qg ZmluZCBuYW1lIG9mIG9iamVjdCBmb3IgXGAkYXJnJyIKKysJCWZpCisrCisrCQkjIEV4dHJhY3Qg c3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkJZnVuY19kaXJuYW1lICIkYXJnIiAi LyIgIiIKKysJCXhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwkJaWYgdGVzdCAiJHBp Y19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJCSAgIyBQcmVwZW5kIHRoZSBzdWJkaXJlY3Rvcnkg dGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJCSAgcGljX29iamVjdD0iJHhkaXIkcGljX29iamVj dCIKKysKKysJCSAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgorKwkJICAgIGlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIg PSB5ZXM7IHRoZW4KKysJCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRwaWNfb2JqZWN0IgorKwkJ ICAgICAgcHJldj0KKysJCSAgICAgIGNvbnRpbnVlCisrCQkgICAgZWxzZQorKwkJICAgICAgIyBJ ZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9h ZC4KKysJCSAgICAgIHByZXY9ZGxwcmVmaWxlcworKwkJICAgIGZpCisrCQkgIGZpCisrCisrCQkg ICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCisrCQkgIGlmIHRl c3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1z dHlsZSBvYmplY3QuCisrCQkgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3Qi CisrCQkgICAgcHJldj0KKysJCSAgZmkKKysKKysJCSAgIyBBIFBJQyBvYmplY3QuCisrCQkgIGZ1 bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKysJCSAgYXJnPSIkcGljX29iamVjdCIK KysJCWZpCisrCisrCQkjIE5vbi1QSUMgb2JqZWN0LgorKwkJaWYgdGVzdCAiJG5vbl9waWNfb2Jq ZWN0IiAhPSBub25lOyB0aGVuCisrCQkgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBv YmplY3QgaXMgZm91bmQgaW4uCisrCQkgIG5vbl9waWNfb2JqZWN0PSIkeGRpciRub25fcGljX29i amVjdCIKKysKKysJCSAgIyBBIHN0YW5kYXJkIG5vbi1QSUMgb2JqZWN0CisrCQkgIGZ1bmNfYXBw ZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKKysJCSAgaWYgdGVzdCAteiAi JHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgOyB0aGVuCisrCQkgICAg YXJnPSIkbm9uX3BpY19vYmplY3QiCisrCQkgIGZpCisrCQllbHNlCisrCQkgICMgSWYgdGhlIFBJ QyBvYmplY3QgZXhpc3RzLCB1c2UgaXQgaW5zdGVhZC4KKysJCSAgIyAkeGRpciB3YXMgcHJlcGVu ZGVkIHRvICRwaWNfb2JqZWN0IGFib3ZlLgorKwkJICBub25fcGljX29iamVjdD0iJHBpY19vYmpl Y3QiCisrCQkgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIK KysJCWZpCisrCSAgICAgIGVsc2UKKysJCSMgT25seSBhbiBlcnJvciBpZiBub3QgZG9pbmcgYSBk cnktcnVuLgorKwkJaWYgJG9wdF9kcnlfcnVuOyB0aGVuCisrCQkgICMgRXh0cmFjdCBzdWJkaXJl Y3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCisrCQkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIi CisrCQkgIHhkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwkJICBmdW5jX2xvMm8gIiRh cmciCisrCQkgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGlyLyRmdW5jX2xvMm9fcmVzdWx0CisrCQkg IG5vbl9waWNfb2JqZWN0PSR4ZGlyJGZ1bmNfbG8yb19yZXN1bHQKKysJCSAgZnVuY19hcHBlbmQg bGlib2JqcyAiICRwaWNfb2JqZWN0IgorKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMg IiAkbm9uX3BpY19vYmplY3QiCisrCSAgICAgICAgZWxzZQorKwkJICBmdW5jX2ZhdGFsX2Vycm9y ICJcYCRhcmcnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgb2JqZWN0IgorKwkJZmkKKysJICAgICAg ZmkKKysJICAgIGRvbmUKKysJICBlbHNlCisrCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJsaW5rIGlu cHV0IGZpbGUgXGAkYXJnJyBkb2VzIG5vdCBleGlzdCIKKysJICBmaQorKwkgIGFyZz0kc2F2ZV9h cmcKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJcHJlY2lvdXNfcmVnZXgpCisr CSAgcHJlY2lvdXNfZmlsZXNfcmVnZXg9IiRhcmciCisrCSAgcHJldj0KKysJICBjb250aW51ZQor KwkgIDs7CisrCXJlbGVhc2UpCisrCSAgcmVsZWFzZT0iLSRhcmciCisrCSAgcHJldj0KKysJICBj b250aW51ZQorKwkgIDs7CisrCXJwYXRoIHwgeHJwYXRoKQorKwkgICMgV2UgbmVlZCBhbiBhYnNv bHV0ZSBwYXRoLgorKwkgIGNhc2UgJGFyZyBpbgorKwkgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9d KikgOzsKKysJICAqKQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4t cGF0aHMgYXJlIGFsbG93ZWQiCisrCSAgICA7OworKwkgIGVzYWMKKysJICBpZiB0ZXN0ICIkcHJl diIgPSBycGF0aDsgdGhlbgorKwkgICAgY2FzZSAiJHJwYXRoICIgaW4KKysJICAgICoiICRhcmcg IiopIDs7CisrCSAgICAqKSBycGF0aD0iJHJwYXRoICRhcmciIDs7CisrCSAgICBlc2FjCisrCSAg ZWxzZQorKwkgICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAqIiAkYXJnICIqKSA7OworKwkg ICAgKikgeHJwYXRoPSIkeHJwYXRoICRhcmciIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJICBw cmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJc2hyZXh0KQorKwkgIHNocmV4dF9jbWRzPSIk YXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7OworKwl3ZWFrKQorKwkgIHdlYWtf bGlicz0iJHdlYWtfbGlicyAkYXJnIgorKwkgIHByZXY9CisrCSAgY29udGludWUKKysJICA7Owor Kwl4Y2NsaW5rZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRxYXJnIgorKwkg IGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisrCSAgcHJldj0KKysJICBm dW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKKysJICBmdW5jX2FwcGVuZCBmaW5h bGl6ZV9jb21tYW5kICIgJHFhcmciCisrCSAgY29udGludWUKKysJICA7OworKwl4Y29tcGlsZXIp CisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkcWFyZyIKKysJICBwcmV2PQor KwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgorKwkgIGZ1bmNfYXBwZW5k IGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKKysJICBjb250aW51ZQorKwkgIDs7CisrCXhsaW5r ZXIpCisrCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRxYXJnIgorKwkgIGNvbXBpbGVy X2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJHFhcmciCisrCSAgcHJldj0KKysJICBmdW5jX2Fw cGVuZCBjb21waWxlX2NvbW1hbmQgIiAkd2wkcWFyZyIKKysJICBmdW5jX2FwcGVuZCBmaW5hbGl6 ZV9jb21tYW5kICIgJHdsJHFhcmciCisrCSAgY29udGludWUKKysJICA7OworKwkqKQorKwkgIGV2 YWwgIiRwcmV2PVwiXCRhcmdcIiIKKysJICBwcmV2PQorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJ ZXNhYworKyAgICAgIGZpICMgdGVzdCAtbiAiJHByZXYiCisrCisrICAgICAgcHJldmFyZz0iJGFy ZyIKKysKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtYWxsLXN0YXRpYykKKysJaWYgdGVz dCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCisrCSAgIyBTZWUgY29tbWVudCBmb3IgLXN0 YXRpYyBmbGFnIGJlbG93LCBmb3IgbW9yZSBkZXRhaWxzLgorKwkgIGZ1bmNfYXBwZW5kIGNvbXBp bGVfY29tbWFuZCAiICRsaW5rX3N0YXRpY19mbGFnIgorKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXpl X2NvbW1hbmQgIiAkbGlua19zdGF0aWNfZmxhZyIKKysJZmkKKysJY29udGludWUKKysJOzsKKysK KysgICAgICAtYWxsb3ctdW5kZWZpbmVkKQorKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNv bWV0aW1lIGluIHRoZSBmdXR1cmUuCisrCWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93LXVuZGVm aW5lZCcgbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IgorKwk7Owor KworKyAgICAgIC1hdm9pZC12ZXJzaW9uKQorKwlhdm9pZF92ZXJzaW9uPXllcworKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1kbG9wZW4pCisrCXByZXY9ZGxmaWxlcworKwljb250aW51ZQor Kwk7OworKworKyAgICAgIC1kbHByZW9wZW4pCisrCXByZXY9ZGxwcmVmaWxlcworKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1leHBvcnQtZHluYW1pYykKKysJZXhwb3J0X2R5bmFtaWM9eWVz CisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLWV4cG9ydC1zeW1ib2xzIHwgLWV4cG9ydC1z eW1ib2xzLXJlZ2V4KQorKwlpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiIHx8IHRlc3QgLW4g IiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KKysJICBmdW5jX2ZhdGFsX2Vycm9yICJtb3Jl IHRoYW4gb25lIC1leHBvcnRlZC1zeW1ib2xzIGFyZ3VtZW50IGlzIG5vdCBhbGxvd2VkIgorKwlm aQorKwlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1leHBvcnQtc3ltYm9scyI7IHRoZW4KKysJICBwcmV2 PWV4cHN5bXMKKysJZWxzZQorKwkgIHByZXY9ZXhwc3ltc19yZWdleAorKwlmaQorKwljb250aW51 ZQorKwk7OworKworKyAgICAgIC1mcmFtZXdvcmspCisrCXByZXY9ZnJhbWV3b3JrCisrCWNvbnRp bnVlCisrCTs7CisrCisrICAgICAgLWluc3QtcHJlZml4LWRpcikKKysJcHJldj1pbnN0X3ByZWZp eAorKwljb250aW51ZQorKwk7OworKworKyAgICAgICMgVGhlIG5hdGl2ZSBJUklYIGxpbmtlciB1 bmRlcnN0YW5kcyAtTEFORzoqLCAtTElTVDoqIGFuZCAtTE5POioKKysgICAgICAjIHNvLCBpZiB3 ZSBzZWUgdGhlc2UgZmxhZ3MgYmUgY2FyZWZ1bCBub3QgdG8gdHJlYXQgdGhlbSBsaWtlIC1MCisr ICAgICAgLUxbQS1aXVtBLVpdKjoqKQorKwljYXNlICR3aXRoX2djYy8kaG9zdCBpbgorKwluby8q LSotaXJpeCogfCAvKi0qLWlyaXgqKQorKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAi ICRhcmciCisrCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrCSAgOzsK KysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1MKikKKysJZnVuY19zdHJpcG5h bWUgJy1MJyAnJyAiJGFyZyIKKysJZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJaWYgdGVz dCAteiAiJGRpciI7IHRoZW4KKysJICBpZiB0ZXN0ICIkIyIgLWd0IDA7IHRoZW4KKysJICAgIGZ1 bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSci CisrCSAgZWxzZQorKwkgICAgZnVuY19mYXRhbF9lcnJvciAibmVlZCBwYXRoIGZvciBcYC1MJyBv cHRpb24iCisrCSAgZmkKKysJZmkKKysJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisrCWNh c2UgJGRpciBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrCSopCisrCSAgYWJz ZGlyPWBjZCAiJGRpciIgJiYgcHdkYAorKwkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKKysJICAg IGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5h bWUgb2YgXGAkZGlyJyIKKysJICBkaXI9IiRhYnNkaXIiCisrCSAgOzsKKysJZXNhYworKwljYXNl ICIkZGVwbGlicyAiIGluCisrCSoiIC1MJGRpciAiKikgOzsKKysJKikKKysJICBkZXBsaWJzPSIk ZGVwbGlicyAtTCRkaXIiCisrCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRk aXIiCisrCSAgOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSotKi1jeWd3aW4qIHwgKi0q LW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi1jZWdjYyopCisrCSAgdGVzdGJpbmRp cj1gJEVDSE8gIlgkZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKKysJICBjYXNlIDok ZGxsc2VhcmNocGF0aDogaW4KKysJICAqIjokZGlyOiIqKSA7OworKwkgIDo6KSBkbGxzZWFyY2hw YXRoPSRkaXI7OworKwkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiRkaXIiOzsK KysJICBlc2FjCisrCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCisrCSAgKiI6JHRlc3RiaW5k aXI6IiopIDs7CisrCSAgOjopIGRsbHNlYXJjaHBhdGg9JHRlc3RiaW5kaXI7OworKwkgICopIGRs bHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7CisrCSAgZXNhYworKwkg IDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbCopCisrCWlmIHRlc3Qg IlgkYXJnIiA9ICJYLWxjIiB8fCB0ZXN0ICJYJGFyZyIgPSAiWC1sbSI7IHRoZW4KKysJICBjYXNl ICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0q LWJlb3MqIHwgKi1jZWdjYyopCisrCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkg aGF2ZSBhIEMgb3IgbWF0aCBsaWJyYXJ5IChhcyBzdWNoKQorKwkgICAgY29udGludWUKKysJICAg IDs7CisrCSAgKi0qLW9zMiopCisrCSAgICAjIFRoZXNlIHN5c3RlbXMgZG9uJ3QgYWN0dWFsbHkg aGF2ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKKysJICAgIHRlc3QgIlgkYXJnIiA9ICJYLWxjIiAm JiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAq LSotZHJhZ29uZmx5KikKKysJICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2 aW5nIGxpYmMvbGliY19yLgorKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRpbnVl CisrCSAgICA7OworKwkgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKKysJICAg ICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBsaWJyYXJpZXMgYXJlIGluIHRoZSBTeXN0ZW0gZnJhbWV3 b3JrCisrCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRmcmFtZXdvcmsiCisrCSAgICBj b250aW51ZQorKwkgICAgOzsKKysJICAqLSotc2NvMy4ydjUqIHwgKi0qLXNjbzV2NiopCisrCSAg ICAjIENhdXNlcyBwcm9ibGVtcyB3aXRoIF9fY3R5cGUKKysJICAgIHRlc3QgIlgkYXJnIiA9ICJY LWxjIiAmJiBjb250aW51ZQorKwkgICAgOzsKKysJICAqLSotc3lzdjQuMnV3MiogfCAqLSotc3lz djUqIHwgKi0qLXVuaXh3YXJlKiB8ICotKi1PcGVuVU5JWCopCisrCSAgICAjIENvbXBpbGVyIGlu c2VydHMgbGliYyBpbiB0aGUgY29ycmVjdCBwbGFjZSBmb3IgdGhyZWFkcyB0byB3b3JrCisrCSAg ICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKKysJICAgIDs7CisrCSAgZXNhYwor KwllbGlmIHRlc3QgIlgkYXJnIiA9ICJYLWxjX3IiOyB0aGVuCisrCSBjYXNlICRob3N0IGluCisr CSAqLSotb3BlbmJzZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKKysJICAgIyBE byBub3QgaW5jbHVkZSBsaWJjX3IgZGlyZWN0bHksIHVzZSAtcHRocmVhZCBmbGFnLgorKwkgICBj b250aW51ZQorKwkgICA7OworKwkgZXNhYworKwlmaQorKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJn IgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1tb2R1bGUpCisrCW1vZHVsZT15ZXMKKysJ Y29udGludWUKKysJOzsKKysKKysgICAgICAjIFRydTY0IFVOSVggdXNlcyAtbW9kZWwgW2FyZ10g dG8gZGV0ZXJtaW5lIHRoZSBsYXlvdXQgb2YgQysrCisrICAgICAgIyBjbGFzc2VzLCBuYW1lIG1h bmdsaW5nLCBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nLgorKyAgICAgICMgRGFyd2luIHVzZXMgdGhl IC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5lIG91dHB1dCBhcmNoaXRlY3R1cmUuCisrICAgICAgLW1v ZGVsfC1hcmNofC1pc3lzcm9vdCkKKysJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAk YXJnIgorKwlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorKwlmdW5jX2FwcGVu ZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKysJcHJldj14Y29tcGlsZXIKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFk fC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQorKwljb21waWxlcl9mbGFncz0iJGNv bXBpbGVyX2ZsYWdzICRhcmciCisrCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmci CisrCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgorKwljYXNlICIkbmV3X2lu aGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgorKwkgICAgKiIgJGFyZyAiKikgOzsKKysJICAgICog KSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdz ICRhcmciIDs7CisrCWVzYWMKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtbXVsdGlfbW9k dWxlKQorKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1bGUiCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLW5vLWZhc3QtaW5zdGFsbCkKKysJZmFzdF9pbnN0YWxsPW5vCisrCWNv bnRpbnVlCisrCTs7CisrCisrICAgICAgLW5vLWluc3RhbGwpCisrCWNhc2UgJGhvc3QgaW4KKysJ Ki0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLSotZGFy d2luKiB8ICotY2VnY2MqKQorKwkgICMgVGhlIFBBVEggaGFja2VyeSBpbiB3cmFwcGVyIHNjcmlw dHMgaXMgcmVxdWlyZWQgb24gV2luZG93cworKwkgICMgYW5kIERhcndpbiBpbiBvcmRlciBmb3Ig dGhlIGxvYWRlciB0byBmaW5kIGFueSBkbGxzIGl0IG5lZWRzLgorKwkgIGZ1bmNfd2FybmluZyAi XGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiCisrCSAgZnVuY193YXJuaW5nICJh c3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGluc3RlYWQiCisrCSAgZmFzdF9pbnN0YWxsPW5v CisrCSAgOzsKKysJKikgbm9faW5zdGFsbD15ZXMgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7 OworKworKyAgICAgIC1uby11bmRlZmluZWQpCisrCWFsbG93X3VuZGVmaW5lZD1ubworKwljb250 aW51ZQorKwk7OworKworKyAgICAgIC1vYmplY3RsaXN0KQorKwlwcmV2PW9iamVjdGxpc3QKKysJ Y29udGludWUKKysJOzsKKysKKysgICAgICAtbykgcHJldj1vdXRwdXQgOzsKKysKKysgICAgICAt cHJlY2lvdXMtZmlsZXMtcmVnZXgpCisrCXByZXY9cHJlY2lvdXNfcmVnZXgKKysJY29udGludWUK KysJOzsKKysKKysgICAgICAtcmVsZWFzZSkKKysJcHJldj1yZWxlYXNlCisrCWNvbnRpbnVlCisr CTs7CisrCisrICAgICAgLXJwYXRoKQorKwlwcmV2PXJwYXRoCisrCWNvbnRpbnVlCisrCTs7Cisr CisrICAgICAgLVIpCisrCXByZXY9eHJwYXRoCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg LVIqKQorKwlmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkYXJnIgorKwlkaXI9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAorKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KKysJY2FzZSAkZGlyIGlu CisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKKysJKikKKysJICBmdW5jX2ZhdGFsX2Vy cm9yICJvbmx5IGFic29sdXRlIHJ1bi1wYXRocyBhcmUgYWxsb3dlZCIKKysJICA7OworKwllc2Fj CisrCWNhc2UgIiR4cnBhdGggIiBpbgorKwkqIiAkZGlyICIqKSA7OworKwkqKSB4cnBhdGg9IiR4 cnBhdGggJGRpciIgOzsKKysJZXNhYworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1zaGFy ZWQpCisrCSMgVGhlIGVmZmVjdHMgb2YgLXNoYXJlZCBhcmUgZGVmaW5lZCBpbiBhIHByZXZpb3Vz IGxvb3AuCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXNocmV4dCkKKysJcHJldj1zaHJl eHQKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAtc3RhdGljIHwgLXN0YXRpYy1saWJ0b29s LWxpYnMpCisrCSMgVGhlIGVmZmVjdHMgb2YgLXN0YXRpYyBhcmUgZGVmaW5lZCBpbiBhIHByZXZp b3VzIGxvb3AuCisrCSMgV2UgdXNlZCB0byBkbyB0aGUgc2FtZSBhcyAtYWxsLXN0YXRpYyBvbiBw bGF0Zm9ybXMgdGhhdAorKwkjIGRpZG4ndCBoYXZlIGEgUElDIGZsYWcsIGJ1dCB0aGUgYXNzdW1w dGlvbiB0aGF0IHRoZSBlZmZlY3RzCisrCSMgd291bGQgYmUgZXF1aXZhbGVudCB3YXMgd3Jvbmcu ICBJdCB3b3VsZCBicmVhayBvbiBhdCBsZWFzdAorKwkjIERpZ2l0YWwgVW5peCBhbmQgQUlYLgor Kwljb250aW51ZQorKwk7OworKworKyAgICAgIC10aHJlYWQtc2FmZSkKKysJdGhyZWFkX3NhZmU9 eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLXZlcnNpb24taW5mbykKKysJcHJldj12 aW5mbworKwljb250aW51ZQorKwk7OworKworKyAgICAgIC12ZXJzaW9uLW51bWJlcikKKysJcHJl dj12aW5mbworKwl2aW5mb19udW1iZXI9eWVzCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAg LXdlYWspCisrICAgICAgICBwcmV2PXdlYWsKKysJY29udGludWUKKysJOzsKKysKKysgICAgICAt V2MsKikKKysJZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgorKwlhcmdzPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKKysJYXJnPQorKwlzYXZlX2lmcz0iJElGUyI7IElGUz0nLCcKKysJZm9y IGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisrICAgICAgICAgIGZ1bmNf cXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorKwkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3Jf ZXZhbF9yZXN1bHQiCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkZnVuY19x dW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCWRvbmUKKysJSUZTPSIkc2F2ZV9pZnMiCisrCWZ1bmNf c3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKKysJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJ OzsKKysKKysgICAgICAtV2wsKikKKysJZnVuY19zdHJpcG5hbWUgJy1XbCwnICcnICIkYXJnIgor KwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJYXJnPQorKwlzYXZlX2lmcz0iJElGUyI7 IElGUz0nLCcKKysJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCisrCSAgSUZTPSIkc2F2ZV9pZnMiCisr ICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgorKwkgIGFyZz0iJGFyZyAkd2wk ZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxl cl9mbGFncyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCSAgbGlua2VyX2ZsYWdz PSIkbGlua2VyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJZG9uZQorKwlJ RlM9IiRzYXZlX2lmcyIKKysJZnVuY19zdHJpcG5hbWUgJyAnICcnICIkYXJnIgorKwlhcmc9JGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwk7OworKworKyAgICAgIC1YY29tcGlsZXIpCisrCXByZXY9 eGNvbXBpbGVyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgLVhsaW5rZXIpCisrCXByZXY9 eGxpbmtlcgorKwljb250aW51ZQorKwk7OworKworKyAgICAgIC1YQ0NsaW5rZXIpCisrCXByZXY9 eGNjbGlua2VyCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgIyAtbXNnXyogZm9yIG9zZiBj YworKyAgICAgIC1tc2dfKikKKysJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIk ZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7CisrCisrICAgICAgIyAtNjQsIC1taXBz WzAtOV0gZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTR0kgY29tcGlsZXIKKysgICAgICAjIC1y WzAtOV1bMC05XSogc3BlY2lmaWVzIHRoZSBwcm9jZXNzb3Igb24gdGhlIFNHSSBjb21waWxlcgor KyAgICAgICMgLXhhcmNoPSosIC14dGFyZ2V0PSogZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBT dW4gY29tcGlsZXIKKysgICAgICAjICtEQSosICtERCogZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRo ZSBIUCBjb21waWxlcgorKyAgICAgICMgLXEqIHBhc3MgdGhyb3VnaCBjb21waWxlciBhcmdzIGZv ciB0aGUgSUJNIGNvbXBpbGVyCisrICAgICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBwYXNz IHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCisrICAgICAgIyBjb21waWxlciBhcmdzIGZv ciBHQ0MKKysgICAgICAjIC1GL3BhdGggZ2l2ZXMgcGF0aCB0byB1bmluc3RhbGxlZCBmcmFtZXdv cmtzLCBnY2Mgb24gZGFyd2luCisrICAgICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAtZnByb2Zp bGUtKiBwYXNzIHRocm91Z2ggcHJvZmlsaW5nIGZsYWcgZm9yIEdDQworKyAgICAgICMgQGZpbGUg R0NDIHJlc3BvbnNlIGZpbGVzCisrICAgICAgLTY0fC1taXBzWzAtOV18LXJbMC05XVswLTldKnwt eGFyY2g9KnwteHRhcmdldD0qfCtEQSp8K0REKnwtcSp8LW0qfCBcCisrICAgICAgLXRbNDVdKnwt dHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqKQorKyAgICAgICAg ZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9y ZXN1bHQiCisrICAgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgorKyAg ICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCisrICAgICAgICBjb21w aWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisrICAgICAgICBjb250aW51ZQorKyAg ICAgICAgOzsKKysKKysgICAgICAjIFNvbWUgb3RoZXIgY29tcGlsZXIgZmxhZy4KKysgICAgICAt KiB8ICsqKQorKyAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKKysJYXJnPSIkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisrCTs7CisrCisrICAgICAgKi4kb2JqZXh0KQorKwkj IEEgc3RhbmRhcmQgb2JqZWN0LgorKwlvYmpzPSIkb2JqcyAkYXJnIgorKwk7OworKworKyAgICAg ICoubG8pCisrCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgorKworKwkjIENoZWNrIHRv IHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCisrCWlmIGZ1bmNfbGFs aWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCisrCSAgcGljX29iamVjdD0KKysJICBub25fcGljX29i amVjdD0KKysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisrCSAgZnVuY19zb3VyY2UgIiRhcmci CisrCisrCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8CisrCSAgICAgdGVzdCAteiAiJG5v bl9waWNfb2JqZWN0IiB8fAorKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUgJiYKKysJ ICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgorKwkgICAgZnVuY19mYXRh bF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxgJGFyZyciCisrCSAgZmkK KysKKysJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorKwkgIGZ1 bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCSAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQi CisrCisrCSAgaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KKysJICAgICMgUHJl cGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCisrCSAgICBwaWNf b2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgorKworKwkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxm aWxlczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllcyAm JiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCisrCQlkbGZpbGVzPSIkZGxmaWxl cyAkcGljX29iamVjdCIKKysJCXByZXY9CisrCQljb250aW51ZQorKwkgICAgICBlbHNlCisrCQkj IElmIGxpYnRvb2wgb2JqZWN0cyBhcmUgdW5zdXBwb3J0ZWQsIHRoZW4gd2UgbmVlZCB0byBwcmVs b2FkLgorKwkJcHJldj1kbHByZWZpbGVzCisrCSAgICAgIGZpCisrCSAgICBmaQorKworKwkgICAg IyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1Pc3NhbWEKKysJICAgIGlmIHRl c3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAgICAgIyBQcmVsb2FkIHRoZSBvbGQt c3R5bGUgb2JqZWN0LgorKwkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVj dCIKKysJICAgICAgcHJldj0KKysJICAgIGZpCisrCisrCSAgICAjIEEgUElDIG9iamVjdC4KKysJ ICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29iamVjdCIKKysJICAgIGFyZz0iJHBpY19v YmplY3QiCisrCSAgZmkKKysKKysJICAjIE5vbi1QSUMgb2JqZWN0LgorKwkgIGlmIHRlc3QgIiRu b25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgorKwkgICAgIyBQcmVwZW5kIHRoZSBzdWJkaXJl Y3RvcnkgdGhlIG9iamVjdCBpcyBmb3VuZCBpbi4KKysJICAgIG5vbl9waWNfb2JqZWN0PSIkeGRp ciRub25fcGljX29iamVjdCIKKysKKysJICAgICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAor KwkgICAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2JqZWN0IgorKwkg ICAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8IHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5vbmUg OyB0aGVuCisrCSAgICAgIGFyZz0iJG5vbl9waWNfb2JqZWN0IgorKwkgICAgZmkKKysJICBlbHNl CisrCSAgICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0cywgdXNlIGl0IGluc3RlYWQuCisrCSAg ICAjICR4ZGlyIHdhcyBwcmVwZW5kZWQgdG8gJHBpY19vYmplY3QgYWJvdmUuCisrCSAgICBub25f cGljX29iamVjdD0iJHBpY19vYmplY3QiCisrCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVj dHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgZmkKKysJZWxzZQorKwkgICMgT25seSBhbiBlcnJv ciBpZiBub3QgZG9pbmcgYSBkcnktcnVuLgorKwkgIGlmICRvcHRfZHJ5X3J1bjsgdGhlbgorKwkg ICAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KKysJICAgIGZ1bmNf ZGlybmFtZSAiJGFyZyIgIi8iICIiCisrCSAgICB4ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIK KysKKysJICAgIGZ1bmNfbG8ybyAiJGFyZyIKKysJICAgIHBpY19vYmplY3Q9JHhkaXIkb2JqZGly LyRmdW5jX2xvMm9fcmVzdWx0CisrCSAgICBub25fcGljX29iamVjdD0keGRpciRmdW5jX2xvMm9f cmVzdWx0CisrCSAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHBpY19vYmplY3QiCisrCSAgICBm dW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCisrCSAgZWxzZQor KwkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIG9i amVjdCIKKysJICBmaQorKwlmaQorKwk7OworKworKyAgICAgICouJGxpYmV4dCkKKysJIyBBbiBh cmNoaXZlLgorKwlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgorKwlvbGRfZGVwbGlicz0iJG9sZF9k ZXBsaWJzICRhcmciCisrCWNvbnRpbnVlCisrCTs7CisrCisrICAgICAgKi5sYSkKKysJIyBBIGxp YnRvb2wtY29udHJvbGxlZCBsaWJyYXJ5LgorKworKwlpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVz OyB0aGVuCisrCSAgIyBUaGlzIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbG9wZW4uCisr CSAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKysJICBwcmV2PQorKwllbGlmIHRlc3QgIiRwcmV2 IiA9IGRscHJlZmlsZXM7IHRoZW4KKysJICAjIFRoZSBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0 aCAtZGxwcmVvcGVuLgorKwkgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRhcmciCisrCSAgcHJl dj0KKysJZWxzZQorKwkgIGRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisrCWZpCisrCWNvbnRpbnVl CisrCTs7CisrCisrICAgICAgIyBTb21lIG90aGVyIGNvbXBpbGVyIGFyZ3VtZW50LgorKyAgICAg ICopCisrCSMgVW5rbm93biBhcmd1bWVudHMgaW4gYm90aCBmaW5hbGl6ZV9jb21tYW5kIGFuZCBj b21waWxlX2NvbW1hbmQgbmVlZAorKwkjIHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJlY2F1 c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVyLgorKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgor Kwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKysJOzsKKysgICAgICBlc2FjICMg YXJnCisrCisrICAgICAgIyBOb3cgYWN0dWFsbHkgc3Vic3RpdHV0ZSB0aGUgYXJndW1lbnQgaW50 byB0aGUgY29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJGFyZyI7IHRoZW4KKysJZnVuY19h cHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysJZnVuY19hcHBlbmQgZmluYWxpemVfY29t bWFuZCAiICRhcmciCisrICAgICAgZmkKKysgICAgZG9uZSAjIGFyZ3VtZW50IHBhcnNpbmcgbG9v cAorKworKyAgICB0ZXN0IC1uICIkcHJldiIgJiYgXAorKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAi dGhlIFxgJHByZXZhcmcnIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIKKysKKysgICAgaWYg dGVzdCAiJGV4cG9ydF9keW5hbWljIiA9IHllcyAmJiB0ZXN0IC1uICIkZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjIjsgdGhlbgorKyAgICAgIGV2YWwgYXJnPVwiJGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY1wiCisrICAgICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKKysgICAg ICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKKysgICAgZmkKKysKKysgICAg b2xkbGlicz0KKysgICAgIyBjYWxjdWxhdGUgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIHdpdGhvdXQg aXRzIGRpcmVjdG9yeQorKyAgICBmdW5jX2Jhc2VuYW1lICIkb3V0cHV0IgorKyAgICBvdXRwdXRu YW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrICAgIGxpYm9ianNfc2F2ZT0iJGxpYm9ianMi CisrCisrICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorKyAgICAgICMgZ2V0 IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJHNobGlicGF0aF92YXIKKysgICAgICBldmFsIHNo bGliX3NlYXJjaF9wYXRoPVxgXCRFQ0hPIFwiWFwkeyRzaGxpYnBhdGhfdmFyfVwiIFx8IFwkWHNl ZCAtZSBcJ3MvOi8gL2dcJ1xgCisrICAgIGVsc2UKKysgICAgICBzaGxpYl9zZWFyY2hfcGF0aD0K KysgICAgZmkKKysgICAgZXZhbCBzeXNfbGliX3NlYXJjaF9wYXRoPVwiJHN5c19saWJfc2VhcmNo X3BhdGhfc3BlY1wiCisrICAgIGV2YWwgc3lzX2xpYl9kbHNlYXJjaF9wYXRoPVwiJHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjXCIKKysKKysgICAgZnVuY19kaXJuYW1lICIkb3V0cHV0IiAiLyIg IiIKKysgICAgb3V0cHV0X29iamRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkb2JqZGlyIgorKyAg ICAjIENyZWF0ZSB0aGUgb2JqZWN0IGRpcmVjdG9yeS4KKysgICAgZnVuY19ta2Rpcl9wICIkb3V0 cHV0X29iamRpciIKKysKKysgICAgIyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygb3V0cHV0CisrICAg IGNhc2UgJG91dHB1dCBpbgorKyAgICAiIikKKysgICAgICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBt dXN0IHNwZWNpZnkgYW4gb3V0cHV0IGZpbGUiCisrICAgICAgOzsKKysgICAgKi4kbGliZXh0KSBs aW5rbW9kZT1vbGRsaWIgOzsKKysgICAgKi5sbyB8ICouJG9iamV4dCkgbGlua21vZGU9b2JqIDs7 CisrICAgICoubGEpIGxpbmttb2RlPWxpYiA7OworKyAgICAqKSBsaW5rbW9kZT1wcm9nIDs7ICMg QW55dGhpbmcgZWxzZSBzaG91bGQgYmUgYSBwcm9ncmFtLgorKyAgICBlc2FjCisrCisrICAgIHNw ZWNpYWxkZXBsaWJzPQorKworKyAgICBsaWJzPQorKyAgICAjIEZpbmQgYWxsIGludGVyZGVwZW5k ZW50IGRlcGxpYnMgYnkgc2VhcmNoaW5nIGZvciBsaWJyYXJpZXMKKysgICAgIyB0aGF0IGFyZSBs aW5rZWQgbW9yZSB0aGFuIG9uY2UgKGUuZy4gLWxhIC1sYiAtbGEpCisrICAgIGZvciBkZXBsaWIg aW4gJGRlcGxpYnM7IGRvCisrICAgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KKysJ Y2FzZSAiJGxpYnMgIiBpbgorKwkqIiAkZGVwbGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNp YWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGxpYnM9IiRs aWJzICRkZXBsaWIiCisrICAgIGRvbmUKKysKKysgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxp YjsgdGhlbgorKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21waWxlcl9saWJfc2VhcmNo X3BhdGggJHBvc3RkZXBzIgorKworKyAgICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhhdCBhcmUg bGlzdGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCisrICAgICAgIyAkcG9zdGRlcHMgYW5k IG1hcmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQorKyAgICAg ICMgbm90IHRvIGJlIGVsaW1pbmF0ZWQpLgorKyAgICAgIHByZV9wb3N0X2RlcHM9CisrICAgICAg aWYgJG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM7IHRoZW4KKysJZm9yIHBy ZV9wb3N0X2RlcCBpbiAkcHJlZGVwcyAkcG9zdGRlcHM7IGRvCisrCSAgY2FzZSAiJHByZV9wb3N0 X2RlcHMgIiBpbgorKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3Bl Y2lhbGRlcGxpYnMgJHByZV9wb3N0X2RlcHMiIDs7CisrCSAgZXNhYworKwkgIHByZV9wb3N0X2Rl cHM9IiRwcmVfcG9zdF9kZXBzICRwcmVfcG9zdF9kZXAiCisrCWRvbmUKKysgICAgICBmaQorKyAg ICAgIHByZV9wb3N0X2RlcHM9CisrICAgIGZpCisrCisrICAgIGRlcGxpYnM9CisrICAgIG5ld2Rl cGVuZGVuY3lfbGlicz0KKysgICAgbmV3bGliX3NlYXJjaF9wYXRoPQorKyAgICBuZWVkX3JlbGlu az1ubyAjIHdoZXRoZXIgd2UncmUgbGlua2luZyBhbnkgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJy YXJpZXMKKysgICAgbm90aW5zdF9kZXBsaWJzPSAjIG5vdC1pbnN0YWxsZWQgbGlidG9vbCBsaWJy YXJpZXMKKysgICAgbm90aW5zdF9wYXRoPSAjIHBhdGhzIHRoYXQgY29udGFpbiBub3QtaW5zdGFs bGVkIGxpYnRvb2wgbGlicmFyaWVzCisrCisrICAgIGNhc2UgJGxpbmttb2RlIGluCisrICAgIGxp YikKKysJcGFzc2VzPSJjb252IGRscHJlb3BlbiBsaW5rIgorKwlmb3IgZmlsZSBpbiAkZGxmaWxl cyAkZGxwcmVmaWxlczsgZG8KKysJICBjYXNlICRmaWxlIGluCisrCSAgKi5sYSkgOzsKKysJICAq KQorKwkgICAgZnVuY19mYXRhbF9oZWxwICJsaWJyYXJpZXMgY2FuIFxgLWRsb3Blbicgb25seSBs aWJ0b29sIGxpYnJhcmllczogJGZpbGUiCisrCSAgICA7OworKwkgIGVzYWMKKysJZG9uZQorKwk7 OworKyAgICBwcm9nKQorKwljb21waWxlX2RlcGxpYnM9CisrCWZpbmFsaXplX2RlcGxpYnM9Cisr CWFsbGRlcGxpYnM9bm8KKysJbmV3ZGxmaWxlcz0KKysJbmV3ZGxwcmVmaWxlcz0KKysJcGFzc2Vz PSJjb252IHNjYW4gZGxvcGVuIGRscHJlb3BlbiBsaW5rIgorKwk7OworKyAgICAqKSAgcGFzc2Vz PSJjb252IgorKwk7OworKyAgICBlc2FjCisrCisrICAgIGZvciBwYXNzIGluICRwYXNzZXM7IGRv CisrICAgICAgIyBUaGUgcHJlb3BlbiBwYXNzIGluIGxpYiBtb2RlIHJldmVyc2VzICRkZXBsaWJz OyBwdXQgaXQgYmFjayBoZXJlCisrICAgICAgIyBzbyB0aGF0IC1MIGNvbWVzIGJlZm9yZSBsaWJz IHRoYXQgbmVlZCBpdCBmb3IgaW5zdGFuY2UuLi4KKysgICAgICBpZiB0ZXN0ICIkbGlua21vZGUs JHBhc3MiID0gImxpYixsaW5rIjsgdGhlbgorKwkjIyBGSVhNRTogRmluZCB0aGUgcGxhY2Ugd2hl cmUgdGhlIGxpc3QgaXMgcmVidWlsdCBpbiB0aGUgd3JvbmcKKysJIyMgICAgICAgIG9yZGVyLCBh bmQgZml4IGl0IHRoZXJlIHByb3Blcmx5CisrICAgICAgICB0bXBfZGVwbGlicz0KKysJZm9yIGRl cGxpYiBpbiAkZGVwbGliczsgZG8KKysJICB0bXBfZGVwbGlicz0iJGRlcGxpYiAkdG1wX2RlcGxp YnMiCisrCWRvbmUKKysJZGVwbGlicz0iJHRtcF9kZXBsaWJzIgorKyAgICAgIGZpCisrCisrICAg ICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKKysJIHRlc3QgIiRs aW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIjsgdGhlbgorKwlsaWJzPSIkZGVwbGlicyIKKysJ ZGVwbGlicz0KKysgICAgICBmaQorKyAgICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0 aGVuCisrCWNhc2UgJHBhc3MgaW4KKysJZGxvcGVuKSBsaWJzPSIkZGxmaWxlcyIgOzsKKysJZGxw cmVvcGVuKSBsaWJzPSIkZGxwcmVmaWxlcyIgOzsKKysJbGluaykgbGlicz0iJGRlcGxpYnMgJURF UExJQlMlICRkZXBlbmRlbmN5X2xpYnMiIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIGlm IHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGRscHJlb3BlbiI7IHRoZW4KKysJIyBDb2xs ZWN0IGFuZCBmb3J3YXJkIGRlcGxpYnMgb2YgcHJlb3BlbmVkIGxpYnRvb2wgbGlicworKwlmb3Ig bGliIGluICRkbHByZWZpbGVzOyBkbworKwkgICMgSWdub3JlIG5vbi1saWJ0b29sLWxpYnMKKysJ ICBkZXBlbmRlbmN5X2xpYnM9CisrCSAgY2FzZSAkbGliIGluCisrCSAgKi5sYSkJZnVuY19zb3Vy Y2UgIiRsaWIiIDs7CisrCSAgZXNhYworKworKwkgICMgQ29sbGVjdCBwcmVvcGVuZWQgbGlidG9v bCBkZXBsaWJzLCBleGNlcHQgYW55IHRoaXMgbGlicmFyeQorKwkgICMgaGFzIGRlY2xhcmVkIGFz IHdlYWsgbGlicworKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysgICAg ICAgICAgICBkZXBsaWJfYmFzZT1gJEVDSE8gIlgkZGVwbGliIiB8ICRYc2VkIC1lICIkYmFzZW5h bWUiYAorKwkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgorKwkgICAgKiIgJGRlcGxpYl9iYXNl ICIqKSA7OworKwkgICAgKikgZGVwbGlicz0iJGRlcGxpYnMgJGRlcGxpYiIgOzsKKysJICAgIGVz YWMKKysJICBkb25lCisrCWRvbmUKKysJbGlicz0iJGRscHJlZmlsZXMiCisrICAgICAgZmkKKysg ICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbG9wZW47IHRoZW4KKysJIyBDb2xsZWN0IGRscHJlb3Bl bmVkIGxpYnJhcmllcworKwlzYXZlX2RlcGxpYnM9IiRkZXBsaWJzIgorKwlkZXBsaWJzPQorKyAg ICAgIGZpCisrCisrICAgICAgZm9yIGRlcGxpYiBpbiAkbGliczsgZG8KKysJbGliPQorKwlmb3Vu ZD1ubworKwljYXNlICRkZXBsaWIgaW4KKysJLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVh ZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZXwtdGhyZWFkcykKKysJICBpZiB0ZXN0 ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAgIGNvbXBpbGVfZGVw bGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmluYWxpemVfZGVwbGlicz0i JGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNlCisrCSAgICBjb21waWxlcl9mbGFn cz0iJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWIiCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0g bGliIDsgdGhlbgorKwkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KKysJ CSAgICAqIiAkZGVwbGliICIqKSA7OworKwkJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9m bGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIiIDs7CisrCQllc2FjCisr CSAgICBmaQorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7OworKwktbCopCisrCSAgaWYgdGVz dCAiJGxpbmttb2RlIiAhPSBsaWIgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBwcm9nOyB0aGVuCisr CSAgICBmdW5jX3dhcm5pbmcgIlxgLWwnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29iamVjdHMi CisrCSAgICBjb250aW51ZQorKwkgIGZpCisrCSAgZnVuY19zdHJpcG5hbWUgJy1sJyAnJyAiJGRl cGxpYiIKKysJICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJICBpZiB0ZXN0ICIkbGlu a21vZGUiID0gbGliOyB0aGVuCisrCSAgICBzZWFyY2hkaXJzPSIkbmV3bGliX3NlYXJjaF9wYXRo ICRsaWJfc2VhcmNoX3BhdGggJGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlycyAkc3lzX2xpYl9zZWFy Y2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGgiCisrCSAgZWxzZQorKwkgICAgc2VhcmNoZGlycz0i JG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRo ICRzaGxpYl9zZWFyY2hfcGF0aCIKKysJICBmaQorKwkgIGZvciBzZWFyY2hkaXIgaW4gJHNlYXJj aGRpcnM7IGRvCisrCSAgICBmb3Igc2VhcmNoX2V4dCBpbiAubGEgJHN0ZF9zaHJleHQgLnNvIC5h OyBkbworKwkgICAgICAjIFNlYXJjaCB0aGUgbGlidG9vbCBsaWJyYXJ5CisrCSAgICAgIGxpYj0i JHNlYXJjaGRpci9saWIke25hbWV9JHtzZWFyY2hfZXh0fSIKKysJICAgICAgaWYgdGVzdCAtZiAi JGxpYiI7IHRoZW4KKysJCWlmIHRlc3QgIiRzZWFyY2hfZXh0IiA9ICIubGEiOyB0aGVuCisrCQkg IGZvdW5kPXllcworKwkJZWxzZQorKwkJICBmb3VuZD1ubworKwkJZmkKKysJCWJyZWFrIDIKKysJ ICAgICAgZmkKKysJICAgIGRvbmUKKysJICBkb25lCisrCSAgaWYgdGVzdCAiJGZvdW5kIiAhPSB5 ZXM7IHRoZW4KKysJICAgICMgZGVwbGliIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGxpYnRvb2wgbGli cmFyeQorKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVu CisrCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkg ICAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAg ZWxzZQorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgICB0ZXN0ICIk bGlua21vZGUiID0gbGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5k ZW5jeV9saWJzIgorKwkgICAgZmkKKysJICAgIGNvbnRpbnVlCisrCSAgZWxzZSAjIGRlcGxpYiBp cyBhIGxpYnRvb2wgbGlicmFyeQorKwkgICAgIyBJZiAkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhf c3RhdGljX3J1bnRpbWVzICYmICRkZXBsaWIgaXMgYSBzdGRsaWIsCisrCSAgICAjIFdlIG5lZWQg dG8gZG8gc29tZSBzcGVjaWFsIHRoaW5ncyBoZXJlLCBhbmQgbm90IGxhdGVyLgorKwkgICAgaWYg dGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMi IDsgdGhlbgorKwkgICAgICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KKysJICAgICAg KiIgJGRlcGxpYiAiKikKKysJCWlmIGZ1bmNfbGFsaWJfcCAiJGxpYiI7IHRoZW4KKysJCSAgbGli cmFyeV9uYW1lcz0KKysJCSAgb2xkX2xpYnJhcnk9CisrCQkgIGZ1bmNfc291cmNlICIkbGliIgor KwkJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCisrCQkgICAgbGw9 IiRsIgorKwkJICBkb25lCisrCQkgIGlmIHRlc3QgIlgkbGwiID0gIlgkb2xkX2xpYnJhcnkiIDsg dGhlbiAjIG9ubHkgc3RhdGljIHZlcnNpb24gYXZhaWxhYmxlCisrCQkgICAgZm91bmQ9bm8KKysJ CSAgICBmdW5jX2Rpcm5hbWUgIiRsaWIiICIiICIuIgorKwkJICAgIGxhZGlyPSIkZnVuY19kaXJu YW1lX3Jlc3VsdCIKKysJCSAgICBsaWI9JGxhZGlyLyRvbGRfbGlicmFyeQorKwkJICAgIGlmIHRl c3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgorKwkJICAgICAgY29tcGls ZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCisrCQkgICAgICBmaW5hbGl6ZV9k ZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkJICAgIGVsc2UKKysJCSAgICAg IGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCQkgICAgICB0ZXN0ICIkbGlua21vZGUiID0g bGliICYmIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgor KwkJICAgIGZpCisrCQkgICAgY29udGludWUKKysJCSAgZmkKKysJCWZpCisrCQk7OworKwkgICAg ICAqKSA7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgOzsgIyAtbAorKwkq Lmx0ZnJhbWV3b3JrKQorKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5r IjsgdGhlbgorKwkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMi CisrCSAgICBmaW5hbGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkg IGVsc2UKKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBpZiB0ZXN0ICIk bGlua21vZGUiID0gbGliIDsgdGhlbgorKwkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2Zs YWdzICIgaW4KKysJCSAgICAqIiAkZGVwbGliICIqKSA7OworKwkJICAgICogKSBuZXdfaW5oZXJp dGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIiIDs7 CisrCQllc2FjCisrCSAgICBmaQorKwkgIGZpCisrCSAgY29udGludWUKKysJICA7OworKwktTCop CisrCSAgY2FzZSAkbGlua21vZGUgaW4KKysJICBsaWIpCisrCSAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgorKwkgICAgdGVzdCAiJHBhc3MiID0gY29udiAmJiBjb250aW51ZQorKwkgICAg bmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCisrCSAgICBm dW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgorKwkgICAgbmV3bGliX3NlYXJjaF9wYXRo PSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisrCSAgICA7Owor KwkgIHByb2cpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCisrCSAgICAgIGRl cGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICAgIGNvbnRpbnVlCisrCSAgICBmaQorKwkg ICAgaWYgdGVzdCAiJHBhc3MiID0gc2NhbjsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIg JGNvbXBpbGVfZGVwbGlicyIKKysJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKKysJICAgIGZpCisrCSAgICBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIk ZGVwbGliIgorKwkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRm dW5jX3N0cmlwbmFtZV9yZXN1bHQiCisrCSAgICA7OworKwkgICopCisrCSAgICBmdW5jX3dhcm5p bmcgIlxgLUwnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29iamVjdHMiCisrCSAgICA7OworKwkg IGVzYWMgIyBsaW5rbW9kZQorKwkgIGNvbnRpbnVlCisrCSAgOzsgIyAtTAorKwktUiopCisrCSAg aWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgorKwkgICAgZnVuY19zdHJpcG5hbWUgJy1SJyAn JyAiJGRlcGxpYiIKKysJICAgIGRpcj0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAjIE1h a2Ugc3VyZSB0aGUgeHJwYXRoIGNvbnRhaW5zIG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgorKwkg ICAgY2FzZSAiJHhycGF0aCAiIGluCisrCSAgICAqIiAkZGlyICIqKSA7OworKwkgICAgKikgeHJw YXRoPSIkeHJwYXRoICRkaXIiIDs7CisrCSAgICBlc2FjCisrCSAgZmkKKysJICBkZXBsaWJzPSIk ZGVwbGliICRkZXBsaWJzIgorKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJKi5sYSkgbGliPSIkZGVw bGliIiA7OworKwkqLiRsaWJleHQpCisrCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgor KwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKysJICAgIGNvbnRpbnVlCisrCSAgZmkK KysJICBjYXNlICRsaW5rbW9kZSBpbgorKwkgIGxpYikKKysJICAgICMgTGlua2luZyBjb252ZW5p ZW5jZSBtb2R1bGVzIGludG8gc2hhcmVkIGxpYnJhcmllcyBpcyBhbGxvd2VkLAorKwkgICAgIyBi dXQgbGlua2luZyBvdGhlciBzdGF0aWMgbGlicmFyaWVzIGlzIG5vbi1wb3J0YWJsZS4KKysJICAg IGNhc2UgIiAkZGxwcmVjb252ZW5pZW5jZWxpYnMgIiBpbgorKwkgICAgKiIgJGRlcGxpYiAiKikg OzsKKysJICAgICopCisrCSAgICAgIHZhbGlkX2FfbGliPW5vCisrCSAgICAgIGNhc2UgJGRlcGxp YnNfY2hlY2tfbWV0aG9kIGluCisrCQltYXRjaF9wYXR0ZXJuKikKKysJCSAgc2V0IGR1bW15ICRk ZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKKysJCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhw ciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAorKwkJICBpZiBldmFsICJc JEVDSE8gXCJYJGRlcGxpYlwiIiAyPi9kZXYvbnVsbCB8ICRYc2VkIC1lIDEwcSBcCisrCQkgICAg fCAkRUdSRVAgIiRtYXRjaF9wYXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkJICAg IHZhbGlkX2FfbGliPXllcworKwkJICBmaQorKwkJOzsKKysJCXBhc3NfYWxsKQorKwkJICB2YWxp ZF9hX2xpYj15ZXMKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgaWYgdGVzdCAiJHZhbGlk X2FfbGliIiAhPSB5ZXM7IHRoZW4KKysJCSRFQ0hPCisrCQkkRUNITyAiKioqIFdhcm5pbmc6IFRy eWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxpYiBhcmNoaXZlICRkZXBsaWIuIgorKwkJJEVDSE8g IioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGlj YWxseSBsaW5rIGluIHdoZW4iCisrCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFy eS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSRFQ0hPICIqKiog c2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRv IGhhdmUiCisrCQkkRUNITyAiKioqIGJlY2F1c2UgdGhlIGZpbGUgZXh0ZW5zaW9ucyAuJGxpYmV4 dCBvZiB0aGlzIGFyZ3VtZW50IG1ha2VzIG1lIGJlbGlldmUiCisrCQkkRUNITyAiKioqIHRoYXQg aXQgaXMganVzdCBhIHN0YXRpYyBhcmNoaXZlIHRoYXQgSSBzaG91bGQgbm90IHVzZSBoZXJlLiIK KysJICAgICAgZWxzZQorKwkJJEVDSE8KKysJCSRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0 aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSIKKysJCSRFQ0hPICIqKiogc3Rh dGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFibGUhIgorKwkJZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKKysJICAgICAgZmkKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIGNv bnRpbnVlCisrCSAgICA7OworKwkgIHByb2cpCisrCSAgICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGlu azsgdGhlbgorKwkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgorKwkgICAgZWxzZQor KwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAg ICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGZp CisrCSAgICBjb250aW51ZQorKwkgICAgOzsKKysJICBlc2FjICMgbGlua21vZGUKKysJICA7OyAj ICouJGxpYmV4dAorKwkqLmxvIHwgKi4kb2JqZXh0KQorKwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNv bnY7IHRoZW4KKysJICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0 ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVv cGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgICAgIyBJZiB0aGVyZSBpcyBubyBkbG9wZW4gc3Vw cG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHksCisrCSAgICAgICMgd2UgbmVlZCB0byBw cmVsb2FkLgorKwkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGVwbGliIgor KwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKKysJICAg ICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICAgIGVs c2UKKysJICAgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGRlcGxpYiIKKysJICAgIGZpCisr CSAgZmkKKysJICBjb250aW51ZQorKwkgIDs7CisrCSVERVBMSUJTJSkKKysJICBhbGxkZXBsaWJz PXllcworKwkgIGNvbnRpbnVlCisrCSAgOzsKKysJZXNhYyAjIGNhc2UgJGRlcGxpYgorKworKwlp ZiB0ZXN0ICIkZm91bmQiID0geWVzIHx8IHRlc3QgLWYgIiRsaWIiOyB0aGVuIDoKKysJZWxzZQor KwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIHRoZSBsaWJyYXJ5IFxgJGxpYicgb3Ig dW5oYW5kbGVkIGFyZ3VtZW50IFxgJGRlcGxpYiciCisrCWZpCisrCisrCSMgQ2hlY2sgdG8gc2Vl IHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCisrCWZ1bmNfbGFsaWJfdW5z YWZlX3AgIiRsaWIiIFwKKysJICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBh IHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysKKysJZnVuY19kaXJuYW1lICIkbGliIiAiIiAiLiIK KysJbGFkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKworKwlkbG5hbWU9CisrCWRsb3Blbj0K KysJZGxwcmVvcGVuPQorKwlsaWJkaXI9CisrCWxpYnJhcnlfbmFtZXM9CisrCW9sZF9saWJyYXJ5 PQorKwlpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQorKwkjIElmIHRoZSBsaWJyYXJ5IHdhcyBpbnN0 YWxsZWQgd2l0aCBhbiBvbGQgcmVsZWFzZSBvZiBsaWJ0b29sLAorKwkjIGl0IHdpbGwgbm90IHJl ZGVmaW5lIHZhcmlhYmxlcyBpbnN0YWxsZWQsIG9yIHNob3VsZG5vdGxpbmsKKysJaW5zdGFsbGVk PXllcworKwlzaG91bGRub3RsaW5rPW5vCisrCWF2b2lkdGVtcHJwYXRoPQorKworKworKwkjIFJl YWQgdGhlIC5sYSBmaWxlCisrCWZ1bmNfc291cmNlICIkbGliIgorKworKwkjIENvbnZlcnQgIi1m cmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0ZnJhbWV3b3JrIgorKwlpZiB0ZXN0IC1uICIkaW5oZXJp dGVkX2xpbmtlcl9mbGFncyI7IHRoZW4KKysJICB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz1g JEVDSE8gIlgkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkWHNlZCAtZSAncy8tZnJhbWV3b3Jr IFwoW14gJF0qXCkvXDEubHRmcmFtZXdvcmsvZydgCisrCSAgZm9yIHRtcF9pbmhlcml0ZWRfbGlu a2VyX2ZsYWcgaW4gJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdzOyBkbworKwkgICAgY2FzZSAi ICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCisrCSAgICAgICoiICR0bXBfaW5oZXJp dGVkX2xpbmtlcl9mbGFnICIqKSA7OworKwkgICAgICAqKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9m bGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9m bGFnIjs7CisrCSAgICBlc2FjCisrCSAgZG9uZQorKwlmaQorKwlkZXBlbmRlbmN5X2xpYnM9YCRF Q0hPICJYICRkZXBlbmRlbmN5X2xpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFt ZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCWlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAi bGliLGxpbmsiIHx8CisrCSAgIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxzY2FuIiB8 fAorKwkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9 IGxpYjsgfTsgdGhlbgorKwkgIHRlc3QgLW4gIiRkbG9wZW4iICYmIGRsZmlsZXM9IiRkbGZpbGVz ICRkbG9wZW4iCisrCSAgdGVzdCAtbiAiJGRscHJlb3BlbiIgJiYgZGxwcmVmaWxlcz0iJGRscHJl ZmlsZXMgJGRscHJlb3BlbiIKKysJZmkKKysKKysJaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhl bgorKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzCisrCSAgZGVwbGli cz0iJGxpYiAkZGVwbGlicyIKKysJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgorKwkgICAg aWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgorKwkgICAgICBmdW5jX2ZhdGFsX2Vycm9y ICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAkbGliJyIKKysJICAgIGZp CisrCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBzbyBhZGQgaW4g aXRzIG9iamVjdHMuCisrCSAgICBjb252ZW5pZW5jZT0iJGNvbnZlbmllbmNlICRsYWRpci8kb2Jq ZGlyLyRvbGRfbGlicmFyeSIKKysJICAgIG9sZF9jb252ZW5pZW5jZT0iJG9sZF9jb252ZW5pZW5j ZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisrCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUi ICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4KKysJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgY29udmVuaWVuY2UgbGlicmFyeSIKKysJICBmaQor KwkgIHRtcF9saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJ ICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9k ZXBzIDsgdGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVw bGliICIqKSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAg ICAgIGVzYWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisr CSAgZG9uZQorKwkgIGNvbnRpbnVlCisrCWZpICMgJHBhc3MgPSBjb252CisrCisrCisrCSMgR2V0 IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IHdlIGxpbmsgYWdhaW5zdC4KKysJbGlua2xpYj0KKysJ Zm9yIGwgaW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbworKwkgIGxpbmtsaWI9IiRs IgorKwlkb25lCisrCWlmIHRlc3QgLXogIiRsaW5rbGliIjsgdGhlbgorKwkgIGZ1bmNfZmF0YWxf ZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgorKwlm aQorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRsb3Blbi4KKysJaWYg dGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAteiAiJGxpYmRpciI7IHRo ZW4KKysJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAtZGxvcGVuIGEgY29udmVuaWVuY2Ug bGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgIGlmIHRlc3QgLXogIiRkbG5hbWUiIHx8Cisr CSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMgfHwKKysJICAgICB0ZXN0ICIkYnVp bGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCisrCSAgICAjIElmIHRoZXJlIGlzIG5vIGRsbmFt ZSwgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2luZworKwkgICAgIyBzdGF0aWNhbGx5 LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQgdG8gcHJlbG9hZCBhbnkKKysJICAg ICMgZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3MgZGVwbGliIHByZWxvYWRlciBkb2Vz bid0CisrCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxpYnMgcGhhc2UuCisrCSAgICBk bHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkbGliICRkZXBlbmRlbmN5X2xpYnMiCisrCSAgZWxzZQor KwkgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKysJICBmaQorKwkgIGNvbnRpbnVl CisrCWZpICMgJHBhc3MgPSBkbG9wZW4KKysKKysJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGgu CisrCWNhc2UgJGxhZGlyIGluCisrCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgYWJzX2xhZGly PSIkbGFkaXIiIDs7CisrCSopCisrCSAgYWJzX2xhZGlyPWBjZCAiJGxhZGlyIiAmJiBwd2RgCisr CSAgaWYgdGVzdCAteiAiJGFic19sYWRpciI7IHRoZW4KKysJICAgIGZ1bmNfd2FybmluZyAiY2Fu bm90IGRldGVybWluZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBvZiBcYCRsYWRpciciCisrCSAg ICBmdW5jX3dhcm5pbmcgInBhc3NpbmcgaXQgbGl0ZXJhbGx5IHRvIHRoZSBsaW5rZXIsIGFsdGhv dWdoIGl0IG1pZ2h0IGZhaWwiCisrCSAgICBhYnNfbGFkaXI9IiRsYWRpciIKKysJICBmaQorKwkg IDs7CisrCWVzYWMKKysJZnVuY19iYXNlbmFtZSAiJGxpYiIKKysJbGFuYW1lPSIkZnVuY19iYXNl bmFtZV9yZXN1bHQiCisrCisrCSMgRmluZCB0aGUgcmVsZXZhbnQgb2JqZWN0IGRpcmVjdG9yeSBh bmQgbGlicmFyeSBuYW1lLgorKwlpZiB0ZXN0ICJYJGluc3RhbGxlZCIgPSBYeWVzOyB0aGVuCisr CSAgaWYgdGVzdCAhIC1mICIkbGliZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGly LyRsaW5rbGliIjsgdGhlbgorKwkgICAgZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2Fz IG1vdmVkLiIKKysJICAgIGRpcj0iJGxhZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgor KwkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgorKwkgIGVsc2UKKysJICAgIGRpcj0iJGxpYmRpciIK KysJICAgIGFic2Rpcj0iJGxpYmRpciIKKysJICBmaQorKwkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0 b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCisrCWVsc2UKKysJICBpZiB0ZXN0 ICEgLWYgIiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1mICIkYWJzX2xhZGlyLyRs aW5rbGliIjsgdGhlbgorKwkgICAgZGlyPSIkbGFkaXIiCisrCSAgICBhYnNkaXI9IiRhYnNfbGFk aXIiCisrCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3RpbnN0 X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKysJICBlbHNlCisrCSAgICBkaXI9IiRs YWRpci8kb2JqZGlyIgorKwkgICAgYWJzZGlyPSIkYWJzX2xhZGlyLyRvYmpkaXIiCisrCSAgICAj IFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCisrCSAgICBub3RpbnN0X3BhdGg9IiRub3Rp bnN0X3BhdGggJGFic19sYWRpciIKKysJICBmaQorKwlmaSAjICRpbnN0YWxsZWQgPSB5ZXMKKysJ ZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCisrCW5hbWU9JGZ1bmNfc3RyaXBu YW1lX3Jlc3VsdAorKworKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJl b3Blbi4KKysJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCisrCSAgaWYgdGVzdCAt eiAiJGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAgIGZ1bmNf ZmF0YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2Ug bGlicmFyeTogXGAkbGliJyIKKysJICBmaQorKwkgICMgUHJlZmVyIHVzaW5nIGEgc3RhdGljIGxp YnJhcnkgKHNvIHRoYXQgbm8gc2lsbHkgX0RZTkFNSUMgc3ltYm9scworKwkgICMgYXJlIHJlcXVp cmVkIHRvIGxpbmspLgorKwkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KKysJICAg IG5ld2RscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzICRkaXIvJG9sZF9saWJyYXJ5IgorKwkgICAg IyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNr CisrCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsg cGFzcy4KKysJICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKysJCWRscHJlY29udmVuaWVuY2Vs aWJzPSIkZGxwcmVjb252ZW5pZW5jZWxpYnMgJGRpci8kb2xkX2xpYnJhcnkiCisrCSAgIyBPdGhl cndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KKysJICBl bGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCisrCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxw cmVmaWxlcyAkZGlyLyRkbG5hbWUiCisrCSAgZWxzZQorKwkgICAgbmV3ZGxwcmVmaWxlcz0iJG5l d2RscHJlZmlsZXMgJGRpci8kbGlua2xpYiIKKysJICBmaQorKwlmaSAjICRwYXNzID0gZGxwcmVv cGVuCisrCisrCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCisrCSAgIyBMaW5rIHRoZSBjb252 ZW5pZW5jZSBsaWJyYXJ5CisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgorKwkg ICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisrCSAgZWxpZiB0ZXN0ICIk bGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KKysJICAgIGNvbXBpbGVfZGVwbGli cz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIKKysJICAgIGZpbmFsaXplX2Rl cGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgIGVsc2UKKysJ ICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3IgcHJvZyxzY2FuIHBhc3MKKysJ ICBmaQorKwkgIGNvbnRpbnVlCisrCWZpCisrCisrCisrCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBw cm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCisrCSAgbmV3bGliX3NlYXJjaF9wYXRo PSIkbmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKysJICBkZXBsaWJzPSIkbGliICRkZXBsaWJz IgorKworKwkgIGxpbmthbGxkZXBsaWJzPW5vCisrCSAgaWYgdGVzdCAiJGxpbmtfYWxsX2RlcGxp YnMiICE9IG5vIHx8IHRlc3QgLXogIiRsaWJyYXJ5X25hbWVzIiB8fAorKwkgICAgIHRlc3QgIiRi dWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KKysJICAgIGxpbmthbGxkZXBsaWJzPXllcwor KwkgIGZpCisrCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9s aWJzOyBkbworKwkgICAgY2FzZSAkZGVwbGliIGluCisrCSAgICAtTCopIGZ1bmNfc3RyaXBuYW1l ICctTCcgJycgIiRkZXBsaWIiCisrCSAgICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xp Yl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorKwkJIDs7CisrCSAgICBlc2Fj CisrCSAgICAjIE5lZWQgdG8gbGluayBhZ2FpbnN0IGFsbCBkZXBlbmRlbmN5X2xpYnM/CisrCSAg ICBpZiB0ZXN0ICIkbGlua2FsbGRlcGxpYnMiID0geWVzOyB0aGVuCisrCSAgICAgIGRlcGxpYnM9 IiRkZXBsaWIgJGRlcGxpYnMiCisrCSAgICBlbHNlCisrCSAgICAgICMgTmVlZCB0byBoYXJkY29k ZSBzaGFyZWQgbGlicmFyeSBwYXRocworKwkgICAgICAjIG9yL2FuZCBsaW5rIGFnYWluc3Qgc3Rh dGljIGxpYnJhcmllcworKwkgICAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2Rl cGVuZGVuY3lfbGlicyIKKysJICAgIGZpCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsg dGhlbgorKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIq KSBzcGVjaWFsZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVz YWMKKysJICAgIGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9u ZSAjIGZvciBkZXBsaWIKKysJICBjb250aW51ZQorKwlmaSAjICRsaW5rbW9kZSA9IHByb2cuLi4K KysKKysJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCisrCSAg aWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgICAgeyB7IHRlc3QgIiRwcmVmZXJf c3RhdGljX2xpYnMiID0gbm8gfHwKKysJICAgICAgICAgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGli cywkaW5zdGFsbGVkIiA9ICJidWlsdCx5ZXMiOyB9IHx8CisrCSAgICAgICB0ZXN0IC16ICIkb2xk X2xpYnJhcnkiOyB9OyB0aGVuCisrCSAgICAjIFdlIG5lZWQgdG8gaGFyZGNvZGUgdGhlIGxpYnJh cnkgcGF0aAorKwkgICAgaWYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLXogIiRh dm9pZHRlbXBycGF0aCIgOyB0aGVuCisrCSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250 YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICAgICAgY2FzZSAiJHRlbXBfcnBhdGg6 IiBpbgorKwkgICAgICAqIiRhYnNkaXI6IiopIDs7CisrCSAgICAgICopIHRlbXBfcnBhdGg9IiR0 ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisrCSAgICAgIGVzYWMKKysJICAgIGZpCisrCisrCSAgICAj IEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhh dCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAgICAjIHNlYXJjaCBwYXRo LgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGFi c2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4K KysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNv bXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgZXNh YworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgorKwkgICAgKiIgJGxp YmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGlu CisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIk ZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAg ZXNhYworKwkgIGZpICMgJGxpbmttb2RlLCRwYXNzID0gcHJvZyxsaW5rLi4uCisrCisrCSAgaWYg dGVzdCAiJGFsbGRlcGxpYnMiID0geWVzICYmCisrCSAgICAgeyB0ZXN0ICIkZGVwbGlic19jaGVj a19tZXRob2QiID0gcGFzc19hbGwgfHwKKysJICAgICAgIHsgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXMgJiYKKysJCSB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyI7IH07IH07IHRoZW4K KysJICAgICMgV2Ugb25seSBuZWVkIHRvIHNlYXJjaCBmb3Igc3RhdGljIGxpYnJhcmllcworKwkg ICAgY29udGludWUKKysJICBmaQorKwlmaQorKworKwlsaW5rX3N0YXRpYz1ubyAjIFdoZXRoZXIg dGhlIGRlcGxpYiB3aWxsIGJlIGxpbmtlZCBzdGF0aWNhbGx5CisrCXVzZV9zdGF0aWNfbGlicz0k cHJlZmVyX3N0YXRpY19saWJzCisrCWlmIHRlc3QgIiR1c2Vfc3RhdGljX2xpYnMiID0gYnVpbHQg JiYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXM7IHRoZW4KKysJICB1c2Vfc3RhdGljX2xpYnM9bm8K KysJZmkKKysJaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiICYmCisrCSAgIHsgdGVzdCAiJHVz ZV9zdGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiOyB9OyB0aGVuCisr CSAgY2FzZSAkaG9zdCBpbgorKwkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCisrCSAg ICAgICMgTm8gcG9pbnQgaW4gcmVsaW5raW5nIERMTHMgYmVjYXVzZSBwYXRocyBhcmUgbm90IGVu Y29kZWQKKysJICAgICAgbm90aW5zdF9kZXBsaWJzPSIkbm90aW5zdF9kZXBsaWJzICRsaWIiCisr CSAgICAgIG5lZWRfcmVsaW5rPW5vCisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIk aW5zdGFsbGVkIiA9IG5vOyB0aGVuCisrCSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3Rf ZGVwbGlicyAkbGliIgorKwkgICAgICBuZWVkX3JlbGluaz15ZXMKKysJICAgIGZpCisrCSAgICA7 OworKwkgIGVzYWMKKysJICAjIFRoaXMgaXMgYSBzaGFyZWQgbGlicmFyeQorKworKwkgICMgV2Fy biBhYm91dCBwb3J0YWJpbGl0eSwgY2FuJ3QgbGluayBhZ2FpbnN0IC1tb2R1bGUncyBvbiBzb21l CisrCSAgIyBzeXN0ZW1zIChkYXJ3aW4pLiAgRG9uJ3QgYmxlYXQgYWJvdXQgZGxvcGVuZWQgbW9k dWxlcyB0aG91Z2ghCisrCSAgZGxvcGVubW9kdWxlPSIiCisrCSAgZm9yIGRscHJlbW9kdWxldGVz dCBpbiAkZGxwcmVmaWxlczsgZG8KKysJICAgIGlmIHRlc3QgIlgkZGxwcmVtb2R1bGV0ZXN0IiA9 ICJYJGxpYiI7IHRoZW4KKysJICAgICAgZGxvcGVubW9kdWxlPSIkZGxwcmVtb2R1bGV0ZXN0Igor KwkgICAgICBicmVhaworKwkgICAgZmkKKysJICBkb25lCisrCSAgaWYgdGVzdCAteiAiJGRsb3Bl bm1vZHVsZSIgJiYgdGVzdCAiJHNob3VsZG5vdGxpbmsiID0geWVzICYmIHRlc3QgIiRwYXNzIiA9 IGxpbms7IHRoZW4KKysJICAgICRFQ0hPCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJv ZzsgdGhlbgorKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIGV4ZWN1dGFi bGUgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCisrCSAgICBlbHNlCisrCSAg ICAgICRFQ0hPICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1 dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCisrCSAgICBmaQorKwkgICAgJEVDSE8gIioq KiAkbGlua2xpYiBpcyBub3QgcG9ydGFibGUhIgorKwkgIGZpCisrCSAgaWYgdGVzdCAiJGxpbmtt b2RlIiA9IGxpYiAmJgorKwkgICAgIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0 aGVuCisrCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisrCSAgICAjIFNraXAgZGly ZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisrCSAgICAj IHNlYXJjaCBwYXRoLgorKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgor KwkgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRjb21waWxl X3JwYXRoICIgaW4KKysJICAgICAgKiIgJGFic2RpciAiKikgOzsKKysJICAgICAgKikgY29tcGls ZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKysJICAgICAgZXNhYworKwkgICAgICA7 OworKwkgICAgZXNhYworKwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgor KwkgICAgKiIgJGxpYmRpciAiKikgOzsKKysJICAgICopCisrCSAgICAgIGNhc2UgIiRmaW5hbGl6 ZV9ycGF0aCAiIGluCisrCSAgICAgICoiICRsaWJkaXIgIiopIDs7CisrCSAgICAgICopIGZpbmFs aXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKysJICAgICAgZXNhYworKwkgICAg ICA7OworKwkgICAgZXNhYworKwkgIGZpCisrCisrCSAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZl X2Zyb21fZXhwc3ltc19jbWRzIjsgdGhlbgorKwkgICAgIyBmaWd1cmUgb3V0IHRoZSBzb25hbWUK KysJICAgIHNldCBkdW1teSAkbGlicmFyeV9uYW1lcworKwkgICAgc2hpZnQKKysJICAgIHJlYWxu YW1lPSIkMSIKKysJICAgIHNoaWZ0CisrCSAgICBsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxp Ym5hbWVfc3BlY1wiImAKKysJICAgICMgdXNlIGRsbmFtZSBpZiB3ZSBnb3QgaXQuIGl0J3MgcGVy ZmVjdGx5IGdvb2QsIG5vPworKwkgICAgaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KKysJICAg ICAgc29uYW1lPSIkZGxuYW1lIgorKwkgICAgZWxpZiB0ZXN0IC1uICIkc29uYW1lX3NwZWMiOyB0 aGVuCisrCSAgICAgICMgYmxlaCB3aW5kb3dzCisrCSAgICAgIGNhc2UgJGhvc3QgaW4KKysJICAg ICAgKmN5Z3dpbiogfCBtaW5ndyogfCAqY2VnY2MqKQorKwkgICAgICAgIGZ1bmNfYXJpdGggJGN1 cnJlbnQgLSAkYWdlCisrCQltYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKKysJCXZlcnN1ZmZpeD0i LSRtYWpvciIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgICAgZXZhbCBzb25hbWU9XCIkc29u YW1lX3NwZWNcIgorKwkgICAgZWxzZQorKwkgICAgICBzb25hbWU9IiRyZWFsbmFtZSIKKysJICAg IGZpCisrCisrCSAgICAjIE1ha2UgYSBuZXcgbmFtZSBmb3IgdGhlIGV4dHJhY3RfZXhwc3ltc19j bWRzIHRvIHVzZQorKwkgICAgc29yb290PSIkc29uYW1lIgorKwkgICAgZnVuY19iYXNlbmFtZSAi JHNvcm9vdCIKKysJICAgIHNvbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICAgZnVu Y19zdHJpcG5hbWUgJ2xpYicgJy5kbGwnICIkc29uYW1lIgorKwkgICAgbmV3bGliPWxpYmltcC0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0LmEKKysKKysJICAgICMgSWYgdGhlIGxpYnJhcnkgaGFzIG5v IGV4cG9ydCBsaXN0LCB0aGVuIGNyZWF0ZSBvbmUgbm93CisrCSAgICBpZiB0ZXN0IC1mICIkb3V0 cHV0X29iamRpci8kc29uYW1lLWRlZiI7IHRoZW4gOgorKwkgICAgZWxzZQorKwkgICAgICBmdW5j X3ZlcmJvc2UgImV4dHJhY3RpbmcgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBcYCRzb25hbWUn IgorKwkgICAgICBmdW5jX2V4ZWN1dGVfY21kcyAiJGV4dHJhY3RfZXhwc3ltc19jbWRzIiAnZXhp dCAkPycKKysJICAgIGZpCisrCisrCSAgICAjIENyZWF0ZSAkbmV3bGliCisrCSAgICBpZiB0ZXN0 IC1mICIkb3V0cHV0X29iamRpci8kbmV3bGliIjsgdGhlbiA6OyBlbHNlCisrCSAgICAgIGZ1bmNf dmVyYm9zZSAiZ2VuZXJhdGluZyBpbXBvcnQgbGlicmFyeSBmb3IgXGAkc29uYW1lJyIKKysJICAg ICAgZnVuY19leGVjdXRlX2NtZHMgIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIgJ2V4 aXQgJD8nCisrCSAgICBmaQorKwkgICAgIyBtYWtlIHN1cmUgdGhlIGxpYnJhcnkgdmFyaWFibGVz IGFyZSBwb2ludGluZyB0byB0aGUgbmV3IGxpYnJhcnkKKysJICAgIGRpcj0kb3V0cHV0X29iamRp cgorKwkgICAgbGlua2xpYj0kbmV3bGliCisrCSAgZmkgIyB0ZXN0IC1uICIkb2xkX2FyY2hpdmVf ZnJvbV9leHBzeW1zX2NtZHMiCisrCisrCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwg dGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorKwkgICAgYWRkX3NobGlicGF0aD0KKysJICAg IGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICBsaWJfbGlua2VkPXllcworKwkgICAgY2FzZSAk aGFyZGNvZGVfYWN0aW9uIGluCisrCSAgICBpbW1lZGlhdGUgfCB1bnN1cHBvcnRlZCkKKysJICAg ICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSBubzsgdGhlbgorKwkJYWRkPSIkZGlyLyRs aW5rbGliIgorKwkJY2FzZSAkaG9zdCBpbgorKwkJICAqLSotc2NvMy4ydjUuMC5bMDI0XSopIGFk ZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAgKi0qLXN5c3Y0KnV3MiopIGFkZF9kaXI9Ii1MJGRpciIg OzsKKysJCSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1VW5peFdhcmU3LlswMV0uWzEw XSogfCBcCisrCQkgICAgKi0qLXVuaXh3YXJlNyopIGFkZF9kaXI9Ii1MJGRpciIgOzsKKysJCSAg Ki0qLWRhcndpbiogKQorKwkJICAgICMgaWYgdGhlIGxpYiBpcyBhIChub24tZGxvcGVuZWQpIG1v ZHVsZSB0aGVuIHdlIGNhbiBub3QKKysJCSAgICAjIGxpbmsgYWdhaW5zdCBpdCwgc29tZW9uZSBp cyBpZ25vcmluZyB0aGUgZWFybGllciB3YXJuaW5ncworKwkJICAgIGlmIC91c3IvYmluL2ZpbGUg LUwgJGFkZCAyPiAvZGV2L251bGwgfAorKwkJCSAkR1JFUCAiOiBbXjpdKiBidW5kbGUiID4vZGV2 L251bGwgOyB0aGVuCisrCQkgICAgICBpZiB0ZXN0ICJYJGRsb3Blbm1vZHVsZSIgIT0gIlgkbGli IjsgdGhlbgorKwkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRsaW5rbGliIGlzIGEgbW9kdWxl LCBub3QgYSBzaGFyZWQgbGlicmFyeSIKKysJCQlpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsg dGhlbgorKwkJCSAgJEVDSE8KKysJCQkgICRFQ0hPICIqKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2Vl bSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKysJCQkgICRFQ0hPICIqKiogVGhl IGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKKysJCQllbHNlCisrCQkJICBhZGQ9IiRk aXIvJG9sZF9saWJyYXJ5IgorKwkJCWZpCisrCQkgICAgICBlbGlmIHRlc3QgLW4gIiRvbGRfbGli cmFyeSI7IHRoZW4KKysJCQlhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgorKwkJICAgICAgZmkKKysJ CSAgICBmaQorKwkJZXNhYworKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9 IG5vOyB0aGVuCisrCQljYXNlICRob3N0IGluCisrCQkqLSotc3Vub3MqKSBhZGRfc2hsaWJwYXRo PSIkZGlyIiA7OworKwkJZXNhYworKwkJYWRkX2Rpcj0iLUwkZGlyIgorKwkJYWRkPSItbCRuYW1l IgorKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IG5vOyB0aGVu CisrCQlhZGRfc2hsaWJwYXRoPSIkZGlyIgorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBlbHNl CisrCQlsaWJfbGlua2VkPW5vCisrCSAgICAgIGZpCisrCSAgICAgIDs7CisrCSAgICByZWxpbmsp CisrCSAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzICYmCisrCSAgICAgICAg IHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KKysJCWFkZD0iJGRp ci8kbGlua2xpYiIKKysJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7 IHRoZW4KKysJCWFkZF9kaXI9Ii1MJGRpciIKKysJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhl IGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKysJCWlmIHRlc3QgLW4gIiRpbnN0 X3ByZWZpeF9kaXIiOyB0aGVuCisrCQkgIGNhc2UgJGxpYmRpciBpbgorKwkJICAgIFtcXC9dKikK KysJCSAgICAgIGFkZF9kaXI9IiRhZGRfZGlyIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCisr CQkgICAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkJYWRkPSItbCRuYW1lIgorKwkgICAgICBl bGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorKwkJYWRkX3No bGlicGF0aD0iJGRpciIKKysJCWFkZD0iLWwkbmFtZSIKKysJICAgICAgZWxzZQorKwkJbGliX2xp bmtlZD1ubworKwkgICAgICBmaQorKwkgICAgICA7OworKwkgICAgKikgbGliX2xpbmtlZD1ubyA7 OworKwkgICAgZXNhYworKworKwkgICAgaWYgdGVzdCAiJGxpYl9saW5rZWQiICE9IHllczsgdGhl bgorKwkgICAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVuc3VwcG9ydGVkIGhhcmRjb2Rl IHByb3BlcnRpZXMiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAtbiAiJGFkZF9zaGxpYnBh dGgiOyB0aGVuCisrCSAgICAgIGNhc2UgOiRjb21waWxlX3NobGlicGF0aDogaW4KKysJICAgICAg KiI6JGFkZF9zaGxpYnBhdGg6IiopIDs7CisrCSAgICAgICopIGNvbXBpbGVfc2hsaWJwYXRoPSIk Y29tcGlsZV9zaGxpYnBhdGgkYWRkX3NobGlicGF0aDoiIDs7CisrCSAgICAgIGVzYWMKKysJICAg IGZpCisrCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgorKwkgICAgICB0ZXN0 IC1uICIkYWRkX2RpciIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRkX2RpciAkY29tcGlsZV9kZXBs aWJzIgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBjb21waWxlX2RlcGxpYnM9IiRhZGQgJGNv bXBpbGVfZGVwbGlicyIKKysJICAgIGVsc2UKKysJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYm IGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBk ZXBsaWJzPSIkYWRkICRkZXBsaWJzIgorKwkgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0 IiAhPSB5ZXMgJiYKKysJCSB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0geWVzICYmCisrCQkg dGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCisrCQljYXNlIDokZmlu YWxpemVfc2hsaWJwYXRoOiBpbgorKwkJKiI6JGxpYmRpcjoiKikgOzsKKysJCSopIGZpbmFsaXpl X3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7OworKwkJZXNhYworKwkg ICAgICBmaQorKwkgICAgZmkKKysJICBmaQorKworKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBw cm9nIHx8IHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorKwkgICAgYWRkX3NobGlicGF0aD0K KysJICAgIGFkZF9kaXI9CisrCSAgICBhZGQ9CisrCSAgICAjIEZpbmFsaXplIGNvbW1hbmQgZm9y IGJvdGggaXMgc2ltcGxlOiBqdXN0IGhhcmRjb2RlIGl0LgorKwkgICAgaWYgdGVzdCAiJGhhcmRj b2RlX2RpcmVjdCIgPSB5ZXMgJiYKKysJICAgICAgIHRlc3QgIiRoYXJkY29kZV9kaXJlY3RfYWJz b2x1dGUiID0gbm87IHRoZW4KKysJICAgICAgYWRkPSIkbGliZGlyLyRsaW5rbGliIgorKwkgICAg ZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KKysJICAgICAgYWRkX2Rp cj0iLUwkbGliZGlyIgorKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBlbGlmIHRlc3QgIiRo YXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgorKwkgICAgICBjYXNlIDokZmluYWxp emVfc2hsaWJwYXRoOiBpbgorKwkgICAgICAqIjokbGliZGlyOiIqKSA7OworKwkgICAgICAqKSBm aW5hbGl6ZV9zaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgkbGliZGlyOiIgOzsKKysJICAg ICAgZXNhYworKwkgICAgICBhZGQ9Ii1sJG5hbWUiCisrCSAgICBlbGlmIHRlc3QgIiRoYXJkY29k ZV9hdXRvbWF0aWMiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZp eF9kaXIiICYmCisrCQkgdGVzdCAtZiAiJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIi IDsgdGhlbgorKwkJYWRkPSIkaW5zdF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIKKysJICAg ICAgZWxzZQorKwkJYWRkPSIkbGliZGlyLyRsaW5rbGliIgorKwkgICAgICBmaQorKwkgICAgZWxz ZQorKwkgICAgICAjIFdlIGNhbm5vdCBzZWVtIHRvIGhhcmRjb2RlIGl0LCBndWVzcyB3ZSdsbCBm YWtlIGl0LgorKwkgICAgICBhZGRfZGlyPSItTCRsaWJkaXIiCisrCSAgICAgICMgVHJ5IGxvb2tp bmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KKysJICAg ICAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KKysJCWNhc2UgJGxpYmRpciBp bgorKwkJICBbXFwvXSopCisrCQkgICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhf ZGlyJGxpYmRpciIKKysJCSAgICA7OworKwkJZXNhYworKwkgICAgICBmaQorKwkgICAgICBhZGQ9 Ii1sJG5hbWUiCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7 IHRoZW4KKysJICAgICAgdGVzdCAtbiAiJGFkZF9kaXIiICYmIGZpbmFsaXplX2RlcGxpYnM9IiRh ZGRfZGlyICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgICB0ZXN0IC1uICIkYWRkIiAmJiBmaW5h bGl6ZV9kZXBsaWJzPSIkYWRkICRmaW5hbGl6ZV9kZXBsaWJzIgorKwkgICAgZWxzZQorKwkgICAg ICB0ZXN0IC1uICIkYWRkX2RpciIgJiYgZGVwbGlicz0iJGFkZF9kaXIgJGRlcGxpYnMiCisrCSAg ICAgIHRlc3QgLW4gIiRhZGQiICYmIGRlcGxpYnM9IiRhZGQgJGRlcGxpYnMiCisrCSAgICBmaQor KwkgIGZpCisrCWVsaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KKysJICAjIEhlcmUg d2UgYXNzdW1lIHRoYXQgb25lIG9mIGhhcmRjb2RlX2RpcmVjdCBvciBoYXJkY29kZV9taW51c19M CisrCSAgIyBpcyBub3QgdW5zdXBwb3J0ZWQuICBUaGlzIGlzIHZhbGlkIG9uIGFsbCBrbm93biBz dGF0aWMgYW5kCisrCSAgIyBzaGFyZWQgcGxhdGZvcm1zLgorKwkgIGlmIHRlc3QgIiRoYXJkY29k ZV9kaXJlY3QiICE9IHVuc3VwcG9ydGVkOyB0aGVuCisrCSAgICB0ZXN0IC1uICIkb2xkX2xpYnJh cnkiICYmIGxpbmtsaWI9IiRvbGRfbGlicmFyeSIKKysJICAgIGNvbXBpbGVfZGVwbGlicz0iJGRp ci8kbGlua2xpYiAkY29tcGlsZV9kZXBsaWJzIgorKwkgICAgZmluYWxpemVfZGVwbGlicz0iJGRp ci8kbGlua2xpYiAkZmluYWxpemVfZGVwbGlicyIKKysJICBlbHNlCisrCSAgICBjb21waWxlX2Rl cGxpYnM9Ii1sJG5hbWUgLUwkZGlyICRjb21waWxlX2RlcGxpYnMiCisrCSAgICBmaW5hbGl6ZV9k ZXBsaWJzPSItbCRuYW1lIC1MJGRpciAkZmluYWxpemVfZGVwbGlicyIKKysJICBmaQorKwllbGlm IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCSAgIyBOb3QgYSBzaGFy ZWQgbGlicmFyeQorKwkgIGlmIHRlc3QgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19h bGw7IHRoZW4KKysJICAgICMgV2UncmUgdHJ5aW5nIGxpbmsgYSBzaGFyZWQgbGlicmFyeSBhZ2Fp bnN0IGEgc3RhdGljIG9uZQorKwkgICAgIyBidXQgdGhlIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQg aXQuCisrCisrCSAgICAjIEp1c3QgcHJpbnQgYSB3YXJuaW5nIGFuZCBhZGQgdGhlIGxpYnJhcnkg dG8gZGVwZW5kZW5jeV9saWJzIHNvCisrCSAgICAjIHRoYXQgdGhlIHByb2dyYW0gY2FuIGJlIGxp bmtlZCBhZ2FpbnN0IHRoZSBzdGF0aWMgbGlicmFyeS4KKysJICAgICRFQ0hPCisrCSAgICAkRUNI TyAiKioqIFdhcm5pbmc6IFRoaXMgc3lzdGVtIGNhbiBub3QgbGluayB0byBzdGF0aWMgbGliIGFy Y2hpdmUgJGxpYi4iCisrCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBt YWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJICAgICRFQ0hP ICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBp ZiB5b3UgaGF2ZSBhIgorKwkgICAgJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGli cmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZS4iCisrCSAgICBpZiB0ZXN0ICIk bW9kdWxlIiA9IHllczsgdGhlbgorKwkgICAgICAkRUNITyAiKioqIEJ1dCBhcyB5b3UgdHJ5IHRv IGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUgIgorKwkg ICAgICAkRUNITyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBzaG91bGQgd29yayBhcyBsb25n IGFzIHRoZSBkbG9wZW5pbmcgYXBwbGljYXRpb24iCisrCSAgICAgICRFQ0hPICIqKiogaXMgbGlu a2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4i CisrCSAgICAgIGlmIHRlc3QgLXogIiRnbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCisrCQkkRUNI TworKwkJJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29s IHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgorKwkJJEVDSE8gIioqKiBsaXN0cyBmcm9tIGEg cHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCisr CQkkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2ggYSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlz IHByb2JhYmx5IHVzZWxlc3MuIgorKwkJJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGls cyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorKwkgICAgICBmaQorKwkgICAgICBpZiB0 ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0gbm87IHRoZW4KKysJCWJ1aWxkX2xpYnRvb2xfbGlicz1t b2R1bGUKKysJCWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBlbHNlCisrCQlidWlsZF9saWJ0 b29sX2xpYnM9bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgZWxzZQorKwkgICAgZGVwbGli cz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCisrCSAgICBsaW5rX3N0YXRpYz15ZXMKKysJ ICBmaQorKwlmaSAjIGxpbmsgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5PworKworKwlpZiB0ZXN0ICIk bGlua21vZGUiID0gbGliOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGRlcGVuZGVuY3lfbGlicyIg JiYKKysJICAgICB7IHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiICE9IHllcyB8fAorKwkgICAg ICAgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyB8fAorKwkgICAgICAgdGVzdCAiJGxpbmtf c3RhdGljIiA9IHllczsgfTsgdGhlbgorKwkgICAgIyBFeHRyYWN0IC1SIGZyb20gZGVwZW5kZW5j eV9saWJzCisrCSAgICB0ZW1wX2RlcGxpYnM9CisrCSAgICBmb3IgbGliZGlyIGluICRkZXBlbmRl bmN5X2xpYnM7IGRvCisrCSAgICAgIGNhc2UgJGxpYmRpciBpbgorKwkgICAgICAtUiopIGZ1bmNf c3RyaXBuYW1lICctUicgJycgIiRsaWJkaXIiCisrCSAgICAgICAgICAgdGVtcF94cnBhdGg9JGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkJICAgY2FzZSAiICR4cnBhdGggIiBpbgorKwkJICAgKiIg JHRlbXBfeHJwYXRoICIqKSA7OworKwkJICAgKikgeHJwYXRoPSIkeHJwYXRoICR0ZW1wX3hycGF0 aCI7OworKwkJICAgZXNhYzs7CisrCSAgICAgICopIHRlbXBfZGVwbGlicz0iJHRlbXBfZGVwbGli cyAkbGliZGlyIjs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJICAgIGRlcGVuZGVuY3lf bGlicz0iJHRlbXBfZGVwbGlicyIKKysJICBmaQorKworKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0i JG5ld2xpYl9zZWFyY2hfcGF0aCAkYWJzZGlyIgorKwkgICMgTGluayBhZ2FpbnN0IHRoaXMgbGli cmFyeQorKwkgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSBubyAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9 IiRhYnNfbGFkaXIvJGxhbmFtZSAkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICMgLi4uIGFuZCBp dHMgZGVwZW5kZW5jeV9saWJzCisrCSAgdG1wX2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkZGVw ZW5kZW5jeV9saWJzOyBkbworKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdk ZXBlbmRlbmN5X2xpYnMiCisrCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorKwkg ICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgorKwkgICAgICAqIiAkZGVwbGliICIqKSBzcGVjaWFs ZGVwbGlicz0iJHNwZWNpYWxkZXBsaWJzICRkZXBsaWIiIDs7CisrCSAgICAgIGVzYWMKKysJICAg IGZpCisrCSAgICB0bXBfbGlicz0iJHRtcF9saWJzICRkZXBsaWIiCisrCSAgZG9uZQorKworKwkg IGlmIHRlc3QgIiRsaW5rX2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgorKwkgICAgIyBBZGQgdGhl IHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMKKysJICAgIGZvciBkZXBs aWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKysJICAgICAgY2FzZSAkZGVwbGliIGluCisrCSAg ICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKKysJICAgICAgKi5sYSkKKysJICAgICAgICBmdW5j X2Rpcm5hbWUgIiRkZXBsaWIiICIiICIuIgorKwkJZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIK KysJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBwYXRoLgorKwkJY2FzZSAkZGlyIGluCisrCQlbXFwv XSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsKKysJCSopCisrCQkgIGFic2Rp cj1gY2QgIiRkaXIiICYmIHB3ZGAKKysJCSAgaWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KKysJ CSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5h bWUgb2YgXGAkZGlyJyIKKysJCSAgICBhYnNkaXI9IiRkaXIiCisrCQkgIGZpCisrCQkgIDs7Cisr CQllc2FjCisrCQlpZiAkR1JFUCAiXmluc3RhbGxlZD1ubyIgJGRlcGxpYiA+IC9kZXYvbnVsbDsg dGhlbgorKwkJY2FzZSAkaG9zdCBpbgorKwkJKi0qLWRhcndpbiopCisrCQkgIGRlcGRlcGw9Cisr CQkgIGV2YWwgZGVwbGlicmFyeV9uYW1lcz1gJHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVz PVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFt ZXMiIDsgdGhlbgorKwkJICAgIGZvciB0bXAgaW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbworKwkJ ICAgICAgZGVwZGVwbD0kdG1wCisrCQkgICAgZG9uZQorKwkJICAgIGlmIHRlc3QgLWYgIiRhYnNk aXIvJG9iamRpci8kZGVwZGVwbCIgOyB0aGVuCisrCQkgICAgICBkZXBkZXBsPSIkYWJzZGlyLyRv YmpkaXIvJGRlcGRlcGwiCisrCQkgICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MfSAt TCAkZGVwZGVwbCB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKKysgICAg ICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGRhcndpbl9pbnN0YWxsX25hbWUiOyB0aGVu CisrICAgICAgICAgICAgICAgICAgICAgICAgICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09M NjR9IC1MICRkZXBkZXBsICB8IGF3ayAne2lmIChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AK KysgICAgICAgICAgICAgICAgICAgICAgZmkKKysJCSAgICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29t cGlsZXJfZmxhZ3MgJHt3bH0tZHlsaWJfZmlsZSAke3dsfSR7ZGFyd2luX2luc3RhbGxfbmFtZX06 JHtkZXBkZXBsfSIKKysJCSAgICAgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAtZHlsaWJf ZmlsZSAke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCisrCQkgICAgICBwYXRoPQor KwkJICAgIGZpCisrCQkgIGZpCisrCQkgIDs7CisrCQkqKQorKwkJICBwYXRoPSItTCRhYnNkaXIv JG9iamRpciIKKysJCSAgOzsKKysJCWVzYWMKKysJCWVsc2UKKysJCSAgZXZhbCBsaWJkaXI9YCR7 U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKKysJCSAgdGVzdCAt eiAiJGxpYmRpciIgJiYgXAorKwkJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMg bm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgorKwkJICB0ZXN0ICIkYWJzZGlyIiAhPSAiJGxp YmRpciIgJiYgXAorKwkJICAgIGZ1bmNfd2FybmluZyAiXGAkZGVwbGliJyBzZWVtcyB0byBiZSBt b3ZlZCIKKysKKysJCSAgcGF0aD0iLUwkYWJzZGlyIgorKwkJZmkKKysJCTs7CisrCSAgICAgIGVz YWMKKysJICAgICAgY2FzZSAiICRkZXBsaWJzICIgaW4KKysJICAgICAgKiIgJHBhdGggIiopIDs7 CisrCSAgICAgICopIGRlcGxpYnM9IiRwYXRoICRkZXBsaWJzIiA7OworKwkgICAgICBlc2FjCisr CSAgICBkb25lCisrCSAgZmkgIyBsaW5rX2FsbF9kZXBsaWJzICE9IG5vCisrCWZpICMgbGlua21v ZGUgPSBsaWIKKysgICAgICBkb25lICMgZm9yIGRlcGxpYiBpbiAkbGlicworKyAgICAgIGlmIHRl c3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KKysJaWYgdGVzdCAiJGxpbmttb2RlIiA9ICJwcm9nIjsg dGhlbgorKwkgIGNvbXBpbGVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRj b21waWxlX2RlcGxpYnMiCisrCSAgZmluYWxpemVfZGVwbGlicz0iJG5ld19pbmhlcml0ZWRfbGlu a2VyX2ZsYWdzICRmaW5hbGl6ZV9kZXBsaWJzIgorKwllbHNlCisrCSAgY29tcGlsZXJfZmxhZ3M9 IiRjb21waWxlcl9mbGFncyAiYCRFQ0hPICJYICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIg fCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AK KysJZmkKKysgICAgICBmaQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lf bGlicyIKKysgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHByZW9wZW47IHRoZW4KKysJIyBMaW5r IHRoZSBkbHByZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90aGVyIGxpYnJhcmllcworKwlmb3Ig ZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCisrCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGli cyIKKysJZG9uZQorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHBhc3MiICE9IGRsb3Blbjsg dGhlbgorKwlpZiB0ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhlbgorKwkgICMgTWFrZSBzdXJlIGxp Yl9zZWFyY2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KKysJICBsaWJf c2VhcmNoX3BhdGg9CisrCSAgZm9yIGRpciBpbiAkbmV3bGliX3NlYXJjaF9wYXRoOyBkbworKwkg ICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCisrCSAgICAqIiAkZGlyICIqKSA7OworKwkg ICAgKikgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiIDs7CisrCSAgICBl c2FjCisrCSAgZG9uZQorKwkgIG5ld2xpYl9zZWFyY2hfcGF0aD0KKysJZmkKKysKKysJaWYgdGVz dCAiJGxpbmttb2RlLCRwYXNzIiAhPSAicHJvZyxsaW5rIjsgdGhlbgorKwkgIHZhcnM9ImRlcGxp YnMiCisrCWVsc2UKKysJICB2YXJzPSJjb21waWxlX2RlcGxpYnMgZmluYWxpemVfZGVwbGlicyIK KysJZmkKKysJZm9yIHZhciBpbiAkdmFycyBkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgIyBBZGQg bGlicmFyaWVzIHRvICR2YXIgaW4gcmV2ZXJzZSBvcmRlcgorKwkgIGV2YWwgdG1wX2xpYnM9XCJc JCR2YXJcIgorKwkgIG5ld19saWJzPQorKwkgIGZvciBkZXBsaWIgaW4gJHRtcF9saWJzOyBkbwor KwkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBk bywgc28KKysJICAgICMgICAgICAgIHRoYXQgc29tZSBuYXN0eSBkZXBlbmRlbmN5IGxvb3AgaXNu J3QgYWNjaWRlbnRhbGx5CisrCSAgICAjICAgICAgICBicm9rZW46CisrCSAgICAjbmV3X2xpYnM9 IiRkZXBsaWIgJG5ld19saWJzIgorKwkgICAgIyBQcmFnbWF0aWNhbGx5LCB0aGlzIHNlZW1zIHRv IGNhdXNlIHZlcnkgZmV3IHByb2JsZW1zIGluCisrCSAgICAjIHByYWN0aWNlOgorKwkgICAgY2Fz ZSAkZGVwbGliIGluCisrCSAgICAtTCopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsK KysJICAgIC1SKikgOzsKKysJICAgICopCisrCSAgICAgICMgQW5kIGhlcmUgaXMgdGhlIHJlYXNv bjogd2hlbiBhIGxpYnJhcnkgYXBwZWFycyBtb3JlCisrCSAgICAgICMgdGhhbiBvbmNlIGFzIGFu IGV4cGxpY2l0IGRlcGVuZGVuY2Ugb2YgYSBsaWJyYXJ5LCBvcgorKwkgICAgICAjIGlzIGltcGxp Y2l0bHkgbGlua2VkIGluIG1vcmUgdGhhbiBvbmNlIGJ5IHRoZQorKwkgICAgICAjIGNvbXBpbGVy LCBpdCBpcyBjb25zaWRlcmVkIHNwZWNpYWwsIGFuZCBtdWx0aXBsZQorKwkgICAgICAjIG9jY3Vy cmVuY2VzIHRoZXJlb2YgYXJlIG5vdCByZW1vdmVkLiAgQ29tcGFyZSB0aGlzCisrCSAgICAgICMg d2l0aCBoYXZpbmcgdGhlIHNhbWUgbGlicmFyeSBiZWluZyBsaXN0ZWQgYXMgYQorKwkgICAgICAj IGRlcGVuZGVuY3kgb2YgbXVsdGlwbGUgb3RoZXIgbGlicmFyaWVzOiBpbiB0aGlzIGNhc2UsCisr CSAgICAgICMgd2Uga25vdyAocGVkYW50aWNhbGx5LCB3ZSBhc3N1bWUpIHRoZSBsaWJyYXJ5IGRv ZXMgbm90CisrCSAgICAgICMgbmVlZCB0byBiZSBsaXN0ZWQgbW9yZSB0aGFuIG9uY2UsIHNvIHdl IGtlZXAgb25seSB0aGUKKysJICAgICAgIyBsYXN0IGNvcHkuICBUaGlzIGlzIG5vdCBhbHdheXMg cmlnaHQsIGJ1dCBpdCBpcyByYXJlCisrCSAgICAgICMgZW5vdWdoIHRoYXQgd2UgcmVxdWlyZSB1 c2VycyB0aGF0IHJlYWxseSBtZWFuIHRvIHBsYXkKKysJICAgICAgIyBzdWNoIHVucG9ydGFibGUg bGlua2luZyB0cmlja3MgdG8gbGluayB0aGUgbGlicmFyeQorKwkgICAgICAjIHVzaW5nIC1XbCwt bG5hbWUsIHNvIHRoYXQgbGlidG9vbCBkb2VzIG5vdCBjb25zaWRlciBpdAorKwkgICAgICAjIGZv ciBkdXBsaWNhdGUgcmVtb3ZhbC4KKysJICAgICAgY2FzZSAiICRzcGVjaWFsZGVwbGlicyAiIGlu CisrCSAgICAgICoiICRkZXBsaWIgIiopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsK KysJICAgICAgKikKKysJCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkJKiIgJGRlcGxpYiAiKikg OzsKKysJCSopIG5ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIgOzsKKysJCWVzYWMKKysJCTs7 CisrCSAgICAgIGVzYWMKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICBkb25lCisrCSAgdG1w X2xpYnM9CisrCSAgZm9yIGRlcGxpYiBpbiAkbmV3X2xpYnM7IGRvCisrCSAgICBjYXNlICRkZXBs aWIgaW4KKysJICAgIC1MKikKKysJICAgICAgY2FzZSAiICR0bXBfbGlicyAiIGluCisrCSAgICAg ICoiICRkZXBsaWIgIiopIDs7CisrCSAgICAgICopIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxp YiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICA7OworKwkgICAgKikgdG1wX2xpYnM9IiR0bXBf bGlicyAkZGVwbGliIiA7OworKwkgICAgZXNhYworKwkgIGRvbmUKKysJICBldmFsICR2YXI9XCIk dG1wX2xpYnNcIgorKwlkb25lICMgZm9yIHZhcgorKyAgICAgIGZpCisrICAgICAgIyBMYXN0IHN0 ZXA6IHJlbW92ZSBydW50aW1lIGxpYnMgZnJvbSBkZXBlbmRlbmN5X2xpYnMKKysgICAgICAjICh0 aGV5IHN0YXkgaW4gZGVwbGlicykKKysgICAgICB0bXBfbGlicz0KKysgICAgICBmb3IgaSBpbiAk ZGVwZW5kZW5jeV9saWJzIDsgZG8KKysJY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAkY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoICIgaW4KKysJKiIgJGkgIiopCisrCSAgaT0iIgorKwkgIDs7Cisr CWVzYWMKKysJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgorKwkgIHRtcF9saWJzPSIkdG1wX2xpYnMg JGkiCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIGRlcGVuZGVuY3lfbGlicz0kdG1wX2xpYnMK KysgICAgZG9uZSAjIGZvciBwYXNzCisrICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0 aGVuCisrICAgICAgZGxmaWxlcz0iJG5ld2RsZmlsZXMiCisrICAgIGZpCisrICAgIGlmIHRlc3Qg IiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KKysgICAg ICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysgICAgZmkKKysKKysgICAgY2FzZSAkbGlu a21vZGUgaW4KKysgICAgb2xkbGliKQorKyAgICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJl ZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCisrCWZ1bmNfd2FybmluZyAiXGAt ZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysgICAgICBmaQorKworKyAgICAgIGNh c2UgIiAkZGVwbGlicyIgaW4KKysgICAgICAqXCAtbCogfCAqXCAtTCopCisrCWZ1bmNfd2Fybmlu ZyAiXGAtbCcgYW5kIFxgLUwnIGFyZSBpZ25vcmVkIGZvciBhcmNoaXZlcyIgOzsKKysgICAgICBl c2FjCisrCisrICAgICAgdGVzdCAtbiAiJHJwYXRoIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAt cnBhdGgnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3QgLW4gIiR4cnBh dGgiICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIK KysKKysgICAgICB0ZXN0IC1uICIkdmluZm8iICYmIFwKKysJZnVuY193YXJuaW5nICJcYC12ZXJz aW9uLWluZm8vLXZlcnNpb24tbnVtYmVyJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysg ICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2Un IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgorKworKyAgICAgIHRlc3QgLW4gIiRleHBvcnRfc3lt Ym9scyRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLWV4cG9y dC1zeW1ib2xzJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcyIKKysKKysgICAgICAjIE5vdyBzZXQg dGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KKysgICAgICBidWlsZF9s aWJ0b29sX2xpYnM9bm8KKysgICAgICBvbGRsaWJzPSIkb3V0cHV0IgorKyAgICAgIG9ianM9IiRv YmpzJG9sZF9kZXBsaWJzIgorKyAgICAgIDs7CisrCisrICAgIGxpYikKKysgICAgICAjIE1ha2Ug c3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxpYnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScu CisrICAgICAgY2FzZSAkb3V0cHV0bmFtZSBpbgorKyAgICAgIGxpYiopCisrCWZ1bmNfc3RyaXBu YW1lICdsaWInICcubGEnICIkb3V0cHV0bmFtZSIKKysJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVz dWx0CisrCWV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCisrCWV2YWwgbGlibmFtZT1c IiRsaWJuYW1lX3NwZWNcIgorKwk7OworKyAgICAgICopCisrCXRlc3QgIiRtb2R1bGUiID0gbm8g JiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVscCAibGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgbXVz dCBiZWdpbiB3aXRoIFxgbGliJyIKKysKKysJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0g bm87IHRoZW4KKysJICAjIEFkZCB0aGUgImxpYiIgcHJlZml4IGZvciBtb2R1bGVzIGlmIHJlcXVp cmVkCisrCSAgZnVuY19zdHJpcG5hbWUgJycgJy5sYScgIiRvdXRwdXRuYW1lIgorKwkgIG5hbWU9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgIGV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21k c1wiCisrCSAgZXZhbCBsaWJuYW1lPVwiJGxpYm5hbWVfc3BlY1wiCisrCWVsc2UKKysJICBmdW5j X3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91dHB1dG5hbWUiCisrCSAgbGlibmFtZT0kZnVuY19zdHJp cG5hbWVfcmVzdWx0CisrCWZpCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgIGlmIHRlc3Qg LW4gIiRvYmpzIjsgdGhlbgorKwlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBh c3NfYWxsOyB0aGVuCisrCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnRvb2wg bGlicmFyeSBcYCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6 JG9ianMiCisrCWVsc2UKKysJICAkRUNITworKwkgICRFQ0hPICIqKiogV2FybmluZzogTGlua2lu ZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0IHRoZSBub24tbGlidG9vbCIKKysJ ICAkRUNITyAiKioqIG9iamVjdHMgJG9ianMgaXMgbm90IHBvcnRhYmxlISIKKysJICBsaWJvYmpz PSIkbGlib2JqcyAkb2JqcyIKKysJZmkKKysgICAgICBmaQorKworKyAgICAgIHRlc3QgIiRkbHNl bGYiICE9IG5vICYmIFwKKysJZnVuY193YXJuaW5nICJcYC1kbG9wZW4gc2VsZicgaXMgaWdub3Jl ZCBmb3IgbGlidG9vbCBsaWJyYXJpZXMiCisrCisrICAgICAgc2V0IGR1bW15ICRycGF0aAorKyAg ICAgIHNoaWZ0CisrICAgICAgdGVzdCAiJCMiIC1ndCAxICYmIFwKKysJZnVuY193YXJuaW5nICJp Z25vcmluZyBtdWx0aXBsZSBcYC1ycGF0aCdzIGZvciBhIGxpYnRvb2wgbGlicmFyeSIKKysKKysg ICAgICBpbnN0YWxsX2xpYmRpcj0iJDEiCisrCisrICAgICAgb2xkbGlicz0KKysgICAgICBpZiB0 ZXN0IC16ICIkcnBhdGgiOyB0aGVuCisrCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0g eWVzOyB0aGVuCisrCSAgIyBCdWlsZGluZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4K KysJICAjIFNvbWUgY29tcGlsZXJzIGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lv biBzbworKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4 dGVuc2lvbiBhbgorKwkgICMgYXJjaGl2ZSBub3JtYWxseSB3b3VsZC4KKysJICBvbGRsaWJzPSIk b3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0ICRvbGRsaWJzIgorKwkgIGJ1aWxkX2xpYnRv b2xfbGlicz1jb252ZW5pZW5jZQorKwkgIGJ1aWxkX29sZF9saWJzPXllcworKwlmaQorKworKwl0 ZXN0IC1uICIkdmluZm8iICYmIFwKKysJICBmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8t dmVyc2lvbi1udW1iZXInIGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKKysK KysJdGVzdCAtbiAiJHJlbGVhc2UiICYmIFwKKysJICBmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2Un IGlzIGlnbm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKKysgICAgICBlbHNlCisrCisr CSMgUGFyc2UgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gYXJndW1lbnQuCisrCXNhdmVfaWZzPSIk SUZTIjsgSUZTPSc6JworKwlzZXQgZHVtbXkgJHZpbmZvIDAgMCAwCisrCXNoaWZ0CisrCUlGUz0i JHNhdmVfaWZzIgorKworKwl0ZXN0IC1uICIkNyIgJiYgXAorKwkgIGZ1bmNfZmF0YWxfaGVscCAi dG9vIG1hbnkgcGFyYW1ldGVycyB0byBcYC12ZXJzaW9uLWluZm8nIgorKworKwkjIGNvbnZlcnQg YWJzb2x1dGUgdmVyc2lvbiBudW1iZXJzIHRvIGxpYnRvb2wgYWdlcworKwkjIHRoaXMgcmV0YWlu cyBjb21wYXRpYmlsaXR5IHdpdGggLmxhIGZpbGVzIGFuZCBhdHRlbXB0cworKwkjIHRvIG1ha2Ug dGhlIGNvZGUgYmVsb3cgYSBiaXQgbW9yZSBjb21wcmVoZW5zaWJsZQorKworKwljYXNlICR2aW5m b19udW1iZXIgaW4KKysJeWVzKQorKwkgIG51bWJlcl9tYWpvcj0iJDEiCisrCSAgbnVtYmVyX21p bm9yPSIkMiIKKysJICBudW1iZXJfcmV2aXNpb249IiQzIgorKwkgICMKKysJICAjIFRoZXJlIGFy ZSByZWFsbHkgb25seSB0d28ga2luZHMgLS0gdGhvc2UgdGhhdAorKwkgICMgdXNlIHRoZSBjdXJy ZW50IHJldmlzaW9uIGFzIHRoZSBtYWpvciB2ZXJzaW9uCisrCSAgIyBhbmQgdGhvc2UgdGhhdCBz dWJ0cmFjdCBhZ2UgYW5kIHVzZSBhZ2UgYXMKKysJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwg dGhlbiB0aGVyZSBpcyBpcml4CisrCSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0 IGZvciBmdW4KKysJICAjCisrCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrCSAgZGFyd2lufGxp bnV4fG9zZnx3aW5kb3dzfG5vbmUpCisrCSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAk bnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgYWdl PSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1iZXJfcmV2aXNpb24iCisrCSAg ICA7OworKwkgIGZyZWVic2QtYW91dHxmcmVlYnNkLWVsZnxzdW5vcykKKysJICAgIGN1cnJlbnQ9 IiRudW1iZXJfbWFqb3IiCisrCSAgICByZXZpc2lvbj0iJG51bWJlcl9taW5vciIKKysJICAgIGFn ZT0iMCIKKysJICAgIDs7CisrCSAgaXJpeHxub25zdG9wdXgpCisrCSAgICBmdW5jX2FyaXRoICRu dW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCisrCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jl c3VsdAorKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgorKwkgICAgcmV2aXNpb249IiRudW1iZXJf bWlub3IiCisrCSAgICBsdF9pcml4X2luY3JlbWVudD1ubworKwkgICAgOzsKKysJICBlc2FjCisr CSAgOzsKKysJbm8pCisrCSAgY3VycmVudD0iJDEiCisrCSAgcmV2aXNpb249IiQyIgorKwkgIGFn ZT0iJDMiCisrCSAgOzsKKysJZXNhYworKworKwkjIENoZWNrIHRoYXQgZWFjaCBvZiB0aGUgdGhp bmdzIGFyZSB2YWxpZCBudW1iZXJzLgorKwljYXNlICRjdXJyZW50IGluCisrCTB8WzEtOV18WzEt OV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVsw LTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5jX2Vycm9yICJDVVJSRU5UIFxgJGN1cnJl bnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIgorKwkgIGZ1bmNfZmF0YWxfZXJyb3Ig IlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKysJICA7OworKwll c2FjCisrCisrCWNhc2UgJHJldmlzaW9uIGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVsw LTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkg OzsKKysJKikKKysJICBmdW5jX2Vycm9yICJSRVZJU0lPTiBcYCRyZXZpc2lvbicgbXVzdCBiZSBh IG5vbm5lZ2F0aXZlIGludGVnZXIiCisrCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkdmluZm8nIGlz IG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgorKwkgIDs7CisrCWVzYWMKKysKKysJY2Fz ZSAkYWdlIGluCisrCTB8WzEtOV18WzEtOV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05 XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV1bMC05XSkgOzsKKysJKikKKysJICBmdW5j X2Vycm9yICJBR0UgXGAkYWdlJyBtdXN0IGJlIGEgbm9ubmVnYXRpdmUgaW50ZWdlciIKKysJICBm dW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRp b24iCisrCSAgOzsKKysJZXNhYworKworKwlpZiB0ZXN0ICIkYWdlIiAtZ3QgIiRjdXJyZW50Ijsg dGhlbgorKwkgIGZ1bmNfZXJyb3IgIkFHRSBcYCRhZ2UnIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3Vy cmVudCBpbnRlcmZhY2UgbnVtYmVyIFxgJGN1cnJlbnQnIgorKwkgIGZ1bmNfZmF0YWxfZXJyb3Ig IlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIKKysJZmkKKysKKysJ IyBDYWxjdWxhdGUgdGhlIHZlcnNpb24gdmFyaWFibGVzLgorKwltYWpvcj0KKysJdmVyc3VmZml4 PQorKwl2ZXJzdHJpbmc9CisrCWNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwlub25lKSA7OworKwor KwlkYXJ3aW4pCisrCSAgIyBMaWtlIExpbnV4LCBidXQgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9u IGF2YWlsYWJsZSBpbgorKwkgICMgdmVyc3RyaW5nIGZvciBjb2RpbmcgaXQgaW50byB0aGUgbGli cmFyeSBoZWFkZXIKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQorKwkgIG1ham9yPS4k ZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIK KysJICAjIERhcndpbiBsZCBkb2Vzbid0IGxpa2UgMCBmb3IgdGhlc2Ugb3B0aW9ucy4uLgorKwkg IGZ1bmNfYXJpdGggJGN1cnJlbnQgKyAxCisrCSAgbWlub3JfY3VycmVudD0kZnVuY19hcml0aF9y ZXN1bHQKKysJICB4bGN2ZXJzdHJpbmc9IiR7d2x9LWNvbXBhdGliaWxpdHlfdmVyc2lvbiAke3ds fSRtaW5vcl9jdXJyZW50ICR7d2x9LWN1cnJlbnRfdmVyc2lvbiAke3dsfSRtaW5vcl9jdXJyZW50 LiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9Ii1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJG1pbm9y X2N1cnJlbnQgLWN1cnJlbnRfdmVyc2lvbiAkbWlub3JfY3VycmVudC4kcmV2aXNpb24iCisrCSAg OzsKKysKKysJZnJlZWJzZC1hb3V0KQorKwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAgdmVyc3Vm Zml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIjsKKysJICA7OworKworKwlmcmVlYnNkLWVsZikKKysJ ICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgorKwkgIDs7Cisr CisrCWlyaXggfCBub25zdG9wdXgpCisrCSAgaWYgdGVzdCAiWCRsdF9pcml4X2luY3JlbWVudCIg PSAiWG5vIjsgdGhlbgorKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKKysJICBlbHNl CisrCSAgICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZSArIDEKKysJICBmaQorKwkgIG1ham9y PSRmdW5jX2FyaXRoX3Jlc3VsdAorKworKwkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorKwkgICAg bm9uc3RvcHV4KSB2ZXJzdHJpbmdfcHJlZml4PW5vbnN0b3B1eCA7OworKwkgICAgKikgICAgICAg ICB2ZXJzdHJpbmdfcHJlZml4PXNnaSA7OworKwkgIGVzYWMKKysJICB2ZXJzdHJpbmc9IiR2ZXJz dHJpbmdfcHJlZml4JG1ham9yLiRyZXZpc2lvbiIKKysKKysJICAjIEFkZCBpbiBhbGwgdGhlIGlu dGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgorKwkgIGxvb3A9JHJldmlzaW9u CisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAwOyBkbworKwkgICAgZnVuY19hcml0aCAkcmV2 aXNpb24gLSAkbG9vcAorKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0CisrCSAgICBmdW5j X2FyaXRoICRsb29wIC0gMQorKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIHZl cnN0cmluZz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJGlmYWNlOiR2ZXJzdHJpbmciCisrCSAg ZG9uZQorKworKwkgICMgQmVmb3JlIHRoaXMgcG9pbnQsICRtYWpvciBtdXN0IG5vdCBjb250YWlu IGAuJy4KKysJICBtYWpvcj0uJG1ham9yCisrCSAgdmVyc3VmZml4PSIkbWFqb3IuJHJldmlzaW9u IgorKwkgIDs7CisrCisrCWxpbnV4KQorKwkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCisr CSAgbWFqb3I9LiRmdW5jX2FyaXRoX3Jlc3VsdAorKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRhZ2Uu JHJldmlzaW9uIgorKwkgIDs7CisrCisrCW9zZikKKysJICBmdW5jX2FyaXRoICRjdXJyZW50IC0g JGFnZQorKwkgIG1ham9yPS4kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9Ii4kY3Vy cmVudC4kYWdlLiRyZXZpc2lvbiIKKysJICB2ZXJzdHJpbmc9IiRjdXJyZW50LiRhZ2UuJHJldmlz aW9uIgorKworKwkgICMgQWRkIGluIGFsbCB0aGUgaW50ZXJmYWNlcyB0aGF0IHdlIGFyZSBjb21w YXRpYmxlIHdpdGguCisrCSAgbG9vcD0kYWdlCisrCSAgd2hpbGUgdGVzdCAiJGxvb3AiIC1uZSAw OyBkbworKwkgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRsb29wCisrCSAgICBpZmFjZT0kZnVu Y19hcml0aF9yZXN1bHQKKysJICAgIGZ1bmNfYXJpdGggJGxvb3AgLSAxCisrCSAgICBsb29wPSRm dW5jX2FyaXRoX3Jlc3VsdAorKwkgICAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nOiR7aWZhY2V9LjAi CisrCSAgZG9uZQorKworKwkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3VyIGN1cnJl bnQgdmVyc2lvbi4KKysJICB2ZXJzdHJpbmc9IiR2ZXJzdHJpbmc6JHtjdXJyZW50fS4wIgorKwkg IDs7CisrCisrCXFueCkKKysJICBtYWpvcj0iLiRjdXJyZW50IgorKwkgIHZlcnN1ZmZpeD0iLiRj dXJyZW50IgorKwkgIDs7CisrCisrCXN1bm9zKQorKwkgIG1ham9yPSIuJGN1cnJlbnQiCisrCSAg dmVyc3VmZml4PSIuJGN1cnJlbnQuJHJldmlzaW9uIgorKwkgIDs7CisrCisrCXdpbmRvd3MpCisr CSAgIyBVc2UgJy0nIHJhdGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25seSB3YW50IG9uZQorKwkg ICMgZXh0ZW5zaW9uIG9uIERPUyA4LjMgZmlsZXN5c3RlbXMuCisrCSAgZnVuY19hcml0aCAkY3Vy cmVudCAtICRhZ2UKKysJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKKysJICB2ZXJzdWZmaXg9 Ii0kbWFqb3IiCisrCSAgOzsKKysKKysJKikKKysJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24g InVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKKysJICA7Owor Kwllc2FjCisrCisrCSMgQ2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3ZSBkZWZhdWx0ZWQsIGFu ZCB0aGV5IHNwZWNpZmllZCBhIHJlbGVhc2UuCisrCWlmIHRlc3QgLXogIiR2aW5mbyIgJiYgdGVz dCAtbiAiJHJlbGVhc2UiOyB0aGVuCisrCSAgbWFqb3I9CisrCSAgY2FzZSAkdmVyc2lvbl90eXBl IGluCisrCSAgZGFyd2luKQorKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBmb3IgIjAuMCIgaW4gYXJj aGl2ZV9jbWRzIGR1ZSB0byBxdW90aW5nCisrCSAgICAjIHByb2JsZW1zLCBzbyB3ZSByZXNldCBp dCBjb21wbGV0ZWx5CisrCSAgICB2ZXJzdHJpbmc9CisrCSAgICA7OworKwkgICopCisrCSAgICB2 ZXJzdHJpbmc9IjAuMCIKKysJICAgIDs7CisrCSAgZXNhYworKwkgIGlmIHRlc3QgIiRuZWVkX3Zl cnNpb24iID0gbm87IHRoZW4KKysJICAgIHZlcnN1ZmZpeD0KKysJICBlbHNlCisrCSAgICB2ZXJz dWZmaXg9Ii4wLjAiCisrCSAgZmkKKysJZmkKKysKKysJIyBSZW1vdmUgdmVyc2lvbiBpbmZvIGZy b20gbmFtZSBpZiB2ZXJzaW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCisrCWlmIHRlc3QgIiRhdm9p ZF92ZXJzaW9uIiA9IHllcyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCisrCSAg bWFqb3I9CisrCSAgdmVyc3VmZml4PQorKwkgIHZlcnN0cmluZz0iIgorKwlmaQorKworKwkjIENo ZWNrIHRvIHNlZSBpZiB0aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZpbmVkIHN5bWJvbHMuCisr CWlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0geWVzOyB0aGVuCisrCSAgaWYgdGVzdCAiJGFs bG93X3VuZGVmaW5lZF9mbGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCisrCSAgICBmdW5jX3dhcm5p bmcgInVuZGVmaW5lZCBzeW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJyYXJp ZXMiCisrCSAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgIGJ1aWxkX29sZF9saWJzPXll cworKwkgIGZpCisrCWVsc2UKKysJICAjIERvbid0IGFsbG93IHVuZGVmaW5lZCBzeW1ib2xzLgor KwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2ZsYWciCisrCWZpCisrCisr ICAgICAgZmkKKysKKysgICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJGxpYm5hbWUiICIkbGli bmFtZSIgInllcyIKKysgICAgICBsaWJvYmpzPSIkbGlib2JqcyAkc3ltZmlsZW9iaiIKKysgICAg ICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKworKyAgICAgIGlmIHRlc3Qg IiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKysJIyBSZW1vdmUgb3VyIG91dHB1dHMsIGJ1dCBkb24n dCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKKysJIyBtYXkgaGF2ZSBiZWVuIGNyZWF0 ZWQgd2hlbiBjb21waWxpbmcgUElDIG9iamVjdHMuCisrCXJlbW92ZWxpc3Q9CisrCXRlbXByZW1v dmVsaXN0PWAkRUNITyAiJG91dHB1dF9vYmpkaXIvKiJgCisrCWZvciBwIGluICR0ZW1wcmVtb3Zl bGlzdDsgZG8KKysJICBjYXNlICRwIGluCisrCSAgICAqLiRvYmpleHQgfCAqLmdjbm8pCisrCSAg ICAgICA7OworKwkgICAgJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUgfCAkb3V0cHV0X29iamRp ci8kbGlibmFtZS4qIHwgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfSR7cmVsZWFzZX0uKikKKysJ ICAgICAgIGlmIHRlc3QgIlgkcHJlY2lvdXNfZmlsZXNfcmVnZXgiICE9ICJYIjsgdGhlbgorKwkJ IGlmICRFQ0hPICIkcCIgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9kZXYv bnVsbCAyPiYxCisrCQkgdGhlbgorKwkJICAgY29udGludWUKKysJCSBmaQorKwkgICAgICAgZmkK KysJICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorKwkgICAgICAgOzsKKysJICAg ICopIDs7CisrCSAgZXNhYworKwlkb25lCisrCXRlc3QgLW4gIiRyZW1vdmVsaXN0IiAmJiBcCisr CSAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCisrICAgICAgZmkKKysKKysg ICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4K KysgICAgICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9s aWJ0b29sX2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgorKwlvbGRsaWJzPSIkb2xkbGlicyAk b3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorKworKwkjIFRyYW5zZm9ybSAubG8gZmls ZXMgdG8gLm8gZmlsZXMuCisrCW9sZG9ianM9IiRvYmpzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAk U1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1Bg CisrICAgICAgZmkKKysKKysgICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9y aWVzLgorKyAgICAgICNmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKyAgICAgICMJbGli X3NlYXJjaF9wYXRoPWAkRUNITyAiWCRsaWJfc2VhcmNoX3BhdGggIiB8ICRYc2VkIC1lICJzJSAk cGF0aCAlICVnImAKKysgICAgICAjCWRlcGxpYnM9YCRFQ0hPICJYJGRlcGxpYnMgIiB8ICRYc2Vk IC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAgICMJZGVwZW5kZW5jeV9saWJzPWAkRUNITyAi WCRkZXBlbmRlbmN5X2xpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAorKyAgICAg ICNkb25lCisrCisrICAgICAgaWYgdGVzdCAtbiAiJHhycGF0aCI7IHRoZW4KKysJIyBJZiB0aGUg dXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgorKwl0ZW1wX3hy cGF0aD0KKysJZm9yIGxpYmRpciBpbiAkeHJwYXRoOyBkbworKwkgIHRlbXBfeHJwYXRoPSIkdGVt cF94cnBhdGggLVIkbGliZGlyIgorKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCisrCSAg KiIgJGxpYmRpciAiKikgOzsKKysJICAqKSBmaW5hbGl6ZV9ycGF0aD0iJGZpbmFsaXplX3JwYXRo ICRsaWJkaXIiIDs7CisrCSAgZXNhYworKwlkb25lCisrCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRv X2xpYnMiICE9IHllcyB8fCB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrCSAg ZGVwZW5kZW5jeV9saWJzPSIkdGVtcF94cnBhdGggJGRlcGVuZGVuY3lfbGlicyIKKysJZmkKKysg ICAgICBmaQorKworKyAgICAgICMgTWFrZSBzdXJlIGRsZmlsZXMgY29udGFpbnMgb25seSB1bmlx dWUgZmlsZXMgdGhhdCB3b24ndCBiZSBkbHByZW9wZW5lZAorKyAgICAgIG9sZF9kbGZpbGVzPSIk ZGxmaWxlcyIKKysgICAgICBkbGZpbGVzPQorKyAgICAgIGZvciBsaWIgaW4gJG9sZF9kbGZpbGVz OyBkbworKwljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7 OworKwkqKSBkbGZpbGVzPSIkZGxmaWxlcyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQor KworKyAgICAgICMgTWFrZSBzdXJlIGRscHJlZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmls ZXMKKysgICAgICBvbGRfZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMiCisrICAgICAgZGxwcmVmaWxl cz0KKysgICAgICBmb3IgbGliIGluICRvbGRfZGxwcmVmaWxlczsgZG8KKysJY2FzZSAiJGRscHJl ZmlsZXMgIiBpbgorKwkqIiAkbGliICIqKSA7OworKwkqKSBkbHByZWZpbGVzPSIkZGxwcmVmaWxl cyAkbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKworKyAgICAgIGlmIHRlc3QgIiRidWls ZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4K KysJICBjYXNlICRob3N0IGluCisrCSAgKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3 MzIqIHwgKi0qLW9zMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikKKysJICAgICMgdGhlc2Ugc3lz dGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgYyBsaWJyYXJ5IChhcyBzdWNoKSEKKysJICAgIDs7 CisrCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQorKwkgICAgIyBSaGFwc29k eSBDIGxpYnJhcnkgaXMgaW4gdGhlIFN5c3RlbSBmcmFtZXdvcmsKKysJICAgIGRlcGxpYnM9IiRk ZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKysJICAgIDs7CisrCSAgKi0qLW5ldGJzZCopCisr CSAgICAjIERvbid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhl ZC4KKysJICAgIDs7CisrCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdv bmZseSopCisrCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJj L2xpYmNfci4KKysJICAgIDs7CisrCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQorKwkg ICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCisrCSAgICA7OworKwkgICotKi1zeXN2 NC4ydXcyKiB8ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKKysJ ICAgICMgQ29tcGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJl YWRzIHRvIHdvcmsKKysJICAgIDs7CisrCSAgKikKKysJICAgICMgQWRkIGxpYmMgdG8gZGVwbGli cyBvbiBhbGwgb3RoZXIgc3lzdGVtcyBpZiBuZWNlc3NhcnkuCisrCSAgICBpZiB0ZXN0ICIkYnVp bGRfbGlidG9vbF9uZWVkX2xjIiA9ICJ5ZXMiOyB0aGVuCisrCSAgICAgIGRlcGxpYnM9IiRkZXBs aWJzIC1sYyIKKysJICAgIGZpCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkKKysKKysJIyBUcmFu c2Zvcm0gZGVwbGlicyBpbnRvIG9ubHkgZGVwbGlicyB0aGF0IGNhbiBiZSBsaW5rZWQgaW4gc2hh cmVkLgorKwluYW1lX3NhdmU9JG5hbWUKKysJbGlibmFtZV9zYXZlPSRsaWJuYW1lCisrCXJlbGVh c2Vfc2F2ZT0kcmVsZWFzZQorKwl2ZXJzdWZmaXhfc2F2ZT0kdmVyc3VmZml4CisrCW1ham9yX3Nh dmU9JG1ham9yCisrCSMgSSdtIG5vdCBzdXJlIGlmIEknbSB0cmVhdGluZyB0aGUgcmVsZWFzZSBj b3JyZWN0bHkuICBJIHRoaW5rCisrCSMgcmVsZWFzZSBzaG91bGQgc2hvdyB1cCBpbiB0aGUgLWwg KGllIC1sZ21wNSkgc28gd2UgZG9uJ3Qgd2FudCB0bworKwkjIGFkZCBpdCBpbiB0d2ljZS4gIElz IHRoYXQgY29ycmVjdD8KKysJcmVsZWFzZT0iIgorKwl2ZXJzdWZmaXg9IiIKKysJbWFqb3I9IiIK KysJbmV3ZGVwbGlicz0KKysJZHJvcHBlZGRlcHM9bm8KKysJY2FzZSAkZGVwbGlic19jaGVja19t ZXRob2QgaW4KKysJcGFzc19hbGwpCisrCSAgIyBEb24ndCBjaGVjayBmb3Igc2hhcmVkL3N0YXRp Yy4gIEV2ZXJ5dGhpbmcgd29ya3MuCisrCSAgIyBUaGlzIG1pZ2h0IGJlIGEgbGl0dGxlIG5haXZl LiAgV2UgbWlnaHQgd2FudCB0byBjaGVjaworKwkgICMgd2hldGhlciB0aGUgbGlicmFyeSBleGlz dHMgb3Igbm90LiAgQnV0IHRoaXMgaXMgb24KKysJICAjIG9zZjMgJiBvc2Y0IGFuZCBJJ20gbm90 IHJlYWxseSBzdXJlLi4uIEp1c3QKKysJICAjIGltcGxlbWVudGluZyB3aGF0IHdhcyBhbHJlYWR5 IHRoZSBiZWhhdmlvci4KKysJICBuZXdkZXBsaWJzPSRkZXBsaWJzCisrCSAgOzsKKysJdGVzdF9j b21waWxlKQorKwkgICMgVGhpcyBjb2RlIHN0cmVzc2VzIHRoZSAibGlicmFyaWVzIGFyZSBwcm9n cmFtcyIgcGFyYWRpZ20gdG8gaXRzCisrCSAgIyBsaW1pdHMuIE1heWJlIGV2ZW4gYnJlYWtzIGl0 LiAgV2UgY29tcGlsZSBhIHByb2dyYW0sIGxpbmtpbmcgaXQKKysJICAjIGFnYWluc3QgdGhlIGRl cGxpYnMgYXMgYSBwcm94eSBmb3IgdGhlIGxpYnJhcnkuICBUaGVuIHdlIGNhbiBjaGVjaworKwkg ICMgd2hldGhlciB0aGV5IGxpbmtlZCBpbiBzdGF0aWNhbGx5IG9yIGR5bmFtaWNhbGx5IHdpdGgg bGRkLgorKwkgICRvcHRfZHJ5X3J1biB8fCAkUk0gY29uZnRlc3QuYworKwkgIGNhdCA+IGNvbmZ0 ZXN0LmMgPDxFT0YKKysJICBpbnQgbWFpbigpIHsgcmV0dXJuIDA7IH0KKytFT0YKKysJICAkb3B0 X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0CisrCSAgaWYgJExUQ0MgJExUQ0ZMQUdTIC1vIGNvbmZ0 ZXN0IGNvbmZ0ZXN0LmMgJGRlcGxpYnM7IHRoZW4KKysJICAgIGxkZF9vdXRwdXQ9YGxkZCBjb25m dGVzdGAKKysJICAgIGZvciBpIGluICRkZXBsaWJzOyBkbworKwkgICAgICBjYXNlICRpIGluCisr CSAgICAgIC1sKikKKysJCWZ1bmNfc3RyaXBuYW1lIC1sICcnICIkaSIKKysJCW5hbWU9JGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdAorKwkJaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9z dGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgorKwkJICBjYXNlICIgJHByZWRlcHMgJHBv c3RkZXBzICIgaW4KKysJCSAgKiIgJGkgIiopCisrCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxp YnMgJGkiCisrCQkgICAgaT0iIgorKwkJICAgIDs7CisrCQkgIGVzYWMKKysJCWZpCisrCQlpZiB0 ZXN0IC1uICIkaSIgOyB0aGVuCisrCQkgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFt ZV9zcGVjXCIiYAorKwkJICBkZXBsaWJfbWF0Y2hlcz1gZXZhbCAiXFwkRUNITyBcIiRsaWJyYXJ5 X25hbWVzX3NwZWNcIiJgCisrCQkgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0Cisr CQkgIGRlcGxpYl9tYXRjaD0kMQorKwkJICBpZiB0ZXN0IGBleHByICIkbGRkX291dHB1dCIgOiAi LiokZGVwbGliX21hdGNoImAgLW5lIDAgOyB0aGVuCisrCQkgICAgbmV3ZGVwbGlicz0iJG5ld2Rl cGxpYnMgJGkiCisrCQkgIGVsc2UKKysJCSAgICBkcm9wcGVkZGVwcz15ZXMKKysJCSAgICAkRUNI TworKwkJICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBub3QgYWNj ZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKysJCSAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2Fw YWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIK KysJCSAgICAkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBv bmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKysJCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJz aW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCBJIGJlbGlldmUgeW91IGRvIG5vdCBoYXZlIgorKwkJ ICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhl IGxpbmtlciBkaWQgbm90IHVzZSBpdCBmb3IiCisrCQkgICAgJEVDSE8gIioqKiBpdHMgZHluYW1p YyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50 aW1lLiIKKysJCSAgZmkKKysJCWZpCisrCQk7OworKwkgICAgICAqKQorKwkJbmV3ZGVwbGlicz0i JG5ld2RlcGxpYnMgJGkiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgZWxz ZQorKwkgICAgIyBFcnJvciBvY2N1cnJlZCBpbiB0aGUgZmlyc3QgY29tcGlsZS4gIExldCdzIHRy eSB0byBzYWx2YWdlCisrCSAgICAjIHRoZSBzaXR1YXRpb246IENvbXBpbGUgYSBzZXBhcmF0ZSBw cm9ncmFtIGZvciBlYWNoIGxpYnJhcnkuCisrCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KKysJ ICAgICAgY2FzZSAkaSBpbgorKwkgICAgICAtbCopCisrCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAi JGkiCisrCQluYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKysJCSRvcHRfZHJ5X3J1biB8fCAk Uk0gY29uZnRlc3QKKysJCWlmICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5j ICRpOyB0aGVuCisrCQkgIGxkZF9vdXRwdXQ9YGxkZCBjb25mdGVzdGAKKysJCSAgaWYgdGVzdCAi WCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhl bgorKwkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJICAgICoiICRpICIq KQorKwkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisrCQkgICAgICBpPSIiCisr CQkgICAgICA7OworKwkJICAgIGVzYWMKKysJCSAgZmkKKysJCSAgaWYgdGVzdCAtbiAiJGkiIDsg dGhlbgorKwkJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVjXCIiYAor KwkJICAgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFtZXNfc3Bl Y1wiImAKKysJCSAgICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAorKwkJICAgIGRl cGxpYl9tYXRjaD0kMQorKwkJICAgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRk ZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KKysJCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBs aWJzICRpIgorKwkJICAgIGVsc2UKKysJCSAgICAgIGRyb3BwZWRkZXBzPXllcworKwkJICAgICAg JEVDSE8KKysJCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBu b3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKKysJCSAgICAgICRFQ0hPICIqKiogSSBoYXZl IHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBp biB3aGVuIgorKwkJICAgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBC dXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCQkgICAgICAkRUNITyAiKioq IHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0 byBoYXZlIgorKwkJICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCBy ZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIHRoaXMgb25lIgorKwkJICAgICAgJEVD SE8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBnZXQgcmVz b2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKysJCSAgICBmaQorKwkJICBmaQorKwkJZWxzZQorKwkJ ICBkcm9wcGVkZGVwcz15ZXMKKysJCSAgJEVDSE8KKysJCSAgJEVDSE8gIioqKiBXYXJuaW5nISAg TGlicmFyeSAkaSBpcyBuZWVkZWQgYnkgdGhpcyBsaWJyYXJ5IGJ1dCBJIHdhcyBub3QgYWJsZSB0 byIKKysJCSAgJEVDSE8gIioqKiBtYWtlIGl0IGxpbmsgaW4hICBZb3Ugd2lsbCBwcm9iYWJseSBu ZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKKysJCSAgJEVDSE8gIioqKiBsaWJyYXJ5IHRoYXQg aXQgZGVwZW5kcyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCisrCQkgICRF Q0hPICIqKiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVmb3JlIGNvbnRpbnVpbmcgd291 bGQgYmUgZXZlbiBiZXR0ZXIuIgorKwkJZmkKKysJCTs7CisrCSAgICAgICopCisrCQluZXdkZXBs aWJzPSIkbmV3ZGVwbGlicyAkaSIKKysJCTs7CisrCSAgICAgIGVzYWMKKysJICAgIGRvbmUKKysJ ICBmaQorKwkgIDs7CisrCWZpbGVfbWFnaWMqKQorKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVj a19tZXRob2Q7IHNoaWZ0CisrCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hl Y2tfbWV0aG9kIiA6ICIkMSBcKC4qXCkiYAorKwkgIGZvciBhX2RlcGxpYiBpbiAkZGVwbGliczsg ZG8KKysJICAgIGNhc2UgJGFfZGVwbGliIGluCisrCSAgICAtbCopCisrCSAgICAgIGZ1bmNfc3Ry aXBuYW1lIC1sICcnICIkYV9kZXBsaWIiCisrCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdAorKwkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIg aW4KKysJCSoiICRhX2RlcGxpYiAiKikKKysJCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFf ZGVwbGliIgorKwkJICBhX2RlcGxpYj0iIgorKwkJICA7OworKwkJZXNhYworKwkgICAgICBmaQor KwkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgorKwkJbGlibmFtZT1gZXZhbCAi XFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCisrCQlmb3IgaSBpbiAkbGliX3NlYXJjaF9wYXRo ICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsgZG8KKysJCSAgcG90ZW50 aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCisrCQkgIGZvciBwb3Rl bnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KKysJCSAgICAgICMgRm9sbG93IHNvZnQgbGlu a3MuCisrCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4vZGV2L251bGwgfAorKwkJ CSAkR1JFUCAiIC0+ICIgPi9kZXYvbnVsbDsgdGhlbgorKwkJCWNvbnRpbnVlCisrCQkgICAgICBm aQorKwkJICAgICAgIyBUaGUgc3RhdGVtZW50IGFib3ZlIHRyaWVzIHRvIGF2b2lkIGVudGVyaW5n IGFuCisrCQkgICAgICAjIGVuZGxlc3MgbG9vcCBiZWxvdywgaW4gY2FzZSBvZiBjeWNsaWMgbGlu a3MuCisrCQkgICAgICAjIFdlIG1pZ2h0IHN0aWxsIGVudGVyIGFuIGVuZGxlc3MgbG9vcCwgc2lu Y2UgYSBsaW5rCisrCQkgICAgICAjIGxvb3AgY2FuIGJlIGNsb3NlZCB3aGlsZSB3ZSBmb2xsb3cg bGlua3MsCisrCQkgICAgICAjIGJ1dCBzbyB3aGF0PworKwkJICAgICAgcG90bGliPSIkcG90ZW50 X2xpYiIKKysJCSAgICAgIHdoaWxlIHRlc3QgLWggIiRwb3RsaWIiIDI+L2Rldi9udWxsOyBkbwor KwkJCXBvdGxpYmxpbms9YGxzIC1sZCAkcG90bGliIHwgJHtTRUR9ICdzLy4qIC0+IC8vJ2AKKysJ CQljYXNlICRwb3RsaWJsaW5rIGluCisrCQkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBwb3Rs aWI9IiRwb3RsaWJsaW5rIjs7CisrCQkJKikgcG90bGliPWAkRUNITyAiWCRwb3RsaWIiIHwgJFhz ZWQgLWUgJ3MsW14vXSokLCwnYCIkcG90bGlibGluayI7OworKwkJCWVzYWMKKysJCSAgICAgIGRv bmUKKysJCSAgICAgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwiXCRwb3RsaWJcIiAyPi9kZXYv bnVsbCB8CisrCQkJICRTRUQgLWUgMTBxIHwKKysJCQkgJEVHUkVQICIkZmlsZV9tYWdpY19yZWdl eCIgPiAvZGV2L251bGw7IHRoZW4KKysJCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBs aWIiCisrCQkJYV9kZXBsaWI9IiIKKysJCQlicmVhayAyCisrCQkgICAgICBmaQorKwkJICBkb25l CisrCQlkb25lCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0 aGVuCisrCQlkcm9wcGVkZGVwcz15ZXMKKysJCSRFQ0hPCisrCQkkRUNITyAiKioqIFdhcm5pbmc6 IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBmaWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxp Yi4iCisrCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGli cmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKysJCSRFQ0hPICIqKiogeW91IGxpbmsg dG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgor KwkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRv IG5vdCBhcHBlYXIgdG8gaGF2ZSIKKysJCSRFQ0hPICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0 aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgorKwkJaWYgdGVzdCAt eiAiJHBvdGxpYiIgOyB0aGVuCisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8g Y2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIGZpbGUgbWFnaWMgdGVzdCkiCisrCQllbHNl CisrCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBhbmQgbm9uZSBvZiB0aGUgY2FuZGlkYXRl cyBwYXNzZWQgYSBmaWxlIGZvcm1hdCB0ZXN0IgorKwkJICAkRUNITyAiKioqIHVzaW5nIGEgZmls ZSBtYWdpYy4gTGFzdCBmaWxlIGNoZWNrZWQ6ICRwb3RsaWIiCisrCQlmaQorKwkgICAgICBmaQor KwkgICAgICA7OworKwkgICAgKikKKysJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KKysJICAg ICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorKwkgICAgICA7OworKwkgICAg ZXNhYworKwkgIGRvbmUgIyBHb25lIHRocm91Z2ggYWxsIGRlcGxpYnMuCisrCSAgOzsKKysJbWF0 Y2hfcGF0dGVybiopCisrCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQK KysJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDog IiQxIFwoLipcKSJgCisrCSAgZm9yIGFfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgICAgY2Fz ZSAkYV9kZXBsaWIgaW4KKysJICAgIC1sKikKKysJICAgICAgZnVuY19zdHJpcG5hbWUgLWwgJycg IiRhX2RlcGxpYiIKKysJICAgICAgbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAg IGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJY eWVzIiA7IHRoZW4KKysJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgorKwkJKiIgJGFf ZGVwbGliICIqKQorKwkJICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkg IGFfZGVwbGliPSIiCisrCQkgIDs7CisrCQllc2FjCisrCSAgICAgIGZpCisrCSAgICAgIGlmIHRl c3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCisrCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxp Ym5hbWVfc3BlY1wiImAKKysJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2Vh cmNoX3BhdGggJHNobGliX3NlYXJjaF9wYXRoOyBkbworKwkJICBwb3RlbnRpYWxfbGlicz1gbHMg JGkvJGxpYm5hbWVbLi1dKiAyPi9kZXYvbnVsbGAKKysJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBv dGVudGlhbF9saWJzOyBkbworKwkJICAgIHBvdGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5bWxp bmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0CisrCQkgICAgaWYgZXZhbCAiXCRFQ0hP IFwiWCRwb3RlbnRfbGliXCIiIDI+L2Rldi9udWxsIHwgJFhzZWQgLWUgMTBxIHwgXAorKwkJICAg ICAgICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCisrCQkg ICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCQkgICAgICBhX2RlcGxp Yj0iIgorKwkJICAgICAgYnJlYWsgMgorKwkJICAgIGZpCisrCQkgIGRvbmUKKysJCWRvbmUKKysJ ICAgICAgZmkKKysJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KKysJCWRyb3Bw ZWRkZXBzPXllcworKwkJJEVDSE8KKysJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGgg ZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKKysJCSRFQ0hP ICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRp Y2FsbHkgbGluayBpbiB3aGVuIgorKwkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJh cnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCisrCQkkRUNITyAiKioq IHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0 byBoYXZlIgorKwkJJEVDSE8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0 aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCisrCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7 IHRoZW4KKysJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdl cmUgZm91bmQuICguLi5mb3IgcmVnZXggcGF0dGVybiB0ZXN0KSIKKysJCWVsc2UKKysJCSAgJEVD SE8gIioqKiB3aXRoICRsaWJuYW1lIGFuZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBh IGZpbGUgZm9ybWF0IHRlc3QiCisrCQkgICRFQ0hPICIqKiogdXNpbmcgYSByZWdleCBwYXR0ZXJu LiBMYXN0IGZpbGUgY2hlY2tlZDogJHBvdGxpYiIKKysJCWZpCisrCSAgICAgIGZpCisrCSAgICAg IDs7CisrCSAgICAqKQorKwkgICAgICAjIEFkZCBhIC1MIGFyZ3VtZW50LgorKwkgICAgICBuZXdk ZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisrCSAgICAgIDs7CisrCSAgICBlc2FjCisr CSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KKysJICA7OworKwlub25lIHwgdW5r bm93biB8ICopCisrCSAgbmV3ZGVwbGlicz0iIgorKwkgIHRtcF9kZXBsaWJzPWAkRUNITyAiWCAk ZGVwbGlicyIgfCAkWHNlZCBcCisrCSAgICAgIC1lICdzLyAtbGMkLy8nIC1lICdzLyAtW0xSXVte IF0qLy9nJ2AKKysJICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCisrCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRl cHMgOyBkbworKwkgICAgICAjIGNhbid0IHVzZSBYc2VkIGJlbG93LCBiZWNhdXNlICRpIG1pZ2h0 IGNvbnRhaW4gJy8nCisrCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiWCAkdG1wX2RlcGxpYnMi IHwgJFhzZWQgLWUgInMsJGksLCJgCisrCSAgICBkb25lCisrCSAgZmkKKysJICBpZiAkRUNITyAi WCAkdG1wX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvWwkgXS8vZycgfAorKwkgICAgICRHUkVQIC4g Pi9kZXYvbnVsbDsgdGhlbgorKwkgICAgJEVDSE8KKysJICAgIGlmIHRlc3QgIlgkZGVwbGlic19j aGVja19tZXRob2QiID0gIlhub25lIjsgdGhlbgorKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6 IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGxh dGZvcm0uIgorKwkgICAgZWxzZQorKwkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxp YnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qga25vd24gdG8gYmUgc3VwcG9ydGVkLiIKKysJICAg IGZpCisrCSAgICAkRUNITyAiKioqIEFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVu Y2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCisrCSAgICBkcm9wcGVkZGVwcz15ZXMKKysJICBmaQor KwkgIDs7CisrCWVzYWMKKysJdmVyc3VmZml4PSR2ZXJzdWZmaXhfc2F2ZQorKwltYWpvcj0kbWFq b3Jfc2F2ZQorKwlyZWxlYXNlPSRyZWxlYXNlX3NhdmUKKysJbGlibmFtZT0kbGlibmFtZV9zYXZl CisrCW5hbWU9JG5hbWVfc2F2ZQorKworKwljYXNlICRob3N0IGluCisrCSotKi1yaGFwc29keSog fCAqLSotZGFyd2luMS5bMDEyXSkKKysJICAjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGli cmFyeSB3aXRoIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCisrCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlgg JG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AK KysJICA7OworKwllc2FjCisrCisrCWlmIHRlc3QgIiRkcm9wcGVkZGVwcyIgPSB5ZXM7IHRoZW4K KysJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgorKwkgICAgJEVDSE8KKysJICAgICRF Q0hPICIqKiogV2FybmluZzogbGlidG9vbCBjb3VsZCBub3Qgc2F0aXNmeSBhbGwgZGVjbGFyZWQg aW50ZXItbGlicmFyeSIKKysJICAgICRFQ0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1vZHVsZSAk bGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIKKysJICAgICRFQ0hPICIq KiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3Bl bmluZyIKKysJICAgICRFQ0hPICIqKiogYXBwbGljYXRpb24gaXMgbGlua2VkIHdpdGggdGhlIC1k bG9wZW4gZmxhZy4iCisrCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhl bgorKwkgICAgICAkRUNITworKwkgICAgICAkRUNITyAiKioqIEhvd2V2ZXIsIHRoaXMgd291bGQg b25seSB3b3JrIGlmIGxpYnRvb2wgd2FzIGFibGUgdG8gZXh0cmFjdCBzeW1ib2wiCisrCSAgICAg ICRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxl bnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorKwkgICAgICAkRUNITyAiKioqIG5vdCBmaW5kIHN1Y2gg YSBwcm9ncmFtLiAgU28sIHRoaXMgbW9kdWxlIGlzIHByb2JhYmx5IHVzZWxlc3MuIgorKwkgICAg ICAkRUNITyAiKioqIFxgbm0nIGZyb20gR05VIGJpbnV0aWxzIGFuZCBhIGZ1bGwgcmVidWlsZCBt YXkgaGVscC4iCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5v OyB0aGVuCisrCSAgICAgIG9sZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQi CisrCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJICAgICAgYnVpbGRfb2xkX2xp YnM9eWVzCisrCSAgICBlbHNlCisrCSAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubworKwkgICAg ZmkKKysJICBlbHNlCisrCSAgICAkRUNITyAiKioqIFRoZSBpbnRlci1saWJyYXJ5IGRlcGVuZGVu Y2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGhlcmUgd2lsbCBiZSIKKysJICAgICRFQ0hPICIq KiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGgg dGhpcyBsaWJyYXJ5IgorKwkgICAgJEVDSE8gIioqKiBvciBpcyBkZWNsYXJlZCB0byAtZGxvcGVu IGl0LiIKKysKKysJICAgIGlmIHRlc3QgIiRhbGxvd191bmRlZmluZWQiID0gbm87IHRoZW4KKysJ ICAgICAgJEVDSE8KKysJICAgICAgJEVDSE8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBu b3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisrCSAgICAgICRFQ0hPICIqKiogYmVjYXVz ZSBlaXRoZXIgdGhlIHBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgdGhlbSBvciIKKysJICAgICAg JEVDSE8gIioqKiBpdCB3YXMgZXhwbGljaXRseSByZXF1ZXN0ZWQgd2l0aCAtbm8tdW5kZWZpbmVk LCIKKysJICAgICAgJEVDSE8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMg dmVyc2lvbiBvZiBpdC4iCisrCSAgICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSBubzsg dGhlbgorKwkJb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKKysJCWJ1 aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKKysJCWJ1aWxkX29sZF9saWJzPXllcworKwkgICAgICBl bHNlCisrCQlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJICAgICAgZmkKKysJICAgIGZpCisrCSAg ZmkKKysJZmkKKysJIyBEb25lIGNoZWNraW5nIGRlcGxpYnMhCisrCWRlcGxpYnM9JG5ld2RlcGxp YnMKKysgICAgICBmaQorKyAgICAgICMgVGltZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJh bWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIKKysgICAgICBjYXNlICRob3N0 IGluCisrCSotKi1kYXJ3aW4qKQorKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICJYICRuZXdkZXBsaWJz IiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcn YAorKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCAkbmV3X2luaGVyaXRl ZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1m cmFtZXdvcmsgXDElZydgCisrCSAgZGVwbGlicz1gJEVDSE8gIlggJGRlcGxpYnMiIHwgJFhzZWQg LWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisrCSAgOzsK KysgICAgICBlc2FjCisrCisrICAgICAgIyBtb3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQg Y29pbmNpZGUgd2l0aCBwYXRocyB0byBub3QgeWV0CisrICAgICAgIyBpbnN0YWxsZWQgbGlicmFy aWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpYnJhcnkgc2VhcmNoIGxpc3QKKysgICAgICBu ZXdfbGlicz0KKysgICAgICBmb3IgcGF0aCBpbiAkbm90aW5zdF9wYXRoOyBkbworKwljYXNlICIg JG5ld19saWJzICIgaW4KKysJKiIgLUwkcGF0aC8kb2JqZGlyICIqKSA7OworKwkqKQorKwkgIGNh c2UgIiAkZGVwbGlicyAiIGluCisrCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQorKwkgICAgbmV3 X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisrCSAgZXNhYworKwkgIDs7Cisr CWVzYWMKKysgICAgICBkb25lCisrICAgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGliczsgZG8KKysJ Y2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBjYXNlICIgJG5ld19saWJzICIgaW4KKysJICAq IiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsK KysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7Owor Kwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKKysKKysgICAg ICAjIEFsbCB0aGUgbGlicmFyeS1zcGVjaWZpYyB2YXJpYWJsZXMgKGluc3RhbGxfbGliZGlyIGlz IHNldCBhYm92ZSkuCisrICAgICAgbGlicmFyeV9uYW1lcz0KKysgICAgICBvbGRfbGlicmFyeT0K KysgICAgICBkbG5hbWU9CisrCisrICAgICAgIyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNp ZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQorKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWlmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0g eWVzOyB0aGVuCisrCSAgIyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRocworKwkgIGhhcmRjb2Rl X2xpYmRpcnM9CisrCSAgZGVwX3JwYXRoPQorKwkgIHJwYXRoPSIkZmluYWxpemVfcnBhdGgiCisr CSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgi CisrCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGly cyI7IHRoZW4KKysJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJCWVsc2UKKysJCSAg IyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkJICBjYXNlICRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciBpbgorKwkJICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQkgICAgOzsKKysJCSAgKikKKysJCSAgICBoYXJkY29k ZV9saWJkaXJzPSIkaGFyZGNvZGVfbGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxp YmRpciIKKysJCSAgICA7OworKwkJICBlc2FjCisrCQlmaQorKwkgICAgICBlbHNlCisrCQlldmFs IGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrCQlkZXBfcnBhdGg9IiRkZXBf cnBhdGggJGZsYWciCisrCSAgICAgIGZpCisrCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3Zh ciI7IHRoZW4KKysJICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgorKwkgICAgICAqIiAkbGli ZGlyICIqKSA7OworKwkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7 OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGRvbmUKKysJICAjIFN1YnN0aXR1dGUgdGhl IGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgorKwkgIGlmIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgorKwkgICAgIHRlc3QgLW4gIiRoYXJkY29kZV9saWJk aXJzIjsgdGhlbgorKwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJICAgIGlmIHRl c3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhlbgorKwkgICAgICBldmFs IGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkXCIKKysJICAgIGVsc2UK KysJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisr CSAgICBmaQorKwkgIGZpCisrCSAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0IC1u ICIkcGVybV9ycGF0aCI7IHRoZW4KKysJICAgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92 YXIuCisrCSAgICBycGF0aD0KKysJICAgIGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCisrCSAg ICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICAgIGRvbmUKKysJICAgIGV2YWwgIiRydW5wYXRo X3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXInOyBleHBvcnQgJHJ1bnBhdGhfdmFyIgorKwkgIGZp CisrCSAgdGVzdCAtbiAiJGRlcF9ycGF0aCIgJiYgZGVwbGlicz0iJGRlcF9ycGF0aCAkZGVwbGli cyIKKysJZmkKKysKKysJc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoIgorKwl0ZXN0ICIk bW9kZSIgIT0gcmVsaW5rICYmIHNobGlicGF0aD0iJGNvbXBpbGVfc2hsaWJwYXRoJHNobGlicGF0 aCIKKysJaWYgdGVzdCAtbiAiJHNobGlicGF0aCI7IHRoZW4KKysJICBldmFsICIkc2hsaWJwYXRo X3Zhcj0nJHNobGlicGF0aFwkJHNobGlicGF0aF92YXInOyBleHBvcnQgJHNobGlicGF0aF92YXIi CisrCWZpCisrCisrCSMgR2V0IHRoZSByZWFsIGFuZCBsaW5rIG5hbWVzIG9mIHRoZSBsaWJyYXJ5 LgorKwlldmFsIHNoYXJlZF9leHQ9XCIkc2hyZXh0X2NtZHNcIgorKwlldmFsIGxpYnJhcnlfbmFt ZXM9XCIkbGlicmFyeV9uYW1lc19zcGVjXCIKKysJc2V0IGR1bW15ICRsaWJyYXJ5X25hbWVzCisr CXNoaWZ0CisrCXJlYWxuYW1lPSIkMSIKKysJc2hpZnQKKysKKysJaWYgdGVzdCAtbiAiJHNvbmFt ZV9zcGVjIjsgdGhlbgorKwkgIGV2YWwgc29uYW1lPVwiJHNvbmFtZV9zcGVjXCIKKysJZWxzZQor KwkgIHNvbmFtZT0iJHJlYWxuYW1lIgorKwlmaQorKwlpZiB0ZXN0IC16ICIkZGxuYW1lIjsgdGhl bgorKwkgIGRsbmFtZT0kc29uYW1lCisrCWZpCisrCisrCWxpYj0iJG91dHB1dF9vYmpkaXIvJHJl YWxuYW1lIgorKwlsaW5rbmFtZXM9CisrCWZvciBsaW5rCisrCWRvCisrCSAgbGlua25hbWVzPSIk bGlua25hbWVzICRsaW5rIgorKwlkb25lCisrCisrCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYg dGhleSBhcmUgcGljCisrCXRlc3QgLXogIiRwaWNfZmxhZyIgJiYgbGlib2Jqcz1gJEVDSE8gIlgk bGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorKwl0ZXN0ICJY JGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKworKwlkZWxmaWxlcz0KKysJaWYgdGVzdCAt biAiJGV4cG9ydF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgor KwkgICRvcHRfZHJ5X3J1biB8fCBjcCAiJGV4cG9ydF9zeW1ib2xzIiAiJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudWV4cCIKKysJICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUudWV4cCIKKysJICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyIKKysJZmkK KysKKysJb3JpZ19leHBvcnRfc3ltYm9scz0KKysJY2FzZSAkaG9zdF9vcyBpbgorKwljeWd3aW4q IHwgbWluZ3cqIHwgY2VnY2MqKQorKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYg dGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgIyBleHBvcnRpbmcg dXNpbmcgdXNlciBzdXBwbGllZCBzeW1maWxlCisrCSAgICBpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4 cG9ydF9zeW1ib2xzYCIgIT0geEVYUE9SVFM7IHRoZW4KKysJICAgICAgIyBhbmQgaXQncyBOT1Qg YWxyZWFkeSBhIC5kZWYgZmlsZS4gTXVzdCBmaWd1cmUgb3V0CisrCSAgICAgICMgd2hpY2ggb2Yg dGhlIGdpdmVuIHN5bWJvbHMgYXJlIGRhdGEgc3ltYm9scyBhbmQgdGFnCisrCSAgICAgICMgdGhl bSBhcyBzdWNoLiBTbywgdHJpZ2dlciB1c2Ugb2YgZXhwb3J0X3N5bWJvbHNfY21kcy4KKysJICAg ICAgIyBleHBvcnRfc3ltYm9scyBnZXRzIHJlYXNzaWduZWQgaW5zaWRlIHRoZSAicHJlcGFyZQor KwkgICAgICAjIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMiIGlmIHN0YXRlbWVudCwgc28g dGhlCisrCSAgICAgICMgaW5jbHVkZV9leHBzeW1zIGxvZ2ljIHN0aWxsIHdvcmtzLgorKwkgICAg ICBvcmlnX2V4cG9ydF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCisrCSAgICAgIGV4cG9ydF9z eW1ib2xzPQorKwkgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCisrCSAgICBmaQorKwkg IGZpCisrCSAgOzsKKysJZXNhYworKworKwkjIFByZXBhcmUgdGhlIGxpc3Qgb2YgZXhwb3J0ZWQg c3ltYm9scworKwlpZiB0ZXN0IC16ICIkZXhwb3J0X3N5bWJvbHMiOyB0aGVuCisrCSAgaWYgdGVz dCAiJGFsd2F5c19leHBvcnRfc3ltYm9scyIgPSB5ZXMgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1i b2xzX3JlZ2V4IjsgdGhlbgorKwkgICAgZnVuY192ZXJib3NlICJnZW5lcmF0aW5nIHN5bWJvbCBs aXN0IGZvciBcYCRsaWJuYW1lLmxhJyIKKysJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29i amRpci8kbGlibmFtZS5leHAiCisrCSAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRleHBvcnRfc3lt Ym9scworKwkgICAgY21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcworKwkgICAgc2F2ZV9pZnM9IiRJ RlMiOyBJRlM9J34nCisrCSAgICBmb3IgY21kIGluICRjbWRzOyBkbworKwkgICAgICBJRlM9IiRz YXZlX2lmcyIKKysJICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKKysJICAgICAgZnVuY19sZW4gIiAk Y21kIgorKwkgICAgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdAorKwkgICAgICBpZiB0ZXN0ICIkbGVu IiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4K KysJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycKKysJCXNraXBwZWRfZXhwb3J0PWZh bHNlCisrCSAgICAgIGVsc2UKKysJCSMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBl eGVjdXRlIGluIG9uZSBzdGVwLgorKwkJZnVuY192ZXJib3NlICJ1c2luZyByZWxvYWRhYmxlIG9i amVjdCBmaWxlIGZvciBleHBvcnQgbGlzdC4uLiIKKysJCXNraXBwZWRfZXhwb3J0PToKKysJCSMg QnJlYWsgb3V0IGVhcmx5LCBvdGhlcndpc2Ugc2tpcHBlZF9leHBvcnQgbWF5IGJlCisrCQkjIHNl dCB0byBmYWxzZSBieSBhIGxhdGVyIGJ1dCBzaG9ydGVyIGNtZC4KKysJCWJyZWFrCisrCSAgICAg IGZpCisrCSAgICBkb25lCisrCSAgICBJRlM9IiRzYXZlX2lmcyIKKysJICAgIGlmIHRlc3QgLW4g IiRleHBvcnRfc3ltYm9sc19yZWdleCIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6 IjsgdGhlbgorKwkgICAgICBmdW5jX3Nob3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJv bHNfcmVnZXgiICIkZXhwb3J0X3N5bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisrCSAg ICAgIGZ1bmNfc2hvd19ldmFsICckTVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3lt Ym9scyInCisrCSAgICBmaQorKwkgIGZpCisrCWZpCisrCisrCWlmIHRlc3QgLW4gIiRleHBvcnRf c3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KKysJICB0bXBfZXhw b3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKKysJICB0ZXN0IC1uICIkb3JpZ19leHBvcnRf c3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19leHBvcnRfc3ltYm9scyIKKysJ ICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2Vk IHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKysJZmkKKysKKysJaWYgdGVzdCAi WCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9s cyI7IHRoZW4KKysJICAjIFRoZSBnaXZlbiBleHBvcnRzX3N5bWJvbHMgZmlsZSBoYXMgdG8gYmUg ZmlsdGVyZWQsIHNvIGZpbHRlciBpdC4KKysJICBmdW5jX3ZlcmJvc2UgImZpbHRlciBzeW1ib2wg bGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8gdGFnIERBVEEgZXhwb3J0cyIKKysJICAjIEZJWE1F OiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90 cyBvZgorKwkgICMgJ3MnIGNvbW1hbmRzIHdoaWNoIG5vdCBhbGwgc2VkcyBjYW4gaGFuZGxlLiBH TlUgc2VkIHNob3VsZCBiZSBmaW5lCisrCSAgIyB0aG91Z2guIEFsc28sIHRoZSBmaWx0ZXIgc2Nh bGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVtYmVyIG9mCisrCSAgIyBnbG9iYWwgdmFyaWFi bGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKKysJICAj IGlzbid0IGEgYmxlc3NlZCB0b29sLgorKwkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAs XURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3lt Ym9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgorKwkgIGRlbGZpbGVzPSIkZGVs ZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKKysJ ICBleHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYKKysJICAkb3B0X2Ry eV9ydW4gfHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgPCAkb3JpZ19l eHBvcnRfc3ltYm9scyA+ICRleHBvcnRfc3ltYm9scworKwlmaQorKworKwl0bXBfZGVwbGlicz0K KysJZm9yIHRlc3RfZGVwbGliIGluICRkZXBsaWJzOyBkbworKwkgIGNhc2UgIiAkY29udmVuaWVu Y2UgIiBpbgorKwkgICoiICR0ZXN0X2RlcGxpYiAiKikgOzsKKysJICAqKQorKwkgICAgdG1wX2Rl cGxpYnM9IiR0bXBfZGVwbGlicyAkdGVzdF9kZXBsaWIiCisrCSAgICA7OworKwkgIGVzYWMKKysJ ZG9uZQorKwlkZXBsaWJzPSIkdG1wX2RlcGxpYnMiCisrCisrCWlmIHRlc3QgLW4gIiRjb252ZW5p ZW5jZSI7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiICYm CisrCSAgICB0ZXN0ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9IHllcyAmJgorKwkgICAgdGVz dCAteiAiJGxpYm9ianMiOyB0aGVuCisrCSAgICAjIGV4dHJhY3QgdGhlIGFyY2hpdmVzLCBzbyB3 ZSBoYXZlIG9iamVjdHMgdG8gbGlzdC4KKysJICAgICMgVE9ETzogY291bGQgb3B0aW1pemUgdGhp cyB0byBqdXN0IGV4dHJhY3Qgb25lIGFyY2hpdmUuCisrCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYz0KKysJICBmaQorKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7 IHRoZW4KKysJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworKwkgICAgZXZhbCBsaWJvYmpzPVwi XCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCisrCSAgICB0ZXN0ICJYJGxpYm9i anMiID0gIlggIiAmJiBsaWJvYmpzPQorKwkgIGVsc2UKKysJICAgIGdlbnRvcD0iJG91dHB1dF9v YmpkaXIvJHtvdXRwdXRuYW1lfXgiCisrCSAgICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRv cCIKKysKKysJICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRjb252ZW5pZW5jZQor KwkgICAgbGlib2Jqcz0iJGxpYm9ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisr CSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQorKwkgIGZpCisrCWZpCisr CisrCWlmIHRlc3QgIiR0aHJlYWRfc2FmZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJHRocmVhZF9zYWZl X2ZsYWdfc3BlYyI7IHRoZW4KKysJICBldmFsIGZsYWc9XCIkdGhyZWFkX3NhZmVfZmxhZ19zcGVj XCIKKysJICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZsYWciCisrCWZpCisrCisrCSMg TWFrZSBhIGJhY2t1cCBvZiB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSB3aGVuIHJlbGlua2luZwor KwlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKysJICAkb3B0X2RyeV9ydW4gfHwgZXZh bCAnKGNkICRvdXRwdXRfb2JqZGlyICYmICRSTSAke3JlYWxuYW1lfVUgJiYgJE1WICRyZWFsbmFt ZSAke3JlYWxuYW1lfVUpJyB8fCBleGl0ICQ/CisrCWZpCisrCisrCSMgRG8gZWFjaCBvZiB0aGUg YXJjaGl2ZSBjb21tYW5kcy4KKysJaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXMgJiYgdGVzdCAtbiAi JG1vZHVsZV9jbWRzIiA7IHRoZW4KKysJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYm IHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAgICBldmFsIHRlc3RfY21k cz1cIiRtb2R1bGVfZXhwc3ltX2NtZHNcIgorKwkgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRz CisrCSAgZWxzZQorKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkbW9kdWxlX2NtZHNcIgorKwkgICAg Y21kcz0kbW9kdWxlX2NtZHMKKysJICBmaQorKwllbHNlCisrCSAgaWYgdGVzdCAtbiAiJGV4cG9y dF9zeW1ib2xzIiAmJiB0ZXN0IC1uICIkYXJjaGl2ZV9leHBzeW1fY21kcyI7IHRoZW4KKysJICAg IGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hpdmVfZXhwc3ltX2NtZHNcIgorKwkgICAgY21kcz0kYXJj aGl2ZV9leHBzeW1fY21kcworKwkgIGVsc2UKKysJICAgIGV2YWwgdGVzdF9jbWRzPVwiJGFyY2hp dmVfY21kc1wiCisrCSAgICBjbWRzPSRhcmNoaXZlX2NtZHMKKysJICBmaQorKwlmaQorKworKwlp ZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmCisrCSAgIGZ1bmNfbGVuICIgJHRl c3RfY21kcyIgJiYKKysJICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQgJiYKKysJICAgdGVzdCAiJGxl biIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVu CisrCSAgOgorKwllbHNlCisrCSAgIyBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGxp bmsgaW4gb25lIHN0ZXAsIGxpbmsgcGllY2V3aXNlCisrCSAgIyBvciwgaWYgdXNpbmcgR05VIGxk IGFuZCBza2lwcGVkX2V4cG9ydCBpcyBub3QgOiwgdXNlIGEgbGlua2VyCisrCSAgIyBzY3JpcHQu CisrCisrCSAgIyBTYXZlIHRoZSB2YWx1ZSBvZiAkb3V0cHV0IGFuZCAkbGlib2JqcyBiZWNhdXNl IHdlIHdhbnQgdG8KKysJICAjIHVzZSB0aGVtIGxhdGVyLiAgSWYgd2UgaGF2ZSB3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgd2UKKysJICAjIHdhbnQgdG8gdXNlIHNhdmVfbGlib2JqcyBhcyBpdCB3 YXMgYmVmb3JlCisrCSAgIyB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyB3YXMgZXhwYW5kZWQsIGJl Y2F1c2Ugd2UgY2FuJ3QKKysJICAjIGFzc3VtZSB0aGUgbGlua2VyIHVuZGVyc3RhbmRzIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjLgorKwkgICMgVGhpcyBtYXkgaGF2ZSB0byBiZSByZXZpc2l0ZWQs IGluIGNhc2UgdG9vIG1hbnkKKysJICAjIGNvbnZlbmllbmNlIGxpYnJhcmllcyBnZXQgbGlua2Vk IGluIGFuZCBlbmQgdXAgZXhjZWVkaW5nCisrCSAgIyB0aGUgc3BlYy4KKysJICBpZiB0ZXN0IC16 ICIkY29udmVuaWVuY2UiIHx8IHRlc3QgLXogIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRo ZW4KKysJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcworKwkgIGZpCisrCSAgc2F2ZV9vdXRwdXQ9 JG91dHB1dAorKwkgIG91dHB1dF9sYT1gJEVDSE8gIlgkb3V0cHV0IiB8ICRYc2VkIC1lICIkYmFz ZW5hbWUiYAorKworKwkgICMgQ2xlYXIgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGNyZWF0aW9uIGNv bW1hbmQgcXVldWUgYW5kCisrCSAgIyBpbml0aWFsaXplIGsgdG8gb25lLgorKwkgIHRlc3RfY21k cz0KKysJICBjb25jYXRfY21kcz0KKysJICBvYmpsaXN0PQorKwkgIGxhc3Rfcm9iaj0KKysJICBr PTEKKysKKysJICBpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRf ZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJICAg IG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5sbmtzY3JpcHQKKysJICAgIGZ1 bmNfdmVyYm9zZSAiY3JlYXRpbmcgR05VIGxkIHNjcmlwdDogJG91dHB1dCIKKysJICAgICRFQ0hP ICdJTlBVVCAoJyA+ICRvdXRwdXQKKysJICAgIGZvciBvYmogaW4gJHNhdmVfbGlib2JqcworKwkg ICAgZG8KKysJICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKysJICAgIGRvbmUKKysJICAg ICRFQ0hPICcpJyA+PiAkb3V0cHV0CisrCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQi CisrCSAgZWxpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhw b3J0IiAhPSAiWDoiICYmIHRlc3QgIlgkZmlsZV9saXN0X3NwZWMiICE9IFg7IHRoZW4KKysJICAg IG91dHB1dD0ke291dHB1dF9vYmpkaXJ9LyR7b3V0cHV0X2xhfS5sbmsKKysJICAgIGZ1bmNfdmVy Ym9zZSAiY3JlYXRpbmcgbGlua2VyIGlucHV0IGZpbGUgbGlzdDogJG91dHB1dCIKKysJICAgIDog PiAkb3V0cHV0CisrCSAgICBzZXQgeCAkc2F2ZV9saWJvYmpzCisrCSAgICBzaGlmdAorKwkgICAg Zmlyc3RvYmo9CisrCSAgICBpZiB0ZXN0ICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiA9IHllczsg dGhlbgorKwkgICAgICBmaXJzdG9iaj0iJDEgIgorKwkgICAgICBzaGlmdAorKwkgICAgZmkKKysJ ICAgIGZvciBvYmoKKysJICAgIGRvCisrCSAgICAgICRFQ0hPICIkb2JqIiA+PiAkb3V0cHV0Cisr CSAgICBkb25lCisrCSAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRvdXRwdXQiCisrCSAgICBvdXRw dXQ9JGZpcnN0b2JqXCIkZmlsZV9saXN0X3NwZWMkb3V0cHV0XCIKKysJICBlbHNlCisrCSAgICBp ZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIjsgdGhlbgorKwkgICAgICBmdW5jX3ZlcmJvc2UgImNy ZWF0aW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLi4uIgorKwkgICAgICBvdXRwdXQ9JG91dHB1 dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKKysJICAgICAgZXZhbCB0ZXN0X2NtZHM9 XCIkcmVsb2FkX2NtZHNcIgorKwkgICAgICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCisrCSAgICAg IGxlbjA9JGZ1bmNfbGVuX3Jlc3VsdAorKwkgICAgICBsZW49JGxlbjAKKysKKysJICAgICAgIyBM b29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBsaW5rZWQuCisrCSAgICAgIGZvciBv YmogaW4gJHNhdmVfbGlib2JqcworKwkgICAgICBkbworKwkJZnVuY19sZW4gIiAkb2JqIgorKwkJ ZnVuY19hcml0aCAkbGVuICsgJGZ1bmNfbGVuX3Jlc3VsdAorKwkJbGVuPSRmdW5jX2FyaXRoX3Jl c3VsdAorKwkJaWYgdGVzdCAiWCRvYmpsaXN0IiA9IFggfHwKKysJCSAgIHRlc3QgIiRsZW4iIC1s dCAiJG1heF9jbWRfbGVuIjsgdGhlbgorKwkJICBmdW5jX2FwcGVuZCBvYmpsaXN0ICIgJG9iaiIK KysJCWVsc2UKKysJCSAgIyBUaGUgY29tbWFuZCAkdGVzdF9jbWRzIGlzIGFsbW9zdCB0b28gbG9u ZywgYWRkIGEKKysJCSAgIyBjb21tYW5kIHRvIHRoZSBxdWV1ZS4KKysJCSAgaWYgdGVzdCAiJGsi IC1lcSAxIDsgdGhlbgorKwkJICAgICMgVGhlIGZpcnN0IGZpbGUgZG9lc24ndCBoYXZlIGEgcHJl dmlvdXMgY29tbWFuZCB0byBhZGQuCisrCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRf Y21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJCSAgZWxzZQorKwkJICAgICMgQWxsIHN1YnNl cXVlbnQgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMgd2lsbCBsaW5rIGluCisrCQkgICAgIyB0aGUg bGFzdCBvbmUgY3JlYXRlZC4KKysJCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21k c34kcmVsb2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ian5cJFJNICRsYXN0X3JvYmpcIgorKwkJ ICBmaQorKwkJICBsYXN0X3JvYmo9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpl eHQKKysJCSAgZnVuY19hcml0aCAkayArIDEKKysJCSAgaz0kZnVuY19hcml0aF9yZXN1bHQKKysJ CSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0CisrCQkgIG9i amxpc3Q9JG9iagorKwkJICBmdW5jX2xlbiAiICRsYXN0X3JvYmoiCisrCQkgIGZ1bmNfYXJpdGgg JGxlbjAgKyAkZnVuY19sZW5fcmVzdWx0CisrCQkgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKKysJ CWZpCisrCSAgICAgIGRvbmUKKysJICAgICAgIyBIYW5kbGUgdGhlIHJlbWFpbmluZyBvYmplY3Rz IGJ5IGNyZWF0aW5nIG9uZSBsYXN0CisrCSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmlsZS4g IEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CisrCSAgICAgICMgZmlsZXMgd2lsbCBs aW5rIGluIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2Nt ZHMiIHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAgICAgZXZhbCBjb25jYXRfY21k cz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKysJ ICAgICAgaWYgdGVzdCAtbiAiJGxhc3Rfcm9iaiI7IHRoZW4KKysJICAgICAgICBldmFsIGNvbmNh dF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9flwkUk0gJGxhc3Rfcm9ialwiCisrCSAgICAgIGZpCisr CSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKysKKysJICAgIGVsc2UKKysJICAg ICAgb3V0cHV0PQorKwkgICAgZmkKKysKKysJICAgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9 OyB0aGVuCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3Ig XGAkbGlibmFtZS5sYSciCisrCSAgICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8k bGlibmFtZS5leHAiCisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJGV4cG9ydF9zeW1ib2xz CisrCSAgICAgIGxpYm9ianM9JG91dHB1dAorKwkgICAgICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0 byBjcmVhdGUgdGhlIGV4cG9ydCBmaWxlLgorKwkgICAgICB0ZXN0IC16ICIkY29uY2F0X2NtZHMi IHx8IGNvbmNhdF9jbWRzPSRjb25jYXRfY21kc34KKysJICAgICAgZXZhbCBjb25jYXRfY21kcz1c IlwkY29uY2F0X2NtZHMkZXhwb3J0X3N5bWJvbHNfY21kc1wiCisrCSAgICAgIGlmIHRlc3QgLW4g IiRsYXN0X3JvYmoiOyB0aGVuCisrCQlldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc35c JFJNICRsYXN0X3JvYmpcIgorKwkgICAgICBmaQorKwkgICAgZmkKKysKKysJICAgIHRlc3QgLW4g IiRzYXZlX2xpYm9ianMiICYmCisrCSAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgYSB0ZW1w b3JhcnkgcmVsb2FkYWJsZSBvYmplY3QgZmlsZTogJG91dHB1dCIKKysKKysJICAgICMgTG9vcCB0 aHJvdWdoIHRoZSBjb21tYW5kcyBnZW5lcmF0ZWQgYWJvdmUgYW5kIGV4ZWN1dGUgdGhlbS4KKysJ ICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JworKwkgICAgZm9yIGNtZCBpbiAkY29uY2F0X2Nt ZHM7IGRvCisrCSAgICAgIElGUz0iJHNhdmVfaWZzIgorKwkgICAgICAkb3B0X3NpbGVudCB8fCB7 CisrCQkgIGZ1bmNfcXVvdGVfZm9yX2V4cGFuZCAiJGNtZCIKKysJCSAgZXZhbCAiZnVuY19lY2hv ICRmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgorKwkgICAgICB9CisrCSAgICAgICRvcHRf ZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7CisrCQlsdF9leGl0PSQ/CisrCisrCQkjIFJlc3Rv cmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKysJCWlmIHRlc3QgIiRtb2RlIiA9 IHJlbGluazsgdGhlbgorKwkJICAoIGNkICIkb3V0cHV0X29iamRpciIgJiYgXAorKwkJICAgICRS TSAiJHtyZWFsbmFtZX1UIiAmJiBcCisrCQkgICAgJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5h bWUiICkKKysJCWZpCisrCisrCQlleGl0ICRsdF9leGl0CisrCSAgICAgIH0KKysJICAgIGRvbmUK KysJICAgIElGUz0iJHNhdmVfaWZzIgorKworKwkgICAgaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1i b2xzX3JlZ2V4IiAmJiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgorKwkgICAgICBmdW5j X3Nob3dfZXZhbCAnJEVHUkVQIC1lICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICIkZXhwb3J0X3N5 bWJvbHMiID4gIiR7ZXhwb3J0X3N5bWJvbHN9VCInCisrCSAgICAgIGZ1bmNfc2hvd19ldmFsICck TVYgIiR7ZXhwb3J0X3N5bWJvbHN9VCIgIiRleHBvcnRfc3ltYm9scyInCisrCSAgICBmaQorKwkg IGZpCisrCisrICAgICAgICAgIGlmICR7c2tpcHBlZF9leHBvcnQtZmFsc2V9OyB0aGVuCisrCSAg ICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRpbmNsdWRlX2V4cHN5 bXMiOyB0aGVuCisrCSAgICAgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgor KwkgICAgICB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1i b2xzPSIkb3JpZ19leHBvcnRfc3ltYm9scyIKKysJICAgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwg JyRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCB8ICRTUDJOTCA+PiAiJHRtcF9leHBv cnRfc3ltYm9scyInCisrCSAgICBmaQorKworKwkgICAgaWYgdGVzdCAtbiAiJG9yaWdfZXhwb3J0 X3N5bWJvbHMiOyB0aGVuCisrCSAgICAgICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxl IGhhcyB0byBiZSBmaWx0ZXJlZCwgc28gZmlsdGVyIGl0LgorKwkgICAgICBmdW5jX3ZlcmJvc2Ug ImZpbHRlciBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYScgdG8gdGFnIERBVEEgZXhwb3J0 cyIKKysJICAgICAgIyBGSVhNRTogJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIHBvdGVu dGlhbGx5IGNvbnRhaW5zIGxvdHMgb2YKKysJICAgICAgIyAncycgY29tbWFuZHMgd2hpY2ggbm90 IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxkIGJlIGZpbmUKKysJICAgICAgIyB0 aG91Z2guIEFsc28sIHRoZSBmaWx0ZXIgc2NhbGVzIHN1cGVybGluZWFybHkgd2l0aCB0aGUgbnVt YmVyIG9mCisrCSAgICAgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNl IGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CisrCSAgICAgICMgaXNuJ3QgYSBibGVzc2VkIHRvb2wu CisrCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClc KFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmZpbHRlcgorKwkgICAgICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRf c3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisrCSAgICAgIGV4cG9ydF9z eW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgorKwkgICAgICAkb3B0X2RyeV9ydW4g fHwgJFNFRCAtZiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIgPCAkb3JpZ19leHBvcnRf c3ltYm9scyA+ICRleHBvcnRfc3ltYm9scworKwkgICAgZmkKKysJICBmaQorKworKwkgIGxpYm9i anM9JG91dHB1dAorKwkgICMgUmVzdG9yZSB0aGUgdmFsdWUgb2Ygb3V0cHV0LgorKwkgIG91dHB1 dD0kc2F2ZV9vdXRwdXQKKysKKysJICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiICYmIHRlc3Qg LW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgIGV2YWwgbGlib2Jqcz1c IlwkbGlib2JqcyAkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgorKwkgICAgdGVzdCAiWCRsaWJv YmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KKysJICBmaQorKwkgICMgRXhwYW5kIHRoZSBsaWJyYXJ5 IGxpbmtpbmcgY29tbWFuZHMgYWdhaW4gdG8gcmVzZXQgdGhlCisrCSAgIyB2YWx1ZSBvZiAkbGli b2JqcyBmb3IgcGllY2V3aXNlIGxpbmtpbmcuCisrCisrCSAgIyBEbyBlYWNoIG9mIHRoZSBhcmNo aXZlIGNvbW1hbmRzLgorKwkgIGlmIHRlc3QgIiRtb2R1bGUiID0geWVzICYmIHRlc3QgLW4gIiRt b2R1bGVfY21kcyIgOyB0aGVuCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYm IHRlc3QgLW4gIiRtb2R1bGVfZXhwc3ltX2NtZHMiOyB0aGVuCisrCSAgICAgIGNtZHM9JG1vZHVs ZV9leHBzeW1fY21kcworKwkgICAgZWxzZQorKwkgICAgICBjbWRzPSRtb2R1bGVfY21kcworKwkg ICAgZmkKKysJICBlbHNlCisrCSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRl c3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgorKwkgICAgICBjbWRzPSRhcmNoaXZl X2V4cHN5bV9jbWRzCisrCSAgICBlbHNlCisrCSAgICAgIGNtZHM9JGFyY2hpdmVfY21kcworKwkg ICAgZmkKKysJICBmaQorKwlmaQorKworKwlpZiB0ZXN0IC1uICIkZGVsZmlsZXMiOyB0aGVuCisr CSAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gcmVtb3ZlIHRlbXBvcmFyeSBmaWxlcyB0byAkY21k cy4KKysJICBldmFsIGNtZHM9XCJcJGNtZHN+XCRSTSAkZGVsZmlsZXNcIgorKwlmaQorKworKwkj IEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRlZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMKKysJ aWYgdGVzdCAtbiAiJGRscHJlZmlsZXMiOyB0aGVuCisrCSAgZ2VudG9wPSIkb3V0cHV0X29iamRp ci8ke291dHB1dG5hbWV9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKysK KysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkZGxwcmVmaWxlcworKwkgIGxpYm9i anM9IiRsaWJvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgorKwkgIHRlc3QgIlgk bGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CisrCWZpCisrCisrCXNhdmVfaWZzPSIkSUZTIjsg SUZTPSd+JworKwlmb3IgY21kIGluICRjbWRzOyBkbworKwkgIElGUz0iJHNhdmVfaWZzIgorKwkg IGV2YWwgY21kPVwiJGNtZFwiCisrCSAgJG9wdF9zaWxlbnQgfHwgeworKwkgICAgZnVuY19xdW90 ZV9mb3JfZXhwYW5kICIkY21kIgorKwkgICAgZXZhbCAiZnVuY19lY2hvICRmdW5jX3F1b3RlX2Zv cl9leHBhbmRfcmVzdWx0IgorKwkgIH0KKysJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZCIg fHwgeworKwkgICAgbHRfZXhpdD0kPworKworKwkgICAgIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxl ZCBsaWJyYXJ5IGFuZCBleGl0CisrCSAgICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4K KysJICAgICAgKCBjZCAiJG91dHB1dF9vYmpkaXIiICYmIFwKKysJICAgICAgICAkUk0gIiR7cmVh bG5hbWV9VCIgJiYgXAorKwkJJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKKysJICAg IGZpCisrCisrCSAgICBleGl0ICRsdF9leGl0CisrCSAgfQorKwlkb25lCisrCUlGUz0iJHNhdmVf aWZzIgorKworKwkjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKKysJ aWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisrCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwg JyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1UICYmICRNViAkcmVhbG5hbWUg JHtyZWFsbmFtZX1UICYmICRNViAke3JlYWxuYW1lfVUgJHJlYWxuYW1lKScgfHwgZXhpdCAkPwor KworKwkgIGlmIHRlc3QgLW4gIiRjb252ZW5pZW5jZSI7IHRoZW4KKysJICAgIGlmIHRlc3QgLXog IiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICAgICAgZnVuY19zaG93X2V2YWwg JyR7Uk19ciAiJGdlbnRvcCInCisrCSAgICBmaQorKwkgIGZpCisrCisrCSAgZXhpdCAkRVhJVF9T VUNDRVNTCisrCWZpCisrCisrCSMgQ3JlYXRlIGxpbmtzIHRvIHRoZSByZWFsIGxpYnJhcnkuCisr CWZvciBsaW5rbmFtZSBpbiAkbGlua25hbWVzOyBkbworKwkgIGlmIHRlc3QgIiRyZWFsbmFtZSIg IT0gIiRsaW5rbmFtZSI7IHRoZW4KKysJICAgIGZ1bmNfc2hvd19ldmFsICcoY2QgIiRvdXRwdXRf b2JqZGlyIiAmJiAkUk0gIiRsaW5rbmFtZSIgJiYgJExOX1MgIiRyZWFsbmFtZSIgIiRsaW5rbmFt ZSIpJyAnZXhpdCAkPycKKysJICBmaQorKwlkb25lCisrCisrCSMgSWYgLW1vZHVsZSBvciAtZXhw b3J0LWR5bmFtaWMgd2FzIHNwZWNpZmllZCwgc2V0IHRoZSBkbG5hbWUuCisrCWlmIHRlc3QgIiRt b2R1bGUiID0geWVzIHx8IHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXM7IHRoZW4KKysJICAj IE9uIGFsbCBrbm93biBvcGVyYXRpbmcgc3lzdGVtcywgdGhlc2UgYXJlIGlkZW50aWNhbC4KKysJ ICBkbG5hbWU9IiRzb25hbWUiCisrCWZpCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBv YmopCisrICAgICAgaWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRs c2VsZiIgIT0gbm87IHRoZW4KKysJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQg Zm9yIG9iamVjdHMiCisrICAgICAgZmkKKysKKysgICAgICBjYXNlICIgJGRlcGxpYnMiIGluCisr ICAgICAgKlwgLWwqIHwgKlwgLUwqKQorKwlmdW5jX3dhcm5pbmcgIlxgLWwnIGFuZCBcYC1MJyBh cmUgaWdub3JlZCBmb3Igb2JqZWN0cyIgOzsKKysgICAgICBlc2FjCisrCisrICAgICAgdGVzdCAt biAiJHJwYXRoIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtcnBhdGgnIGlzIGlnbm9yZWQgZm9y IG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYgXAorKwlmdW5jX3dhcm5p bmcgIlxgLVInIGlzIGlnbm9yZWQgZm9yIG9iamVjdHMiCisrCisrICAgICAgdGVzdCAtbiAiJHZp bmZvIiAmJiBcCisrCWZ1bmNfd2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZv ciBvYmplY3RzIgorKworKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAmJiBcCisrCWZ1bmNfd2Fy bmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKKysKKysgICAgICBjYXNl ICRvdXRwdXQgaW4KKysgICAgICAqLmxvKQorKwl0ZXN0IC1uICIkb2JqcyRvbGRfZGVwbGlicyIg JiYgXAorKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBidWlsZCBsaWJyYXJ5IG9iamVjdCBc YCRvdXRwdXQnIGZyb20gbm9uLWxpYnRvb2wgb2JqZWN0cyIKKysKKysJbGlib2JqPSRvdXRwdXQK KysJZnVuY19sbzJvICIkbGlib2JqIgorKwlvYmo9JGZ1bmNfbG8yb19yZXN1bHQKKysJOzsKKysg ICAgICAqKQorKwlsaWJvYmo9CisrCW9iaj0iJG91dHB1dCIKKysJOzsKKysgICAgICBlc2FjCisr CisrICAgICAgIyBEZWxldGUgdGhlIG9sZCBvYmplY3RzLgorKyAgICAgICRvcHRfZHJ5X3J1biB8 fCAkUk0gJG9iaiAkbGlib2JqCisrCisrICAgICAgIyBPYmplY3RzIGZyb20gY29udmVuaWVuY2Ug bGlicmFyaWVzLiAgVGhpcyBhc3N1bWVzCisrICAgICAgIyBzaW5nbGUtdmVyc2lvbiBjb252ZW5p ZW5jZSBsaWJyYXJpZXMuICBXaGVuZXZlciB3ZSBjcmVhdGUKKysgICAgICAjIGRpZmZlcmVudCBv bmVzIGZvciBQSUMvbm9uLVBJQywgdGhpcyB3ZSdsbCBoYXZlIHRvIGR1cGxpY2F0ZQorKyAgICAg ICMgdGhlIGV4dHJhY3Rpb24uCisrICAgICAgcmVsb2FkX2NvbnZfb2Jqcz0KKysgICAgICBnZW50 b3A9CisrICAgICAgIyByZWxvYWRfY21kcyBydW5zICRMRCBkaXJlY3RseSwgc28gbGV0IHVzIGdl dCByaWQgb2YKKysgICAgICAjIC1XbCBmcm9tIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIGFuZCBo b3BlIHdlIGNhbiBnZXQgYnkgd2l0aAorKyAgICAgICMgdHVybmluZyBjb21tYSBpbnRvIHNwYWNl Li4KKysgICAgICB3bD0KKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29udmVuaWVuY2UiOyB0aGVu CisrCWlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KKysJICBldmFs IHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzPVwiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKKysJ ICByZWxvYWRfY29udl9vYmpzPSRyZWxvYWRfb2Jqc1wgYCRFQ0hPICJYJHRtcF93aG9sZV9hcmNo aXZlX2ZsYWdzIiB8ICRYc2VkIC1lICdzfCx8IHxnJ2AKKysJZWxzZQorKwkgIGdlbnRvcD0iJG91 dHB1dF9vYmpkaXIvJHtvYmp9eCIKKysJICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIK KysKKysJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKKysJICBy ZWxvYWRfY29udl9vYmpzPSIkcmVsb2FkX29ianMgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1 bHQiCisrCWZpCisrICAgICAgZmkKKysKKysgICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9i amVjdC4KKysgICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMgImAkRUNITyAiWCRs aWJvYmpzIiB8ICRTUDJOTCB8ICRYc2VkIC1lICcvXC4nJHtsaWJleHR9JCcvZCcgLWUgJy9cLmxp YiQvZCcgLWUgIiRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1 aXRlOiBza2lwIG5lc3RlZCBxdW90aW5nIHRlc3QKKysKKysgICAgICBvdXRwdXQ9IiRvYmoiCisr ICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCisrCisrICAg ICAgIyBFeGl0IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCisrICAg ICAgaWYgdGVzdCAteiAiJGxpYm9iaiI7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRo ZW4KKysJICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJZXhp dCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KKysJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KKysJ ICBmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysJZmkKKysKKysJIyBDcmVhdGUg YW4gaW52YWxpZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QKKysJ IyBhY2NpZGVudGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KKysJIyAkc2hvdyAiZWNobyB0 aW1lc3RhbXAgPiAkbGlib2JqIgorKwkjICRvcHRfZHJ5X3J1biB8fCBldmFsICJlY2hvIHRpbWVz dGFtcCA+ICRsaWJvYmoiIHx8IGV4aXQgJD8KKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAg ZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8IHRlc3QgIiRwaWNfbW9kZSIg IT0gZGVmYXVsdDsgdGhlbgorKwkjIE9ubHkgZG8gY29tbWFuZHMgaWYgd2UgcmVhbGx5IGhhdmUg ZGlmZmVyZW50IFBJQyBvYmplY3RzLgorKwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMgJHJlbG9hZF9j b252X29ianMiCisrCW91dHB1dD0iJGxpYm9iaiIKKysJZnVuY19leGVjdXRlX2NtZHMgIiRyZWxv YWRfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkZ2Vu dG9wIjsgdGhlbgorKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKKysgICAgICBm aQorKworKyAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUworKyAgICAgIDs7CisrCisrICAgIHByb2cp CisrICAgICAgY2FzZSAkaG9zdCBpbgorKwkqY3lnd2luKikgZnVuY19zdHJpcG5hbWUgJycgJy5l eGUnICIkb3V0cHV0IgorKwkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQu ZXhlOzsKKysgICAgICBlc2FjCisrICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCisrCWZ1bmNf d2FybmluZyAiXGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKKysKKysg ICAgICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAorKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2Un IGlzIGlnbm9yZWQgZm9yIHByb2dyYW1zIgorKworKyAgICAgIHRlc3QgIiRwcmVsb2FkIiA9IHll cyBcCisrICAgICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBcCisrCSYm IHRlc3QgIiRkbG9wZW5fc2VsZiIgPSB1bmtub3duIFwKKysJJiYgdGVzdCAiJGRsb3Blbl9zZWxm X3N0YXRpYyIgPSB1bmtub3duICYmIFwKKysJICBmdW5jX3dhcm5pbmcgIlxgTFRfSU5JVChbZGxv cGVuXSknIG5vdCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCisrCisrICAgICAg Y2FzZSAkaG9zdCBpbgorKyAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkK KysJIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFt ZXdvcmsKKysJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiWCAkY29tcGlsZV9kZXBsaWJzIiB8ICRY c2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisrCWZpbmFsaXplX2RlcGxp YnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0 ZW0ubHRmcmFtZXdvcmsgLydgCisrCTs7CisrICAgICAgZXNhYworKworKyAgICAgIGNhc2UgJGhv c3QgaW4KKysgICAgICAqLSotZGFyd2luKikKKysJIyBEb24ndCBhbGxvdyBsYXp5IGxpbmtpbmcs IGl0IGJyZWFrcyBDKysgZ2xvYmFsIGNvbnN0cnVjdG9ycworKwkjIEJ1dCBpcyBzdXBwb3NlZGx5 IGZpeGVkIG9uIDEwLjQgb3IgbGF0ZXIgKHlheSEpLgorKwlpZiB0ZXN0ICIkdGFnbmFtZSIgPSBD WFggOyB0aGVuCisrCSAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSBpbgor KwkgICAgMTAuWzAxMjNdKQorKwkgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1h bmQgJHt3bH0tYmluZF9hdF9sb2FkIgorKwkgICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxp emVfY29tbWFuZCAke3dsfS1iaW5kX2F0X2xvYWQiCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkK KysJIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28ubHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sg dG8gIi1mcmFtZXdvcmsgZm9vIgorKwljb21waWxlX2RlcGxpYnM9YCRFQ0hPICJYICRjb21waWxl X2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdv cmsgXDElZydgCisrCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJz IiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcn YAorKwk7OworKyAgICAgIGVzYWMKKysKKysKKysgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2gg cGF0aHMgdGhhdCBjb2luY2lkZSB3aXRoIHBhdGhzIHRvIG5vdCB5ZXQKKysgICAgICAjIGluc3Rh bGxlZCBsaWJyYXJpZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlz dAorKyAgICAgIG5ld19saWJzPQorKyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRv CisrCWNhc2UgIiAkbmV3X2xpYnMgIiBpbgorKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7Cisr CSopCisrCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgorKwkgICoiIC1MJHBhdGgvJG9i amRpciAiKikKKysJICAgIG5ld19saWJzPSIkbmV3X2xpYnMgLUwkcGF0aC8kb2JqZGlyIiA7Owor KwkgIGVzYWMKKysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGZvciBkZXBsaWIg aW4gJGNvbXBpbGVfZGVwbGliczsgZG8KKysJY2FzZSAkZGVwbGliIGluCisrCS1MKikKKysJICBj YXNlICIgJG5ld19saWJzICIgaW4KKysJICAqIiAkZGVwbGliICIqKSA7OworKwkgICopIG5ld19s aWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKysJICBlc2FjCisrCSAgOzsKKysJKikgbmV3X2xp YnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgIGNv bXBpbGVfZGVwbGlicz0iJG5ld19saWJzIgorKworKworKyAgICAgIGNvbXBpbGVfY29tbWFuZD0i JGNvbXBpbGVfY29tbWFuZCAkY29tcGlsZV9kZXBsaWJzIgorKyAgICAgIGZpbmFsaXplX2NvbW1h bmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRmaW5hbGl6ZV9kZXBsaWJzIgorKworKyAgICAgIGlmIHRl c3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCisrCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFu eSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KKysJZm9yIGxpYmRpciBpbiAkcnBhdGggJHhy cGF0aDsgZG8KKysJICAjIFRoaXMgaXMgdGhlIG1hZ2ljIHRvIHVzZSAtcnBhdGguCisrCSAgY2Fz ZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KKysJICAqIiAkbGliZGlyICIqKSA7OworKwkgICopIGZp bmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWRv bmUKKysgICAgICBmaQorKworKyAgICAgICMgTm93IGhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhz CisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNvZGVfbGliZGlycz0KKysgICAgICBmb3IgbGli ZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8KKysJaWYgdGVzdCAtbiAi JGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVf bGliZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJICAg IGVsc2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkg ICAgICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQk7OworKwkgICAg ICAqKQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkg IGVsc2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJ ICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxpZiB0ZXN0IC1uICIkcnVucGF0 aF92YXIiOyB0aGVuCisrCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgorKwkgICoiICRsaWJkaXIg IiopIDs7CisrCSAgKikgcGVybV9ycGF0aD0iJHBlcm1fcnBhdGggJGxpYmRpciIgOzsKKysJICBl c2FjCisrCWZpCisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwg Ki0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKKysJICB0ZXN0YmluZGlyPWAke0VDSE99 ICIkbGliZGlyIiB8ICR7U0VEfSAtZSAncyovbGliJCovYmluKidgCisrCSAgY2FzZSA6JGRsbHNl YXJjaHBhdGg6IGluCisrCSAgKiI6JGxpYmRpcjoiKikgOzsKKysJICA6OikgZGxsc2VhcmNocGF0 aD0kbGliZGlyOzsKKysJICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokbGliZGly Ijs7CisrCSAgZXNhYworKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgorKwkgICoiOiR0ZXN0 YmluZGlyOiIqKSA7OworKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKKysJICAq KSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokdGVzdGJpbmRpciI7OworKwkgIGVzYWMK KysJICA7OworKwllc2FjCisrICAgICAgZG9uZQorKyAgICAgICMgU3Vic3RpdHV0ZSB0aGUgaGFy ZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisrICAgICAgaWYgdGVzdCAtbiAiJGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IiICYmCisrCSB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlycyI7 IHRoZW4KKysJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJZXZhbCBycGF0aD1cIiAkaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgZmkKKysgICAgICBjb21waWxlX3JwYXRo PSIkcnBhdGgiCisrCisrICAgICAgcnBhdGg9CisrICAgICAgaGFyZGNvZGVfbGliZGlycz0KKysg ICAgICBmb3IgbGliZGlyIGluICRmaW5hbGl6ZV9ycGF0aDsgZG8KKysJaWYgdGVzdCAtbiAiJGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisrCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGli ZGlycyI7IHRoZW4KKysJICAgICAgaGFyZGNvZGVfbGliZGlycz0iJGxpYmRpciIKKysJICAgIGVs c2UKKysJICAgICAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJzLgorKwkgICAg ICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciBpbgorKwkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJh dG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCisrCQk7OworKwkgICAgICAq KQorKwkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciRsaWJkaXIiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAgICBmaQorKwkgIGVs c2UKKysJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKKysJICAg IHJwYXRoPSIkcnBhdGggJGZsYWciCisrCSAgZmkKKysJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92 YXIiOyB0aGVuCisrCSAgY2FzZSAiJGZpbmFsaXplX3Blcm1fcnBhdGggIiBpbgorKwkgICoiICRs aWJkaXIgIiopIDs7CisrCSAgKikgZmluYWxpemVfcGVybV9ycGF0aD0iJGZpbmFsaXplX3Blcm1f cnBhdGggJGxpYmRpciIgOzsKKysJICBlc2FjCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgICMg U3Vic3RpdHV0ZSB0aGUgaGFyZGNvZGVkIGxpYmRpcnMgaW50byB0aGUgcnBhdGguCisrICAgICAg aWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiICYmCisrCSB0ZXN0IC1uICIk aGFyZGNvZGVfbGliZGlycyI7IHRoZW4KKysJbGliZGlyPSIkaGFyZGNvZGVfbGliZGlycyIKKysJ ZXZhbCBycGF0aD1cIiAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisrICAgICAgZmkKKysg ICAgICBmaW5hbGl6ZV9ycGF0aD0iJHJwYXRoIgorKworKyAgICAgIGlmIHRlc3QgLW4gIiRsaWJv YmpzIiAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzOyB0aGVuCisrCSMgVHJhbnNmb3Jt IGFsbCB0aGUgbGlicmFyeSBvYmplY3RzIGludG8gc3RhbmRhcmQgb2JqZWN0cy4KKysJY29tcGls ZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUg IiRsbzJvIiB8ICROTDJTUGAKKysJZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVf Y29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorKyAgICAgIGZp CisrCisrICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRuYW1lIiAiQFBST0dSQU1A IiAibm8iCisrCisrICAgICAgIyB0ZW1wbGF0ZSBwcmVsaW5raW5nIHN0ZXAKKysgICAgICBpZiB0 ZXN0IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgorKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHByZWxp bmtfY21kcyIgJ2V4aXQgJD8nCisrICAgICAgZmkKKysKKysgICAgICB3cmFwcGVyc19yZXF1aXJl ZD15ZXMKKysgICAgICBjYXNlICRob3N0IGluCisrICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkK KysgICAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorKyAg ICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgZmkKKysgICAgICAgIDs7Cisr ICAgICAgKmNlZ2NjKQorKyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYywgd2Ug YXJlIGNyb3NzIGNvbXBpbGluZyBhbnl3YXkuCisrICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1u bworKyAgICAgICAgOzsKKysgICAgICAqKQorKyAgICAgICAgaWYgdGVzdCAiJG5lZWRfcmVsaW5r IiA9IG5vIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllczsgdGhlbgorKyAgICAg ICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworKyAgICAgICAgZmkKKysgICAgICAgIDs7CisrICAg ICAgZXNhYworKyAgICAgIGlmIHRlc3QgIiR3cmFwcGVyc19yZXF1aXJlZCIgPSBubzsgdGhlbgor KwkjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCisrCWNvbXBpbGVfY29t bWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSci JG91dHB1dCInJWcnYAorKwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9y cGF0aCIKKysKKysJIyBXZSBoYXZlIG5vIHVuaW5zdGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVz LCBzbyBmaW5hbGl6ZSByaWdodCBub3cuCisrCWV4aXRfc3RhdHVzPTAKKysJZnVuY19zaG93X2V2 YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1cz0kPycKKysKKysJIyBEZWxldGUgdGhlIGdl bmVyYXRlZCBmaWxlcy4KKysJaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1l fVMuJHtvYmpleHR9IjsgdGhlbgorKwkgIGZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2Jq ZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSInCisrCWZpCisrCisrCWV4aXQgJGV4aXRfc3Rh dHVzCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkY29tcGlsZV9zaGxpYnBhdGgk ZmluYWxpemVfc2hsaWJwYXRoIjsgdGhlbgorKwljb21waWxlX2NvbW1hbmQ9IiRzaGxpYnBhdGhf dmFyPVwiJGNvbXBpbGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92 YXJcIiAkY29tcGlsZV9jb21tYW5kIgorKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAtbiAiJGZp bmFsaXplX3NobGlicGF0aCI7IHRoZW4KKysJZmluYWxpemVfY29tbWFuZD0iJHNobGlicGF0aF92 YXI9XCIkZmluYWxpemVfc2hsaWJwYXRoXCQkc2hsaWJwYXRoX3ZhclwiICRmaW5hbGl6ZV9jb21t YW5kIgorKyAgICAgIGZpCisrCisrICAgICAgY29tcGlsZV92YXI9CisrICAgICAgZmluYWxpemVf dmFyPQorKyAgICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KKysJaWYgdGVzdCAt biAiJHBlcm1fcnBhdGgiOyB0aGVuCisrCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zh ci4KKysJICBycGF0aD0KKysJICBmb3IgZGlyIGluICRwZXJtX3JwYXRoOyBkbworKwkgICAgcnBh dGg9IiRycGF0aCRkaXI6IgorKwkgIGRvbmUKKysJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFy PVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCisrCWZpCisrCWlmIHRlc3QgLW4gIiRmaW5hbGl6 ZV9wZXJtX3JwYXRoIjsgdGhlbgorKwkgICMgV2Ugc2hvdWxkIHNldCB0aGUgcnVucGF0aF92YXIu CisrCSAgcnBhdGg9CisrCSAgZm9yIGRpciBpbiAkZmluYWxpemVfcGVybV9ycGF0aDsgZG8KKysJ ICAgIHJwYXRoPSIkcnBhdGgkZGlyOiIKKysJICBkb25lCisrCSAgZmluYWxpemVfdmFyPSIkcnVu cGF0aF92YXI9XCIkcnBhdGhcJCRydW5wYXRoX3ZhclwiICIKKysJZmkKKysgICAgICBmaQorKwor KyAgICAgIGlmIHRlc3QgIiRub19pbnN0YWxsIiA9IHllczsgdGhlbgorKwkjIFdlIGRvbid0IG5l ZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCisrCWxpbmtfY29tbWFuZD0iJGNvbXBpbGVf dmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkjIFJlcGxhY2UgdGhlIG91dHB1 dCBmaWxlIHNwZWNpZmljYXRpb24uCisrCWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkbGlua19jb21t YW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorKwkjIERlbGV0ZSB0 aGUgb2xkIG91dHB1dCBmaWxlLgorKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRvdXRwdXQKKysJIyBM aW5rIHRoZSBleGVjdXRhYmxlIGFuZCBleGl0CisrCWZ1bmNfc2hvd19ldmFsICIkbGlua19jb21t YW5kIiAnZXhpdCAkPycKKysJZXhpdCAkRVhJVF9TVUNDRVNTCisrICAgICAgZmkKKysKKysgICAg ICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsgdGhlbgorKwkjIEZhc3QgaW5z dGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKysJbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIk Y29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCisrCXJlbGlua19jb21tYW5kPSIkZmluYWxp emVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisrCisrCWZ1bmNfd2Fybmlu ZyAidGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBsaWtlIHVuaW5zdGFsbGVkIHNoYXJlZCBsaWJyYXJp ZXMiCisrCWZ1bmNfd2FybmluZyAiXGAkb3V0cHV0JyB3aWxsIGJlIHJlbGlua2VkIGR1cmluZyBp bnN0YWxsYXRpb24iCisrICAgICAgZWxzZQorKwlpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiAhPSBu bzsgdGhlbgorKwkgIGxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRjb21waWxlX2NvbW1hbmQk ZmluYWxpemVfcnBhdGgiCisrCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXM7IHRoZW4K KysJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX3ZhciRjb21waWxlX2NvbW1h bmQkY29tcGlsZV9ycGF0aCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCVcJHByb2dkaXIvXCRmaWxl JWcnYAorKwkgIGVsc2UKKysJICAgICMgZmFzdF9pbnN0YWxsIGlzIHNldCB0byBuZWVkbGVzcwor KwkgICAgcmVsaW5rX2NvbW1hbmQ9CisrCSAgZmkKKysJZWxzZQorKwkgIGxpbmtfY29tbWFuZD0i JGNvbXBpbGVfdmFyJGNvbXBpbGVfY29tbWFuZCRjb21waWxlX3JwYXRoIgorKwkgIHJlbGlua19j b21tYW5kPSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCisr CWZpCisrICAgICAgZmkKKysKKysgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNp ZmljYXRpb24uCisrICAgICAgbGlua19jb21tYW5kPWAkRUNITyAiWCRsaW5rX2NvbW1hbmQiIHwg JFhzZWQgLWUgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSInJWcnYAor KworKyAgICAgICMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGVzLgorKyAgICAgICRvcHRfZHJ5 X3J1biB8fCAkUk0gJG91dHB1dCAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29i amRpci9sdC0kb3V0cHV0bmFtZQorKworKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkbGlua19jb21t YW5kIiAnZXhpdCAkPycKKysKKysgICAgICAjIE5vdyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0 LgorKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAjIFF1 b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCisrICAgICAgaWYgdGVzdCAtbiAi JHJlbGlua19jb21tYW5kIjsgdGhlbgorKwkjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBt YXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrCWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZl ZF9mb3JfcmVsaW5rOyBkbworKwkgIGlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0 aGVuCisrCSAgICByZWxpbmtfY29tbWFuZD0ieyB0ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwg JGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhwb3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29t bWFuZCIKKysJICBlbGlmIGV2YWwgdmFyX3ZhbHVlPVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1 ZSI7IHRoZW4KKysJICAgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxp bmtfY29tbWFuZCIKKysJICBlbHNlCisrCSAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3Zh bHVlIgorKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVz dWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwkgIGZpCisrCWRvbmUKKysJcmVs aW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlua19jb21tYW5kKSIKKysJcmVsaW5rX2NvbW1h bmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0 ImAKKysgICAgICBmaQorKworKyAgICAgICMgUXVvdGUgJEVDSE8gZm9yIHNoaXBwaW5nLgorKyAg ICAgIGlmIHRlc3QgIlgkRUNITyIgPSAiWCRTSEVMTCAkcHJvZ3BhdGggLS1mYWxsYmFjay1lY2hv IjsgdGhlbgorKwljYXNlICRwcm9ncGF0aCBpbgorKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSop IHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7OworKwkqKSBxZWNobz0i JFNIRUxMIGBwd2RgLyRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOzsKKysJZXNhYworKwlxZWNo bz1gJEVDSE8gIlgkcWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorKyAgICAg IGVsc2UKKysJcWVjaG89YCRFQ0hPICJYJEVDSE8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vi c3QiYAorKyAgICAgIGZpCisrCisrICAgICAgIyBPbmx5IGFjdHVhbGx5IGRvIHRoaW5ncyBpZiBu b3QgaW4gZHJ5IHJ1biBtb2RlLgorKyAgICAgICRvcHRfZHJ5X3J1biB8fCB7CisrCSMgd2luMzIg d2lsbCB0aGluayB0aGUgc2NyaXB0IGlzIGEgYmluYXJ5IGlmIGl0IGhhcworKwkjIGEgLmV4ZSBz dWZmaXgsIHNvIHdlIHN0cmlwIGl0IG9mZiBoZXJlLgorKwljYXNlICRvdXRwdXQgaW4KKysJICAq LmV4ZSkgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0cHV0IgorKwkgICAgICAgICBvdXRw dXQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworKwllc2FjCisrCSMgdGVzdCBmb3IgY3lnd2lu IGJlY2F1c2UgbXYgZmFpbHMgdy9vIC5leGUgZXh0ZW5zaW9ucworKwljYXNlICRob3N0IGluCisr CSAgKmN5Z3dpbiopCisrCSAgICBleGVleHQ9LmV4ZQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycg Jy5leGUnICIkb3V0cHV0bmFtZSIKKysJICAgIG91dHB1dG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdCA7OworKwkgICopIGV4ZWV4dD0gOzsKKysJZXNhYworKwljYXNlICRob3N0IGluCisrCSAg KmN5Z3dpbiogfCAqbWluZ3cqICkKKysJICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRv dXRwdXQiICIiICIuIgorKwkgICAgb3V0cHV0X25hbWU9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0Cisr CSAgICBvdXRwdXRfcGF0aD0kZnVuY19kaXJuYW1lX3Jlc3VsdAorKwkgICAgY3dyYXBwZXJzb3Vy Y2U9IiRvdXRwdXRfcGF0aC8kb2JqZGlyL2x0LSRvdXRwdXRfbmFtZS5jIgorKwkgICAgY3dyYXBw ZXI9IiRvdXRwdXRfcGF0aC8kb3V0cHV0X25hbWUuZXhlIgorKwkgICAgJFJNICRjd3JhcHBlcnNv dXJjZSAkY3dyYXBwZXIKKysJICAgIHRyYXAgIiRSTSAkY3dyYXBwZXJzb3VyY2UgJGN3cmFwcGVy OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKwkgICAgZnVuY19lbWl0X2N3cmFwcGVy ZXhlX3NyYyA+ICRjd3JhcHBlcnNvdXJjZQorKworKwkgICAgIyBUaGUgd3JhcHBlciBleGVjdXRh YmxlIGlzIGJ1aWx0IHVzaW5nIHRoZSAkaG9zdCBjb21waWxlciwKKysJICAgICMgYmVjYXVzZSBp dCBjb250YWlucyAkaG9zdCBwYXRocyBhbmQgZmlsZXMuIElmIGNyb3NzLQorKwkgICAgIyBjb21w aWxpbmcsIGl0LCBsaWtlIHRoZSB0YXJnZXQgZXhlY3V0YWJsZSwgbXVzdCBiZQorKwkgICAgIyBl eGVjdXRlZCBvbiB0aGUgJGhvc3Qgb3IgdW5kZXIgYW4gZW11bGF0aW9uIGVudmlyb25tZW50Lgor KwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1vICRjd3Jh cHBlciAkY3dyYXBwZXJzb3VyY2UKKysJICAgICAgJFNUUklQICRjd3JhcHBlcgorKwkgICAgfQor KworKwkgICAgIyBOb3csIGNyZWF0ZSB0aGUgd3JhcHBlciBzY3JpcHQgZm9yIGZ1bmNfc291cmNl IHVzZToKKysJICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgJGN3cmFwcGVyCisrCSAgICAk Uk0gJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0CisrCSAgICB0cmFwICIkUk0gJGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAx NQorKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKKysJICAgICAgIyBub3RlOiB0aGlzIHNjcmlwdCB3 aWxsIG5vdCBiZSBleGVjdXRlZCwgc28gZG8gbm90IGNobW9kLgorKwkgICAgICBpZiB0ZXN0ICJ4 JGJ1aWxkIiA9ICJ4JGhvc3QiIDsgdGhlbgorKwkJJGN3cmFwcGVyIC0tbHQtZHVtcC1zY3JpcHQg PiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJICAgICAgZWxzZQorKwkJZnVu Y19lbWl0X3dyYXBwZXIgbm8gPiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQKKysJ ICAgICAgZmkKKysJICAgIH0KKysJICA7OworKwkgICogKQorKwkgICAgJFJNICRvdXRwdXQKKysJ ICAgIHRyYXAgIiRSTSAkb3V0cHV0OyBleGl0ICRFWElUX0ZBSUxVUkUiIDEgMiAxNQorKworKwkg ICAgZnVuY19lbWl0X3dyYXBwZXIgbm8gPiAkb3V0cHV0CisrCSAgICBjaG1vZCAreCAkb3V0cHV0 CisrCSAgOzsKKysJZXNhYworKyAgICAgIH0KKysgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKKysg ICAgICA7OworKyAgICBlc2FjCisrCisrICAgICMgU2VlIGlmIHdlIG5lZWQgdG8gYnVpbGQgYW4g b2xkLWZhc2hpb25lZCBhcmNoaXZlLgorKyAgICBmb3Igb2xkbGliIGluICRvbGRsaWJzOyBkbwor KworKyAgICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gY29udmVuaWVuY2U7IHRo ZW4KKysJb2xkb2Jqcz0iJGxpYm9ianNfc2F2ZSAkc3ltZmlsZW9iaiIKKysJYWRkbGlicz0iJGNv bnZlbmllbmNlIgorKwlidWlsZF9saWJ0b29sX2xpYnM9bm8KKysgICAgICBlbHNlCisrCWlmIHRl c3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbW9kdWxlOyB0aGVuCisrCSAgb2xkb2Jqcz0iJGxp Ym9ianNfc2F2ZSIKKysJICBidWlsZF9saWJ0b29sX2xpYnM9bm8KKysJZWxzZQorKwkgIG9sZG9i anM9IiRvbGRfZGVwbGlicyAkbm9uX3BpY19vYmplY3RzIgorKwkgIGlmIHRlc3QgIiRwcmVsb2Fk IiA9IHllcyAmJiB0ZXN0IC1mICIkc3ltZmlsZW9iaiI7IHRoZW4KKysJICAgIG9sZG9ianM9IiRv bGRvYmpzICRzeW1maWxlb2JqIgorKwkgIGZpCisrCWZpCisrCWFkZGxpYnM9IiRvbGRfY29udmVu aWVuY2UiCisrICAgICAgZmkKKysKKysgICAgICBpZiB0ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4K KysJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKKysJZ2VuZXJhdGVkPSIk Z2VuZXJhdGVkICRnZW50b3AiCisrCisrCWZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRh ZGRsaWJzCisrCW9sZG9ianM9IiRvbGRvYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0 IgorKyAgICAgIGZpCisrCisrICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUg Y29tbWFuZHMuCisrICAgICAgaWYgdGVzdCAtbiAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMi ICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCisrCWNtZHM9JG9sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMKKysgICAgICBlbHNlCisrCisrCSMgQWRkIGFueSBvYmplY3Rz IGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNlIGxpYnJhcmllcworKwlpZiB0ZXN0IC1uICIkZGxw cmVmaWxlcyI7IHRoZW4KKysJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14 IgorKwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKworKwkgIGZ1bmNfZXh0cmFj dF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCisrCSAgb2xkb2Jqcz0iJG9sZG9ianMgJGZ1 bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCisrCWZpCisrCisrCSMgUE9TSVggZGVtYW5kcyBu byBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hpdmVzLiAgV2UgaGF2ZQorKwkjIHRvIGF2b2lk IGNyZWF0aW5nIGFyY2hpdmVzIHdpdGggZHVwbGljYXRlIGJhc2VuYW1lcyBpZiB3ZQorKwkjIG1p Z2h0IGhhdmUgdG8gZXh0cmFjdCB0aGVtIGFmdGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcg YQorKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdo ZW4gbGlua2luZworKwkjIHRoZSBlbnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFu b3RoZXIgKGN1cnJlbnRseQorKwkjIG5vdCBzdXBwb3J0ZWQgYnkgbGlidG9vbCkuCisrCWlmIChm b3Igb2JqIGluICRvbGRvYmpzCisrCSAgICBkbworKwkgICAgICBmdW5jX2Jhc2VuYW1lICIkb2Jq IgorKwkgICAgICAkRUNITyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkgICAgZG9uZSB8IHNv cnQgfCBzb3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisrCSAgOgorKwllbHNlCisrCSAg JEVDSE8gImNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNv bmZsaWN0cy4uLiIKKysJICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14Igor KwkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorKwkgIGZ1bmNfbWtkaXJfcCAiJGdl bnRvcCIKKysJICBzYXZlX29sZG9ianM9JG9sZG9ianMKKysJICBvbGRvYmpzPQorKwkgIGNvdW50 ZXI9MQorKwkgIGZvciBvYmogaW4gJHNhdmVfb2xkb2JqcworKwkgIGRvCisrCSAgICBmdW5jX2Jh c2VuYW1lICIkb2JqIgorKwkgICAgb2JqYmFzZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKwkg ICAgY2FzZSAiICRvbGRvYmpzICIgaW4KKysJICAgICIgIikgb2xkb2Jqcz0kb2JqIDs7CisrCSAg ICAqW1wgL10iJG9iamJhc2UgIiopCisrCSAgICAgIHdoaWxlIDo7IGRvCisrCQkjIE1ha2Ugc3Vy ZSB3ZSBkb24ndCBwaWNrIGFuIGFsdGVybmF0ZSBuYW1lIHRoYXQgYWxzbworKwkJIyBvdmVybGFw cy4KKysJCW5ld29iaj1sdCRjb3VudGVyLSRvYmpiYXNlCisrCQlmdW5jX2FyaXRoICRjb3VudGVy ICsgMQorKwkJY291bnRlcj0kZnVuY19hcml0aF9yZXN1bHQKKysJCWNhc2UgIiAkb2xkb2JqcyAi IGluCisrCQkqW1wgL10iJG5ld29iaiAiKikgOzsKKysJCSopIGlmIHRlc3QgISAtZiAiJGdlbnRv cC8kbmV3b2JqIjsgdGhlbiBicmVhazsgZmkgOzsKKysJCWVzYWMKKysJICAgICAgZG9uZQorKwkg ICAgICBmdW5jX3Nob3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRuZXdvYmogfHwgY3AgJG9iaiAk Z2VudG9wLyRuZXdvYmoiCisrCSAgICAgIG9sZG9ianM9IiRvbGRvYmpzICRnZW50b3AvJG5ld29i aiIKKysJICAgICAgOzsKKysJICAgICopIG9sZG9ianM9IiRvbGRvYmpzICRvYmoiIDs7CisrCSAg ICBlc2FjCisrCSAgZG9uZQorKwlmaQorKwlldmFsIGNtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wi CisrCisrCWZ1bmNfbGVuICIgJGNtZHMiCisrCWxlbj0kZnVuY19sZW5fcmVzdWx0CisrCWlmIHRl c3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAt MTsgdGhlbgorKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKKysJZWxzZQorKwkgICMgdGhlIGNv bW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGluIHBhcnRz CisrCSAgZnVuY192ZXJib3NlICJ1c2luZyBwaWVjZXdpc2UgYXJjaGl2ZSBsaW5raW5nLi4uIgor KwkgIHNhdmVfUkFOTElCPSRSQU5MSUIKKysJICBSQU5MSUI9OgorKwkgIG9iamxpc3Q9CisrCSAg Y29uY2F0X2NtZHM9CisrCSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCisrCSAgb2xkb2Jqcz0KKysJ ICAjIElzIHRoZXJlIGEgYmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0 aGUgbGlzdD8KKysJICBmb3Igb2JqIGluICRzYXZlX29sZG9ianMKKysJICBkbworKwkgICAgbGFz dF9vbGRvYmo9JG9iagorKwkgIGRvbmUKKysJICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2 ZV9jbWRzXCIKKysJICBmdW5jX2xlbiAiICR0ZXN0X2NtZHMiCisrCSAgbGVuMD0kZnVuY19sZW5f cmVzdWx0CisrCSAgbGVuPSRsZW4wCisrCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCisrCSAg ZG8KKysJICAgIGZ1bmNfbGVuICIgJG9iaiIKKysJICAgIGZ1bmNfYXJpdGggJGxlbiArICRmdW5j X2xlbl9yZXN1bHQKKysJICAgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKKysJICAgIGZ1bmNfYXBw ZW5kIG9iamxpc3QgIiAkb2JqIgorKwkgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9s ZW4iOyB0aGVuCisrCSAgICAgIDoKKysJICAgIGVsc2UKKysJICAgICAgIyB0aGUgYWJvdmUgY29t bWFuZCBzaG91bGQgYmUgdXNlZCBiZWZvcmUgaXQgZ2V0cyB0b28gbG9uZworKwkgICAgICBvbGRv YmpzPSRvYmpsaXN0CisrCSAgICAgIGlmIHRlc3QgIiRvYmoiID0gIiRsYXN0X29sZG9iaiIgOyB0 aGVuCisrCQlSQU5MSUI9JHNhdmVfUkFOTElCCisrCSAgICAgIGZpCisrCSAgICAgIHRlc3QgLXog IiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgorKwkgICAgICBldmFs IGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JG9sZF9hcmNoaXZlX2NtZHNcIgorKwkgICAg ICBvYmpsaXN0PQorKwkgICAgICBsZW49JGxlbjAKKysJICAgIGZpCisrCSAgZG9uZQorKwkgIFJB TkxJQj0kc2F2ZV9SQU5MSUIKKysJICBvbGRvYmpzPSRvYmpsaXN0CisrCSAgaWYgdGVzdCAiWCRv bGRvYmpzIiA9ICJYIiA7IHRoZW4KKysJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHNcIgor KwkgIGVsc2UKKysJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHN+XCRvbGRfYXJjaGl2ZV9j bWRzXCIKKysJICBmaQorKwlmaQorKyAgICAgIGZpCisrICAgICAgZnVuY19leGVjdXRlX2NtZHMg IiRjbWRzIiAnZXhpdCAkPycKKysgICAgZG9uZQorKworKyAgICB0ZXN0IC1uICIkZ2VuZXJhdGVk IiAmJiBcCisrICAgICAgZnVuY19zaG93X2V2YWwgIiR7Uk19ciRnZW5lcmF0ZWQiCisrCisrICAg ICMgTm93IGNyZWF0ZSB0aGUgbGlidG9vbCBhcmNoaXZlLgorKyAgICBjYXNlICRvdXRwdXQgaW4K KysgICAgKi5sYSkKKysgICAgICBvbGRfbGlicmFyeT0KKysgICAgICB0ZXN0ICIkYnVpbGRfb2xk X2xpYnMiID0geWVzICYmIG9sZF9saWJyYXJ5PSIkbGlibmFtZS4kbGliZXh0IgorKyAgICAgIGZ1 bmNfdmVyYm9zZSAiY3JlYXRpbmcgJG91dHB1dCIKKysKKysgICAgICAjIFByZXNlcnZlIGFueSB2 YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCisrICAgICAgZm9yIHZh ciBpbiAkdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms7IGRvCisrCWlmIGV2YWwgdGVzdCAteiBc IlwkeyR2YXIrc2V0fVwiOyB0aGVuCisrCSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwk eyR2YXIrc2V0fVwiIHx8ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9 OyB9OyAkcmVsaW5rX2NvbW1hbmQiCisrCWVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0 IC16ICIkdmFyX3ZhbHVlIjsgdGhlbgorKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0 ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKKysJZWxzZQorKwkgIGZ1bmNfcXVvdGVfZm9yX2V2YWwg IiR2YXJfdmFsdWUiCisrCSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2 YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgorKwlmaQorKyAgICAgIGRv bmUKKysgICAgICAjIFF1b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgorKyAgICAg IHJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2Fy Z3MgLS1tb2RlPXJlbGluayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKKysgICAg ICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgIiRz ZWRfcXVvdGVfc3Vic3QiYAorKyAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0g eWVzIDsgdGhlbgorKwlyZWxpbmtfY29tbWFuZD0KKysgICAgICBmaQorKworKyAgICAgICMgT25s eSBjcmVhdGUgdGhlIG91dHB1dCBpZiBub3QgYSBkcnkgcnVuLgorKyAgICAgICRvcHRfZHJ5X3J1 biB8fCB7CisrCWZvciBpbnN0YWxsZWQgaW4gbm8geWVzOyBkbworKwkgIGlmIHRlc3QgIiRpbnN0 YWxsZWQiID0geWVzOyB0aGVuCisrCSAgICBpZiB0ZXN0IC16ICIkaW5zdGFsbF9saWJkaXIiOyB0 aGVuCisrCSAgICAgIGJyZWFrCisrCSAgICBmaQorKwkgICAgb3V0cHV0PSIkb3V0cHV0X29iamRp ci8kb3V0cHV0bmFtZSJpCisrCSAgICAjIFJlcGxhY2UgYWxsIHVuaW5zdGFsbGVkIGxpYnRvb2wg bGlicmFyaWVzIHdpdGggdGhlIGluc3RhbGxlZCBvbmVzCisrCSAgICBuZXdkZXBlbmRlbmN5X2xp YnM9CisrCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisrCSAgICAgIGNh c2UgJGRlcGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkJZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIK KysJCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKysJCWV2YWwgbGliZGlyPWAke1NFRH0g LW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRkZXBsaWJgCisrCQl0ZXN0IC16ICIkbGli ZGlyIiAmJiBcCisrCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFs aWQgbGlidG9vbCBhcmNoaXZlIgorKwkJbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5j eV9saWJzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICAqKSBuZXdkZXBlbmRlbmN5X2xp YnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGRlcGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAg ZG9uZQorKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzIgorKwkgICAg bmV3ZGxmaWxlcz0KKysKKysJICAgIGZvciBsaWIgaW4gJGRsZmlsZXM7IGRvCisrCSAgICAgIGNh c2UgJGxpYiBpbgorKwkgICAgICAqLmxhKQorKwkgICAgICAgIGZ1bmNfYmFzZW5hbWUgIiRsaWIi CisrCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCisrCQlldmFsIGxpYmRpcj1gJHtTRUR9 IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkbGliYAorKwkJdGVzdCAteiAiJGxpYmRp ciIgJiYgXAorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxp YnRvb2wgYXJjaGl2ZSIKKysJCW5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWJkaXIvJG5hbWUi CisrCQk7OworKwkgICAgICAqKSBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkbGliIiA7OworKwkg ICAgICBlc2FjCisrCSAgICBkb25lCisrCSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKKysJICAg IG5ld2RscHJlZmlsZXM9CisrCSAgICBmb3IgbGliIGluICRkbHByZWZpbGVzOyBkbworKwkgICAg ICBjYXNlICRsaWIgaW4KKysJICAgICAgKi5sYSkKKysJCSMgT25seSBwYXNzIHByZW9wZW5lZCBm aWxlcyB0byB0aGUgcHNldWRvLWFyY2hpdmUgKGZvcgorKwkJIyBldmVudHVhbCBsaW5raW5nIHdp dGggdGhlIGFwcC4gdGhhdCBsaW5rcyBpdCkgaWYgd2UKKysJCSMgZGlkbid0IGFscmVhZHkgbGlu ayB0aGUgcHJlb3BlbmVkIG9iamVjdHMgZGlyZWN0bHkgaW50bworKwkJIyB0aGUgbGlicmFyeToK KysJCWZ1bmNfYmFzZW5hbWUgIiRsaWIiCisrCQluYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQi CisrCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAk bGliYAorKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAorKwkJICBmdW5jX2ZhdGFsX2Vycm9yICJc YCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKysJCW5ld2RscHJlZmlsZXM9 IiRuZXdkbHByZWZpbGVzICRsaWJkaXIvJG5hbWUiCisrCQk7OworKwkgICAgICBlc2FjCisrCSAg ICBkb25lCisrCSAgICBkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyIKKysJICBlbHNlCisrCSAg ICBuZXdkbGZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KKysJICAgICAgY2Fz ZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKKysJ CSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYworKwkgICAgICBuZXdkbGZpbGVz PSIkbmV3ZGxmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkgICAgZGxmaWxlcz0iJG5ld2RsZmls ZXMiCisrCSAgICBuZXdkbHByZWZpbGVzPQorKwkgICAgZm9yIGxpYiBpbiAkZGxwcmVmaWxlczsg ZG8KKysJICAgICAgY2FzZSAkbGliIGluCisrCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFi cz0iJGxpYiIgOzsKKysJCSopIGFicz1gcHdkYCIvJGxpYiIgOzsKKysJICAgICAgZXNhYworKwkg ICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgorKwkgICAgZG9uZQorKwkg ICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCisrCSAgZmkKKysJICAkUk0gJG91dHB1dAor KwkgICMgcGxhY2UgZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRpb24gZm9yIGN5Z3dpbgorKwkgIHRk bG5hbWU9JGRsbmFtZQorKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUs JGRsbmFtZSBpbgorKwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCps YWkseWVzLG5vLCouZGxsIHwgKmNlZ2NjKiwqbGFpLHllcyxubywqLmRsbCkgdGRsbmFtZT0uLi9i aW4vJGRsbmFtZSA7OworKwkgIGVzYWMKKysJICAkRUNITyA+ICRvdXRwdXQgIlwKKysjICRvdXRw dXRuYW1lIC0gYSBsaWJ0b29sIGxpYnJhcnkgZmlsZQorKyMgR2VuZXJhdGVkIGJ5ICRQUk9HUkFN IChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgorKyMKKysjIFBsZWFzZSBETyBOT1Qg ZGVsZXRlIHRoaXMgZmlsZSEKKysjIEl0IGlzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyB0aGUgbGli cmFyeS4KKysKKysjIFRoZSBuYW1lIHRoYXQgd2UgY2FuIGRsb3BlbigzKS4KKytkbG5hbWU9JyR0 ZGxuYW1lJworKworKyMgTmFtZXMgb2YgdGhpcyBsaWJyYXJ5LgorK2xpYnJhcnlfbmFtZXM9JyRs aWJyYXJ5X25hbWVzJworKworKyMgVGhlIG5hbWUgb2YgdGhlIHN0YXRpYyBhcmNoaXZlLgorK29s ZF9saWJyYXJ5PSckb2xkX2xpYnJhcnknCisrCisrIyBMaW5rZXIgZmxhZ3MgdGhhdCBjYW4gbm90 IGdvIGluIGRlcGVuZGVuY3lfbGlicy4KKytpbmhlcml0ZWRfbGlua2VyX2ZsYWdzPSckbmV3X2lu aGVyaXRlZF9saW5rZXJfZmxhZ3MnCisrCisrIyBMaWJyYXJpZXMgdGhhdCB0aGlzIG9uZSBkZXBl bmRzIHVwb24uCisrZGVwZW5kZW5jeV9saWJzPSckZGVwZW5kZW5jeV9saWJzJworKworKyMgTmFt ZXMgb2YgYWRkaXRpb25hbCB3ZWFrIGxpYnJhcmllcyBwcm92aWRlZCBieSB0aGlzIGxpYnJhcnkK Kyt3ZWFrX2xpYnJhcnlfbmFtZXM9JyR3ZWFrX2xpYnMnCisrCisrIyBWZXJzaW9uIGluZm9ybWF0 aW9uIGZvciAkbGlibmFtZS4KKytjdXJyZW50PSRjdXJyZW50CisrYWdlPSRhZ2UKKytyZXZpc2lv bj0kcmV2aXNpb24KKysKKysjIElzIHRoaXMgYW4gYWxyZWFkeSBpbnN0YWxsZWQgbGlicmFyeT8K KytpbnN0YWxsZWQ9JGluc3RhbGxlZAorKworKyMgU2hvdWxkIHdlIHdhcm4gYWJvdXQgcG9ydGFi aWxpdHkgd2hlbiBsaW5raW5nIGFnYWluc3QgLW1vZHVsZXM/Cisrc2hvdWxkbm90bGluaz0kbW9k dWxlCisrCisrIyBGaWxlcyB0byBkbG9wZW4vZGxwcmVvcGVuCisrZGxvcGVuPSckZGxmaWxlcycK KytkbHByZW9wZW49JyRkbHByZWZpbGVzJworKworKyMgRGlyZWN0b3J5IHRoYXQgdGhpcyBsaWJy YXJ5IG5lZWRzIHRvIGJlIGluc3RhbGxlZCBpbjoKKytsaWJkaXI9JyRpbnN0YWxsX2xpYmRpcici CisrCSAgaWYgdGVzdCAiJGluc3RhbGxlZCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0g eWVzOyB0aGVuCisrCSAgICAkRUNITyA+PiAkb3V0cHV0ICJcCisrcmVsaW5rX2NvbW1hbmQ9XCIk cmVsaW5rX2NvbW1hbmRcIiIKKysJICBmaQorKwlkb25lCisrICAgICAgfQorKworKyAgICAgICMg RG8gYSBzeW1ib2xpYyBsaW5rIHNvIHRoYXQgdGhlIGxpYnRvb2wgYXJjaGl2ZSBjYW4gYmUgZm91 bmQgaW4KKysgICAgICAjIExEX0xJQlJBUllfUEFUSCBiZWZvcmUgdGhlIHByb2dyYW0gaXMgaW5z dGFsbGVkLgorKyAgICAgIGZ1bmNfc2hvd19ldmFsICcoIGNkICIkb3V0cHV0X29iamRpciIgJiYg JFJNICIkb3V0cHV0bmFtZSIgJiYgJExOX1MgIi4uLyRvdXRwdXRuYW1lIiAiJG91dHB1dG5hbWUi ICknICdleGl0ICQ/JworKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgZXhpdCAkRVhJVF9TVUND RVNTCisrfQorKworK3sgdGVzdCAiJG1vZGUiID0gbGluayB8fCB0ZXN0ICIkbW9kZSIgPSByZWxp bms7IH0gJiYKKysgICAgZnVuY19tb2RlX2xpbmsgJHsxKyIkQCJ9CisrCisrCisrIyBmdW5jX21v ZGVfdW5pbnN0YWxsIGFyZy4uLgorK2Z1bmNfbW9kZV91bmluc3RhbGwgKCkKKyt7CisrICAgICRv cHRfZGVidWcKKysgICAgUk09IiRub25vcHQiCisrICAgIGZpbGVzPQorKyAgICBybWZvcmNlPQor KyAgICBleGl0X3N0YXR1cz0wCisrCisrICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVy IHNjcmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgorKyAgICAjIHRoYW4gcnVubmlu ZyB0aGVpciBwcm9ncmFtcy4KKysgICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCisr CisrICAgIGZvciBhcmcKKysgICAgZG8KKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAtZikg Uk09IiRSTSAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKKysgICAgICAtKikgUk09IiRSTSAkYXJnIiA7 OworKyAgICAgICopIGZpbGVzPSIkZmlsZXMgJGFyZyIgOzsKKysgICAgICBlc2FjCisrICAgIGRv bmUKKysKKysgICAgdGVzdCAteiAiJFJNIiAmJiBcCisrICAgICAgZnVuY19mYXRhbF9oZWxwICJ5 b3UgbXVzdCBzcGVjaWZ5IGFuIFJNIHByb2dyYW0iCisrCisrICAgIHJtZGlycz0KKysKKysgICAg b3JpZ29iamRpcj0iJG9iamRpciIKKysgICAgZm9yIGZpbGUgaW4gJGZpbGVzOyBkbworKyAgICAg IGZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgorKyAgICAgIGRpcj0iJGZ1bmNfZGlybmFtZV9y ZXN1bHQiCisrICAgICAgaWYgdGVzdCAiWCRkaXIiID0gWC47IHRoZW4KKysJb2JqZGlyPSIkb3Jp Z29iamRpciIKKysgICAgICBlbHNlCisrCW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKKysgICAg ICBmaQorKyAgICAgIGZ1bmNfYmFzZW5hbWUgIiRmaWxlIgorKyAgICAgIG5hbWU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKKysgICAgICB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGly PSIkZGlyIgorKworKyAgICAgICMgUmVtZW1iZXIgb2JqZGlyIGZvciByZW1vdmFsIGxhdGVyLCBi ZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMKKysgICAgICBpZiB0ZXN0ICIkbW9kZSIg PSBjbGVhbjsgdGhlbgorKwljYXNlICIgJHJtZGlycyAiIGluCisrCSAgKiIgJG9iamRpciAiKikg OzsKKysJICAqKSBybWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsKKysJZXNhYworKyAgICAgIGZp CisrCisrICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGFuZCBy bSAtZiB3YXMgdXNlZC4KKysgICAgICBpZiB7IHRlc3QgLUwgIiRmaWxlIjsgfSA+L2Rldi9udWxs IDI+JjEgfHwKKysJIHsgdGVzdCAtaCAiJGZpbGUiOyB9ID4vZGV2L251bGwgMj4mMSB8fAorKwkg dGVzdCAtZiAiJGZpbGUiOyB0aGVuCisrCToKKysgICAgICBlbGlmIHRlc3QgLWQgIiRmaWxlIjsg dGhlbgorKwlleGl0X3N0YXR1cz0xCisrCWNvbnRpbnVlCisrICAgICAgZWxpZiB0ZXN0ICIkcm1m b3JjZSIgPSB5ZXM7IHRoZW4KKysJY29udGludWUKKysgICAgICBmaQorKworKyAgICAgIHJtZmls ZXM9IiRmaWxlIgorKworKyAgICAgIGNhc2UgJG5hbWUgaW4KKysgICAgICAqLmxhKQorKwkjIFBv c3NpYmx5IGEgbGlidG9vbCBhcmNoaXZlLCBzbyB2ZXJpZnkgaXQuCisrCWlmIGZ1bmNfbGFsaWJf cCAiJGZpbGUiOyB0aGVuCisrCSAgZnVuY19zb3VyY2UgJGRpci8kbmFtZQorKworKwkgICMgRGVs ZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmllcyBhbmQgc3ltbGlua3MuCisrCSAgZm9yIG4gaW4gJGxp YnJhcnlfbmFtZXM7IGRvCisrCSAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuIgorKwkg IGRvbmUKKysJICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIHJtZmlsZXM9IiRybWZpbGVzICRv YmpkaXIvJG9sZF9saWJyYXJ5IgorKworKwkgIGNhc2UgIiRtb2RlIiBpbgorKwkgIGNsZWFuKQor KwkgICAgY2FzZSAiICAkbGlicmFyeV9uYW1lcyAiIGluCisrCSAgICAjICIgICIgaW4gdGhlIGJl Z2lubmluZyBjYXRjaGVzIGVtcHR5ICRkbG5hbWUKKysJICAgICoiICRkbG5hbWUgIiopIDs7Cisr CSAgICAqKSBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRkbG5hbWUiIDs7CisrCSAgICBlc2Fj CisrCSAgICB0ZXN0IC1uICIkbGliZGlyIiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRu YW1lICRvYmpkaXIvJHtuYW1lfWkiCisrCSAgICA7OworKwkgIHVuaW5zdGFsbCkKKysJICAgIGlm IHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIjsgdGhlbgorKwkgICAgICAjIERvIGVhY2ggY29tbWFu ZCBpbiB0aGUgcG9zdHVuaW5zdGFsbCBjb21tYW5kcy4KKysJICAgICAgZnVuY19leGVjdXRlX2Nt ZHMgIiRwb3N0dW5pbnN0YWxsX2NtZHMiICd0ZXN0ICIkcm1mb3JjZSIgPSB5ZXMgfHwgZXhpdF9z dGF0dXM9MScKKysJICAgIGZpCisrCisrCSAgICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0 aGVuCisrCSAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBvbGRfcG9zdHVuaW5zdGFsbCBj b21tYW5kcy4KKysJICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRvbGRfcG9zdHVuaW5zdGFsbF9j bWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVzPTEnCisrCSAgICBmaQor KwkgICAgIyBGSVhNRTogc2hvdWxkIHJlaW5zdGFsbCB0aGUgYmVzdCByZW1haW5pbmcgc2hhcmVk IGxpYnJhcnkuCisrCSAgICA7OworKwkgIGVzYWMKKysJZmkKKysJOzsKKysKKysgICAgICAqLmxv KQorKwkjIFBvc3NpYmx5IGEgbGlidG9vbCBvYmplY3QsIHNvIHZlcmlmeSBpdC4KKysJaWYgZnVu Y19sYWxpYl9wICIkZmlsZSI7IHRoZW4KKysKKysJICAjIFJlYWQgdGhlIC5sbyBmaWxlCisrCSAg ZnVuY19zb3VyY2UgJGRpci8kbmFtZQorKworKwkgICMgQWRkIFBJQyBvYmplY3QgdG8gdGhlIGxp c3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorKwkgIGlmIHRlc3QgLW4gIiRwaWNfb2JqZWN0IiAmJgor KwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCisrCSAgICBybWZpbGVzPSIk cm1maWxlcyAkZGlyLyRwaWNfb2JqZWN0IgorKwkgIGZpCisrCisrCSAgIyBBZGQgbm9uLVBJQyBv YmplY3QgdG8gdGhlIGxpc3Qgb2YgZmlsZXMgdG8gcmVtb3ZlLgorKwkgIGlmIHRlc3QgLW4gIiRu b25fcGljX29iamVjdCIgJiYKKysJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7 IHRoZW4KKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRkaXIvJG5vbl9waWNfb2JqZWN0IgorKwkg IGZpCisrCWZpCisrCTs7CisrCisrICAgICAgKikKKysJaWYgdGVzdCAiJG1vZGUiID0gY2xlYW4g OyB0aGVuCisrCSAgbm9leGVuYW1lPSRuYW1lCisrCSAgY2FzZSAkZmlsZSBpbgorKwkgICouZXhl KQorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZmlsZSIKKysJICAgIGZpbGU9JGZ1 bmNfc3RyaXBuYW1lX3Jlc3VsdAorKwkgICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkbmFt ZSIKKysJICAgIG5vZXhlbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisrCSAgICAjICRmaWxl IHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJtZmlsZXMsCisrCSAgICAjIGFk ZCAkZmlsZSB3aXRob3V0IC5leGUKKysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRmaWxlIgorKwkg ICAgOzsKKysJICBlc2FjCisrCSAgIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0 b29sIHByb2dyYW0uCisrCSAgaWYgZnVuY19sdHdyYXBwZXJfcCAiJGZpbGUiOyB0aGVuCisrCSAg ICBpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRhYmxlX3AgIiRmaWxlIjsgdGhlbgorKwkgICAgICBm dW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lICIkZmlsZSIKKysJICAgICAgcmVsaW5rX2NvbW1hbmQ9 CisrCSAgICAgIGZ1bmNfc291cmNlICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAor KwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1 bHQiCisrCSAgICBlbHNlCisrCSAgICAgIHJlbGlua19jb21tYW5kPQorKwkgICAgICBmdW5jX3Nv dXJjZSAkZGlyLyRub2V4ZW5hbWUKKysJICAgIGZpCisrCisrCSAgICAjIG5vdGUgJG5hbWUgc3Rp bGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4gJGZpbGUgb3JpZ2luYWxseQorKwkgICAgIyBh cyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2FzIGFkZGVkIGludG8gJHJtZmlsZXMK KysJICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG5hbWUgJG9iamRpci8ke25hbWV9Uy4k e29iamV4dH0iCisrCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllcyAmJiB0ZXN0IC1u ICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCisrCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpk aXIvbHQtJG5hbWUiCisrCSAgICBmaQorKwkgICAgaWYgdGVzdCAiWCRub2V4ZW5hbWUiICE9ICJY JG5hbWUiIDsgdGhlbgorKwkgICAgICBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyL2x0LSR7bm9l eGVuYW1lfS5jIgorKwkgICAgZmkKKysJICBmaQorKwlmaQorKwk7OworKyAgICAgIGVzYWMKKysg ICAgICBmdW5jX3Nob3dfZXZhbCAiJFJNICRybWZpbGVzIiAnZXhpdF9zdGF0dXM9MScKKysgICAg ZG9uZQorKyAgICBvYmpkaXI9IiRvcmlnb2JqZGlyIgorKworKyAgICAjIFRyeSB0byByZW1vdmUg dGhlICR7b2JqZGlyfXMgaW4gdGhlIGRpcmVjdG9yaWVzIHdoZXJlIHdlIGRlbGV0ZWQgZmlsZXMK KysgICAgZm9yIGRpciBpbiAkcm1kaXJzOyBkbworKyAgICAgIGlmIHRlc3QgLWQgIiRkaXIiOyB0 aGVuCisrCWZ1bmNfc2hvd19ldmFsICJybWRpciAkZGlyID4vZGV2L251bGwgMj4mMSIKKysgICAg ICBmaQorKyAgICBkb25lCisrCisrICAgIGV4aXQgJGV4aXRfc3RhdHVzCisrfQorKworK3sgdGVz dCAiJG1vZGUiID0gdW5pbnN0YWxsIHx8IHRlc3QgIiRtb2RlIiA9IGNsZWFuOyB9ICYmCisrICAg IGZ1bmNfbW9kZV91bmluc3RhbGwgJHsxKyIkQCJ9CisrCisrdGVzdCAteiAiJG1vZGUiICYmIHsK KysgIGhlbHA9IiRnZW5lcmljX2hlbHAiCisrICBmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNw ZWNpZnkgYSBNT0RFIgorK30KKysKKyt0ZXN0IC16ICIkZXhlY19jbWQiICYmIFwKKysgIGZ1bmNf ZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRtb2RlJyIKKysKKytpZiB0ZXN0 IC1uICIkZXhlY19jbWQiOyB0aGVuCisrICBldmFsIGV4ZWMgIiRleGVjX2NtZCIKKysgIGV4aXQg JEVYSVRfRkFJTFVSRQorK2ZpCisrCisrZXhpdCAkZXhpdF9zdGF0dXMKKysKKysKKysjIFRoZSBU QUdzIGJlbG93IGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB3ZSBuZXZlciBnZXQgaW50byBhIHNpdHVh dGlvbgorKyMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRzIG9mIGxpYnJhcmllcy4gIEdp dmVuIGNvbmZsaWN0aW5nCisrIyBjaG9pY2VzLCB3ZSBnbyBmb3IgYSBzdGF0aWMgbGlicmFyeSwg dGhhdCBpcyB0aGUgbW9zdCBwb3J0YWJsZSwKKysjIHNpbmNlIHdlIGNhbid0IHRlbGwgd2hldGhl ciBzaGFyZWQgbGlicmFyaWVzIHdlcmUgZGlzYWJsZWQgYmVjYXVzZQorKyMgdGhlIHVzZXIgYXNr ZWQgZm9yIHRoYXQgb3IgYmVjYXVzZSB0aGUgcGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0CisrIyB0 aGVtLiAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW1wb3J0YW50IG9uIEFJWCwgYmVjYXVzZSB3ZSBk b24ndAorKyMgc3VwcG9ydCBoYXZpbmcgYm90aCBzdGF0aWMgYW5kIHNoYXJlZCBsaWJyYXJpZXMg ZW5hYmxlZCBhdCB0aGUgc2FtZQorKyMgdGltZSBvbiB0aGF0IHBsYXRmb3JtLCBzbyB3ZSBkZWZh dWx0IHRvIGEgc2hhcmVkLW9ubHkgY29uZmlndXJhdGlvbi4KKysjIElmIGEgZGlzYWJsZS1zaGFy ZWQgdGFnIGlzIGdpdmVuLCB3ZSdsbCBmYWxsYmFjayB0byBhIHN0YXRpYy1vbmx5CisrIyBjb25m aWd1cmF0aW9uLiAgQnV0IHdlJ2xsIG5ldmVyIGdvIGZyb20gc3RhdGljLW9ubHkgdG8gc2hhcmVk LW9ubHkuCisrCisrIyAjIyMgQkVHSU4gTElCVE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXNoYXJl ZAorK2J1aWxkX2xpYnRvb2xfbGlicz1ubworK2J1aWxkX29sZF9saWJzPXllcworKyMgIyMjIEVO RCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCisrCisrIyAjIyMgQkVHSU4gTElC VE9PTCBUQUcgQ09ORklHOiBkaXNhYmxlLXN0YXRpYworK2J1aWxkX29sZF9saWJzPWBjYXNlICRi dWlsZF9saWJ0b29sX2xpYnMgaW4geWVzKSBlY2hvIG5vOzsgKikgZWNobyB5ZXM7OyBlc2FjYAor KyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc3RhdGljCisrCisrIyBMb2Nh bCBWYXJpYWJsZXM6CisrIyBtb2RlOnNoZWxsLXNjcmlwdAorKyMgc2gtaW5kZW50YXRpb246Mgor KyMgRW5kOgorKyMgdmk6c3c9MgorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0fm9ic29sZXRlLm00 CistLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0fm9ic29sZXRlLm00CTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9s dH5vYnNvbGV0ZS5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSw5MiBAQAorKyMgbHR+b2Jzb2xldGUubTQgLS0gYWNsb2NhbCBzYXRpc2Z5aW5nIG9ic29s ZXRlIGRlZmluaXRpb25zLiAgICAtKi1BdXRvY29uZi0qLQorKyMKKysjICAgQ29weXJpZ2h0IChD KSAyMDA0LCAyMDA1LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgICBX cml0dGVuIGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQuCisrIworKyMgVGhpcyBmaWxlIGlz IGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKKysjIHVu bGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Ig d2l0aG91dAorKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVz ZXJ2ZWQuCisrCisrIyBzZXJpYWwgNCBsdH5vYnNvbGV0ZS5tNAorKworKyMgVGhlc2UgZXhpc3Qg ZW50aXJlbHkgdG8gZm9vbCBhY2xvY2FsIHdoZW4gYm9vdHN0cmFwcGluZyBsaWJ0b29sLgorKyMK KysjIEluIHRoZSBwYXN0IGxpYnRvb2wubTQgaGFzIHByb3ZpZGVkIG1hY3JvcyB2aWEgQUNfREVG VU4gKG9yIEFVX0RFRlVOKQorKyMgd2hpY2ggaGF2ZSBsYXRlciBiZWVuIGNoYW5nZWQgdG8gbTRf ZGVmaW5lIGFzIHRoZXkgYXJlbid0IHBhcnQgb2YgdGhlCisrIyBleHBvcnRlZCBBUEksIG9yIG1v dmVkIHRvIEF1dG9jb25mIG9yIEF1dG9tYWtlIHdoZXJlIHRoZXkgYmVsb25nLgorKyMKKysjIFRo ZSB0cm91YmxlIGlzLCBhY2xvY2FsIGlzIGEgYml0IHRoaWNrLiAgSXQnbGwgc2VlIHRoZSBvbGQg QUNfREVGVU4KKysjIGluIC91c3Ivc2hhcmUvYWNsb2NhbC9saWJ0b29sLm00IGFuZCByZW1lbWJl ciBpdCwgdGhlbiB3aGVuIGl0IHNlZXMgdXMKKysjIHVzaW5nIGEgbWFjcm8gd2l0aCB0aGUgc2Ft ZSBuYW1lIGluIG91ciBsb2NhbCBtNC9saWJ0b29sLm00IGl0J2xsCisrIyBwdWxsIHRoZSBvbGQg bGlidG9vbC5tNCBpbiAoaXQgZG9lc24ndCBzZWUgb3VyIHNoaW55IG5ldyBtNF9kZWZpbmUKKysj IGFuZCBkb2Vzbid0IGtub3cgYWJvdXQgQXV0b2NvbmYgbWFjcm9zIGF0IGFsbC4pCisrIworKyMg U28gd2UgcHJvdmlkZSB0aGlzIGZpbGUsIHdoaWNoIGhhcyBhIHNpbGx5IGZpbGVuYW1lIHNvIGl0 J3MgYWx3YXlzCisrIyBpbmNsdWRlZCBhZnRlciBldmVyeXRoaW5nIGVsc2UuICBUaGlzIHByb3Zp ZGVzIGFjbG9jYWwgd2l0aCB0aGUKKysjIEFDX0RFRlVOcyBpdCB3YW50cywgYnV0IHdoZW4gbTQg cHJvY2Vzc2VzIGl0LCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nCisrIyBiZWNhdXNlIHRob3NlIG1h Y3JvcyBhbHJlYWR5IGV4aXN0LCBvciB3aWxsIGJlIG92ZXJ3cml0dGVuIGxhdGVyLgorKyMgV2Ug dXNlIEFDX0RFRlVOIG92ZXIgQVVfREVGVU4gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBhY2xvY2Fs LTEuNi4gCisrIworKyMgQW55dGltZSB3ZSB3aXRoZHJhdyBhbiBBQ19ERUZVTiBvciBBVV9ERUZV TiwgcmVtZW1iZXIgdG8gYWRkIGl0IGhlcmUuCisrIyBZZXMsIHRoYXQgbWVhbnMgZXZlcnkgbmFt ZSBvbmNlIHRha2VuIHdpbGwgbmVlZCB0byByZW1haW4gaGVyZSB1bnRpbAorKyMgd2UgZ2l2ZSB1 cCBjb21wYXRpYmlsaXR5IHdpdGggdmVyc2lvbnMgYmVmb3JlIDEuNywgYXQgd2hpY2ggcG9pbnQK KysjIHdlIG5lZWQgdG8ga2VlcCBvbmx5IHRob3NlIG5hbWVzIHdoaWNoIHdlIHN0aWxsIHJlZmVy IHRvLgorKworKyMgVGhpcyBpcyB0byBoZWxwIGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFz IGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisrQUNfREVGVU4oW0xUT0JTT0xFVEVfVkVSU0lPTl0s IFttNF9pZihbMV0pXSkKKysKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9OXSldKQorK200X2lmbmRlZihbQUNf UFJPR19FR1JFUF0sCQlbQUNfREVGVU4oW0FDX1BST0dfRUdSRVBdKV0pCisrbTRfaWZuZGVmKFtf TFRfQUNfUFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihbX0xUX0FDX1BST0dfRUNIT19C QUNLU0xBU0hdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfU0hFTExfSU5JVF0sCQlbQUNfREVGVU4o W19MVF9BQ19TSEVMTF9JTklUXSldKQorK200X2lmbmRlZihbX0xUX0FDX1NZU19MSUJQQVRIX0FJ WF0sCVtBQ19ERUZVTihbX0xUX0FDX1NZU19MSUJQQVRIX0FJWF0pXSkKKyttNF9pZm5kZWYoW19M VF9QUk9HX0xUTUFJTl0sCQlbQUNfREVGVU4oW19MVF9QUk9HX0xUTUFJTl0pXSkKKyttNF9pZm5k ZWYoW19MVF9BQ19UQUdWQVJdLAkJW0FDX0RFRlVOKFtfTFRfQUNfVEFHVkFSXSldKQorK200X2lm bmRlZihbQUNfTFRETF9FTkFCTEVfSU5TVEFMTF0sCVtBQ19ERUZVTihbQUNfTFRETF9FTkFCTEVf SU5TVEFMTF0pXSkKKyttNF9pZm5kZWYoW0FDX0xURExfUFJFT1BFTl0sCQlbQUNfREVGVU4oW0FD X0xURExfUFJFT1BFTl0pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19TWVNfQ09NUElMRVJdLAlbQUNf REVGVU4oW19MVF9BQ19TWVNfQ09NUElMRVJdKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTE9DS10s CQlbQUNfREVGVU4oW19MVF9BQ19MT0NLXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNf T0xEX0FSQ0hJVkVdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX09MRF9BUkNISVZFXSldKQor K200X2lmbmRlZihbX0xUX0FDX1RSWV9ETE9QRU5fU0VMRl0sCVtBQ19ERUZVTihbX0xUX0FDX1RS WV9ETE9QRU5fU0VMRl0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dLAlb QUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DQ19DX09dKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJU T09MX1NZU19IQVJEX0xJTktfTE9DS1NdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0hBUkRf TElOS19MT0NLU10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfT0JKRElSXSwJCVtBQ19ERUZV TihbQUNfTElCVE9PTF9PQkpESVJdKV0pCisrbTRfaWZuZGVmKFtBQ19MVERMX09CSkRJUl0sCQlb QUNfREVGVU4oW0FDX0xURExfT0JKRElSXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9H X0xEX0hBUkRDT0RFX0xJQlBBVEhdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19MRF9IQVJE Q09ERV9MSUJQQVRIXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfTElCX1NUUklQXSwJ W0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBdKV0pCisrbTRfaWZuZGVmKFtBQ19Q QVRIX01BR0lDXSwJCVtBQ19ERUZVTihbQUNfUEFUSF9NQUdJQ10pXSkKKyttNF9pZm5kZWYoW0FD X1BST0dfTERfR05VXSwJCVtBQ19ERUZVTihbQUNfUFJPR19MRF9HTlVdKV0pCisrbTRfaWZuZGVm KFtBQ19QUk9HX0xEX1JFTE9BRF9GTEFHXSwJW0FDX0RFRlVOKFtBQ19QUk9HX0xEX1JFTE9BRF9G TEFHXSldKQorK200X2lmbmRlZihbQUNfREVQTElCU19DSEVDS19NRVRIT0RdLAlbQUNfREVGVU4o W0FDX0RFUExJQlNfQ0hFQ0tfTUVUSE9EXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9H X0NPTVBJTEVSX05PX1JUVEldLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9O T19SVFRJXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9TWVNfR0xPQkFMX1NZTUJPTF9QSVBF XSwgW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJUEVdKV0pCisrbTRf aWZuZGVmKFtBQ19MSUJUT09MX1BST0dfQ09NUElMRVJfUElDXSwgW0FDX0RFRlVOKFtBQ19MSUJU T09MX1BST0dfQ09NUElMRVJfUElDXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0xE X1NITElCU10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xEX1NITElCU10pXSkKKyttNF9p Zm5kZWYoW0FDX0xJQlRPT0xfUE9TVERFUF9QUkVERVBdLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xf UE9TVERFUF9QUkVERVBdKV0pCisrbTRfaWZuZGVmKFtMVF9BQ19QUk9HX0VHUkVQXSwJCVtBQ19E RUZVTihbTFRfQUNfUFJPR19FR1JFUF0pXSkKKyttNF9pZm5kZWYoW0xUX0FDX1BST0dfU0VEXSwJ CVtBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdKV0pCisrbTRfaWZuZGVmKFtfTFRfQ0NfQkFTRU5B TUVdLAkJW0FDX0RFRlVOKFtfTFRfQ0NfQkFTRU5BTUVdKV0pCisrbTRfaWZuZGVmKFtfTFRfQ09N UElMRVJfQk9JTEVSUExBVEVdLAlbQUNfREVGVU4oW19MVF9DT01QSUxFUl9CT0lMRVJQTEFURV0p XSkKKyttNF9pZm5kZWYoW19MVF9MSU5LRVJfQk9JTEVSUExBVEVdLAlbQUNfREVGVU4oW19MVF9M SU5LRVJfQk9JTEVSUExBVEVdKV0pCisrbTRfaWZuZGVmKFtfQUNfUFJPR19MSUJUT09MXSwJCVtB Q19ERUZVTihbX0FDX1BST0dfTElCVE9PTF0pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfU0VU VVBdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1NFVFVQXSldKQorK200X2lmbmRlZihbX0xUX0FD X0NIRUNLX0RMRkNOXSwJCVtBQ19ERUZVTihbX0xUX0FDX0NIRUNLX0RMRkNOXSldKQorK200X2lm bmRlZihbQUNfTElCVE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdLAlbQUNfREVGVU4oW0FDX0xJQlRP T0xfU1lTX0RZTkFNSUNfTElOS0VSXSldKQorK200X2lmbmRlZihbX0xUX0FDX1RBR0NPTkZJR10s CQlbQUNfREVGVU4oW19MVF9BQ19UQUdDT05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19ESVNBQkxF X0ZBU1RfSU5TVEFMTF0sCVtBQ19ERUZVTihbQUNfRElTQUJMRV9GQVNUX0lOU1RBTExdKV0pCisr bTRfaWZuZGVmKFtfTFRfQUNfTEFOR19DWFhdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19DWFhd KV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19GNzddLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFO R19GNzddKV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pdLAkJW0FDX0RFRlVOKFtfTFRf QUNfTEFOR19HQ0pdKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09MX1JDXSwJCVtBQ19ERUZVTihb QUNfTElCVE9PTF9SQ10pXSkKKyttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xU X0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSldKQor K200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJ QlRPT0xfTEFOR19DWFhfQ09ORklHXSldKQorK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYX0NP TkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYX0NPTkZJR10pXSkKKyttNF9pZm5kZWYo W0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdf Rjc3X0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N19DT05GSUddLAlbQUNf REVGVU4oW19MVF9BQ19MQU5HX0Y3N19DT05GSUddKV0pCisrbTRfaWZuZGVmKFtBQ19MSUJUT09M X0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUdd KV0pCisrbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRf QUNfTEFOR19HQ0pfQ09ORklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX1JDX0NP TkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJR10pXSkKKyttNF9pZm5k ZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfUkNfQ09O RklHXSldKQorK200X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUddLAkJW0FDX0RFRlVOKFtBQ19M SUJUT09MX0NPTkZJR10pXSkKKyttNF9pZm5kZWYoW19MVF9BQ19GSUxFX0xURExMX0NdLAlbQUNf REVGVU4oW19MVF9BQ19GSUxFX0xURExMX0NdKV0pCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2x0b3B0aW9ucy5tNCBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0b3B0aW9u cy5tNAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9wdGlvbnMubTQJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmln L2x0b3B0aW9ucy5tNAkyMDEwLTAxLTIzIDE0OjQ0OjQ0LjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSwzNjggQEAKKysjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAg ICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKysjCisrIyAgIENvcHlyaWdodCAoQykg MjAwNCwgMjAwNSwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysj ICAgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3 aXRob3V0CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIHNlcmlhbCA2IGx0b3B0aW9ucy5tNAorKworKyMgVGhpcyBpcyB0byBoZWxw IGFjbG9jYWwgZmluZCB0aGVzZSBtYWNyb3MsIGFzIGl0IGNhbid0IHNlZSBtNF9kZWZpbmUuCisr QUNfREVGVU4oW0xUT1BUSU9OU19WRVJTSU9OXSwgW200X2lmKFsxXSldKQorKworKworKyMgX0xU X01BTkdMRV9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUoW19MVF9NQU5HTEVfT1BU SU9OXSwKKytbW19MVF9PUFRJT05fXW00X2JwYXRzdWJzdCgkMV9fJDIsIFtbXmEtekEtWjAtOV9d XSwgW19dKV0pCisrCisrCisrIyBfTFRfU0VUX09QVElPTihNQUNSTy1OQU1FLCBPUFRJT04tTkFN RSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU2V0IG9w dGlvbiBPUFRJT04tTkFNRSBmb3IgbWFjcm8gTUFDUk8tTkFNRSwgYW5kIGlmIHRoZXJlIGlzIGEK KysjIG1hdGNoaW5nIGhhbmRsZXIgZGVmaW5lZCwgZGlzcGF0Y2ggdG8gaXQuICBPdGhlciBPUFRJ T04tTkFNRXMgYXJlCisrIyBzYXZlZCBhcyBhIGZsYWcuCisrbTRfZGVmaW5lKFtfTFRfU0VUX09Q VElPTl0sCisrW200X2RlZmluZShfTFRfTUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSlkbmwKKytt NF9pZmRlZihfTFRfTUFOR0xFX0RFRlVOKFskMV0sIFskMl0pLAorKyAgICAgICAgX0xUX01BTkdM RV9ERUZVTihbJDFdLCBbJDJdKSwKKysgICAgW200X3dhcm5pbmcoW1Vua25vd24gJDEgb3B0aW9u IGAkMiddKV0pW11kbmwKKytdKQorKworKworKyMgX0xUX0lGX09QVElPTihNQUNSTy1OQU1FLCBP UFRJT04tTkFNRSwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEV4ZWN1dGUgSUYt U0VUIGlmIE9QVElPTiBpcyBzZXQsIElGLU5PVC1TRVQgb3RoZXJ3aXNlLgorK200X2RlZmluZShb X0xUX0lGX09QVElPTl0sCisrW200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0sIFskMl0p LCBbJDNdLCBbJDRdKV0pCisrCisrCisrIyBfTFRfVU5MRVNTX09QVElPTlMoTUFDUk8tTkFNRSwg T1BUSU9OLUxJU1QsIElGLU5PVC1TRVQpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBFeGVjdXRlIElGLU5PVC1TRVQgdW5sZXNz IGFsbCBvcHRpb25zIGluIE9QVElPTi1MSVNUIGZvciBNQUNSTy1OQU1FCisrIyBhcmUgc2V0Lgor K200X2RlZmluZShbX0xUX1VOTEVTU19PUFRJT05TXSwKKytbbTRfZm9yZWFjaChbX0xUX09wdGlv bl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJdKSksCisrCSAgICBbbTRfaWZkZWYoX0xUX01B TkdMRV9PUFRJT04oWyQxXSwgX0xUX09wdGlvbiksCisrCQkgICAgICBbbTRfZGVmaW5lKFskMF9m b3VuZF0pXSldKVtdZG5sCisrbTRfaWZkZWYoWyQwX2ZvdW5kXSwgW200X3VuZGVmaW5lKFskMF9m b3VuZF0pXSwgWyQzCisrXSlbXWRubAorK10pCisrCisrCisrIyBfTFRfU0VUX09QVElPTlMoTUFD Uk8tTkFNRSwgT1BUSU9OLUxJU1QpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBPUFRJT04tTElTVCBpcyBhIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIExp YnRvb2wgb3B0aW9ucyBhc3NvY2lhdGVkCisrIyB3aXRoIE1BQ1JPLU5BTUUuICBJZiBhbnkgT1BU SU9OIGhhcyBhIG1hdGNoaW5nIGhhbmRsZXIgZGVjbGFyZWQgd2l0aAorKyMgTFRfT1BUSU9OX0RF RklORSwgZGlzcGF0Y2ggdG8gdGhhdCBtYWNybzsgb3RoZXJ3aXNlIGNvbXBsYWluIGFib3V0Cisr IyB0aGUgdW5rbm93biBvcHRpb24gYW5kIGV4aXQuCisrbTRfZGVmdW4oW19MVF9TRVRfT1BUSU9O U10sCisrWyMgU2V0IG9wdGlvbnMKKyttNF9mb3JlYWNoKFtfTFRfT3B0aW9uXSwgbTRfc3BsaXQo bTRfbm9ybWFsaXplKFskMl0pKSwKKysgICAgW19MVF9TRVRfT1BUSU9OKFskMV0sIF9MVF9PcHRp b24pXSkKKysKKyttNF9pZihbJDFdLFtMVF9JTklUXSxbCisrICBkbmwKKysgIGRubCBTaW1wbHkg c2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgKGkuZSBvZmYpIGlmIGJvb2xlYW4gb3B0aW9ucyB3ZXJl IG5vdAorKyAgZG5sIHNwZWNpZmllZDoKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0s IFtkbG9wZW5dLCBbZW5hYmxlX2Rsb3Blbj1ubworKyAgXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9O UyhbTFRfSU5JVF0sIFt3aW4zMi1kbGxdLCBbZW5hYmxlX3dpbjMyX2RsbD1ubworKyAgXSkKKysg IGRubAorKyAgZG5sIElmIG5vIHJlZmVyZW5jZSB3YXMgbWFkZSB0byB2YXJpb3VzIHBhaXJzIG9m IG9wcG9zaW5nIG9wdGlvbnMsIHRoZW4KKysgIGRubCB3ZSBydW4gdGhlIGRlZmF1bHQgbW9kZSBo YW5kbGVyIGZvciB0aGUgcGFpci4gIEZvciBleGFtcGxlLCBpZiBuZWl0aGVyCisrICBkbmwgYHNo YXJlZCcgbm9yIGBkaXNhYmxlLXNoYXJlZCcgd2FzIHBhc3NlZCwgd2UgZW5hYmxlIGJ1aWxkaW5n IG9mIHNoYXJlZAorKyAgZG5sIGFyY2hpdmVzIGJ5IGRlZmF1bHQ6CisrICBfTFRfVU5MRVNTX09Q VElPTlMoW0xUX0lOSVRdLCBbc2hhcmVkIGRpc2FibGUtc2hhcmVkXSwgW19MVF9FTkFCTEVfU0hB UkVEXSkKKysgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtzdGF0aWMgZGlzYWJsZS1z dGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUNdKQorKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9J TklUXSwgW3BpYy1vbmx5IG5vLXBpY10sIFtfTFRfV0lUSF9QSUNdKQorKyAgX0xUX1VOTEVTU19P UFRJT05TKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbCBkaXNhYmxlLWZhc3QtaW5zdGFsbF0sCisr ICAJCSAgIFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF0pCisrICBdKQorK10pIyBfTFRfU0VUX09Q VElPTlMKKysKKysKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysj IyBNYWNyb3MgdG8gaGFuZGxlIExUX0lOSVQgb3B0aW9ucy4gIyMKKysjIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysjIF9MVF9NQU5HTEVfREVGVU4oTUFDUk8tTkFN RSwgT1BUSU9OLU5BTUUpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorK200X2RlZmluZShbX0xUX01BTkdMRV9ERUZVTl0sCisrW1tfTFRfT1BUSU9OX0RFRlVO X11tNF9icGF0c3Vic3QobTRfdG91cHBlcihbJDFfXyQyXSksIFtbXkEtWjAtOV9dXSwgW19dKV0p CisrCisrCisrIyBMVF9PUFRJT05fREVGSU5FKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FLCBDT0RF KQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytt NF9kZWZpbmUoW0xUX09QVElPTl9ERUZJTkVdLAorK1ttNF9kZWZpbmUoX0xUX01BTkdMRV9ERUZV TihbJDFdLCBbJDJdKSwgWyQzXSlbXWRubAorK10pIyBMVF9PUFRJT05fREVGSU5FCisrCisrCisr IyBkbG9wZW4KKysjIC0tLS0tLQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGxvcGVu XSwgW2VuYWJsZV9kbG9wZW49eWVzCisrXSkKKysKKytBVV9ERUZVTihbQUNfTElCVE9PTF9ETE9Q RU5dLAorK1tfTFRfU0VUX09QVElPTihbTFRfSU5JVF0sIFtkbG9wZW5dKQorK0FDX0RJQUdOT1NF KFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBf TFRfU0VUX09QVElPTiB3aGVuIHlvdQorK3B1dCB0aGUgYGRsb3Blbicgb3B0aW9uIGludG8gTFRf SU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9ETE9QRU5dLCBb XSkKKysKKysKKysjIHdpbjMyLWRsbAorKyMgLS0tLS0tLS0tCisrIyBEZWNsYXJlIHBhY2thZ2Ug c3VwcG9ydCBmb3IgYnVpbGRpbmcgd2luMzIgZGxsJ3MuCisrTFRfT1BUSU9OX0RFRklORShbTFRf SU5JVF0sIFt3aW4zMi1kbGxdLAorK1tlbmFibGVfd2luMzJfZGxsPXllcworKworK2Nhc2UgJGhv c3QgaW4KKysqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLWNlZ2NjKikK KysgIEFDX0NIRUNLX1RPT0woQVMsIGFzLCBmYWxzZSkKKysgIEFDX0NIRUNLX1RPT0woRExMVE9P TCwgZGxsdG9vbCwgZmFsc2UpCisrICBBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZh bHNlKQorKyAgOzsKKytlc2FjCisrCisrdGVzdCAteiAiJEFTIiAmJiBBUz1hcworK19MVF9ERUNM KFtdLCBbQVNdLCAgICAgIFswXSwgW0Fzc2VtYmxlciBwcm9ncmFtXSlkbmwKKysKKyt0ZXN0IC16 ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCisrX0xUX0RFQ0woW10sIFtETExUT09MXSwg WzBdLCBbRExMIGNyZWF0aW9uIHByb2dyYW1dKWRubAorKworK3Rlc3QgLXogIiRPQkpEVU1QIiAm JiBPQkpEVU1QPW9iamR1bXAKKytfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMF0sIFtPYmplY3Qg ZHVtcGVyIHByb2dyYW1dKWRubAorK10pIyB3aW4zMi1kbGwKKysKKytBVV9ERUZVTihbQUNfTElC VE9PTF9XSU4zMl9ETExdLAorK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCisr X0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbd2luMzItZGxsXSkKKytBQ19ESUFHTk9TRShbb2Jz b2xldGVdLAorK1skMDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NF VF9PUFRJT04gd2hlbiB5b3UKKytwdXQgdGhlIGB3aW4zMi1kbGwnIG9wdGlvbiBpbnRvIExUX0lO SVQncyBmaXJzdCBwYXJhbWV0ZXIuXSkKKytdKQorKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2Fy ZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwg W10pCisrCisrCisrIyBfTFRfRU5BQkxFX1NIQVJFRChbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXNoYXJlZCBmbGFn LCBhbmQgc3VwcG9ydHMgdGhlIGBzaGFyZWQnIGFuZAorKyMgYGRpc2FibGUtc2hhcmVkJyBMVF9J TklUIG9wdGlvbnMuCisrIyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21p dHRlZCwgaXQgZGVmYXVsdHMgdG8gYHllcycuCisrbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJF RF0sCisrW200X2RlZmluZShbX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVF0sIFttNF9pZigkMSwg bm8sIG5vLCB5ZXMpXSlkbmwKKytBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAorKyAgICBbQVNfSEVM UF9TVFJJTkcoWy0tZW5hYmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAorKwlbYnVpbGQgc2hhcmVk IGxpYnJhcmllcyBAPDpAZGVmYXVsdD1dX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVFtAOj5AXSld LAorKyAgICBbcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxldmFsIGluCisr ICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8g OzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisrICAgICAgIyBMb29rIGF0IHRo ZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3Jz LgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1Is IgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRfc2F2ZV9pZnMi CisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX3NoYXJlZD15ZXMK KysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgOzsK KysgICAgZXNhY10sCisrICAgIFtlbmFibGVfc2hhcmVkPV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZB VUxUKQorKworKyAgICBfTFRfREVDTChbYnVpbGRfbGlidG9vbF9saWJzXSwgW2VuYWJsZV9zaGFy ZWRdLCBbMF0sCisrCVtXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkK KytdKSMgX0xUX0VOQUJMRV9TSEFSRUQKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwg W3NoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRChbeWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUo W0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW25vXSldKQor KworKyMgT2xkIG5hbWVzOgorK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwKKytbX0xUX1NF VF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzaGFyZWRd KQorK10pCisrCisrQUNfREVGVU4oW0FDX0RJU0FCTEVfU0hBUkVEXSwKKytbX0xUX1NFVF9PUFRJ T04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zaGFyZWRdKQorK10pCisrCisrQVVfREVGVU4oW0FNX0VO QUJMRV9TSEFSRURdLCBbQUNfRU5BQkxFX1NIQVJFRCgkQCldKQorK0FVX0RFRlVOKFtBTV9ESVNB QkxFX1NIQVJFRF0sIFtBQ19ESVNBQkxFX1NIQVJFRCgkQCldKQorKworK2RubCBhY2xvY2FsLTEu NCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TSEFS RURdLCBbXSkKKytkbmwgQUNfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVEXSwgW10pCisrCisrCisr CisrIyBfTFRfRU5BQkxFX1NUQVRJQyhbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXN0YXRpYyBmbGFnLCBhbmQgc3Vw cG9ydCB0aGUgYHN0YXRpYycgYW5kCisrIyBgZGlzYWJsZS1zdGF0aWMnIExUX0lOSVQgb3B0aW9u cy4KKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBk ZWZhdWx0cyB0byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDXSwKKytbbTRf ZGVmaW5lKFtfTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHll cyldKWRubAorK0FDX0FSR19FTkFCTEUoW3N0YXRpY10sCisrICAgIFtBU19IRUxQX1NUUklORyhb LS1lbmFibGUtc3RhdGljQDw6QD1QS0dTQDo+QF0sCisrCVtidWlsZCBzdGF0aWMgbGlicmFyaWVz IEA8OkBkZWZhdWx0PV1fTFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUW0A6PkBdKV0sCisrICAgIFtw PSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBl bmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OworKyAgICAq KQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQg d2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KKysgICAgICBs dF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKKysgICAgICBm b3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgorKwlpZiB0ZXN0 ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zdGF0aWM9eWVzCisrCWZpCisrICAg ICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7CisrICAgIGVzYWNd LAorKyAgICBbZW5hYmxlX3N0YXRpYz1dX0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVCkKKysKKysg ICAgX0xUX0RFQ0woW2J1aWxkX29sZF9saWJzXSwgW2VuYWJsZV9zdGF0aWNdLCBbMF0sCisrCVtX aGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKKytdKSMgX0xUX0VOQUJM RV9TVEFUSUMKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3N0YXRpY10sIFtfTFRf RU5BQkxFX1NUQVRJQyhbeWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlz YWJsZS1zdGF0aWNdLCBbX0xUX0VOQUJMRV9TVEFUSUMoW25vXSldKQorKworKyMgT2xkIG5hbWVz OgorK0FDX0RFRlVOKFtBQ19FTkFCTEVfU1RBVElDXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lO SVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzdGF0aWNdKQorK10pCisrCisrQUNf REVGVU4oW0FDX0RJU0FCTEVfU1RBVElDXSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBb ZGlzYWJsZS1zdGF0aWNdKQorK10pCisrCisrQVVfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBb QUNfRU5BQkxFX1NUQVRJQygkQCldKQorK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NUQVRJQ10sIFtB Q19ESVNBQkxFX1NUQVRJQygkQCldKQorKworK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eToKKytkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbXSkKKytkbmwg QUNfREVGVU4oW0FNX0RJU0FCTEVfU1RBVElDXSwgW10pCisrCisrCisrCisrIyBfTFRfRU5BQkxF X0ZBU1RfSU5TVEFMTChbREVGQVVMVF0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLWZhc3QtaW5zdGFsbCBmbGFnLCBhbmQg c3VwcG9ydCB0aGUgYGZhc3QtaW5zdGFsbCcKKysjIGFuZCBgZGlzYWJsZS1mYXN0LWluc3RhbGwn IExUX0lOSVQgb3B0aW9ucy4KKysjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJ ZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVzJy4KKyttNF9kZWZpbmUoW19MVF9FTkFCTEVf RkFTVF9JTlNUQUxMXSwKKytbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZB VUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAorK0FDX0FSR19FTkFCTEUoW2Zhc3Qt aW5zdGFsbF0sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZmFzdC1pbnN0YWxsQDw6 QD1QS0dTQDo+QF0sCisrICAgIFtvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24gQDw6QGRl ZmF1bHQ9XV9MVF9FTkFCTEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRbQDo+QF0pXSwKKysgICAgW3A9 JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAgICB5ZXMpIGVu YWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7CisrICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5v IDs7CisrICAgICopCisrICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubworKyAgICAgICMgTG9v ayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2Vw YXJhdG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQ QVJBVE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3Nh dmVfaWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9mYXN0 X2luc3RhbGw9eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZz IgorKyAgICAgIDs7CisrICAgIGVzYWNdLAorKyAgICBbZW5hYmxlX2Zhc3RfaW5zdGFsbD1dX0xU X0VOQUJMRV9GQVNUX0lOU1RBTExfREVGQVVMVCkKKysKKytfTFRfREVDTChbZmFzdF9pbnN0YWxs XSwgW2VuYWJsZV9mYXN0X2luc3RhbGxdLCBbMF0sCisrCSBbV2hldGhlciBvciBub3QgdG8gb3B0 aW1pemUgZm9yIGZhc3QgaW5zdGFsbGF0aW9uXSlkbmwKKytdKSMgX0xUX0VOQUJMRV9GQVNUX0lO U1RBTEwKKysKKytMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbF0sIFtf TFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChbeWVzXSldKQorK0xUX09QVElPTl9ERUZJTkUoW0xUX0lO SVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW25v XSldKQorKworKyMgT2xkIG5hbWVzOgorK0FVX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxM XSwKKytbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJs ZS1dKVtmYXN0LWluc3RhbGxdKQorK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1v dmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBw dXQKKyt0aGUgYGZhc3QtaW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFt ZXRlci5dKQorK10pCisrCisrQVVfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwKKytb X0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdKQorK0FDX0RJ QUdOT1NFKFtvYnNvbGV0ZV0sCisrWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2Fs bCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKKyt0aGUgYGRpc2FibGUtZmFzdC1pbnN0 YWxsJyBvcHRpb24gaW50byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCisrXSkKKysKKytk bmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CisrZG5sIEFDX0RFRlVOKFtB Q19FTkFCTEVfRkFTVF9JTlNUQUxMXSwgW10pCisrZG5sIEFDX0RFRlVOKFtBTV9ESVNBQkxFX0ZB U1RfSU5TVEFMTF0sIFtdKQorKworKworKyMgX0xUX1dJVEhfUElDKFtNT0RFXSkKKysjIC0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIyBpbXBsZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZywgYW5kIHN1 cHBvcnQgdGhlIGBwaWMtb25seScgYW5kIGBuby1waWMnCisrIyBMVF9JTklUIG9wdGlvbnMuCisr IyBNT0RFIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMg dG8gYGJvdGgnLgorK200X2RlZmluZShbX0xUX1dJVEhfUElDXSwKKytbQUNfQVJHX1dJVEgoW3Bp Y10sCisrICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXBpY10sCisrCVt0cnkgdG8gdXNlIG9u bHkgUElDL25vbi1QSUMgb2JqZWN0cyBAPDpAZGVmYXVsdD11c2UgYm90aEA6PkBdKV0sCisrICAg IFtwaWNfbW9kZT0iJHdpdGh2YWwiXSwKKysgICAgW3BpY19tb2RlPWRlZmF1bHRdKQorKworK3Rl c3QgLXogIiRwaWNfbW9kZSIgJiYgcGljX21vZGU9bTRfZGVmYXVsdChbJDFdLCBbZGVmYXVsdF0p CisrCisrX0xUX0RFQ0woW10sIFtwaWNfbW9kZV0sIFswXSwgW1doYXQgdHlwZSBvZiBvYmplY3Rz IHRvIGJ1aWxkXSlkbmwKKytdKSMgX0xUX1dJVEhfUElDCisrCisrTFRfT1BUSU9OX0RFRklORShb TFRfSU5JVF0sIFtwaWMtb25seV0sIFtfTFRfV0lUSF9QSUMoW3llc10pXSkKKytMVF9PUFRJT05f REVGSU5FKFtMVF9JTklUXSwgW25vLXBpY10sIFtfTFRfV0lUSF9QSUMoW25vXSldKQorKworKyMg T2xkIG5hbWU6CisrQVVfREVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0sCisrW19MVF9TRVRfT1BU SU9OKFtMVF9JTklUXSwgW3BpYy1vbmx5XSkKKytBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAorK1sk MDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hl biB5b3UKKytwdXQgdGhlIGBwaWMtb25seScgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBh cmFtZXRlci5dKQorK10pCisrCisrZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmls aXR5OgorK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwgW10pCisrCisrIyMgLS0t LS0tLS0tLS0tLS0tLS0gIyMKKysjIyBMVERMX0lOSVQgT3B0aW9ucyAjIworKyMjIC0tLS0tLS0t LS0tLS0tLS0tICMjCisrCisrbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW10pCisrTFRfT1BUSU9O X0RFRklORShbTFRETF9JTklUXSwgW25vbnJlY3Vyc2l2ZV0sCisrCQkgW200X2RlZmluZShbX0xU RExfTU9ERV0sIFtub25yZWN1cnNpdmVdKV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklU XSwgW3JlY3Vyc2l2ZV0sCisrCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtyZWN1cnNpdmVd KV0pCisrTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3N1YnByb2plY3RdLAorKwkJIFtt NF9kZWZpbmUoW19MVERMX01PREVdLCBbc3VicHJvamVjdF0pXSkKKysKKyttNF9kZWZpbmUoW19M VERMX1RZUEVdLCBbXSkKKytMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbaW5zdGFsbGFi bGVdLAorKwkJIFttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbaW5zdGFsbGFibGVdKV0pCisrTFRf T1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW2NvbnZlbmllbmNlXSwKKysJCSBbbTRfZGVmaW5l KFtfTFRETF9UWVBFXSwgW2NvbnZlbmllbmNlXSldKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL2NvbmZpZy9sdHN1Z2FyLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRzdWdhci5t NAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00CTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1 Z2FyLm00CTIwMTAtMDEtMjMgMTQ6NDQ6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDEy MyBAQAorKyMgbHRzdWdhci5tNCAtLSBsaWJ0b29sIG00IGJhc2UgbGF5ZXIuICAgICAgICAgICAg ICAgICAgICAgICAgIC0qLUF1dG9jb25mLSotCisrIworKyMgQ29weXJpZ2h0IChDKSAyMDA0LCAy MDA1LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgV3JpdHRl biBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0Cisr IyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKysK KysjIHNlcmlhbCA2IGx0c3VnYXIubTQKKysKKysjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZp bmQgdGhlc2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgorK0FDX0RFRlVOKFtM VFNVR0FSX1ZFUlNJT05dLCBbbTRfaWYoWzAuMV0pXSkKKysKKysKKysjIGx0X2pvaW4oU0VQLCBB UkcxLCBbQVJHMi4uLl0pCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUHJv ZHVjZSBBUkcxU0VQQVJHMi4uLlNFUEFSR24sIG9taXR0aW5nIFtdIGFyZ3VtZW50cyBhbmQgdGhl aXIKKysjIGFzc29jaWF0ZWQgc2VwYXJhdG9yLgorKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5 IG9uIG00X2pvaW4gZnJvbSBBdXRvY29uZiAyLjYyLCBzaW5jZSBhbGwgZWFybGllcgorKyMgdmVy c2lvbnMgaW4gbTRzdWdhciBoYWQgYnVncy4KKyttNF9kZWZpbmUoW2x0X2pvaW5dLAorK1ttNF9p ZihbJCNdLCBbMV0sIFtdLAorKyAgICAgICBbJCNdLCBbMl0sIFtbJDJdXSwKKysgICAgICAgW200 X2lmKFskMl0sIFtdLCBbXSwgW1skMl1fXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkp KV0pXSkKKyttNF9kZWZpbmUoW19sdF9qb2luXSwKKytbbTRfaWYoWyQjJDJdLCBbMl0sIFtdLAor KyAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlmdCht NF9zaGlmdCgkQCkpKV0pXSkKKysKKysKKysjIGx0X2NhcihMSVNUKQorKyMgbHRfY2RyKExJU1Qp CisrIyAtLS0tLS0tLS0tLS0KKysjIE1hbmlwdWxhdGUgbTQgbGlzdHMuCisrIyBUaGVzZSBtYWNy b3MgYXJlIG5lY2Vzc2FyeSBhcyBsb25nIGFzIHdpbGwgc3RpbGwgbmVlZCB0byBzdXBwb3J0Cisr IyBBdXRvY29uZi0yLjU5IHdoaWNoIHF1b3RlcyBkaWZmZXJlbnRseS4KKyttNF9kZWZpbmUoW2x0 X2Nhcl0sIFtbJDFdXSkKKyttNF9kZWZpbmUoW2x0X2Nkcl0sCisrW200X2lmKFskI10sIDAsIFtt NF9mYXRhbChbJDA6IGNhbm5vdCBiZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHNdKV0sCisrICAg ICAgIFskI10sIDEsIFtdLAorKyAgICAgICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKV0pCisr bTRfZGVmaW5lKFtsdF91bnF1b3RlXSwgJDEpCisrCisrCisrIyBsdF9hcHBlbmQoTUFDUk8tTkFN RSwgU1RSSU5HLCBbU0VQQVJBVE9SXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyMgUmVkZWZpbmUgTUFDUk8tTkFNRSB0byBob2xkIGl0cyBmb3JtZXIg Y29udGVudCBwbHVzIGBTRVBBUkFUT1InYFNUUklORycuCisrIyBOb3RlIHRoYXQgbmVpdGhlciBT RVBBUkFUT1Igbm9yIFNUUklORyBhcmUgZXhwYW5kZWQ7IHRoZXkgYXJlIGFwcGVuZGVkCisrIyB0 byBNQUNSTy1OQU1FIGFzIGlzIChsZWF2aW5nIHRoZSBleHBhbnNpb24gZm9yIHdoZW4gTUFDUk8t TkFNRSBpcyBpbnZva2VkKS4KKysjIE5vIFNFUEFSQVRPUiBpcyBvdXRwdXQgaWYgTUFDUk8tTkFN RSB3YXMgcHJldmlvdXNseSB1bmRlZmluZWQgKGRpZmZlcmVudAorKyMgdGhhbiBkZWZpbmVkIGFu ZCBlbXB0eSkuCisrIworKyMgVGhpcyBtYWNybyBpcyBuZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkg b24gQXV0b2NvbmYgMi42Miwgc2luY2UgZWFybGllcgorKyMgdmVyc2lvbnMgb2YgbTRzdWdhciBt aXN0YWtlbmx5IGV4cGFuZGVkIFNFUEFSQVRPUiBidXQgbm90IFNUUklORy4KKyttNF9kZWZpbmUo W2x0X2FwcGVuZF0sCisrW200X2RlZmluZShbJDFdLAorKwkgICBtNF9pZmRlZihbJDFdLCBbbTRf ZGVmbihbJDFdKVskM11dKVskMl0pXSkKKysKKysKKysKKysjIGx0X2NvbWJpbmUoU0VQLCBQUkVG SVgtTElTVCwgSU5GSVgsIFNVRkZJWDEsIFtTVUZGSVgyLi4uXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIFByb2R1Y2Ug YSBTRVAgZGVsaW1pdGVkIGxpc3Qgb2YgYWxsIHBhaXJlZCBjb21iaW5hdGlvbnMgb2YgZWxlbWVu dHMgb2YKKysjIFBSRUZJWC1MSVNUIHdpdGggU1VGRklYMSB0aHJvdWdoIFNVRkZJWG4uICBFYWNo IGVsZW1lbnQgb2YgdGhlIGxpc3QKKysjIGhhcyB0aGUgZm9ybSBQUkVGSVhtSU5GSVhTVUZGSVhu LgorKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2NvbWJpbmUgYWRkZWQgaW4gQXV0 b2NvbmYgMi42Mi4KKyttNF9kZWZpbmUoW2x0X2NvbWJpbmVdLAorK1ttNF9pZihtNF9ldmFsKFsk IyA+IDNdKSwgWzFdLAorKyAgICAgICBbbTRfcHVzaGRlZihbX0x0X3NlcF0sIFttNF9kZWZpbmUo W19MdF9zZXBdLCBtNF9kZWZuKFtsdF9jYXJdKSldKV1dZG5sCisrW1ttNF9mb3JlYWNoKFtfTHRf cHJlZml4XSwgWyQyXSwKKysJICAgICBbbTRfZm9yZWFjaChbX0x0X3N1ZmZpeF0sCisrCQldbTRf ZHF1b3RlKG00X2RxdW90ZShtNF9zaGlmdChtNF9zaGlmdChtNF9zaGlmdCgkQCkpKSkpWywKKysJ W19MdF9zZXAoWyQxXSlbXW00X2RlZm4oW19MdF9wcmVmaXhdKVskM11tNF9kZWZuKFtfTHRfc3Vm Zml4XSldKV0pXSldKQorKworKworKyMgbHRfaWZfYXBwZW5kX3VuaXEoTUFDUk8tTkFNRSwgVkFS TkFNRSwgW1NFUEFSQVRPUl0sIFtVTklRXSwgW05PVC1VTklRXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIyBJZmYgTUFDUk8tTkFNRSBkb2VzIG5vdCB5ZXQgY29udGFpbiBWQVJOQU1FLCB0aGVuIGFw cGVuZCBpdCAoZGVsaW1pdGVkCisrIyBieSBTRVBBUkFUT1IgaWYgc3VwcGxpZWQpIGFuZCBleHBh bmQgVU5JUSwgZWxzZSBOT1QtVU5JUS4KKyttNF9kZWZpbmUoW2x0X2lmX2FwcGVuZF91bmlxXSwK KytbbTRfaWZkZWYoWyQxXSwKKysJICBbbTRfaWYobTRfaW5kZXgoWyQzXW00X2RlZm4oWyQxXSlb JDNdLCBbJDMkMiQzXSksIFstMV0sCisrCQkgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0 XSwKKysJCSBbJDVdKV0sCisrCSAgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSldKQor KworKworKyMgbHRfZGljdF9hZGQoRElDVCwgS0VZLCBWQUxVRSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF0sCisrW200X2RlZmluZShb JDEoJDIpXSwgWyQzXSldKQorKworKworKyMgbHRfZGljdF9hZGRfc3Via2V5KERJQ1QsIEtFWSwg U1VCS0VZLCBWQUxVRSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF9zdWJrZXldLAorK1ttNF9kZWZpbmUoWyQx KCQyOiQzKV0sIFskNF0pXSkKKysKKysKKysjIGx0X2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VC S0VZXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyttNF9kZWZpbmUo W2x0X2RpY3RfZmV0Y2hdLAorK1ttNF9pZnZhbChbJDNdLAorKwltNF9pZmRlZihbJDEoJDI6JDMp XSwgW200X2RlZm4oWyQxKCQyOiQzKV0pXSksCisrICAgIG00X2lmZGVmKFskMSgkMildLCBbbTRf ZGVmbihbJDEoJDIpXSldKSldKQorKworKworKyMgbHRfaWZfZGljdF9mZXRjaChESUNULCBLRVks IFtTVUJLRVldLCBWQUxVRSwgSUYtVFJVRSwgW0lGLUZBTFNFXSkKKysjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrbTRf ZGVmaW5lKFtsdF9pZl9kaWN0X2ZldGNoXSwKKytbbTRfaWYobHRfZGljdF9mZXRjaChbJDFdLCBb JDJdLCBbJDNdKSwgWyQ0XSwKKysJWyQ1XSwKKysgICAgWyQ2XSldKQorKworKworKyMgbHRfZGlj dF9maWx0ZXIoRElDVCwgW1NVQktFWV0sIFZBTFVFLCBbU0VQQVJBVE9SXSwgS0VZLCBbLi4uXSkK KysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrbTRfZGVmaW5lKFtsdF9kaWN0X2ZpbHRlcl0sCisrW200X2lmKFskNV0sIFtd LCBbXSwKKysgIFtsdF9qb2luKG00X3F1b3RlKG00X2RlZmF1bHQoWyQ0XSwgW1ssIF1dKSksCisr ICAgICAgICAgICBsdF91bnF1b3RlKG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9mb3JlYWNoKF9M dF9rZXksIGx0X2NhcihbbTRfc2hpZnRuKDQsICRAKV0pLAorKwkJICAgICAgW2x0X2lmX2RpY3Rf ZmV0Y2goWyQxXSwgX0x0X2tleSwgWyQyXSwgWyQzXSwgW19MdF9rZXkgXSldKSkpKSldKVtdZG5s CisrXSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR2ZXJzaW9uLm00IHNv Y2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00CistLS0gc29jaS0zLjAuMF80LXBh Y2svY29uZmlnL2x0dmVyc2lvbi5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00CTIwMTAtMDEtMjMg MTQ6NDQ6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDIzIEBACisrIyBsdHZlcnNpb24u bTQgLS0gdmVyc2lvbiBudW1iZXJzCQkJLSotIEF1dG9jb25mIC0qLQorKyMKKysjICAgQ29weXJp Z2h0IChDKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgICBXcml0dGVu IGJ5IFNjb3R0IEphbWVzIFJlbW5hbnQsIDIwMDQKKysjCisrIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworKyMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0 CisrIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K KysKKysjIEdlbmVyYXRlZCBmcm9tIGx0dmVyc2lvbi5pbi4KKysKKysjIHNlcmlhbCAzMDE3IGx0 dmVyc2lvbi5tNAorKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wKKysKKyttNF9k ZWZpbmUoW0xUX1BBQ0tBR0VfVkVSU0lPTl0sIFsyLjIuNmJdKQorK200X2RlZmluZShbTFRfUEFD S0FHRV9SRVZJU0lPTl0sIFsxLjMwMTddKQorKworK0FDX0RFRlVOKFtMVFZFUlNJT05fVkVSU0lP Tl0sCisrW21hY3JvX3ZlcnNpb249JzIuMi42YicKKyttYWNyb19yZXZpc2lvbj0nMS4zMDE3Jwor K19MVF9ERUNMKCwgbWFjcm9fdmVyc2lvbiwgMCwgW1doaWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5t NCB3YXMgdXNlZD9dKQorK19MVF9ERUNMKCwgbWFjcm9fcmV2aXNpb24sIDApCisrXSkKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbWlzc2luZyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL21pc3NpbmcKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbWlzc2luZwkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9j b25maWcvbWlzc2luZwkyMDEwLTAxLTIzIDE0OjQ0OjUwLjAwMDAwMDAwMCArMDEwMAorQEAgLTAs MCArMSwzNzYgQEAKKysjISAvYmluL3NoCisrIyBDb21tb24gc3R1YiBmb3IgYSBmZXcgbWlzc2lu ZyBHTlUgcHJvZ3JhbXMgd2hpbGUgaW5zdGFsbGluZy4KKysKKytzY3JpcHR2ZXJzaW9uPTIwMDkt MDQtMjguMjE7ICMgVVRDCisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTksIDIw MDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsCisrIyAyMDA4LCAyMDA5IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMgT3JpZ2luYWxseSBieSBGcmFuLGNvaXMgUGluYXJk IDxwaW5hcmRAaXJvLnVtb250cmVhbC5jYT4sIDE5OTYuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKysjIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysj IEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl LCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRo YXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9j b25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0 ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysKKytpZiB0 ZXN0ICQjIC1lcSAwOyB0aGVuCisrICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24iCisrICBleGl0IDEKKytmaQorKworK3J1bj06Cisrc2VkX291dHB1dD0n cy8uKiAtLW91dHB1dFsgPV1cKFteIF0qXCkuKi9cMS9wJworK3NlZF9taW51c289J3MvLiogLW8g XChbXiBdKlwpLiovXDEvcCcKKysKKysjIEluIHRoZSBjYXNlcyB3aGVyZSB0aGlzIG1hdHRlcnMs IGBtaXNzaW5nJyBpcyBiZWluZyBydW4gaW4gdGhlCisrIyBzcmNkaXIgYWxyZWFkeS4KKytpZiB0 ZXN0IC1mIGNvbmZpZ3VyZS5hYzsgdGhlbgorKyAgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5hYwor K2Vsc2UKKysgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuaW4KKytmaQorKworK21zZz0ibWlzc2lu ZyBvbiB5b3VyIHN5c3RlbSIKKysKKytjYXNlICQxIGluCisrLS1ydW4pCisrICAjIFRyeSB0byBy dW4gcmVxdWVzdGVkIHByb2dyYW0sIGFuZCBqdXN0IGV4aXQgaWYgaXQgc3VjY2VlZHMuCisrICBy dW49CisrICBzaGlmdAorKyAgIiRAIiAmJiBleGl0IDAKKysgICMgRXhpdCBjb2RlIDYzIG1lYW5z IHZlcnNpb24gbWlzbWF0Y2guICBUaGlzIG9mdGVuIGhhcHBlbnMKKysgICMgd2hlbiB0aGUgdXNl ciB0cnkgdG8gdXNlIGFuIGFuY2llbnQgdmVyc2lvbiBvZiBhIHRvb2wgb24KKysgICMgYSBmaWxl IHRoYXQgcmVxdWlyZXMgYSBtaW5pbXVtIHZlcnNpb24uICBJbiB0aGlzIGNhc2Ugd2UKKysgICMg d2Ugc2hvdWxkIHByb2NlZWQgaGFzIGlmIHRoZSBwcm9ncmFtIGhhZCBiZWVuIGFic2VudCwgb3IK KysgICMgaWYgLS1ydW4gaGFkbid0IGJlZW4gcGFzc2VkLgorKyAgaWYgdGVzdCAkPyA9IDYzOyB0 aGVuCisrICAgIHJ1bj06CisrICAgIG1zZz0icHJvYmFibHkgdG9vIG9sZCIKKysgIGZpCisrICA7 OworKworKyAgLWh8LS1ofC0taGV8LS1oZWx8LS1oZWxwKQorKyAgICBlY2hvICJcCisrJDAgW09Q VElPTl0uLi4gUFJPR1JBTSBbQVJHVU1FTlRdLi4uCisrCisrSGFuZGxlIFxgUFJPR1JBTSBbQVJH VU1FTlRdLi4uJyBmb3Igd2hlbiBQUk9HUkFNIGlzIG1pc3NpbmcsIG9yIHJldHVybiBhbgorK2Vy cm9yIHN0YXR1cyBpZiB0aGVyZSBpcyBubyBrbm93biBoYW5kbGluZyBmb3IgUFJPR1JBTS4KKysK KytPcHRpb25zOgorKyAgLWgsIC0taGVscCAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0 CisrICAtdiwgLS12ZXJzaW9uICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQK KysgIC0tcnVuICAgICAgICAgICB0cnkgdG8gcnVuIHRoZSBnaXZlbiBjb21tYW5kLCBhbmQgZW11 bGF0ZSBpdCBpZiBpdCBmYWlscworKworK1N1cHBvcnRlZCBQUk9HUkFNIHZhbHVlczoKKysgIGFj bG9jYWwgICAgICB0b3VjaCBmaWxlIFxgYWNsb2NhbC5tNCcKKysgIGF1dG9jb25mICAgICB0b3Vj aCBmaWxlIFxgY29uZmlndXJlJworKyAgYXV0b2hlYWRlciAgIHRvdWNoIGZpbGUgXGBjb25maWcu aC5pbicKKysgIGF1dG9tNHRlICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUsIG9yIGNyZWF0ZSBh IHN0dWIgb25lCisrICBhdXRvbWFrZSAgICAgdG91Y2ggYWxsIFxgTWFrZWZpbGUuaW4nIGZpbGVz CisrICBiaXNvbiAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9t IGV4aXN0aW5nIC5bY2hdCisrICBmbGV4ICAgICAgICAgY3JlYXRlIFxgbGV4Lnl5LmMnLCBpZiBw b3NzaWJsZSwgZnJvbSBleGlzdGluZyAuYworKyAgaGVscDJtYW4gICAgIHRvdWNoIHRoZSBvdXRw dXQgZmlsZQorKyAgbGV4ICAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUs IGZyb20gZXhpc3RpbmcgLmMKKysgIG1ha2VpbmZvICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUK KysgIHRhciAgICAgICAgICB0cnkgdGFyLCBnbnV0YXIsIGd0YXIsIHRoZW4gdGFyIHdpdGhvdXQg bm9uLXBvcnRhYmxlIGZsYWdzCisrICB5YWNjICAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScs IGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCisrCisrVmVyc2lvbiBzdWZmaXhlcyB0 byBQUk9HUkFNIGFzIHdlbGwgYXMgdGhlIHByZWZpeGVzIFxgZ251LScsIFxgZ251JywgYW5kCisr XGBnJyBhcmUgaWdub3JlZCB3aGVuIGNoZWNraW5nIHRoZSBuYW1lLgorKworK1NlbmQgYnVnIHJl cG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisrICAgIGV4aXQgJD8KKysgICAgOzsK KysKKysgIC12fC0tdnwtLXZlfC0tdmVyfC0tdmVyc3wtLXZlcnNpfC0tdmVyc2lvfC0tdmVyc2lv bikKKysgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9tYWtlKSIKKysg ICAgZXhpdCAkPworKyAgICA7OworKworKyAgLSopCisrICAgIGVjaG8gMT4mMiAiJDA6IFVua25v d24gXGAkMScgb3B0aW9uIgorKyAgICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1v cmUgaW5mb3JtYXRpb24iCisrICAgIGV4aXQgMQorKyAgICA7OworKworK2VzYWMKKysKKysjIG5v cm1hbGl6ZSBwcm9ncmFtIG5hbWUgdG8gY2hlY2sgZm9yLgorK3Byb2dyYW09YGVjaG8gIiQxIiB8 IHNlZCAnCisrICBzL15nbnUtLy87IHQKKysgIHMvXmdudS8vOyB0CisrICBzL15nLy87IHQnYAor KworKyMgTm93IGV4aXQgaWYgd2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4gIEFsc28gZXhpdCBu b3cgaWYgd2UKKysjIGRvbid0IGhhdmUgaXQgYW5kIC0tdmVyc2lvbiB3YXMgcGFzc2VkIChtb3N0 IGxpa2VseSB0byBkZXRlY3QKKysjIHRoZSBwcm9ncmFtKS4gIFRoaXMgaXMgYWJvdXQgbm9uLUdO VSBwcm9ncmFtcywgc28gdXNlICQxIG5vdAorKyMgJHByb2dyYW0uCisrY2FzZSAkMSBpbgorKyAg bGV4Knx5YWNjKikKKysgICAgIyBOb3QgR05VIHByb2dyYW1zLCB0aGV5IGRvbid0IGhhdmUgLS12 ZXJzaW9uLgorKyAgICA7OworKworKyAgdGFyKikKKysgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRo ZW4KKysgICAgICAgZWNobyAxPiYyICJFUlJPUjogXGB0YXInIHJlcXVpcmVzIC0tcnVuIgorKyAg ICAgICBleGl0IDEKKysgICAgZWxpZiB0ZXN0ICJ4JDIiID0gIngtLXZlcnNpb24iIHx8IHRlc3Qg IngkMiIgPSAieC0taGVscCI7IHRoZW4KKysgICAgICAgZXhpdCAxCisrICAgIGZpCisrICAgIDs7 CisrCisrICAqKQorKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9k ZXYvbnVsbCAyPiYxOyB0aGVuCisrICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4K KysgICAgICAgZXhpdCAxCisrICAgIGVsaWYgdGVzdCAieCQyIiA9ICJ4LS12ZXJzaW9uIiB8fCB0 ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCisrICAgICAgICMgQ291bGQgbm90IHJ1biAtLXZl cnNpb24gb3IgLS1oZWxwLiAgVGhpcyBpcyBwcm9iYWJseSBzb21lb25lCisrICAgICAgICMgcnVu bmluZyBgJFRPT0wgLS12ZXJzaW9uJyBvciBgJFRPT0wgLS1oZWxwJyB0byBjaGVjayB3aGV0aGVy CisrICAgICAgICMgJFRPT0wgZXhpc3RzIGFuZCBub3Qga25vd2luZyAkVE9PTCB1c2VzIG1pc3Np bmcuCisrICAgICAgIGV4aXQgMQorKyAgICBmaQorKyAgICA7OworK2VzYWMKKysKKysjIElmIGl0 IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZl cnNpb24pLAorKyMgdHJ5IHRvIGVtdWxhdGUgaXQuCisrY2FzZSAkcHJvZ3JhbSBpbgorKyAgYWNs b2NhbCopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ug c2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFjaW5jbHVk ZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAgICAgICB0 byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhl bSBmcm9tCisrICAgICAgICAgYW55IEdOVSBhcmNoaXZlIHNpdGUuIgorKyAgICB0b3VjaCBhY2xv Y2FsLm00CisrICAgIDs7CisrCisrICBhdXRvY29uZiopCisrICAgIGVjaG8gMT4mMiAiXAorK1dB Uk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKyAgICAg ICAgIHlvdSBtb2RpZmllZCBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudCB0byBp bnN0YWxsIHRoZQorKyAgICAgICAgIFxgQXV0b2NvbmYnIGFuZCBcYEdOVSBtNCcgcGFja2FnZXMu ICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VCisrICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKKysgICAg dG91Y2ggY29uZmlndXJlCisrICAgIDs7CisrCisrICBhdXRvaGVhZGVyKikKKysgICAgZWNobyAx PiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0 IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIFxgYWNjb25maWcuaCcgb3IgXGAke2NvbmZpZ3Vy ZV9hY30nLiAgWW91IG1pZ2h0IHdhbnQKKysgICAgICAgICB0byBpbnN0YWxsIHRoZSBcYEF1dG9j b25mJyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtCisrICAgICAgICAgZnJvbSBh bnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIGZpbGVzPWBzZWQgLW4gJ3MvXlsgXSpBW0NNXV9D T05GSUdfSEVBREVSKFwoW14pXSpcKSkuKi9cMS9wJyAke2NvbmZpZ3VyZV9hY31gCisrICAgIHRl c3QgLXogIiRmaWxlcyIgJiYgZmlsZXM9ImNvbmZpZy5oIgorKyAgICB0b3VjaF9maWxlcz0KKysg ICAgZm9yIGYgaW4gJGZpbGVzOyBkbworKyAgICAgIGNhc2UgJGYgaW4KKysgICAgICAqOiopIHRv dWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAorKwkJCQkgICAgICAgc2VkIC1l ICdzL15bXjpdKjovLycgLWUgJ3MvOi4qLy8nYDs7CisrICAgICAgKikgdG91Y2hfZmlsZXM9IiR0 b3VjaF9maWxlcyAkZi5pbiI7OworKyAgICAgIGVzYWMKKysgICAgZG9uZQorKyAgICB0b3VjaCAk dG91Y2hfZmlsZXMKKysgICAgOzsKKysKKysgIGF1dG9tYWtlKikKKysgICAgZWNobyAxPiYyICJc CisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisr ICAgICAgICAgeW91IG1vZGlmaWVkIFxgTWFrZWZpbGUuYW0nLCBcYGFjaW5jbHVkZS5tNCcgb3Ig XGAke2NvbmZpZ3VyZV9hY30nLgorKyAgICAgICAgIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwg dGhlIFxgQXV0b21ha2UnIGFuZCBcYFBlcmwnIHBhY2thZ2VzLgorKyAgICAgICAgIEdyYWIgdGhl bSBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKysgICAgZmluZCAuIC10eXBlIGYgLW5hbWUg TWFrZWZpbGUuYW0gLXByaW50IHwKKysJICAgc2VkICdzL1wuYW0kLy5pbi8nIHwKKysJICAgd2hp bGUgcmVhZCBmOyBkbyB0b3VjaCAiJGYiOyBkb25lCisrICAgIDs7CisrCisrICBhdXRvbTR0ZSop CisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRt c2cuCisrICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0 IGhhdmluZyB0aGUKKysgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcg dGhlbS4KKysgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYn IGZyb20gYW55IEdOVQorKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisrCisrICAgIGZpbGU9YGVj aG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAorKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYg ZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCisrICAgIGlmIHRlc3QgLWYg IiRmaWxlIjsgdGhlbgorKwl0b3VjaCAkZmlsZQorKyAgICBlbHNlCisrCXRlc3QgLXogIiRmaWxl IiB8fCBleGVjID4kZmlsZQorKwllY2hvICIjISAvYmluL3NoIgorKwllY2hvICIjIENyZWF0ZWQg YnkgR05VIEF1dG9tYWtlIG1pc3NpbmcgYXMgYSByZXBsYWNlbWVudCBvZiIKKysJZWNobyAiIyAg JCAkQCIKKysJZWNobyAiZXhpdCAwIgorKwljaG1vZCAreCAkZmlsZQorKwlleGl0IDEKKysgICAg ZmkKKysgICAgOzsKKysKKysgIGJpc29uKnx5YWNjKikKKysgICAgZWNobyAxPiYyICJcCisrV0FS TklORzogXGAkMScgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAg eW91IG1vZGlmaWVkIGEgXGAueScgZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBCaXNvbicgcGFj a2FnZQorKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2Ug ZWZmZWN0LiAgWW91IGNhbiBnZXQKKysgICAgICAgICBcYEJpc29uJyBmcm9tIGFueSBHTlUgYXJj aGl2ZSBzaXRlLiIKKysgICAgcm0gLWYgeS50YWIuYyB5LnRhYi5oCisrICAgIGlmIHRlc3QgJCMg LW5lIDE7IHRoZW4KKysgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7JCN9IgorKwljYXNlICRMQVNU QVJHIGluCisrCSoueSkKKysJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95 JC9jLydgCisrCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KKysJICAgICAgICAgY3Ag IiRTUkNGSUxFIiB5LnRhYi5jCisrCSAgICBmaQorKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RB UkciIHwgc2VkICdzL3kkL2gvJ2AKKysJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgor KwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmgKKysJICAgIGZpCisrCSAgOzsKKysJZXNh YworKyAgICBmaQorKyAgICBpZiB0ZXN0ICEgLWYgeS50YWIuaDsgdGhlbgorKwllY2hvID55LnRh Yi5oCisrICAgIGZpCisrICAgIGlmIHRlc3QgISAtZiB5LnRhYi5jOyB0aGVuCisrCWVjaG8gJ21h aW4oKSB7IHJldHVybiAwOyB9JyA+eS50YWIuYworKyAgICBmaQorKyAgICA7OworKworKyAgbGV4 KnxmbGV4KikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlv dSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAubCcg ZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBGbGV4JyBwYWNrYWdlCisrICAgICAgICAgaW4gb3Jk ZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZlY3QuICBZb3UgY2FuIGdldAor KyAgICAgICAgIFxgRmxleCcgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgIHJtIC1m IGxleC55eS5jCisrICAgIGlmIHRlc3QgJCMgLW5lIDE7IHRoZW4KKysgICAgICAgIGV2YWwgTEFT VEFSRz0iXCR7JCN9IgorKwljYXNlICRMQVNUQVJHIGluCisrCSoubCkKKysJICAgIFNSQ0ZJTEU9 YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy9sJC9jLydgCisrCSAgICBpZiB0ZXN0IC1mICIkU1JD RklMRSI7IHRoZW4KKysJICAgICAgICAgY3AgIiRTUkNGSUxFIiBsZXgueXkuYworKwkgICAgZmkK KysJICA7OworKwllc2FjCisrICAgIGZpCisrICAgIGlmIHRlc3QgISAtZiBsZXgueXkuYzsgdGhl bgorKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPmxleC55eS5jCisrICAgIGZpCisrICAg IDs7CisrCisrICBoZWxwMm1hbiopCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IFxgJDEn IGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorKwkgeW91IG1vZGlmaWVkIGEg ZGVwZW5kZW5jeSBvZiBhIG1hbnVhbCBwYWdlLiAgWW91IG1heSBuZWVkIHRoZQorKwkgXGBIZWxw Mm1hbicgcGFja2FnZSBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlCisr CSBlZmZlY3QuICBZb3UgY2FuIGdldCBcYEhlbHAybWFuJyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBz aXRlLiIKKysKKysgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisr ICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfbWlu dXNvImAKKysgICAgaWYgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCisrCXRvdWNoICRmaWxlCisrICAg IGVsc2UKKysJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxlCisrCWVjaG8gIi5hYiBoZWxw Mm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCisrCWV4aXQgJD8KKysgICAg ZmkKKysgICAgOzsKKysKKysgIG1ha2VpbmZvKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklO RzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisrICAgICAgICAg eW91IG1vZGlmaWVkIGEgXGAudGV4aScgb3IgXGAudGV4aW5mbycgZmlsZSwgb3IgYW55IG90aGVy IGZpbGUKKysgICAgICAgICBpbmRpcmVjdGx5IGFmZmVjdGluZyB0aGUgYXNwZWN0IG9mIHRoZSBt YW51YWwuICBUaGUgc3B1cmlvdXMKKysgICAgICAgICBjYWxsIG1pZ2h0IGFsc28gYmUgdGhlIGNv bnNlcXVlbmNlIG9mIHVzaW5nIGEgYnVnZ3kgXGBtYWtlJyAoQUlYLAorKyAgICAgICAgIERVLCBJ UklYKS4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxgVGV4aW5mbycgcGFja2FnZSBv cgorKyAgICAgICAgIHRoZSBcYEdOVSBtYWtlJyBwYWNrYWdlLiAgR3JhYiBlaXRoZXIgZnJvbSBh bnkgR05VIGFyY2hpdmUgc2l0ZS4iCisrICAgICMgVGhlIGZpbGUgdG8gdG91Y2ggaXMgdGhhdCBz cGVjaWZpZWQgd2l0aCAtbyAuLi4KKysgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2Vk X291dHB1dCJgCisrICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkKiIgfCBzZWQg LW4gIiRzZWRfbWludXNvImAKKysgICAgaWYgdGVzdCAteiAiJGZpbGUiOyB0aGVuCisrICAgICAg IyAuLi4gb3IgaXQgaXMgdGhlIG9uZSBzcGVjaWZpZWQgd2l0aCBAc2V0ZmlsZW5hbWUgLi4uCisr ICAgICAgaW5maWxlPWBlY2hvICIkKiIgfCBzZWQgJ3MvLiogXChbXiBdKlwpICokL1wxLydgCisr ICAgICAgZmlsZT1gc2VkIC1uICcKKysJL15Ac2V0ZmlsZW5hbWUveworKwkgIHMvLiogXChbXiBd KlwpICokL1wxLworKwkgIHAKKysJICBxCisrCX0nICRpbmZpbGVgCisrICAgICAgIyAuLi4gb3Ig aXQgaXMgZGVyaXZlZCBmcm9tIHRoZSBzb3VyY2UgbmFtZSAoZGlyL2YudGV4aSBiZWNvbWVzIGYu aW5mbykKKysgICAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJGluZmlsZSIgfCBz ZWQgJ3MsLiovLCw7cywuW14uXSokLCwnYC5pbmZvCisrICAgIGZpCisrICAgICMgSWYgdGhlIGZp bGUgZG9lcyBub3QgZXhpc3QsIHRoZSB1c2VyIHJlYWxseSBuZWVkcyBtYWtlaW5mbzsKKysgICAg IyBsZXQncyBmYWlsIHdpdGhvdXQgdG91Y2hpbmcgYW55dGhpbmcuCisrICAgIHRlc3QgLWYgJGZp bGUgfHwgZXhpdCAxCisrICAgIHRvdWNoICRmaWxlCisrICAgIDs7CisrCisrICB0YXIqKQorKyAg ICBzaGlmdAorKworKyAgICAjIFdlIGhhdmUgYWxyZWFkeSB0cmllZCB0YXIgaW4gdGhlIGdlbmVy aWMgcGFydC4KKysgICAgIyBMb29rIGZvciBnbnV0YXIvZ3RhciBiZWZvcmUgaW52b2NhdGlvbiB0 byBhdm9pZCB1Z2x5IGVycm9yCisrICAgICMgbWVzc2FnZXMuCisrICAgIGlmIChnbnV0YXIgLS12 ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisrICAgICAgIGdudXRhciAiJEAiICYmIGV4 aXQgMAorKyAgICBmaQorKyAgICBpZiAoZ3RhciAtLXZlcnNpb24gPiAvZGV2L251bGwgMj4mMSk7 IHRoZW4KKysgICAgICAgZ3RhciAiJEAiICYmIGV4aXQgMAorKyAgICBmaQorKyAgICBmaXJzdGFy Zz0iJDEiCisrICAgIGlmIHNoaWZ0OyB0aGVuCisrCWNhc2UgJGZpcnN0YXJnIGluCisrCSpvKikK KysJICAgIGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2VkIHMvby8vYAorKwkgICAgdGFy ICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCisrCSAgICA7OworKwllc2FjCisrCWNhc2UgJGZp cnN0YXJnIGluCisrCSpoKikKKysJICAgIGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2Vk IHMvaC8vYAorKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCisrCSAgICA7Owor Kwllc2FjCisrICAgIGZpCisrCisrICAgIGVjaG8gMT4mMiAiXAorK1dBUk5JTkc6IEkgY2FuJ3Qg c2VlbSB0byBiZSBhYmxlIHRvIHJ1biBcYHRhcicgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLgor KyAgICAgICAgIFlvdSBtYXkgd2FudCB0byBpbnN0YWxsIEdOVSB0YXIgb3IgRnJlZSBwYXh1dGls cywgb3IgY2hlY2sgdGhlCisrICAgICAgICAgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4iCisrICAg IGV4aXQgMQorKyAgICA7OworKworKyAgKikKKysgICAgZWNobyAxPiYyICJcCisrV0FSTklORzog XGAkMScgaXMgbmVlZGVkLCBhbmQgaXMgJG1zZy4KKysgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBt b2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQorKyAgICAgICAgIHByb3BlciB0 b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLiAgQ2hlY2sgdGhlIFxgUkVBRE1FJyBmaWxl LAorKyAgICAgICAgIGl0IG9mdGVuIHRlbGxzIHlvdSBhYm91dCB0aGUgbmVlZGVkIHByZXJlcXVp c2l0ZXMgZm9yIGluc3RhbGxpbmcKKysgICAgICAgICB0aGlzIHBhY2thZ2UuICBZb3UgbWF5IGFs c28gcGVlayBhdCBhbnkgR05VIGFyY2hpdmUgc2l0ZSwgaW4gY2FzZQorKyAgICAgICAgIHNvbWUg b3RoZXIgcGFja2FnZSB3b3VsZCBjb250YWluIHRoaXMgbWlzc2luZyBcYCQxJyBwcm9ncmFtLiIK KysgICAgZXhpdCAxCisrICAgIDs7CisrZXNhYworKworK2V4aXQgMAorKworKyMgTG9jYWwgdmFy aWFibGVzOgorKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1w KQorKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgorKyMgdGltZS1zdGFtcC1m b3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisrIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVU QyIKKysjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVUQyIKKysjIEVuZDoKK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9jb25maWd1cmUgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZQorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZQkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAw MCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUJMjAxMC0wMS0yMyAxNDo0 NDo0OS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDcyICsxLDIzMDQwIEBACistIyEvYmluL3NoCisr IyEgL2Jpbi9zaAorKyMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxl cyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KKysjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42 MyBmb3IgU09DSSAzLjAuMC4KKysjCisrIyBSZXBvcnQgYnVncyB0byA8bXNvYmN6YWtAdXNlcnMu c291cmNlZm9yZ2UubmV0Pi4KKysjCisrIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOSBNYWNpZWog U29iY3phayA8bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorKyMKKysjIENvcHlyaWdo dCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwKKysjIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIyBUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKyMjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIworKyMjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIAorLWlmIFsgJCMgLWd0IDAgXQorLXRoZW4KKy0gICAg aWYgWyAkMSA9ICItaGVscCIgLW8gJDEgPSAiLS1oZWxwIiBdCistICAgIHRoZW4KKy0gICAgICAg IGVjaG8gJ1JlY29nbml6ZWQgY29uZmlndXJlIG9wdGlvbnM6JworLSAgICAgICAgZWNobyAnJwor LSAgICAgICAgZWNobyAnSW5zdGFsbGF0aW9uIG9wdGlvbnM6JworLSAgICAgICAgZWNobyAnLS1p bmNsdWRlLXByZWZpeD0vc29tZS9wYXRoICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBoZWFk ZXIgZmlsZXMnCistICAgICAgICBlY2hvICctLWxpYi1wcmVmaXg9L3NvbWUvcGF0aCAgICAgICAg ICAtIHBhdGggdG8gaW5zdGFsbCBTT0NJIGxpYnJhcmllcycKKy0gICAgICAgIGVjaG8gJycKKy0g ICAgICAgIGVjaG8gJ015U1FMIG9wdGlvbnM6JworLSAgICAgICAgZWNobyAnLS1teXNxbC1pbmNs dWRlPS9zb21lL3BhdGggICAgICAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBteXNxbC5oJworLSAg ICAgICAgZWNobyAnLS1teXNxbC1saWI9L3NvbWUvcGF0aCAgICAgICAgICAgLSBkaXJlY3Rvcnkg Y29udGFpbmluZyBsaWJteXNxbGNsaWVudC5bYXxzb10nCistICAgICAgICBlY2hvICcnCistICAg ICAgICBlY2hvICdPcmFjbGUgb3B0aW9ucyAoaWYgT1JBQ0xFX0hPTUUgdmFyaWFibGUgaXMgbm90 IHNldCk6JworLSAgICAgICAgZWNobyAnLS1vcmFjbGUtaW5jbHVkZT0vc29tZS9wYXRoICAgICAg LSBkaXJlY3RvcnkgY29udGFpbmluZyBvY2kuaCcKKy0gICAgICAgIGVjaG8gJy0tb3JhY2xlLWxp Yj0vc29tZS9wYXRoICAgICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGliY2xudHNoLlth fHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ1Bvc3RncmVTUUwgb3B0aW9u czonCistICAgICAgICBlY2hvICctLXBvc3RncmVzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAtIGRp cmVjdG9yeSBjb250YWluaW5nIGxpYnBxL2xpYnBxLWZzLmgnCistICAgICAgICBlY2hvICctLXBv c3RncmVzcWwtbGliPS9zb21lL3BhdGggICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5nIGxpYnBx LlthfHNvXScKKy0gICAgICAgIGVjaG8gJycKKy0gICAgICAgIGVjaG8gJ1Rlc3QgcHJvZ3JhbXMg Y29tcGlsYXRpb24gb3B0aW9ucyAobm90IG5lZWRlZCBmb3IgbGlicmFyeSBidWlsZCk6JworLSAg ICAgICAgZWNobyAnLS1ib29zdC1pbmNsdWRlPS9zb21lL3BhdGggICAgICAgLSByb290IGluY2x1 ZGUgZGlyZWN0b3J5IG9mIEJvb3N0JworLSAgICAgICAgZWNobyAnLS1ib29zdC1saWI9L3NvbWUv cGF0aCAgICAgICAgICAgLSByb290IGxpYiBkaXJlY3Rvcnkgb2YgQm9vc3QnCistICAgICAgICBl Y2hvICcnCistICAgICAgICBleGl0CistICAgIGZpCisrIyBCZSBtb3JlIEJvdXJuZSBjb21wYXRp YmxlCisrRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorK2lmIHRlc3Qg LW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsg dGhlbgorKyAgZW11bGF0ZSBzaAorKyAgTlVMTENNRD06CisrICAjIFByZS00LjIgdmVyc2lvbnMg b2YgWnNoIGRvIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKysgICMgaXMgY29u dHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisrICBhbGlhcyAtZyAn JHsxKyIkQCJ9Jz0nIiRAIicKKysgIHNldG9wdCBOT19HTE9CX1NVQlNUCisrZWxzZQorKyAgY2Fz ZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluCisrICAqcG9zaXgqKSBzZXQgLW8gcG9zaXggOzsK Kytlc2FjCisrCisrZmkKKysKKysKKysKKysKKysjIFBBVEggbmVlZHMgQ1IKKysjIEF2b2lkIGRl cGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCisrYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hp amtsbW5vcHFyc3R1dnd4eXonCisrYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVonCisrYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCisrYXNf Y3JfZGlnaXRzPScwMTIzNDU2Nzg5JworK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2Ny X2RpZ2l0cworKworK2FzX25sPScKKysnCisrZXhwb3J0IGFzX25sCisrIyBQcmludGluZyBhIGxv bmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50Zi4KKythc19lY2hvPSdc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworK2FzX2VjaG89 JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobworK2FzX2VjaG89JGFzX2Vj aG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCisraWYgKHRlc3QgIlhg cHJpbnRmICVzICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KKysg IGFzX2VjaG89J3ByaW50ZiAlc1xuJworKyAgYXNfZWNob19uPSdwcmludGYgJXMnCisrZWxzZQor KyAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251bGxg IiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCisrICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3Vj Yi9lY2hvIC1uICIkMSRhc19ubCInCisrICAgIGFzX2VjaG9fbj0nL3Vzci91Y2IvZWNobyAtbicK KysgIGVsc2UKKysgICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwp IicKKysgICAgYXNfZWNob19uX2JvZHk9J2V2YWwKKysgICAgICBhcmc9JDE7CisrICAgICAgY2Fz ZSAkYXJnIGluCisrICAgICAgKiIkYXNfbmwiKikKKysJZXhwciAiWCRhcmciIDogIlhcXCguKlxc KSRhc19ubCI7CisrCWFyZz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7Cisr ICAgICAgZXNhYzsKKysgICAgICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIk YXNfbmwiCisrICAgICcKKysgICAgZXhwb3J0IGFzX2VjaG9fbl9ib2R5CisrICAgIGFzX2VjaG9f bj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5IGFzX2VjaG8nCisrICBmaQorKyAgZXhwb3J0IGFzX2Vj aG9fYm9keQorKyAgYXNfZWNobz0nc2ggLWMgJGFzX2VjaG9fYm9keSBhc19lY2hvJworK2ZpCisr CisrIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCisraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRP UitzZXR9IiAhPSBzZXQ7IHRoZW4KKysgIFBBVEhfU0VQQVJBVE9SPToKKysgIChQQVRIPScvYmlu Oy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAyPiYxICYmIHsKKysgICAg KFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEg fHwKKysgICAgICBQQVRIX1NFUEFSQVRPUj0nOycKKysgIH0KKytmaQorKworKyMgU3VwcG9ydCB1 bnNldCB3aGVuIHBvc3NpYmxlLgorK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQp ID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgYXNfdW5zZXQ9dW5zZXQKKytlbHNlCisrICBhc191 bnNldD1mYWxzZQorK2ZpCisrCisrCisrIyBJRlMKKysjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQg bmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcworKyMgdGhlcmUg dG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgorKyMg KElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0IHdvdWxkIGRp c2FibGUgd29yZAorKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5IHZhbHVlLikK KytJRlM9IiAiIgkkYXNfbmwiCisrCisrIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBw YXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KKytjYXNlICQwIGluCisr ICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7CisrICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgdGVzdCAtciAiJGFz X2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworKyAgICAgOzsKKytlc2FjCisrIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2Vs dmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJworKyMgaW4gd2hp Y2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgorK2lmIHRlc3QgIngk YXNfbXlzZWxmIiA9IHg7IHRoZW4KKysgIGFzX215c2VsZj0kMAorK2ZpCisraWYgdGVzdCAhIC1m ICIkYXNfbXlzZWxmIjsgdGhlbgorKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5u b3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKKysg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorK2ZpCisrCisrIyBXb3JrIGFyb3VuZCBidWdzIGluIHBy ZS0zLjAgVVdJTiBrc2guCisrZm9yIGFzX3ZhciBpbiBFTlYgTUFJTCBNQUlMUEFUSAorK2RvICgk YXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRhc191bnNldCAkYXNfdmFyCisr ZG9uZQorK1BTMT0nJCAnCisrUFMyPSc+ICcKKytQUzQ9JysgJworKworKyMgTkxTIG51aXNhbmNl cy4KKytMQ19BTEw9QworK2V4cG9ydCBMQ19BTEwKKytMQU5HVUFHRT1DCisrZXhwb3J0IExBTkdV QUdFCisrCisrIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCisraWYgZXhwciBhIDogJ1woYVwp JyA+L2Rldi9udWxsIDI+JjEgJiYKKysgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwp J2AiID0gWDAwMTsgdGhlbgorKyAgYXNfZXhwcj1leHByCisrZWxzZQorKyAgYXNfZXhwcj1mYWxz ZQorK2ZpCisrCisraWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJY YGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgorKyAgYXNfYmFzZW5hbWU9YmFzZW5h bWUKKytlbHNlCisrICBhc19iYXNlbmFtZT1mYWxzZQorK2ZpCisrCisrCisrIyBOYW1lIG9mIHRo ZSBleGVjdXRhYmxlLgorK2FzX21lPWAkYXNfYmFzZW5hbWUgLS0gIiQwIiB8fAorKyRhc19leHBy IFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCisrCSBYIiQwIiA6ICdYXCgvL1wp JCcgXHwgXAorKwkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CisrJGFzX2Vj aG8gWC8iJDAiIHwKKysgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97CisrCSAgICBz Ly9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXC9cKSQveworKwkgICAgcy8vXDEv CisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwvXChcL1wpLioveworKwkgICAgcy8vXDEvCisrCSAg ICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKworKyMgQ0RQQVRILgorKyRhc191bnNldCBD RFBBVEgKKysKKysKKytpZiB0ZXN0ICJ4JENPTkZJR19TSEVMTCIgPSB4OyB0aGVuCisrICBpZiAo ZXZhbCAiOiIpIDI+L2Rldi9udWxsOyB0aGVuCisrICBhc19oYXZlX3JlcXVpcmVkPXllcworK2Vs c2UKKysgIGFzX2hhdmVfcmVxdWlyZWQ9bm8KKytmaQorKworKyAgaWYgdGVzdCAkYXNfaGF2ZV9y ZXF1aXJlZCA9IHllcyAmJgkgKGV2YWwgIjoKKysoYXNfZnVuY19yZXR1cm4gKCkgeworKyAgKGV4 aXQgXCQxKQorK30KKythc19mdW5jX3N1Y2Nlc3MgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMAor K30KKythc19mdW5jX2ZhaWx1cmUgKCkgeworKyAgYXNfZnVuY19yZXR1cm4gMQorK30KKythc19m dW5jX3JldF9zdWNjZXNzICgpIHsKKysgIHJldHVybiAwCisrfQorK2FzX2Z1bmNfcmV0X2ZhaWx1 cmUgKCkgeworKyAgcmV0dXJuIDEKKyt9CisrCisrZXhpdGNvZGU9MAorK2lmIGFzX2Z1bmNfc3Vj Y2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19z dWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFzX2Z1bmNfZmFpbHVyZTsgdGhlbgorKyAgZXhp dGNvZGU9MQorKyAgZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYg YXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysg IGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWlsZWQuCisrZmkKKysKKytpZiBhc19mdW5jX3Jl dF9mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfcmV0X2ZhaWx1 cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgKCBzZXQgeDsgYXNfZnVuY19yZXRfc3VjY2VzcyB5 ICYmIHRlc3QgeCA9IFwiXCQxXCIgKTsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEK KysgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVkLgorK2ZpCisrCisr dGVzdCBcJGV4aXRjb2RlID0gMCkgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrCisrKAorKyAg YXNfbGluZW5vXzE9XCRMSU5FTk8KKysgIGFzX2xpbmVub18yPVwkTElORU5PCisrICB0ZXN0IFwi eFwkYXNfbGluZW5vXzFcIiAhPSBcInhcJGFzX2xpbmVub18yXCIgJiYKKysgIHRlc3QgXCJ4XGBl eHByIFwkYXNfbGluZW5vXzEgKyAxXGBcIiA9IFwieFwkYXNfbGluZW5vXzJcIikgfHwgeyAoZXhp dCAxKTsgZXhpdCAxOyB9CisrIikgMj4gL2Rldi9udWxsOyB0aGVuCisrICA6CisrZWxzZQorKyAg YXNfY2FuZGlkYXRlX3NoZWxscz0KKysgICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBBVEhf U0VQQVJBVE9SJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgIGNhc2UgJGFzX2RpciBpbgorKwkgLyopCisrCSAgIGZvciBh c19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KKysJICAgICBhc19jYW5kaWRhdGVfc2hlbGxz PSIkYXNfY2FuZGlkYXRlX3NoZWxscyAkYXNfZGlyLyRhc19iYXNlIgorKwkgICBkb25lOzsKKysg ICAgICAgZXNhYworK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrCisrICAgICAgZm9yIGFz X3NoZWxsIGluICRhc19jYW5kaWRhdGVfc2hlbGxzICRTSEVMTDsgZG8KKysJICMgVHJ5IG9ubHkg c2hlbGxzIHRoYXQgZXhpc3QsIHRvIHNhdmUgc2V2ZXJhbCBmb3Jrcy4KKysJIGlmIHsgdGVzdCAt ZiAiJGFzX3NoZWxsIiB8fCB0ZXN0IC1mICIkYXNfc2hlbGwuZXhlIjsgfSAmJgorKwkJeyAoIiRh c19zaGVsbCIpIDI+IC9kZXYvbnVsbCA8PFxfQVNFT0YKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJT SU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxh dGUgc2gKKysgIE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3Jk IHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1 c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIk QCInCisrICBzZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNhc2UgYChzZXQgLW8pIDI+ L2Rldi9udWxsYCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7CisrZXNhYworKworK2Zp CisrCisrCisrOgorK19BU0VPRgorK307IHRoZW4KKysgIENPTkZJR19TSEVMTD0kYXNfc2hlbGwK KysJICAgICAgIGFzX2hhdmVfcmVxdWlyZWQ9eWVzCisrCSAgICAgICBpZiB7ICIkYXNfc2hlbGwi IDI+IC9kZXYvbnVsbCA8PFxfQVNFT0YKKytpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0i ICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGVtdWxhdGUgc2gKKysg IE5VTExDTUQ9OgorKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGlu ZyBvbiAkezErIiRAIn0sIHdoaWNoCisrICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERp c2FibGUgdGhpcyBmZWF0dXJlLgorKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCisrICBz ZXRvcHQgTk9fR0xPQl9TVUJTVAorK2Vsc2UKKysgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxs YCBpbgorKyAgKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7CisrZXNhYworKworK2ZpCisrCisrCisr OgorKyhhc19mdW5jX3JldHVybiAoKSB7CisrICAoZXhpdCAkMSkKKyt9CisrYXNfZnVuY19zdWNj ZXNzICgpIHsKKysgIGFzX2Z1bmNfcmV0dXJuIDAKKyt9CisrYXNfZnVuY19mYWlsdXJlICgpIHsK KysgIGFzX2Z1bmNfcmV0dXJuIDEKKyt9CisrYXNfZnVuY19yZXRfc3VjY2VzcyAoKSB7CisrICBy ZXR1cm4gMAorK30KKythc19mdW5jX3JldF9mYWlsdXJlICgpIHsKKysgIHJldHVybiAxCisrfQor KworK2V4aXRjb2RlPTAKKytpZiBhc19mdW5jX3N1Y2Nlc3M7IHRoZW4KKysgIDoKKytlbHNlCisr ICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfc3VjY2VzcyBmYWlsZWQuCisrZmkKKysKKytp ZiBhc19mdW5jX2ZhaWx1cmU7IHRoZW4KKysgIGV4aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19m YWlsdXJlIHN1Y2NlZWRlZC4KKytmaQorKworK2lmIGFzX2Z1bmNfcmV0X3N1Y2Nlc3M7IHRoZW4K KysgIDoKKytlbHNlCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1bmNfcmV0X3N1Y2Nlc3Mg ZmFpbGVkLgorK2ZpCisrCisraWYgYXNfZnVuY19yZXRfZmFpbHVyZTsgdGhlbgorKyAgZXhpdGNv ZGU9MQorKyAgZWNobyBhc19mdW5jX3JldF9mYWlsdXJlIHN1Y2NlZWRlZC4KKytmaQorKworK2lm ICggc2V0IHg7IGFzX2Z1bmNfcmV0X3N1Y2Nlc3MgeSAmJiB0ZXN0IHggPSAiJDEiICk7IHRoZW4K KysgIDoKKytlbHNlCisrICBleGl0Y29kZT0xCisrICBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVy cyB3ZXJlIG5vdCBzYXZlZC4KKytmaQorKworK3Rlc3QgJGV4aXRjb2RlID0gMCkgfHwgeyAoZXhp dCAxKTsgZXhpdCAxOyB9CisrCisrKAorKyAgYXNfbGluZW5vXzE9JExJTkVOTworKyAgYXNfbGlu ZW5vXzI9JExJTkVOTworKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIi ICYmCisrICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xICsgMWAiID0gIngkYXNfbGluZW5vXzIi KSB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKysKKytfQVNFT0YKKyt9OyB0aGVuCisrICBicmVh aworK2ZpCisrCisrZmkKKysKKysgICAgICBkb25lCisrCisrICAgICAgaWYgdGVzdCAieCRDT05G SUdfU0hFTEwiICE9IHg7IHRoZW4KKysgIGZvciBhc192YXIgaW4gQkFTSF9FTlYgRU5WCisrCWRv ICgkYXNfdW5zZXQgJGFzX3ZhcikgPi9kZXYvbnVsbCAyPiYxICYmICRhc191bnNldCAkYXNfdmFy CisrCWRvbmUKKysJZXhwb3J0IENPTkZJR19TSEVMTAorKwlleGVjICIkQ09ORklHX1NIRUxMIiAi JGFzX215c2VsZiIgJHsxKyIkQCJ9CisrZmkKKysKKysKKysgICAgaWYgdGVzdCAkYXNfaGF2ZV9y ZXF1aXJlZCA9IG5vOyB0aGVuCisrICBlY2hvIFRoaXMgc2NyaXB0IHJlcXVpcmVzIGEgc2hlbGwg bW9yZSBtb2Rlcm4gdGhhbiBhbGwgdGhlCisrICAgICAgZWNobyBzaGVsbHMgdGhhdCBJIGZvdW5k IG9uIHlvdXIgc3lzdGVtLiAgUGxlYXNlIGluc3RhbGwgYQorKyAgICAgIGVjaG8gbW9kZXJuIHNo ZWxsLCBvciBtYW51YWxseSBydW4gdGhlIHNjcmlwdCB1bmRlciBzdWNoIGEKKysgICAgICBlY2hv IHNoZWxsIGlmIHlvdSBkbyBoYXZlIG9uZS4KKysgICAgICB7IChleGl0IDEpOyBleGl0IDE7IH0K KytmaQorKworKworK2ZpCisrCisrZmkKKysKKysKKysKKysoZXZhbCAiYXNfZnVuY19yZXR1cm4g KCkgeworKyAgKGV4aXQgXCQxKQorK30KKythc19mdW5jX3N1Y2Nlc3MgKCkgeworKyAgYXNfZnVu Y19yZXR1cm4gMAorK30KKythc19mdW5jX2ZhaWx1cmUgKCkgeworKyAgYXNfZnVuY19yZXR1cm4g MQorK30KKythc19mdW5jX3JldF9zdWNjZXNzICgpIHsKKysgIHJldHVybiAwCisrfQorK2FzX2Z1 bmNfcmV0X2ZhaWx1cmUgKCkgeworKyAgcmV0dXJuIDEKKyt9CisrCisrZXhpdGNvZGU9MAorK2lm IGFzX2Z1bmNfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4aXRjb2RlPTEKKysgIGVj aG8gYXNfZnVuY19zdWNjZXNzIGZhaWxlZC4KKytmaQorKworK2lmIGFzX2Z1bmNfZmFpbHVyZTsg dGhlbgorKyAgZXhpdGNvZGU9MQorKyAgZWNobyBhc19mdW5jX2ZhaWx1cmUgc3VjY2VlZGVkLgor K2ZpCisrCisraWYgYXNfZnVuY19yZXRfc3VjY2VzczsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGV4 aXRjb2RlPTEKKysgIGVjaG8gYXNfZnVuY19yZXRfc3VjY2VzcyBmYWlsZWQuCisrZmkKKysKKytp ZiBhc19mdW5jX3JldF9mYWlsdXJlOyB0aGVuCisrICBleGl0Y29kZT0xCisrICBlY2hvIGFzX2Z1 bmNfcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLgorK2ZpCisrCisraWYgKCBzZXQgeDsgYXNfZnVuY19y ZXRfc3VjY2VzcyB5ICYmIHRlc3QgeCA9IFwiXCQxXCIgKTsgdGhlbgorKyAgOgorK2Vsc2UKKysg IGV4aXRjb2RlPTEKKysgIGVjaG8gcG9zaXRpb25hbCBwYXJhbWV0ZXJzIHdlcmUgbm90IHNhdmVk LgorK2ZpCisrCisrdGVzdCBcJGV4aXRjb2RlID0gMCIpIHx8IHsKKysgIGVjaG8gTm8gc2hlbGwg Zm91bmQgdGhhdCBzdXBwb3J0cyBzaGVsbCBmdW5jdGlvbnMuCisrICBlY2hvIFBsZWFzZSB0ZWxs IGJ1Zy1hdXRvY29uZkBnbnUub3JnIGFib3V0IHlvdXIgc3lzdGVtLAorKyAgZWNobyBpbmNsdWRp bmcgYW55IGVycm9yIHBvc3NpYmx5IG91dHB1dCBiZWZvcmUgdGhpcyBtZXNzYWdlLgorKyAgZWNo byBUaGlzIGNhbiBoZWxwIHVzIGltcHJvdmUgZnV0dXJlIGF1dG9jb25mIHZlcnNpb25zLgorKyAg ZWNobyBDb25maWd1cmF0aW9uIHdpbGwgbm93IHByb2NlZWQgd2l0aG91dCBzaGVsbCBmdW5jdGlv bnMuCisrfQorKworKworKworKyAgYXNfbGluZW5vXzE9JExJTkVOTworKyAgYXNfbGluZW5vXzI9 JExJTkVOTworKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCisr ICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xICsgMWAiID0gIngkYXNfbGluZW5vXzIiIHx8IHsK KysKKysgICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1 dCB3aXRoICRMSU5FTk8KKysgICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJl ci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKKysgICMgbGluZS1udW1iZXIgbGluZSBhZnRl ciBlYWNoIGxpbmUgdXNpbmcgJExJTkVOTzsgdGhlIHNlY29uZCAnc2VkJworKyAgIyBkb2VzIHRo ZSByZWFsIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2gKKysg ICMgbGluZS1udW1iZXIgbGluZSB3aXRoIHRoZSBsaW5lIGNvbnRhaW5pbmcgJExJTkVOTywgYW5k IGFwcGVuZHMKKysgICMgdHJhaWxpbmcgJy0nIGR1cmluZyBzdWJzdGl0dXRpb24gc28gdGhhdCAk TElORU5PIGlzIG5vdCBhIHNwZWNpYWwKKysgICMgY2FzZSBhdCBsaW5lIGVuZC4KKysgICMgKFJh amEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRo ZQorKyAgIyBzY3JpcHRzIHdpdGggb3B0aW1pemF0aW9uIGhlbHAgZnJvbSBQYW9sbyBCb256aW5p LiAgQmxhbWUgTGVlCisrICAjIEUuIE1jTWFob24gKDE5MzEtMTk4OSkgZm9yIHNlZCdzIHN5bnRh eC4gIDotKQorKyAgc2VkIC1uICcKKysgICAgcAorKyAgICAvWyRdTElORU5PLz0KKysgICcgPCRh c19teXNlbGYgfAorKyAgICBzZWQgJworKyAgICAgIHMvWyRdTElORU5PLiovJi0vCisrICAgICAg dCBsaW5lbm8KKysgICAgICBiCisrICAgICAgOmxpbmVubworKyAgICAgIE4KKysgICAgICA6bG9v cAorKyAgICAgIHMvWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX10uKlxuXClcKC4qXCkvXDJc MVwyLworKyAgICAgIHQgbG9vcAorKyAgICAgIHMvLVxuLiovLworKyAgICAnID4kYXNfbWUubGlu ZW5vICYmCisrICBjaG1vZCAreCAiJGFzX21lLmxpbmVubyIgfHwKKysgICAgeyAkYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEg UE9TSVggc2hlbGwiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKyAgIyBE b24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2Yg cHJvYmxlbXMKKysgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVy ZSB3ZSBtaWdodCBmaW5kIHRoZQorKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBp cyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KKysgIC4gIi4vJGFzX21lLmxpbmVubyIK KysgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgorKyAgZXhpdAor K30KKysKKysKKytpZiAoYXNfZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgkYXNfZGlyIiA9 IFgvKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX2Rpcm5hbWU9ZGlybmFtZQorK2Vsc2UK KysgIGFzX2Rpcm5hbWU9ZmFsc2UKKytmaQorKworK0VDSE9fQz0gRUNIT19OPSBFQ0hPX1Q9Cisr Y2FzZSBgZWNobyAtbiB4YCBpbgorKy1uKikKKysgIGNhc2UgYGVjaG8gJ3hcYydgIGluCisrICAq YyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KKysgICop ICAgRUNIT19DPSdcYyc7OworKyAgZXNhYzs7CisrKikKKysgIEVDSE9fTj0nLW4nOzsKKytlc2Fj CisraWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKKysgICB0ZXN0ICJYYGV4 cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgorKyAgYXNfZXhwcj1leHByCisr ZWxzZQorKyAgYXNfZXhwcj1mYWxzZQorK2ZpCisrCisrcm0gLWYgY29uZiQkIGNvbmYkJC5leGUg Y29uZiQkLmZpbGUKKytpZiB0ZXN0IC1kIGNvbmYkJC5kaXI7IHRoZW4KKysgIHJtIC1mIGNvbmYk JC5kaXIvY29uZiQkLmZpbGUKKytlbHNlCisrICBybSAtZiBjb25mJCQuZGlyCisrICBta2RpciBj b25mJCQuZGlyIDI+L2Rldi9udWxsCisrZmkKKytpZiAoZWNobyA+Y29uZiQkLmZpbGUpIDI+L2Rl di9udWxsOyB0aGVuCisrICBpZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7 IHRoZW4KKysgICAgYXNfbG5fcz0nbG4gLXMnCisrICAgICMgLi4uIGJ1dCB0aGVyZSBhcmUgdHdv IGdvdGNoYXM6CisrICAgICMgMSkgT24gTVNZUywgYm90aCBgbG4gLXMgZmlsZSBkaXInIGFuZCBg bG4gZmlsZSBkaXInIGZhaWwuCisrICAgICMgMikgREpHUFAgPCAyLjA0IGhhcyBubyBzeW1saW5r czsgYGxuIC1zJyBjcmVhdGVzIGEgd3JhcHBlciBleGVjdXRhYmxlLgorKyAgICAjIEluIGJvdGgg Y2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVsdCB0byBgY3AgLXAnLgorKyAgICBsbiAtcyBjb25mJCQu ZmlsZSBjb25mJCQuZGlyIDI+L2Rldi9udWxsICYmIHRlc3QgISAtZiBjb25mJCQuZXhlIHx8Cisr ICAgICAgYXNfbG5fcz0nY3AgLXAnCisrICBlbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9k ZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9zPWxuCisrICBlbHNlCisrICAgIGFzX2xuX3M9J2Nw IC1wJworKyAgZmkKKytlbHNlCisrICBhc19sbl9zPSdjcCAtcCcKKytmaQorK3JtIC1mIGNvbmYk JCBjb25mJCQuZXhlIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUgY29uZiQkLmZpbGUKKytybWRpciBj b25mJCQuZGlyIDI+L2Rldi9udWxsCisrCisraWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhl bgorKyAgYXNfbWtkaXJfcD06CisrZWxzZQorKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAK KysgIGFzX21rZGlyX3A9ZmFsc2UKKytmaQorKworK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+ JjE7IHRoZW4KKysgIGFzX3Rlc3RfeD0ndGVzdCAteCcKKytlbHNlCisrICBpZiBscyAtZEwgLyA+ L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgYXNfbHNfTF9vcHRpb249TAorKyAgZWxzZQorKyAg ICBhc19sc19MX29wdGlvbj0KKysgIGZpCisrICBhc190ZXN0X3g9JworKyAgICBldmFsIHNoIC1j ICdcJycKKysgICAgICBpZiB0ZXN0IC1kICIkMSI7IHRoZW4KKysJdGVzdCAtZCAiJDEvLiI7Cisr ICAgICAgZWxzZQorKwljYXNlICQxIGluCisrCS0qKXNldCAiLi8kMSI7OworKwllc2FjOworKwlj YXNlIGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbgorKwk/Pz9b c3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCisrICAgICdcJycgc2gKKysgICcKKytmaQorK2FzX2V4 ZWN1dGFibGVfcD0kYXNfdGVzdF94CisrCisrIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJp bmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19j cl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisrCisr IyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5h bWUuCisrYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVn JyIKKysKKysKKysKKysKKysjIENoZWNrIHRoYXQgd2UgYXJlIHJ1bm5pbmcgdW5kZXIgdGhlIGNv cnJlY3Qgc2hlbGwuCisrU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKysKKytjYXNlIFgk bHRfRUNITyBpbgorK1gqLS1mYWxsYmFjay1lY2hvKQorKyAgIyBSZW1vdmUgb25lIGxldmVsIG9m IHF1b3RhdGlvbiAod2hpY2ggd2FzIHJlcXVpcmVkIGZvciBNYWtlKS4KKysgIEVDSE89YGVjaG8g IiRsdF9FQ0hPIiB8IHNlZCAncyxcXFxcXCRcXCQwLCckMCcsJ2AKKysgIDs7CisrZXNhYworKwor K0VDSE89JHtsdF9FQ0hPLWVjaG99CisraWYgdGVzdCAiWCQxIiA9IFgtLW5vLXJlZXhlYzsgdGhl bgorKyAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCisrICBz aGlmdAorK2VsaWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKysgICMgQXZv aWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKKysgIDoKKytlbGlm IHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRoZW4KKysg ICMgWWlwcGVlLCAkRUNITyB3b3JrcyEKKysgIDoKKytlbHNlCisrICAjIFJlc3RhcnQgdW5kZXIg dGhlIGNvcnJlY3Qgc2hlbGwuCisrICBleGVjICRTSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7MSsi JEAifQorK2ZpCisrCisraWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KKysg ICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCisrICBzaGlmdAorKyAgY2F0IDw8X0xUX0VPRgorKyQq CisrX0xUX0VPRgorKyAgZXhpdCAwCisgZmkKKyAKKy1ta2RpciAtcCBidWlsZC91bml4L2xvY2Fs CistcGF0aD0iYnVpbGQvdW5peC9sb2NhbC9wYXJhbWV0ZXJzIgorLXJtIC1mICRwYXRoCistdG91 Y2ggJHBhdGgKKy1mb3IgcGFyYW0gaW4gJCoKKy1kbworLSAgICAgICAgZWNobyAkcGFyYW0gPj4g JHBhdGgKKy1kb25lCistCistcHJpbnRmICdUcnlpbmcgdG8gZmluZCB0aGUgVGNsIGludGVycHJl dGVyLi4uICcKKy10Y2xfZm91bmQ9MAorLQorLWZvciBwYXRoIGluICIvdXNyL2Jpbi90Y2xzaCIg XAorLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguNSIgXAorLSAgICAgICAgICAg ICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguNCIgXAorLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jp bi90Y2xzaDguMyI7IGRvCistICAgIGlmIFsgLXggJHBhdGggXQorLSAgICB0aGVuCistICAgICAg ICBlY2hvICRwYXRoID4gYnVpbGQvdW5peC9sb2NhbC90Y2wKKy0gICAgICAgIGVjaG8gJHBhdGgK Ky0gICAgICAgIHRjbF9mb3VuZD0xCisrIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBw cmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQu CisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK2lm IHRlc3QgLXogIiRsdF9FQ0hPIjsgdGhlbgorKyAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmlu ZytzZXR9IiAhPSBYc2V0OyB0aGVuCisrICAgICMgZmluZCBhIHN0cmluZyBhcyBsYXJnZSBhcyBw b3NzaWJsZSwgYXMgbG9uZyBhcyB0aGUgc2hlbGwgY2FuIGNvcGUgd2l0aCBpdAorKyAgICBmb3Ig Y21kIGluICdzZWQgNTBxICIkMCInICdzZWQgMjBxICIkMCInICdzZWQgMTBxICIkMCInICdzZWQg MnEgIiQwIicgJ2VjaG8gdGVzdCc7IGRvCisrICAgICAgIyBleHBlY3RlZCBzaXplczogbGVzcyB0 aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KKysgICAgICBpZiB7IGVjaG9f dGVzdF9zdHJpbmc9YGV2YWwgJGNtZGA7IH0gMj4vZGV2L251bGwgJiYKKysJIHsgdGVzdCAiWCRl Y2hvX3Rlc3Rfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsCisr ICAgICAgdGhlbgorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBkb25lCisrICBmaQor KworKyAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYm CisrICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7ICRFQ0hPICIkZWNob190ZXN0X3N0cmluZyI7 IH0gMj4vZGV2L251bGxgICYmCisrICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0g IlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KKysgICAgOgorKyAgZWxzZQorKyAgICAjIFRoZSBT b2xhcmlzLCBBSVgsIGFuZCBEaWdpdGFsIFVuaXggZGVmYXVsdCBlY2hvIHByb2dyYW1zIHVucXVv dGUKKysgICAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBxdW90 ZSBiYWNrc2xhc2hlcyB1c2luZworKyAgICAjICAgZWNobyAiJHNvbWV0aGluZyIgfCBzZWQgJ3Mv XFwvXFxcXC9nJworKyAgICAjCisrICAgICMgU28sIGZpcnN0IHdlIGxvb2sgZm9yIGEgd29ya2lu ZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KKysKKysgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJ RlM9JFBBVEhfU0VQQVJBVE9SCisrICAgIGZvciBkaXIgaW4gJFBBVEggL3Vzci91Y2I7IGRvCisr ICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hvIHx8 IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKKysgICAgICAgICB0ZXN0ICJYYCgkZGly L2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrICAgICAgICAgZWNob190ZXN0 aW5nX3N0cmluZz1gKCRkaXIvZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAg JiYKKysgICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0 X3N0cmluZyI7IHRoZW4KKysgICAgICAgIEVDSE89IiRkaXIvZWNobyIKKyAgICAgICAgIGJyZWFr CisrICAgICAgZmkKKysgICAgZG9uZQorKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysKKysgICAg aWYgdGVzdCAiWCRFQ0hPIiA9IFhlY2hvOyB0aGVuCisrICAgICAgIyBXZSBkaWRuJ3QgZmluZCBh IGJldHRlciBlY2hvLCBzbyBsb29rIGZvciBhbHRlcm5hdGl2ZXMuCisrICAgICAgaWYgdGVzdCAi WGB7IHByaW50IC1yICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCisrICAgICAgICAg ZWNob190ZXN0aW5nX3N0cmluZz1geyBwcmludCAtciAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+ L2Rldi9udWxsYCAmJgorKyAgICAgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAi WCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgorKyAgICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1 aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0cmljay4KKysgICAgICAgIEVDSE89J3ByaW50 IC1yJworKyAgICAgIGVsaWYgeyB0ZXN0IC1mIC9iaW4va3NoIHx8IHRlc3QgLWYgL2Jpbi9rc2gk YWNfZXhlZXh0OyB9ICYmCisrCSAgIHRlc3QgIlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9rc2g7 IHRoZW4KKysgICAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5uaW5nIGNvbmZpZ3VyZSBh Z2FpbiB3aXRoIGl0LgorKyAgICAgICAgT1JJR0lOQUxfQ09ORklHX1NIRUxMPSR7Q09ORklHX1NI RUxMLS9iaW4vc2h9CisrICAgICAgICBleHBvcnQgT1JJR0lOQUxfQ09ORklHX1NIRUxMCisrICAg ICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKKysgICAgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwK KysgICAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7MSsiJEAifQor KyAgICAgIGVsc2UKKysgICAgICAgICMgVHJ5IHVzaW5nIHByaW50Zi4KKysgICAgICAgIEVDSE89 J3ByaW50ZiAlc1xuJworKyAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2 L251bGxgIiA9ICdYXHQnICYmCisrCSAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRl Y2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKKysJICAgdGVzdCAiWCRlY2hvX3Rl c3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCisrCSAgIyBDb29sLCBw cmludGYgd29ya3MKKysJICA6CisrICAgICAgICBlbGlmIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgk T1JJR0lOQUxfQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9u dWxsYCAmJgorKwkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgor KwkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkT1JJR0lOQUxfQ09ORklHX1NIRUxMICIkMCIg LS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgorKwkg ICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsg dGhlbgorKwkgIENPTkZJR19TSEVMTD0kT1JJR0lOQUxfQ09ORklHX1NIRUxMCisrCSAgZXhwb3J0 IENPTkZJR19TSEVMTAorKwkgIFNIRUxMPSIkQ09ORklHX1NIRUxMIgorKwkgIGV4cG9ydCBTSEVM TAorKwkgIEVDSE89IiRDT05GSUdfU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvIgorKyAgICAgICAg ZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2st ZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKKysJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19z dHJpbmciID0gJ1hcdCcgJiYKKysJICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJENPTkZJR19T SEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVs bGAgJiYKKysJICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0 X3N0cmluZyI7IHRoZW4KKysJICBFQ0hPPSIkQ09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNo byIKKysgICAgICAgIGVsc2UKKysJICAjIG1heWJlIHdpdGggYSBzbWFsbGVyIHN0cmluZy4uLgor KwkgIHByZXY9OgorKworKwkgIGZvciBjbWQgaW4gJ2VjaG8gdGVzdCcgJ3NlZCAycSAiJDAiJyAn c2VkIDEwcSAiJDAiJyAnc2VkIDIwcSAiJDAiJyAnc2VkIDUwcSAiJDAiJzsgZG8KKysJICAgIGlm IHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYYGV2YWwgJGNtZGAiOyB9IDI+L2Rldi9u dWxsCisrCSAgICB0aGVuCisrCSAgICAgIGJyZWFrCisrCSAgICBmaQorKwkgICAgcHJldj0iJGNt ZCIKKysJICBkb25lCisrCisrCSAgaWYgdGVzdCAiJHByZXYiICE9ICdzZWQgNTBxICIkMCInOyB0 aGVuCisrCSAgICBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRwcmV2YAorKwkgICAgZXhwb3J0IGVj aG9fdGVzdF9zdHJpbmcKKysJICAgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05G SUdfU0hFTEwtL2Jpbi9zaH19ICIkMCIgJHsxKyIkQCJ9CisrCSAgZWxzZQorKwkgICAgIyBPb3Bz LiAgV2UgbG9zdCBjb21wbGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdpdGggZWNoby4KKysJICAgIEVD SE89ZWNobworKwkgIGZpCisrICAgICAgICBmaQorKyAgICAgIGZpCisgICAgIGZpCisrICBmaQor K2ZpCisrCisrIyBDb3B5IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5IHN1aXRhYmx5IGZvciBwYXNz aW5nIHRvIGxpYnRvb2wgZnJvbQorKyMgdGhlIE1ha2VmaWxlLCBpbnN0ZWFkIG9mIHF1b3Rpbmcg dGhlIG9yaWdpbmFsLCB3aGljaCBpcyB1c2VkIGxhdGVyLgorK2x0X0VDSE89JEVDSE8KKytpZiB0 ZXN0ICJYJGx0X0VDSE8iID0gIlgkQ09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNobyI7IHRo ZW4KKysgICBsdF9FQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcJDAgLS1mYWxsYmFjay1lY2hvIgor K2ZpCisrCisrCisrCisrCisrZXhlYyA3PCYwIDwvZGV2L251bGwgNj4mMQorKworKyMgTmFtZSBv ZiB0aGUgaG9zdC4KKysjIGhvc3RuYW1lIG9uIHNvbWUgc3lzdGVtcyAoU1ZSMy4yLCBMaW51eCkg cmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAorKyMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgor K2FjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFx YAorKworKyMKKysjIEluaXRpYWxpemF0aW9ucy4KKysjCisrYWNfZGVmYXVsdF9wcmVmaXg9L3Vz ci9sb2NhbAorK2FjX2NsZWFuX2ZpbGVzPQorK2FjX2NvbmZpZ19saWJvYmpfZGlyPS4KKytMSUJP QkpTPQorK2Nyb3NzX2NvbXBpbGluZz1ubworK3N1YmRpcnM9CisrTUZMQUdTPQorK01BS0VGTEFH Uz0KKytTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorKworKyMgSWRlbnRpdHkgb2YgdGhp cyBwYWNrYWdlLgorK1BBQ0tBR0VfTkFNRT0nU09DSScKKytQQUNLQUdFX1RBUk5BTUU9J3NvY2kn CisrUEFDS0FHRV9WRVJTSU9OPSczLjAuMCcKKytQQUNLQUdFX1NUUklORz0nU09DSSAzLjAuMCcK KytQQUNLQUdFX0JVR1JFUE9SVD0nbXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0JworKwor K2FjX3VuaXF1ZV9maWxlPSJzb2NpL2NvcmUvZXJyb3IuY3BwIgorKyMgRmFjdG9yaW5nIGRlZmF1 bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4KKythY19pbmNsdWRlc19kZWZhdWx0PSJcCisrI2lu Y2x1ZGUgPHN0ZGlvLmg+CisrI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKKysjIGluY2x1ZGUgPHN5 cy90eXBlcy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gKKysjIGluY2x1ZGUg PHN5cy9zdGF0Lmg+CisrI2VuZGlmCisrI2lmZGVmIFNURENfSEVBREVSUworKyMgaW5jbHVkZSA8 c3RkbGliLmg+CisrIyBpbmNsdWRlIDxzdGRkZWYuaD4KKysjZWxzZQorKyMgaWZkZWYgSEFWRV9T VERMSUJfSAorKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorKyMgZW5kaWYKKysjZW5kaWYKKysjaWZk ZWYgSEFWRV9TVFJJTkdfSAorKyMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQg SEFWRV9NRU1PUllfSAorKyMgIGluY2x1ZGUgPG1lbW9yeS5oPgorKyMgZW5kaWYKKysjIGluY2x1 ZGUgPHN0cmluZy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NUUklOR1NfSAorKyMgaW5jbHVk ZSA8c3RyaW5ncy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKKysjIGluY2x1 ZGUgPGludHR5cGVzLmg+CisrI2VuZGlmCisrI2lmZGVmIEhBVkVfU1RESU5UX0gKKysjIGluY2x1 ZGUgPHN0ZGludC5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1VOSVNURF9ICisrIyBpbmNsdWRl IDx1bmlzdGQuaD4KKysjZW5kaWYiCisrCisrYWNfc3Vic3RfdmFycz0nYW1fX0VYRUVYVF9GQUxT RQorK2FtX19FWEVFWFRfVFJVRQorK0xUTElCT0JKUworK0xJQk9CSlMKKytSVU5fVEVTVFNfRkFM U0UKKytSVU5fVEVTVFNfVFJVRQorK3NlZF9vaworK2RpZmZfb2sKKytIVE1MX0RPQ19GQUxTRQor K0hUTUxfRE9DX1RSVUUKKytQRVJMCisrZ3Nfb2sKKytkdmlwc19vaworK2xhdGV4X29rCisrZG94 eWdlbl9vaworK0lORk9fRE9DX0ZBTFNFCisrSU5GT19ET0NfVFJVRQorK1BPU1RHUkVTUUxfRElS UworK0hBVkVfUE9TVEdSRVNRTF9GQUxTRQorK0hBVkVfUE9TVEdSRVNRTF9UUlVFCisrUE9TVEdS RVNRTF9MREZMQUdTCisrUE9TVEdSRVNRTF9DRkxBR1MKKytQT1NUR1JFU1FMX1ZFUlNJT04KKytQ R19DT05GSUcKKytPUkFDTEVfRElSUworK0hBVkVfT1JBQ0xFX0ZBTFNFCisrSEFWRV9PUkFDTEVf VFJVRQorK09SQUNMRV9PQ0lfTERGTEFHUworK09SQUNMRV9PQ0lfQ0ZMQUdTCisrT1JBQ0xFX09D SV9WRVJTSU9OCisrTVlTUUxfRElSUworK0hBVkVfTVlTUUxfRkFMU0UKKytIQVZFX01ZU1FMX1RS VUUKKytNWVNRTF9DX0xJQgorK01ZU1FMX0xJQlMKKytNWVNRTF9DRkxBR1MKKytNWVNRTF9WRVJT SU9OCisrQk9PU1RfVkVSU0lPTgorK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCCisrQk9P U1RfTVBJX1BZVEhPTl9MSUIKKytCT09TVF9NUElfTElCCisrQk9PU1RfUFlUSE9OX0xJQgorK0JP T1NUX1JFR0VYX0xJQgorK0JPT1NUX0RBVEVfVElNRV9MSUIKKytCT09TVF9TSUdOQUxTX0xJQgor K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQgorK0JPT1NUX1NFUklBTElaQVRJT05fTElCCisrQk9P U1RfSU9TVFJFQU1TX0xJQgorK0JPT1NUX1RIUkVBRF9MSUIKKytCT09TVF9QUk9HUkFNX09QVElP TlNfTElCCisrQk9PU1RfU1lTVEVNX0xJQgorK0JPT1NUX0ZJTEVTWVNURU1fTElCCisrQk9PU1Rf TElCUworK0JPT1NUX0NGTEFHUworK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRAorK1NP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRF9UUlVFCisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRAorK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRURfRkFMU0UKKytTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKKytT T0NJX0hFQURFUlNfQlVSSUVECisrU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRQorK1NPQ0lfSEVB REVSU19CVVJJRURfVFJVRQorK0NQUAorK09UT09MNjQKKytPVE9PTAorK0xJUE8KKytOTUVESVQK KytEU1lNVVRJTAorK2x0X0VDSE8KKytSQU5MSUIKKytBUgorK09CSkRVTVAKKytMTl9TCisrTk0K KythY19jdF9EVU1QQklOCisrRFVNUEJJTgorK0xECisrRkdSRVAKKytFR1JFUAorK0dSRVAKKytT RUQKKythbV9fZmFzdGRlcENDX0ZBTFNFCisrYW1fX2Zhc3RkZXBDQ19UUlVFCisrQ0NERVBNT0RF CisrYWNfY3RfQ0MKKytDRkxBR1MKKytDQworK0xJQlRPT0wKKytDWFhDUFAKKythbV9fZmFzdGRl cENYWF9GQUxTRQorK2FtX19mYXN0ZGVwQ1hYX1RSVUUKKytDWFhERVBNT0RFCisrQU1ERVBCQUNL U0xBU0gKKytBTURFUF9GQUxTRQorK0FNREVQX1RSVUUKKythbV9fcXVvdGUKKythbV9faW5jbHVk ZQorK0RFUERJUgorK09CSkVYVAorK0VYRUVYVAorK2FjX2N0X0NYWAorK0NQUEZMQUdTCisrTERG TEFHUworK0NYWEZMQUdTCisrQ1hYCisraG9zdF9vcworK2hvc3RfdmVuZG9yCisraG9zdF9jcHUK Kytob3N0CisrYnVpbGRfb3MKKytidWlsZF92ZW5kb3IKKytidWlsZF9jcHUKKytidWlsZAorK1VQ TE9BRF9DT01NQU5ECisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04KKytSUE1fUkVMRUFTRQorK0hB VkVfQ1BQVU5JVF9GQUxTRQorK0hBVkVfQ1BQVU5JVF9UUlVFCisrQ1BQVU5JVF9WRVJTSU9OCisr Q1BQVU5JVF9MSUJTCisrQ1BQVU5JVF9DRkxBR1MKKytDUFBVTklUX0NPTkZJRworK2FtX191bnRh cgorK2FtX190YXIKKytBTVRBUgorK2FtX19sZWFkaW5nX2RvdAorK1NFVF9NQUtFCisrQVdLCisr bWtkaXJfcAorK01LRElSX1AKKytJTlNUQUxMX1NUUklQX1BST0dSQU0KKytTVFJJUAorK2luc3Rh bGxfc2gKKytNQUtFSU5GTworK0FVVE9IRUFERVIKKytBVVRPTUFLRQorK0FVVE9DT05GCisrQUNM T0NBTAorK1ZFUlNJT04KKytQQUNLQUdFCisrQ1lHUEFUSF9XCisrYW1fX2lzcmMKKytJTlNUQUxM X0RBVEEKKytJTlNUQUxMX1NDUklQVAorK0lOU1RBTExfUFJPR1JBTQorK3RhcmdldF9hbGlhcwor K2hvc3RfYWxpYXMKKytidWlsZF9hbGlhcworK0xJQlMKKytFQ0hPX1QKKytFQ0hPX04KKytFQ0hP X0MKKytERUZTCisrbWFuZGlyCisrbG9jYWxlZGlyCisrbGliZGlyCisrcHNkaXIKKytwZGZkaXIK KytkdmlkaXIKKytodG1sZGlyCisraW5mb2RpcgorK2RvY2RpcgorK29sZGluY2x1ZGVkaXIKKytp bmNsdWRlZGlyCisrbG9jYWxzdGF0ZWRpcgorK3NoYXJlZHN0YXRlZGlyCisrc3lzY29uZmRpcgor K2RhdGFkaXIKKytkYXRhcm9vdGRpcgorK2xpYmV4ZWNkaXIKKytzYmluZGlyCisrYmluZGlyCisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZQorK3ByZWZpeAorK2V4ZWNfcHJlZml4CisrUEFDS0FHRV9C VUdSRVBPUlQKKytQQUNLQUdFX1NUUklORworK1BBQ0tBR0VfVkVSU0lPTgorK1BBQ0tBR0VfVEFS TkFNRQorK1BBQ0tBR0VfTkFNRQorK1BBVEhfU0VQQVJBVE9SCisrU0hFTEwnCisrYWNfc3Vic3Rf ZmlsZXM9JycKKythY191c2VyX29wdHM9JworK2VuYWJsZV9vcHRpb25fY2hlY2tpbmcKKyt3aXRo X2NwcHVuaXRfcHJlZml4Cisrd2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4CisrZW5hYmxlX3NoYXJl ZAorK2VuYWJsZV9zdGF0aWMKKytlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZworK3dpdGhfcGlj CisrZW5hYmxlX2Zhc3RfaW5zdGFsbAorK3dpdGhfZ251X2xkCisrZW5hYmxlX2xpYnRvb2xfbG9j aworK2VuYWJsZV9leGNlcHRpb25zCisrZW5hYmxlX2luZm9fZG9jCisrZW5hYmxlX2h0bWxfZG9j Cisrd2l0aF9kb2NkaXIKKytlbmFibGVfYnVycmllZF9oZWFkZXJzCisrZW5hYmxlX215c3FsX2J1 cnJpZWRfaGVhZGVycworK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycworK3dpdGhf Ym9vc3QKKytlbmFibGVfYmFja2VuZF9teXNxbAorK3dpdGhfbXlzcWwKKyt3aXRoX215c3FsX2xp YgorK3dpdGhfbXlzcWxfaW5jbHVkZQorK2VuYWJsZV9iYWNrZW5kX29yYWNsZQorK3dpdGhfb3Jh Y2xlCisrd2l0aF9vcmFjbGVfaW5jbHVkZQorK3dpdGhfb3JhY2xlX2xpYgorK2VuYWJsZV9iYWNr ZW5kX3Bvc3RncmVzcWwKKyt3aXRoX3Bvc3RncmVzcWwKKysnCisrICAgICAgYWNfcHJlY2lvdXNf dmFycz0nYnVpbGRfYWxpYXMKKytob3N0X2FsaWFzCisrdGFyZ2V0X2FsaWFzCisrQ1hYCisrQ1hY RkxBR1MKKytMREZMQUdTCisrTElCUworK0NQUEZMQUdTCisrQ0NDCisrQ1hYQ1BQCisrQ0MKKytD RkxBR1MKKytDUFAnCisrCisrCisrIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBv cHRpb25zLgorK2FjX2luaXRfaGVscD0KKythY19pbml0X3ZlcnNpb249ZmFsc2UKKythY191bnJl Y29nbml6ZWRfb3B0cz0KKythY191bnJlY29nbml6ZWRfc2VwPQorKyMgVGhlIHZhcmlhYmxlcyBo YXZlIHRoZSBzYW1lIG5hbWVzIGFzIHRoZSBvcHRpb25zLCB3aXRoCisrIyBkYXNoZXMgY2hhbmdl ZCB0byB1bmRlcmxpbmVzLgorK2NhY2hlX2ZpbGU9L2Rldi9udWxsCisrZXhlY19wcmVmaXg9Tk9O RQorK25vX2NyZWF0ZT0KKytub19yZWN1cnNpb249CisrcHJlZml4PU5PTkUKKytwcm9ncmFtX3By ZWZpeD1OT05FCisrcHJvZ3JhbV9zdWZmaXg9Tk9ORQorK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9 cyx4LHgsCisrc2lsZW50PQorK3NpdGU9Cisrc3JjZGlyPQorK3ZlcmJvc2U9CisreF9pbmNsdWRl cz1OT05FCisreF9saWJyYXJpZXM9Tk9ORQorKworKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBv cHRpb25zLgorKyMgVGhlc2UgYXJlIGxlZnQgdW5leHBhbmRlZCBzbyB1c2VycyBjYW4gIm1ha2Ug aW5zdGFsbCBleGVjX3ByZWZpeD0vZm9vIgorKyMgYW5kIGFsbCB0aGUgdmFyaWFibGVzIHRoYXQg YXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNfcHJlZml4CisrIyBieSBkZWZhdWx0IHdp bGwgYWN0dWFsbHkgY2hhbmdlLgorKyMgVXNlIGJyYWNlcyBpbnN0ZWFkIG9mIHBhcmVucyBiZWNh dXNlIHNoLCBwZXJsLCBldGMuIGFsc28gYWNjZXB0IHRoZW0uCisrIyAoVGhlIGxpc3QgZm9sbG93 cyB0aGUgc2FtZSBvcmRlciBhcyB0aGUgR05VIENvZGluZyBTdGFuZGFyZHMuKQorK2JpbmRpcj0n JHtleGVjX3ByZWZpeH0vYmluJworK3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCisrbGli ZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKKytkYXRhcm9vdGRpcj0nJHtwcmVmaXh9 L3NoYXJlJworK2RhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JworK3N5c2NvbmZkaXI9JyR7cHJlZml4 fS9ldGMnCisrc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCisrbG9jYWxzdGF0ZWRpcj0n JHtwcmVmaXh9L3ZhcicKKytpbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKKytvbGRpbmNs dWRlZGlyPScvdXNyL2luY2x1ZGUnCisrZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNL QUdFX1RBUk5BTUV9JworK2luZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCisraHRtbGRpcj0n JHtkb2NkaXJ9JworK2R2aWRpcj0nJHtkb2NkaXJ9JworK3BkZmRpcj0nJHtkb2NkaXJ9JworK3Bz ZGlyPScke2RvY2Rpcn0nCisrbGliZGlyPScke2V4ZWNfcHJlZml4fS9saWInCisrbG9jYWxlZGly PScke2RhdGFyb290ZGlyfS9sb2NhbGUnCisrbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCisr CisrYWNfcHJldj0KKythY19kYXNoZGFzaD0KKytmb3IgYWNfb3B0aW9uCisrZG8KKysgICMgSWYg dGhlIHByZXZpb3VzIG9wdGlvbiBuZWVkcyBhbiBhcmd1bWVudCwgYXNzaWduIGl0LgorKyAgaWYg dGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCisrICAgIGV2YWwgJGFjX3ByZXY9XCRhY19vcHRpb24K KysgICAgYWNfcHJldj0KKysgICAgY29udGludWUKKysgIGZpCisrCisrICBjYXNlICRhY19vcHRp b24gaW4KKysgICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCgu KlwpJ2AgOzsKKysgICopCWFjX29wdGFyZz15ZXMgOzsKKysgIGVzYWMKKysKKysgICMgQWNjZXB0 IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25v c2UgdHlwb3MuCisrCisrICBjYXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KKysgIC0tKQor KyAgICBhY19kYXNoZGFzaD15ZXMgOzsKKysKKysgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmlu ZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCisrICAgIGFjX3ByZXY9YmluZGlyIDs7CisrICAt YmluZGlyPSogfCAtLWJpbmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwg LS1iaT0qKQorKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OworKworKyAgLWJ1aWxkIHwgLS1idWls ZCB8IC0tYnVpbCB8IC0tYnVpIHwgLS1idSkKKysgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7Owor KyAgLWJ1aWxkPSogfCAtLWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCisr ICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcgOzsKKysKKysgIC1jYWNoZS1maWxlIHwgLS1jYWNo ZS1maWxlIHwgLS1jYWNoZS1maWwgfCAtLWNhY2hlLWZpIFwKKysgIHwgLS1jYWNoZS1mIHwgLS1j YWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQorKyAgICBhY19w cmV2PWNhY2hlX2ZpbGUgOzsKKysgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0t Y2FjaGUtZmlsPSogfCAtLWNhY2hlLWZpPSogXAorKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUt PSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKKysg ICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7CisrCisrICAtLWNvbmZpZy1jYWNoZSB8IC1DKQor KyAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OworKworKyAgLWRhdGFkaXIgfCAtLWRhdGFk aXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQpCisrICAgIGFjX3ByZXY9ZGF0YWRpciA7OworKyAgLWRh dGFkaXI9KiB8IC0tZGF0YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKKysgICAgZGF0 YWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwg LS1kYXRhcm9vdGRpIHwgLS1kYXRhcm9vdGQgfCAtLWRhdGFyb290IFwKKysgIHwgLS1kYXRhcm9v IHwgLS1kYXRhcm8gfCAtLWRhdGFyKQorKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7CisrICAt ZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRh cm9vdGQ9KiBcCisrICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8 IC0tZGF0YXI9KikKKysgICAgZGF0YXJvb3RkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWRpc2Fi bGUtKiB8IC0tZGlzYWJsZS0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIg OiAneC0qZGlzYWJsZS1cKC4qXCknYAorKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3Qg dmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCisrICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAi LipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisrICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IiA+JjIKKysg ICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vy b3B0CisrICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0r Ll0vXy9nJ2AKKysgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCisrICAgICAgKiIKKysiZW5hYmxl XyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIk YWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNl cm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAg ICBldmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OworKworKyAgLWRvY2RpciB8IC0tZG9jZGly IHwgLS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKKysgICAgYWNfcHJldj1kb2NkaXIgOzsKKysgIC1k b2NkaXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQorKyAg ICBkb2NkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlk aSB8IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKKysgICAgYWNfcHJldj1kdmlkaXIgOzsKKysgIC1k dmlkaXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAt LWR2PSopCisrICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtZW5hYmxlLSogfCAtLWVu YWJsZS0qKQorKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxl LVwoW149XSpcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVs bCB2YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRh c19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVy cm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJvcHQiID4mMgorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKKysgICAg YWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAor KyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJlbmFibGVfJGFjX3VzZXJv cHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29n bml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJvcHRfb3JpZyIK KysJIGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7CisrICAgIGVzYWMKKysgICAgZXZhbCBlbmFi bGVfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKKysKKysgIC1leGVjLXByZWZpeCB8IC0tZXhl Y19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZpIFwKKysgIHwgLS1leGVjLXBy ZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKKysgIHwg LS1leGVjIHwgLS1leGUgfCAtLWV4KQorKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4IDs7CisrICAt ZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhl Yy1wcmVmaT0qIFwKKysgIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8IC0tZXhlYy1w cj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCisrICB8IC0tZXhlYz0qIHwgLS1leGU9KiB8 IC0tZXg9KikKKysgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OworKworKyAgLWdhcyB8IC0t Z2FzIHwgLS1nYSB8IC0tZykKKysgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCisrICAg IHdpdGhfZ2FzPXllcyA7OworKworKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAt aCkKKysgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKKysgIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwg LS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKKysgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7 OworKyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyogfCAtaHMqKQor KyAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKKysKKysgIC1ob3N0IHwgLS1ob3N0IHwgLS1ob3Mg fCAtLWhvKQorKyAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKKysgIC1ob3N0PSogfCAtLWhvc3Q9 KiB8IC0taG9zPSogfCAtLWhvPSopCisrICAgIGhvc3RfYWxpYXM9JGFjX29wdGFyZyA7OworKwor KyAgLWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAtLWh0bWwgfCAt LWh0bSB8IC0taHQpCisrICAgIGFjX3ByZXY9aHRtbGRpciA7OworKyAgLWh0bWxkaXI9KiB8IC0t aHRtbGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBc CisrICB8IC0taHQ9KikKKysgICAgaHRtbGRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtaW5jbHVk ZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8IC0taW5jbHVk ZSBcCisrICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQorKyAgICBhY19w cmV2PWluY2x1ZGVkaXIgOzsKKysgIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaXI9KiB8IC0t aW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCisrICB8IC0taW5jbHVk PSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCisrICAgIGluY2x1ZGVkaXI9JGFj X29wdGFyZyA7OworKworKyAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5m b2QgfCAtLWluZm8gfCAtLWluZikKKysgICAgYWNfcHJldj1pbmZvZGlyIDs7CisrICAtaW5mb2Rp cj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1pbmZvPSogfCAt LWluZj0qKQorKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKKysKKysgIC1saWJkaXIgfCAtLWxp YmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCisrICAgIGFjX3ByZXY9bGliZGlyIDs7CisrICAtbGli ZGlyPSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJkPSopCisrICAgIGxpYmRpcj0k YWNfb3B0YXJnIDs7CisrCisrICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhl Y2RpIHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCisrICB8IC0tbGliZXhlIHwgLS1saWJleCB8 IC0tbGliZSkKKysgICAgYWNfcHJldj1saWJleGVjZGlyIDs7CisrICAtbGliZXhlY2Rpcj0qIHwg LS1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVj PSogXAorKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCisrICAgIGxpYmV4 ZWNkaXI9JGFjX29wdGFyZyA7OworKworKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxlZGlyIHwgLS1s b2NhbGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxlKQorKyAgICBhY19wcmV2PWxvY2FsZWRpciA7 OworKyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9j YWxlZD0qIHwgLS1sb2NhbGU9KikKKysgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcgOzsKKysKKysg IC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxv Y2Fsc3RhdGVkIFwKKysgIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAtLWxvY2Fsc3Rh IHwgLS1sb2NhbHN0IHwgLS1sb2NhbHMpCisrICAgIGFjX3ByZXY9bG9jYWxzdGF0ZWRpciA7Owor KyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9 KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCisrICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1sb2NhbHN0YXQ9 KiB8IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKKysgICAgbG9jYWxz dGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtbWFuZGlyIHwgLS1tYW5kaXIgfCAtLW1hbmRp IHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQorKyAgICBhY19wcmV2PW1hbmRpciA7Owor KyAgLW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwgLS1tYW49 KiB8IC0tbWE9KiB8IC0tbT0qKQorKyAgICBtYW5kaXI9JGFjX29wdGFyZyA7OworKworKyAgLW5m cCB8IC0tbmZwIHwgLS1uZikKKysgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91dC1mcC4KKysg ICAgd2l0aF9mcD1ubyA7OworKworKyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1j cmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKKysgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1u KQorKyAgICBub19jcmVhdGU9eWVzIDs7CisrCisrICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1 cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKKysgIHwgLS1uby1yZWN1cnMg fCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQor KyAgICBub19yZWN1cnNpb249eWVzIDs7CisrCisrICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5j bHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1vbGRpbmNsdWRlZCBcCisrICB8IC0tb2xkaW5j bHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0tb2xkaW5jIFwK KysgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKKysgICAgYWNfcHJl dj1vbGRpbmNsdWRlZGlyIDs7CisrICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGly PSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKKysgIHwgLS1vbGRpbmNs dWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9s ZGluYz0qIFwKKysgIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwgLS1vbD0qIHwg LS1vPSopCisrICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXByZWZpeCB8 IC0tcHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0tcCkKKysgICAg YWNfcHJldj1wcmVmaXggOzsKKysgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSog fCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKKysgICAgcHJlZml4PSRhY19v cHRhcmcgOzsKKysKKysgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXBy b2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCisrICB8IC0tcHJvZ3JhbS1wcmUgfCAtLXBy b2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKKysgICAgYWNfcHJldj1wcm9ncmFtX3ByZWZpeCA7Owor KyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJl Zmk9KiBcCisrICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dy YW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCisrICAgIHByb2dyYW1fcHJlZml4PSRhY19vcHRhcmcg OzsKKysKKysgIC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0t c3VmZmkgfCAtLXByb2dyYW0tc3VmZiBcCisrICB8IC0tcHJvZ3JhbS1zdWYgfCAtLXByb2dyYW0t c3UgfCAtLXByb2dyYW0tcykKKysgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OworKyAgLXBy b2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBc CisrICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXByb2dyYW0tc3U9 KiB8IC0tcHJvZ3JhbS1zPSopCisrICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKKysK KysgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIFwK KysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwK KysgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAorKyAg fCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKKysgIHwgLS1wcm9n cmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKKysgIHwgLS1wcm9ncmFtLXRyYW5zIHwg LS1wcm9ncmFtLXRyYW4gXAorKyAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10ciB8IC0tcHJv Z3JhbS10KQorKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKKysgIC1wcm9n cmFtLXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiBcCisrICB8 IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hPSogXAor KyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAor KyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9KiBcCisrICB8 IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAorKyAgfCAtLXByb2dy YW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAorKyAgfCAtLXByb2dyLXRyYT0qIHwgLS1w cm9ncmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQorKyAgICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1l PSRhY19vcHRhcmcgOzsKKysKKysgIC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBk ZmQgfCAtLXBkZiB8IC0tcGQpCisrICAgIGFjX3ByZXY9cGRmZGlyIDs7CisrICAtcGRmZGlyPSog fCAtLXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwgLS1wZD0qKQor KyAgICBwZGZkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXBzZGlyIHwgLS1wc2RpciB8IC0tcHNk aSB8IC0tcHNkIHwgLS1wcykKKysgICAgYWNfcHJldj1wc2RpciA7OworKyAgLXBzZGlyPSogfCAt LXBzZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSogfCAtLXBzPSopCisrICAgIHBzZGlyPSRhY19v cHRhcmcgOzsKKysKKysgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwg LS1xdSB8IC0tcSBcCisrICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUg fCAtLXNpbCkKKysgICAgc2lsZW50PXllcyA7OworKworKyAgLXNiaW5kaXIgfCAtLXNiaW5kaXIg fCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCisrICAgIGFjX3By ZXY9c2JpbmRpciA7OworKyAgLXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1zYmluZGk9KiB8 IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKKysgIHwgLS1zYmk9KiB8IC0tc2I9KikKKysgICAgc2Jp bmRpcj0kYWNfb3B0YXJnIDs7CisrCisrICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRl ZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKKysgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0 YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAorKyAgfCAtLXNoYXJlZHN0IHwgLS1z aGFyZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwgLS1zaGFyIFwKKysgIHwgLS1zaGEgfCAtLXNo KQorKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7CisrICAtc2hhcmVkc3RhdGVkaXI9KiB8 IC0tc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaT0qIFwKKysgIHwgLS1zaGFyZWRz dGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1zaGFyZWRzdGE9 KiBcCisrICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hh cmU9KiB8IC0tc2hhcj0qIFwKKysgIHwgLS1zaGE9KiB8IC0tc2g9KikKKysgICAgc2hhcmVkc3Rh dGVkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNpdCkKKysgICAg YWNfcHJldj1zaXRlIDs7CisrICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQorKyAgICBz aXRlPSRhY19vcHRhcmcgOzsKKysKKysgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAt LXNyY2QgfCAtLXNyYyB8IC0tc3IpCisrICAgIGFjX3ByZXY9c3JjZGlyIDs7CisrICAtc3JjZGly PSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0qIHwgLS1zcj0q KQorKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OworKworKyAgLXN5c2NvbmZkaXIgfCAtLXN5c2Nv bmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAorKyAgfCAtLXN5 c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCisrICAgIGFjX3ByZXY9c3lz Y29uZmRpciA7OworKyAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwgLS1zeXNjb25m ZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKKysgIHwgLS1zeXNjb249KiB8IC0t c3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKKysgICAgc3lzY29uZmRpcj0k YWNfb3B0YXJnIDs7CisrCisrICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJn IHwgLS10YXIgfCAtLXRhIHwgLS10KQorKyAgICBhY19wcmV2PXRhcmdldF9hbGlhcyA7OworKyAg LXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwgLS10YXI9KiB8 IC0tdGE9KiB8IC0tdD0qKQorKyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OworKworKyAg LXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8IC0tdmVyYikK KysgICAgdmVyYm9zZT15ZXMgOzsKKysKKysgIC12ZXJzaW9uIHwgLS12ZXJzaW9uIHwgLS12ZXJz aW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCisrICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Cisr CisrICAtd2l0aC0qIHwgLS13aXRoLSopCisrICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0 aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCisrICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJl IG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKysgICAgZXhwciAieCRhY191c2Vyb3B0 IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKysgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiID4m MgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgICBhY191c2Vyb3B0X29yaWc9JGFj X3VzZXJvcHQKKysgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAn cy9bLSsuXS9fL2cnYAorKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KKysgICAgICAqIgorKyJ3 aXRoXyRhY191c2Vyb3B0IgorKyIqKSA7OworKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRz PSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0td2l0aC0kYWNfdXNl cm9wdF9vcmlnIgorKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKKysgICAgZXNhYworKyAg ICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKKysKKysgIC13aXRob3V0LSog fCAtLXdpdGhvdXQtKikKKysgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gt KndpdGhvdXQtXCguKlwpJ2AKKysgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlk IHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorKyAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14t Ky5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTogZXJyb3I6IGludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIgPiYyCisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAor KyAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18v ZydgCisrICAgIGNhc2UgJGFjX3VzZXJfb3B0cyBpbgorKyAgICAgICoiCisrIndpdGhfJGFjX3Vz ZXJvcHQiCisrIiopIDs7CisrICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJl Y29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29y aWciCisrCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OworKyAgICBlc2FjCisrICAgIGV2YWwg d2l0aF8kYWNfdXNlcm9wdD1ubyA7OworKworKyAgLS14KQorKyAgICAjIE9ic29sZXRlOyB1c2Ug LS13aXRoLXguCisrICAgIHdpdGhfeD15ZXMgOzsKKysKKysgIC14LWluY2x1ZGVzIHwgLS14LWlu Y2x1ZGVzIHwgLS14LWluY2x1ZGUgfCAtLXgtaW5jbHVkIHwgLS14LWluY2x1IFwKKysgIHwgLS14 LWluY2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCisrICAgIGFjX3ByZXY9eF9pbmNsdWRl cyA7OworKyAgLXgtaW5jbHVkZXM9KiB8IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8 IC0teC1pbmNsdWQ9KiB8IC0teC1pbmNsdT0qIFwKKysgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9 KiB8IC0teC1pbj0qIHwgLS14LWk9KikKKysgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7Cisr CisrICAteC1saWJyYXJpZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxp YnJhcmkgXAorKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGli IHwgLS14LWxpIHwgLS14LWwpCisrICAgIGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKKysgIC14LWxp YnJhcmllcz0qIHwgLS14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFy aT0qIFwKKysgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14 LWxpYj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQorKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJn IDs7CisrCisrICAtKikgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9w dGlvbjogJGFjX29wdGlvbgorK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u IiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgICAgOzsKKysKKysgICo9KikK KysgICAgYWNfZW52dmFyPWBleHByICJ4JGFjX29wdGlvbiIgOiAneFwoW149XSpcKT0nYAorKyAg ICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMu CisrICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251 bGwgJiYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHZhcmlhYmxl IG5hbWU6ICRhY19lbnZ2YXIiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAg ICBldmFsICRhY19lbnZ2YXI9XCRhY19vcHRhcmcKKysgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsK KysKKysgICopCisrICAgICMgRklYTUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMu MC4KKysgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWls ZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCisrICAgIGV4cHIgIngkYWNfb3B0aW9uIiA6ICIuKlte LS5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorKyAgICAgICRhc19lY2hvICIkYXNfbWU6 IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKKysgICAgOiAke2J1 aWxkX2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9h bGlhcz0kYWNfb3B0aW9ufQorKyAgICA7OworKworKyAgZXNhYworIGRvbmUKKyAKKy1pZiBbICR0 Y2xfZm91bmQgLWVxIDAgXQorLXRoZW4KKy0gICAgICAgIGVjaG8gJ05PVCBmb3VuZC4nCistICAg ICAgICBlY2hvICdJcyB0aGUgVGNsIGluc3RhbGxlZD8nCistICAgICAgICBleGl0CisraWYgdGVz dCAtbiAiJGFjX3ByZXYiOyB0aGVuCisrICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNl ZCAncy9fLy0vZydgCisrICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBtaXNzaW5nIGFyZ3Vt ZW50IHRvICRhY19vcHRpb24iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2Zp CisrCisraWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgorKyAgY2FzZSAk ZW5hYmxlX29wdGlvbl9jaGVja2luZyBpbgorKyAgICBubykgOzsKKysgICAgZmF0YWwpIHsgJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25p emVkX29wdHMiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKyAgICAqKSAg ICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191 bnJlY29nbml6ZWRfb3B0cyIgPiYyIDs7CisrICBlc2FjCisrZmkKKysKKysjIENoZWNrIGFsbCBk aXJlY3RvcnkgYXJndW1lbnRzIGZvciBjb25zaXN0ZW5jeS4KKytmb3IgYWNfdmFyIGluCWV4ZWNf cHJlZml4IHByZWZpeCBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFyb290ZGlyIFwKKysJ CWRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGluY2x1ZGVk aXIgXAorKwkJb2xkaW5jbHVkZWRpciBkb2NkaXIgaW5mb2RpciBodG1sZGlyIGR2aWRpciBwZGZk aXIgcHNkaXIgXAorKwkJbGliZGlyIGxvY2FsZWRpciBtYW5kaXIKKytkbworKyAgZXZhbCBhY192 YWw9XCQkYWNfdmFyCisrICAjIFJlbW92ZSB0cmFpbGluZyBzbGFzaGVzLgorKyAgY2FzZSAkYWNf dmFsIGluCisrICAgICovICkKKysgICAgICBhY192YWw9YGV4cHIgIlgkYWNfdmFsIiA6ICdYXCgu KlteL11cKScgXHwgIlgkYWNfdmFsIiA6ICdYXCguKlwpJ2AKKysgICAgICBldmFsICRhY192YXI9 XCRhY192YWw7OworKyAgZXNhYworKyAgIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgZGlyZWN0 b3J5IG5hbWVzLgorKyAgY2FzZSAkYWNfdmFsIGluCisrICAgIFtcXC8kXSogfCA/OltcXC9dKiAp ICBjb250aW51ZTs7CisrICAgIE5PTkUgfCAnJyApIGNhc2UgJGFjX3ZhciBpbiAqcHJlZml4ICkg Y29udGludWU7OyBlc2FjOzsKKysgIGVzYWMKKysgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192 YWwiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2RvbmUKKysKKysjIFRoZXJl IG1pZ2h0IGJlIHBlb3BsZSB3aG8gZGVwZW5kIG9uIHRoZSBvbGQgYnJva2VuIGJlaGF2aW9yOiBg JGhvc3QnCisrIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCisrIyBG SVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgorK2J1aWxkPSRidWlsZF9hbGlhcworK2hvc3Q9JGhv c3RfYWxpYXMKKyt0YXJnZXQ9JHRhcmdldF9hbGlhcworKworKyMgRklYTUU6IFRvIHJlbW92ZSBz b21lIGRheS4KKytpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KKysgIGlmIHRlc3Qg IngkYnVpbGRfYWxpYXMiID0geDsgdGhlbgorKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKKysg ICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0t YnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KKysgICAgSWYgYSBjcm9zcyBjb21waWxlciBp cyBkZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKKysg IGVsaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KKysgICAg Y3Jvc3NfY29tcGlsaW5nPXllcworKyAgZmkKKytmaQorKworK2FjX3Rvb2xfcHJlZml4PQorK3Rl c3QgLW4gIiRob3N0X2FsaWFzIiAmJiBhY190b29sX3ByZWZpeD0kaG9zdF9hbGlhcy0KKysKKyt0 ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCisrCisrCisrYWNfcHdkPWBw d2RgICYmIHRlc3QgLW4gIiRhY19wd2QiICYmCisrYWNfbHNfZGk9YGxzIC1kaSAuYCAmJgorK2Fj X3B3ZF9sc19kaT1gY2QgIiRhY19wd2QiICYmIGxzIC1kaSAuYCB8fAorKyAgeyAkYXNfZWNobyAi JGFzX21lOiBlcnJvcjogd29ya2luZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiID4m MgorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK3Rlc3QgIlgkYWNfbHNfZGkiID0gIlgk YWNfcHdkX2xzX2RpIiB8fAorKyAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogcHdkIGRvZXMg bm90IHJlcG9ydCBuYW1lIG9mIHdvcmtpbmcgZGlyZWN0b3J5IiA+JjIKKysgICB7IChleGl0IDEp OyBleGl0IDE7IH07IH0KKysKKysKKysjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRp b24gd2FzIG5vdCBzcGVjaWZpZWQuCisraWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KKysgIGFj X3NyY2Rpcl9kZWZhdWx0ZWQ9eWVzCisrICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcg dGhpcyBzY3JpcHQsIHRoZW4gdGhlIHBhcmVudCBkaXJlY3RvcnkuCisrICBhY19jb25mZGlyPWAk YXNfZGlybmFtZSAtLSAiJGFzX215c2VsZiIgfHwKKyskYXNfZXhwciBYIiRhc19teXNlbGYiIDog J1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hc KC8vXClbXi9dJyBcfCBcCisrCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBY IiRhc19teXNlbGYiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgi JGFzX215c2VsZiIgfAorKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQv eworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sK KysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKSQveworKwkgICAg cy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLwor KwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AKKysgIHNyY2Rpcj0kYWNfY29uZmRpcgor KyAgaWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KKysgICAgc3Jj ZGlyPS4uCisrICBmaQorK2Vsc2UKKysgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KKytmaQorK2lm IHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCisrICB0ZXN0ICIkYWNf c3JjZGlyX2RlZmF1bHRlZCIgPSB5ZXMgJiYgc3JjZGlyPSIkYWNfY29uZmRpciBvciAuLiIKKysg IHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIHNvdXJjZXMgKCRhY191bmlx dWVfZmlsZSkgaW4gJHNyY2RpciIgPiYyCisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Cisr ZmkKKythY19tc2c9InNvdXJjZXMgYXJlIGluICRzcmNkaXIsIGJ1dCBcYGNkICRzcmNkaXInIGRv ZXMgbm90IHdvcmsiCisrYWNfYWJzX2NvbmZkaXI9YCgKKysJY2QgIiRzcmNkaXIiICYmIHRlc3Qg LXIgIi4vJGFjX3VuaXF1ZV9maWxlIiB8fCB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkYWNf bXNnIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysJcHdkKWAKKysjIFdoZW4g YnVpbGRpbmcgaW4gcGxhY2UsIHNldCBzcmNkaXI9LgorK2lmIHRlc3QgIiRhY19hYnNfY29uZmRp ciIgPSAiJGFjX3B3ZCI7IHRoZW4KKysgIHNyY2Rpcj0uCisrZmkKKysjIFJlbW92ZSB1bm5lY2Vz c2FyeSB0cmFpbGluZyBzbGFzaGVzIGZyb20gc3JjZGlyLgorKyMgRG91YmxlIHNsYXNoZXMgaW4g ZmlsZSBuYW1lcyBpbiBvYmplY3QgZmlsZSBkZWJ1Z2dpbmcgaW5mbworKyMgbWVzcyB1cCBNLXgg Z2RiIGluIEVtYWNzLgorK2Nhc2UgJHNyY2RpciBpbgorKyovKSBzcmNkaXI9YGV4cHIgIlgkc3Jj ZGlyIiA6ICdYXCguKlteL11cKScgXHwgIlgkc3JjZGlyIiA6ICdYXCguKlwpJ2A7OworK2VzYWMK Kytmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbworKyAgZXZhbCBhY19lbnZfJHth Y192YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQorKyAgZXZhbCBhY19lbnZfJHthY192YXJ9X3Zh bHVlPVwkJHthY192YXJ9CisrICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNf dmFyfStzZXR9CisrICBldmFsIGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWU9XCQke2FjX3Zhcn0K Kytkb25lCisrCisrIworKyMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KKysjCisraWYgdGVz dCAiJGFjX2luaXRfaGVscCIgPSAibG9uZyI7IHRoZW4KKysgICMgT21pdCBzb21lIGludGVybmFs IG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgorKyAg IyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4x IHNoLgorKyAgY2F0IDw8X0FDRU9GCisrXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgU09DSSAzLjAu MCB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCisrCisrVXNhZ2U6ICQwIFtPUFRJ T05dLi4uIFtWQVI9VkFMVUVdLi4uCisrCisrVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxl cyAoZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBhcworK1ZBUj1WQUxVRS4gIFNl ZSBiZWxvdyBmb3IgZGVzY3JpcHRpb25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMu CisrCisrRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMu CisrCisrQ29uZmlndXJhdGlvbjoKKysgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkg dGhpcyBoZWxwIGFuZCBleGl0CisrICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9w dGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCisrICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAg ICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKKysg IC1WLCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQg ZXhpdAorKyAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcu Li4nIG1lc3NhZ2VzCisrICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3Vs dHMgaW4gRklMRSBbZGlzYWJsZWRdCisrICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBm b3IgXGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJworKyAgLW4sIC0tbm8tY3JlYXRlICAgICAg ICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKKysgICAgICAtLXNyY2Rpcj1ESVIgICAgICAg IGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQorKworK0lu c3RhbGxhdGlvbiBkaXJlY3RvcmllczoKKysgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3Rh bGwgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KKysgIC0tZXhlYy1wcmVmaXg9RVBS RUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCisr ICAgICAgICAgICAgICAgICAgICAgICAgICBbUFJFRklYXQorKworK0J5IGRlZmF1bHQsIFxgbWFr ZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgorK1xgJGFjX2RlZmF1bHRf cHJlZml4L2JpbicsIFxgJGFjX2RlZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVj aWZ5CisrYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIFxgJGFjX2RlZmF1bHRfcHJl Zml4JyB1c2luZyBcYC0tcHJlZml4JywKKytmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUn LgorKworK0ZvciBiZXR0ZXIgY29udHJvbCwgdXNlIHRoZSBvcHRpb25zIGJlbG93LgorKworK0Zp bmUgdHVuaW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6CisrICAtLWJpbmRpcj1E SVIgICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KKysgIC0tc2JpbmRp cj1ESVIgICAgICAgICAgIHN5c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQor KyAgLS1saWJleGVjZGlyPURJUiAgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9s aWJleGVjXQorKyAgLS1zeXNjb25mZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNo aW5lIGRhdGEgW1BSRUZJWC9ldGNdCisrICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlh YmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQorKyAgLS1sb2Nh bHN0YXRlZGlyPURJUiAgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgv dmFyXQorKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtF UFJFRklYL2xpYl0KKysgIC0taW5jbHVkZWRpcj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQ UkVGSVgvaW5jbHVkZV0KKysgIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgIEMgaGVhZGVyIGZpbGVz IGZvciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCisrICAtLWRhdGFyb290ZGlyPURJUiAgICAgICBy ZWFkLW9ubHkgYXJjaC4taW5kZXBlbmRlbnQgZGF0YSByb290IFtQUkVGSVgvc2hhcmVdCisrICAt LWRhdGFkaXI9RElSICAgICAgICAgICByZWFkLW9ubHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50 IGRhdGEgW0RBVEFST09URElSXQorKyAgLS1pbmZvZGlyPURJUiAgICAgICAgICAgaW5mbyBkb2N1 bWVudGF0aW9uIFtEQVRBUk9PVERJUi9pbmZvXQorKyAgLS1sb2NhbGVkaXI9RElSICAgICAgICAg bG9jYWxlLWRlcGVuZGVudCBkYXRhIFtEQVRBUk9PVERJUi9sb2NhbGVdCisrICAtLW1hbmRpcj1E SVIgICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvbWFuXQorKyAgLS1k b2NkaXI9RElSICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiByb290IFtEQVRBUk9PVERJUi9kb2Mv c29jaV0KKysgIC0taHRtbGRpcj1ESVIgICAgICAgICAgIGh0bWwgZG9jdW1lbnRhdGlvbiBbRE9D RElSXQorKyAgLS1kdmlkaXI9RElSICAgICAgICAgICAgZHZpIGRvY3VtZW50YXRpb24gW0RPQ0RJ Ul0KKysgIC0tcGRmZGlyPURJUiAgICAgICAgICAgIHBkZiBkb2N1bWVudGF0aW9uIFtET0NESVJd CisrICAtLXBzZGlyPURJUiAgICAgICAgICAgICBwcyBkb2N1bWVudGF0aW9uIFtET0NESVJdCisr X0FDRU9GCisrCisrICBjYXQgPDxcX0FDRU9GCisrCisrUHJvZ3JhbSBuYW1lczoKKysgIC0tcHJv Z3JhbS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVk IHByb2dyYW0gbmFtZXMKKysgIC0tcHJvZ3JhbS1zdWZmaXg9U1VGRklYICAgICAgICAgICAgYXBw ZW5kIFNVRkZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcworKyAgLS1wcm9ncmFtLXRyYW5z Zm9ybS1uYW1lPVBST0dSQU0gICBydW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0g bmFtZXMKKysKKytTeXN0ZW0gdHlwZXM6CisrICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUg Zm9yIGJ1aWxkaW5nIG9uIEJVSUxEIFtndWVzc2VkXQorKyAgLS1ob3N0PUhPU1QgICAgICAgY3Jv c3MtY29tcGlsZSB0byBidWlsZCBwcm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCisrX0FD RU9GCisrZmkKKysKKytpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgorKyAgY2FzZSAk YWNfaW5pdF9oZWxwIGluCisrICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3Vy YXRpb24gb2YgU09DSSAzLjAuMDoiOzsKKysgICBlc2FjCisrICBjYXQgPDxcX0FDRU9GCisrCisr T3B0aW9uYWwgRmVhdHVyZXM6CisrICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUg dW5yZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBvcHRpb25zCisrICAtLWRpc2FibGUtRkVBVFVS RSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9 bm8pCisrICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNd CisrICAtLWVuYWJsZS1zaGFyZWRbPVBLR1NdICBidWlsZCBzaGFyZWQgbGlicmFyaWVzIFtkZWZh dWx0PW5vXQorKyAgLS1lbmFibGUtc3RhdGljWz1QS0dTXSAgYnVpbGQgc3RhdGljIGxpYnJhcmll cyBbZGVmYXVsdD15ZXNdCisrICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRz IHVwIG9uZS10aW1lIGJ1aWxkCisrICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8g bm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9ycworKyAgLS1lbmFibGUtZmFzdC1p bnN0YWxsWz1QS0dTXQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemUgZm9yIGZh c3QgaW5zdGFsbGF0aW9uIFtkZWZhdWx0PXllc10KKysgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sg IGF2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKKysgIC0tZW5hYmxl LWV4Y2VwdGlvbnMgICAgIGVuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbQorKyAg LS1kaXNhYmxlLWluZm8tZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEluZm8gZG9jdW1lbnRhdGlv bgorKyAgLS1kaXNhYmxlLWh0bWwtZG9jICAgICAgZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1l bnRhdGlvbgorKyAgLS1lbmFibGUtYnVycmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAg ICAgICAgICBpbmNsdWRlIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZQor KyAgLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmNsdWRlIE15U1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5CisrICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmUKKysgIC0tZW5hYmxlLXBvc3RncmVzcWwtYnVy cmllZC1oZWFkZXJzCisrICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIFBvc3RHcmVT UUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdHVyZQorKyAgLS1lbmFibGUtYmFja2VuZC1teXNxbCAgYnVpbGQtaW4gTXlTUUwg YmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQorKyAgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUg YnVpbGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KKysgIC0tZW5hYmxl LWJhY2tlbmQtcG9zdGdyZXNxbAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQtaW4g UG9zdGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCisrCisrT3B0aW9uYWwgUGFj a2FnZXM6CisrICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10K KysgIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAt LXdpdGgtUEFDS0FHRT1ubykKKysgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXgg d2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKQorKyAgLS13aXRoLWNwcHVuaXQt ZXhlYy1wcmVmaXg9UEZYICBFeGVjIHByZWZpeCB3aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAo b3B0aW9uYWwpCisrICAtLXdpdGgtcGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElD L25vbi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGJvdGhdCisrICAtLXdpdGgtZ251LWxkICAgICAgICAgICBhc3N1bWUgdGhlIEMgY29tcGlsZXIg dXNlcyBHTlUgbGQgW2RlZmF1bHQ9bm9dCisrICAtLXdpdGgtZG9jZGlyPURJUiAgICAgICBzZXQg ZG9jdW1lbnRhdGlvbiBkaXJlY3RvcnkgdG8gRElSCisrICAtLXdpdGgtYm9vc3Q9RElSICAgICAg ICB1c2UgYm9vc3QgKGRlZmF1bHQgaXMgTk8pICwgc3BlY2lmeSB0aGUgcm9vdAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5IGZvciBib29zdCBsaWJyYXJ5IChvcHRpb25hbCkK KysgIC0td2l0aC1teXNxbD08cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwg aW5zdGFsbGF0aW9uCisrICAtLXdpdGgtbXlzcWwtbGliPTxwYXRoPiBkaXJlY3RvcnkgcGF0aCBv ZiBNeVNRTCBsaWJyYXJ5IGluc3RhbGxhdGlvbgorKyAgLS13aXRoLW15c3FsLWluY2x1ZGU9PHBh dGg+IGRpcmVjdG9yeSBwYXRoIG9mIE15U1FMIGhlYWRlciBpbnN0YWxsYXRpb24KKysgIC0td2l0 aC1vcmFjbGU9W0RJUl0gICAgIHVzZSBPcmFjbGUgT0NJIEFQSSBmcm9tIGdpdmVuIHBhdGggdG8g T3JhY2xlIGhvbWUKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeQorKyAgLS13 aXRoLW9yYWNsZS1pbmNsdWRlPVtESVJdCisrICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Ug T3JhY2xlIE9DSSBBUEkgaGVhZGVycyBmcm9tIGdpdmVuIHBhdGgKKysgIC0td2l0aC1vcmFjbGUt bGliPVtESVJdIHVzZSBPcmFjbGUgT0NJIEFQSSBsaWJyYXJpZXMgZnJvbSBnaXZlbiBwYXRoCisr ICAtLXdpdGgtcG9zdGdyZXNxbD1bQVJHXSB1c2UgUG9zdGdyZVNRTCBsaWJyYXJ5IFtkZWZhdWx0 PXllc10sIG9wdGlvbmFsbHkKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgcGF0 aCB0byBwZ19jb25maWcKKysKKytTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxl czoKKysgIENYWCAgICAgICAgIEMrKyBjb21waWxlciBjb21tYW5kCisrICBDWFhGTEFHUyAgICBD KysgY29tcGlsZXIgZmxhZ3MKKysgIExERkxBR1MgICAgIGxpbmtlciBmbGFncywgZS5nLiAtTDxs aWIgZGlyPiBpZiB5b3UgaGF2ZSBsaWJyYXJpZXMgaW4gYQorKyAgICAgICAgICAgICAgbm9uc3Rh bmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgorKyAgTElCUyAgICAgICAgbGlicmFyaWVzIHRvIHBh c3MgdG8gdGhlIGxpbmtlciwgZS5nLiAtbDxsaWJyYXJ5PgorKyAgQ1BQRkxBR1MgICAgQy9DKysv T2JqZWN0aXZlIEMgcHJlcHJvY2Vzc29yIGZsYWdzLCBlLmcuIC1JPGluY2x1ZGUgZGlyPiBpZgor KyAgICAgICAgICAgICAgeW91IGhhdmUgaGVhZGVycyBpbiBhIG5vbnN0YW5kYXJkIGRpcmVjdG9y eSA8aW5jbHVkZSBkaXI+CisrICBDWFhDUFAgICAgICBDKysgcHJlcHJvY2Vzc29yCisrICBDQyAg ICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKKysgIENGTEFHUyAgICAgIEMgY29tcGlsZXIgZmxh Z3MKKysgIENQUCAgICAgICAgIEMgcHJlcHJvY2Vzc29yCisrCisrVXNlIHRoZXNlIHZhcmlhYmxl cyB0byBvdmVycmlkZSB0aGUgY2hvaWNlcyBtYWRlIGJ5IGBjb25maWd1cmUnIG9yIHRvIGhlbHAK KytpdCB0byBmaW5kIGxpYnJhcmllcyBhbmQgcHJvZ3JhbXMgd2l0aCBub25zdGFuZGFyZCBuYW1l cy9sb2NhdGlvbnMuCisrCisrUmVwb3J0IGJ1Z3MgdG8gPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZv cmdlLm5ldD4uCisrX0FDRU9GCisrYWNfc3RhdHVzPSQ/CisrZmkKKysKKytpZiB0ZXN0ICIkYWNf aW5pdF9oZWxwIiA9ICJyZWN1cnNpdmUiOyB0aGVuCisrICAjIElmIHRoZXJlIGFyZSBzdWJkaXJz LCByZXBvcnQgdGhlaXIgc3BlY2lmaWMgLS1oZWxwLgorKyAgZm9yIGFjX2RpciBpbiA6ICRhY19z dWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19kaXIiID0geDogJiYgY29udGludWUKKysgICAgdGVz dCAtZCAiJGFjX2RpciIgfHwKKysgICAgICB7IGNkICIkc3JjZGlyIiAmJiBhY19wd2Q9YHB3ZGAg JiYgc3JjZGlyPS4gJiYgdGVzdCAtZCAiJGFjX2RpciI7IH0gfHwKKysgICAgICBjb250aW51ZQor KyAgICBhY19idWlsZGRpcj0uCisrCisrY2FzZSAiJGFjX2RpciIgaW4KKysuKSBhY19kaXJfc3Vm Zml4PSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKKysqKQor KyAgYWNfZGlyX3N1ZmZpeD0vYCRhc19lY2hvICIkYWNfZGlyIiB8IHNlZCAnc3xeXC5bXFwvXXx8 J2AKKysgICMgQSAiLi4iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KKysg IGFjX3RvcF9idWlsZGRpcl9zdWI9YCRhc19lY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3N8 L1teXFwvXSp8Ly4ufGc7c3wvfHwnYAorKyAgY2FzZSAkYWNfdG9wX2J1aWxkZGlyX3N1YiBpbgor KyAgIiIpIGFjX3RvcF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OworKyAg KikgIGFjX3RvcF9idWlsZF9wcmVmaXg9JGFjX3RvcF9idWlsZGRpcl9zdWIvIDs7CisrICBlc2Fj IDs7CisrZXNhYworK2FjX2Fic190b3BfYnVpbGRkaXI9JGFjX3B3ZAorK2FjX2Fic19idWlsZGRp cj0kYWNfcHdkJGFjX2Rpcl9zdWZmaXgKKysjIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ogor K2FjX3RvcF9idWlsZGRpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeAorKworK2Nhc2UgJHNyY2RpciBp bgorKyAgLikgICMgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgorKyAgICBhY19zcmNkaXI9Lgor KyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXJfc3ViCisrICAgIGFjX2Fic190b3Bf c3JjZGlyPSRhY19wd2QgOzsKKysgIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgbmFt ZS4KKysgICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKKysgICAgYWNfdG9wX3Ny Y2Rpcj0kc3JjZGlyCisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKKysgICopICMg UmVsYXRpdmUgbmFtZS4KKysgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2Rp ciRhY19kaXJfc3VmZml4CisrICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgk c3JjZGlyCisrICAgIGFjX2Fic190b3Bfc3JjZGlyPSRhY19wd2QvJHNyY2RpciA7OworK2VzYWMK KythY19hYnNfc3JjZGlyPSRhY19hYnNfdG9wX3NyY2RpciRhY19kaXJfc3VmZml4CisrCisrICAg IGNkICIkYWNfZGlyIiB8fCB7IGFjX3N0YXR1cz0kPzsgY29udGludWU7IH0KKysgICAgIyBDaGVj ayBmb3IgZ3Vlc3RlZCBjb25maWd1cmUuCisrICAgIGlmIHRlc3QgLWYgIiRhY19zcmNkaXIvY29u ZmlndXJlLmdudSI7IHRoZW4KKysgICAgICBlY2hvICYmCisrICAgICAgJFNIRUxMICIkYWNfc3Jj ZGlyL2NvbmZpZ3VyZS5nbnUiIC0taGVscD1yZWN1cnNpdmUKKysgICAgZWxpZiB0ZXN0IC1mICIk YWNfc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKysgICAgICBlY2hvICYmCisrICAgICAgJFNIRUxM ICIkYWNfc3JjZGlyL2NvbmZpZ3VyZSIgLS1oZWxwPXJlY3Vyc2l2ZQorKyAgICBlbHNlCisrICAg ICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogbm8gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlv biBpcyBpbiAkYWNfZGlyIiA+JjIKKysgICAgZmkgfHwgYWNfc3RhdHVzPSQ/CisrICAgIGNkICIk YWNfcHdkIiB8fCB7IGFjX3N0YXR1cz0kPzsgYnJlYWs7IH0KKysgIGRvbmUKKytmaQorKworK3Rl c3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgJGFjX3N0YXR1cworK2lmICRhY19pbml0X3Zl cnNpb247IHRoZW4KKysgIGNhdCA8PFxfQUNFT0YKKytTT0NJIGNvbmZpZ3VyZSAzLjAuMAorK2dl bmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42MworKworK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5 MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKKysyMDAyLCAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorK1RoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwg ZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorKworK0NvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1h Y2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrX0FDRU9GCisr ICBleGl0CisgZmkKKytjYXQgPmNvbmZpZy5sb2cgPDxfQUNFT0YKKytUaGlzIGZpbGUgY29udGFp bnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQorK3J1bm5pbmcgY29u ZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCisr CisrSXQgd2FzIGNyZWF0ZWQgYnkgU09DSSAkYXNfbWUgMy4wLjAsIHdoaWNoIHdhcworK2dlbmVy YXRlZCBieSBHTlUgQXV0b2NvbmYgMi42My4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwor KworKyAgJCAkMCAkQAorKworK19BQ0VPRgorK2V4ZWMgNT4+Y29uZmlnLmxvZworK3sKKytjYXQg PDxfQVNVTkFNRQorKyMjIC0tLS0tLS0tLSAjIworKyMjIFBsYXRmb3JtLiAjIworKyMjIC0tLS0t LS0tLSAjIworKworK2hvc3RuYW1lID0gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251 bGwgfCBzZWQgMXFgCisrdW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hv IHVua25vd25gCisrdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVu a25vd25gCisrdW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25v d25gCisrdW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25g CisrCisrL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVs bCB8fCBlY2hvIHVua25vd25gCisrL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUgLVgp IDI+L2Rldi9udWxsICAgICB8fCBlY2hvIHVua25vd25gCisrCisrL2Jpbi9hcmNoICAgICAgICAg ICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbCAgICAgICAgICAgICAgfHwgZWNobyB1bmtu b3duYAorKy91c3IvYmluL2FyY2ggLWsgICAgICAgPSBgKC91c3IvYmluL2FyY2ggLWspIDI+L2Rl di9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0g YCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisr L3Vzci9iaW4vaG9zdGluZm8gICAgICA9IGAoL3Vzci9iaW4vaG9zdGluZm8pIDI+L2Rldi9udWxs ICAgICAgfHwgZWNobyB1bmtub3duYAorKy9iaW4vbWFjaGluZSAgICAgICAgICAgPSBgKC9iaW4v bWFjaGluZSkgMj4vZGV2L251bGwgICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKKysvdXNyL2Jp bi9vc2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xldmVsKSAyPi9kZXYvbnVsbCAgICAgICB8 fCBlY2hvIHVua25vd25gCisrL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IGAoL2Jpbi91bml2ZXJz ZSkgMj4vZGV2L251bGwgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorKworK19BU1VOQU1FCisr CisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4g JFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKysgICRhc19lY2hvICJQQVRIOiAkYXNfZGlyIgorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrfSA+JjUKKysKKytjYXQgPiY1IDw8X0FDRU9GCisrCisrCisrIyMgLS0tLS0t LS0tLS0gIyMKKysjIyBDb3JlIHRlc3RzLiAjIworKyMjIC0tLS0tLS0tLS0tICMjCisrCisrX0FD RU9GCisrCisrCisrIyBLZWVwIGEgdHJhY2Ugb2YgdGhlIGNvbW1hbmQgbGluZS4KKysjIFN0cmlw IG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28gdGhleSBkbyBub3QgcGlsZSB1 cC4KKysjIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVjb3Jk IGl0IGZvciBmdXR1cmUgcnVucy4KKysjIEFsc28gcXVvdGUgYW55IGFyZ3MgY29udGFpbmluZyBz aGVsbCBtZXRhLWNoYXJhY3RlcnMuCisrIyBNYWtlIHR3byBwYXNzZXMgdG8gYWxsb3cgZm9yIHBy b3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Npb24uCisrYWNfY29uZmlndXJlX2FyZ3M9 CisrYWNfY29uZmlndXJlX2FyZ3MwPQorK2FjX2NvbmZpZ3VyZV9hcmdzMT0KKythY19tdXN0X2tl ZXBfbmV4dD1mYWxzZQorK2ZvciBhY19wYXNzIGluIDEgMgorK2RvCisrICBmb3IgYWNfYXJnCisr ICBkbworKyAgICBjYXNlICRhY19hcmcgaW4KKysgICAgLW5vLWNyZWF0ZSB8IC0tbm8tYyogfCAt biB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250aW51ZSA7OworKyAgICAtcSB8IC1xdWll dCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorKyAgICB8IC1zaWxl bnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKKysgICAgICBjb250aW51 ZSA7OworKyAgICAqXCcqKQorKyAgICAgIGFjX2FyZz1gJGFzX2VjaG8gIiRhY19hcmciIHwgc2Vk ICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisrICAgIGVzYWMKKysgICAgY2FzZSAkYWNfcGFzcyBp bgorKyAgICAxKSBhY19jb25maWd1cmVfYXJnczA9IiRhY19jb25maWd1cmVfYXJnczAgJyRhY19h cmcnIiA7OworKyAgICAyKQorKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzMT0iJGFjX2NvbmZpZ3Vy ZV9hcmdzMSAnJGFjX2FyZyciCisrICAgICAgaWYgdGVzdCAkYWNfbXVzdF9rZWVwX25leHQgPSB0 cnVlOyB0aGVuCisrCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNlICMgR290IHZhbHVlLCBiYWNrIHRv IG5vcm1hbC4KKysgICAgICBlbHNlCisrCWNhc2UgJGFjX2FyZyBpbgorKwkgICo9KiB8IC0tY29u ZmlnLWNhY2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSogXAorKwkgIHwgLWVuYWJs ZS0qIHwgLS1lbmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8IC0tbmYqIFwKKysJICB8IC1x IHwgLXF1aWV0IHwgLS1xKiB8IC1zaWxlbnQgfCAtLXNpbCogfCAtdiB8IC12ZXJiKiBcCisrCSAg fCAtd2l0aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0LSogfCAtLXgpCisr CSAgICBjYXNlICIkYWNfY29uZmlndXJlX2FyZ3MwICIgaW4KKysJICAgICAgIiRhY19jb25maWd1 cmVfYXJnczEiKiIgJyRhY19hcmcnICIqICkgY29udGludWUgOzsKKysJICAgIGVzYWMKKysJICAg IDs7CisrCSAgLSogKSBhY19tdXN0X2tlZXBfbmV4dD10cnVlIDs7CisrCWVzYWMKKysgICAgICBm aQorKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcn IgorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKytkb25lCisrJGFzX3Vuc2V0IGFjX2Nv bmZpZ3VyZV9hcmdzMCB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdzMCtzZXR9IiAhPSBzZXQg fHwgeyBhY19jb25maWd1cmVfYXJnczA9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MwOyB9Cisr JGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMSB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdz MStzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczE9OyBleHBvcnQgYWNfY29uZmln dXJlX2FyZ3MxOyB9CisrCisrIyBXaGVuIGludGVycnVwdGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0 ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQorKyMgY29uZmlnLmxvZy4gIFdlIHJlbW92ZSBj b21tZW50cyBiZWNhdXNlIGFueXdheSB0aGUgcXVvdGVzIGluIHRoZXJlCisrIyB3b3VsZCBjYXVz ZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCisrIyBXQVJOSU5HOiBVc2UgJ1wnJyB0byByZXByZXNl bnQgYW4gYXBvc3Ryb3BoZSB3aXRoaW4gdGhlIHRyYXAuCisrIyBXQVJOSU5HOiBEbyBub3Qgc3Rh cnQgdGhlIHRyYXAgY29kZSB3aXRoIGEgbmV3bGluZSwgZHVlIHRvIGEgRnJlZUJTRCA0LjAgYnVn LgorK3RyYXAgJ2V4aXRfc3RhdHVzPSQ/CisrICAjIFNhdmUgaW50byBjb25maWcubG9nIHNvbWUg aW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZy4KKysgIHsKKysgICAgZWNo bworKworKyAgICBjYXQgPDxcX0FTQk9YCisrIyMgLS0tLS0tLS0tLS0tLS0tLSAjIworKyMjIENh Y2hlIHZhcmlhYmxlcy4gIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTQk9YCisrICAg IGVjaG8KKysgICAgIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNo YW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKKysoCisrICBmb3IgYWNfdmFyIGluIGAoc2V0KSAy PiYxIHwgc2VkIC1uICdcJydzL15cKFthLXpBLVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ1wn J2A7IGRvCisrICAgIGV2YWwgYWNfdmFsPVwkJGFjX3ZhcgorKyAgICBjYXNlICRhY192YWwgaW4g IygKKysgICAgKiR7YXNfbmx9KikKKysgICAgICBjYXNlICRhY192YXIgaW4gIygKKysgICAgICAq X2N2XyopIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJs ZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlucyBhIG5ld2xpbmUiID4mMjt9IDs7 CisrICAgICAgZXNhYworKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgIF8gfCBJRlMg fCBhc19ubCkgOzsgIygKKysgICAgICBCQVNIX0FSR1YgfCBCQVNIX1NPVVJDRSkgZXZhbCAkYWNf dmFyPSA7OyAjKAorKyAgICAgICopICRhc191bnNldCAkYWNfdmFyIDs7CisrICAgICAgZXNhYyA7 OworKyAgICBlc2FjCisrICBkb25lCisrICAoc2V0KSAyPiYxIHwKKysgICAgY2FzZSAkYXNfbmxg KGFjX3NwYWNlPSdcJycgJ1wnJzsgc2V0KSAyPiYxYCBpbiAjKAorKyAgICAqJHthc19ubH1hY19z cGFjZT1cICopCisrICAgICAgc2VkIC1uIFwKKysJInMvJ1wnJy8nXCcnXFxcXCdcJycnXCcnL2c7 CisrCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4q XFwpL1xcMT0nXCcnXFwyJ1wnJy9wIgorKyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAgc2Vk IC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKj0vcCIKKysgICAgICA7 OworKyAgICBlc2FjIHwKKysgICAgc29ydAorKykKKysgICAgZWNobworKworKyAgICBjYXQgPDxc X0FTQk9YCisrIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBPdXRwdXQgdmFyaWFibGVzLiAj IworKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisrX0FTQk9YCisrICAgIGVjaG8KKysgICAgZm9y IGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycworKyAgICBkbworKyAgICAgIGV2YWwgYWNfdmFsPVwk JGFjX3ZhcgorKyAgICAgIGNhc2UgJGFjX3ZhbCBpbgorKyAgICAgICpcJ1wnJyopIGFjX3ZhbD1g JGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydcJycvZyJg OzsKKysgICAgICBlc2FjCisrICAgICAgJGFzX2VjaG8gIiRhY192YXI9J1wnJyRhY192YWwnXCcn IgorKyAgICBkb25lIHwgc29ydAorKyAgICBlY2hvCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY19z dWJzdF9maWxlcyI7IHRoZW4KKysgICAgICBjYXQgPDxcX0FTQk9YCisrIyMgLS0tLS0tLS0tLS0t LS0tLS0tLSAjIworKyMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMKKysjIyAtLS0tLS0tLS0tLS0t LS0tLS0tICMjCisrX0FTQk9YCisrICAgICAgZWNobworKyAgICAgIGZvciBhY192YXIgaW4gJGFj X3N1YnN0X2ZpbGVzCisrICAgICAgZG8KKysJZXZhbCBhY192YWw9XCQkYWNfdmFyCisrCWNhc2Ug JGFjX3ZhbCBpbgorKwkqXCdcJycqKSBhY192YWw9YCRhc19lY2hvICIkYWNfdmFsIiB8IHNlZCAi cy8nXCcnLydcJydcXFxcXFxcXCdcJycnXCcnL2ciYDs7CisrCWVzYWMKKysJJGFzX2VjaG8gIiRh Y192YXI9J1wnJyRhY192YWwnXCcnIgorKyAgICAgIGRvbmUgfCBzb3J0CisrICAgICAgZWNobwor KyAgICBmaQorKworKyAgICBpZiB0ZXN0IC1zIGNvbmZkZWZzLmg7IHRoZW4KKysgICAgICBjYXQg PDxcX0FTQk9YCisrIyMgLS0tLS0tLS0tLS0gIyMKKysjIyBjb25mZGVmcy5oLiAjIworKyMjIC0t LS0tLS0tLS0tICMjCisrX0FTQk9YCisrICAgICAgZWNobworKyAgICAgIGNhdCBjb25mZGVmcy5o CisrICAgICAgZWNobworKyAgICBmaQorKyAgICB0ZXN0ICIkYWNfc2lnbmFsIiAhPSAwICYmCisr ICAgICAgJGFzX2VjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAkYWNfc2lnbmFsIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiBleGl0ICRleGl0X3N0YXR1cyIKKysgIH0gPiY1CisrICBybSAtZiBj b3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogJiYKKysgICAgcm0gLWYgLXIgY29uZnRlc3QqIGNv bmZkZWZzKiBjb25mJCQqICRhY19jbGVhbl9maWxlcyAmJgorKyAgICBleGl0ICRleGl0X3N0YXR1 cworKycgMAorK2ZvciBhY19zaWduYWwgaW4gMSAyIDEzIDE1OyBkbworKyAgdHJhcCAnYWNfc2ln bmFsPSckYWNfc2lnbmFsJzsgeyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAkYWNfc2lnbmFsCisrZG9u ZQorK2FjX3NpZ25hbD0wCisrCisrIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21tYW5kIGxpbmUg bGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KKytybSAtZiAtciBjb25mdGVzdCog Y29uZmRlZnMuaAorKworKyMgUHJlZGVmaW5lZCBwcmVwcm9jZXNzb3IgdmFyaWFibGVzLgorKwor K2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiJFBBQ0tB R0VfTkFNRSIKKytfQUNFT0YKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUiCisrX0FDRU9GCisrCisrCisr Y2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIkUEFD S0FHRV9WRVJTSU9OIgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK KysjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIkUEFDS0FHRV9TVFJJTkciCisrX0FDRU9GCisrCisr CisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg IiRQQUNLQUdFX0JVR1JFUE9SVCIKKytfQUNFT0YKKysKKysKKysjIExldCB0aGUgc2l0ZSBmaWxl IHNlbGVjdCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KKysjIFByZWZl ciBhbiBleHBsaWNpdGx5IHNlbGVjdGVkIGZpbGUgdG8gYXV0b21hdGljYWxseSBzZWxlY3RlZCBv bmVzLgorK2FjX3NpdGVfZmlsZTE9Tk9ORQorK2FjX3NpdGVfZmlsZTI9Tk9ORQorK2lmIHRlc3Qg LW4gIiRDT05GSUdfU0lURSI7IHRoZW4KKysgIGFjX3NpdGVfZmlsZTE9JENPTkZJR19TSVRFCisr ZWxpZiB0ZXN0ICJ4JHByZWZpeCIgIT0geE5PTkU7IHRoZW4KKysgIGFjX3NpdGVfZmlsZTE9JHBy ZWZpeC9zaGFyZS9jb25maWcuc2l0ZQorKyAgYWNfc2l0ZV9maWxlMj0kcHJlZml4L2V0Yy9jb25m aWcuc2l0ZQorK2Vsc2UKKysgIGFjX3NpdGVfZmlsZTE9JGFjX2RlZmF1bHRfcHJlZml4L3NoYXJl L2NvbmZpZy5zaXRlCisrICBhY19zaXRlX2ZpbGUyPSRhY19kZWZhdWx0X3ByZWZpeC9ldGMvY29u ZmlnLnNpdGUKKytmaQorK2ZvciBhY19zaXRlX2ZpbGUgaW4gIiRhY19zaXRlX2ZpbGUxIiAiJGFj X3NpdGVfZmlsZTIiCisrZG8KKysgIHRlc3QgIngkYWNfc2l0ZV9maWxlIiA9IHhOT05FICYmIGNv bnRpbnVlCisrICBpZiB0ZXN0IC1yICIkYWNfc2l0ZV9maWxlIjsgdGhlbgorKyAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+ JjUKKyskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUi ID4mNjt9CisrICAgIHNlZCAncy9eL3wgLycgIiRhY19zaXRlX2ZpbGUiID4mNQorKyAgICAuICIk YWNfc2l0ZV9maWxlIgorKyAgZmkKKytkb25lCisrCisraWYgdGVzdCAtciAiJGNhY2hlX2ZpbGUi OyB0aGVuCisrICAjIFNvbWUgdmVyc2lvbnMgb2YgYmFzaCB3aWxsIGZhaWwgdG8gc291cmNlIC9k ZXYvbnVsbCAoc3BlY2lhbAorKyAgIyBmaWxlcyBhY3R1YWxseSksIHNvIHdlIGF2b2lkIGRvaW5n IHRoYXQuCisrICBpZiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRoZW4KKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQorKyRhc19l Y2hvICIkYXNfbWU6IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICAgIGNhc2Ug JGNhY2hlX2ZpbGUgaW4KKysgICAgICBbXFwvXSogfCA/OltcXC9dKiApIC4gIiRjYWNoZV9maWxl Ijs7CisrICAgICAgKikgICAgICAgICAgICAgICAgICAgICAgLiAiLi8kY2FjaGVfZmlsZSI7Owor KyAgICBlc2FjCisrICBmaQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj cmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogY3JlYXRp bmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisrICA+JGNhY2hlX2ZpbGUKKytmaQorKworKyMg Q2hlY2sgdGhhdCB0aGUgcHJlY2lvdXMgdmFyaWFibGVzIHNhdmVkIGluIHRoZSBjYWNoZSBoYXZl IGtlcHQgdGhlIHNhbWUKKysjIHZhbHVlLgorK2FjX2NhY2hlX2NvcnJ1cHRlZD1mYWxzZQorK2Zv ciBhY192YXIgaW4gJGFjX3ByZWNpb3VzX3ZhcnM7IGRvCisrICBldmFsIGFjX29sZF9zZXQ9XCRh Y19jdl9lbnZfJHthY192YXJ9X3NldAorKyAgZXZhbCBhY19uZXdfc2V0PVwkYWNfZW52XyR7YWNf dmFyfV9zZXQKKysgIGV2YWwgYWNfb2xkX3ZhbD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWUK KysgIGV2YWwgYWNfbmV3X3ZhbD1cJGFjX2Vudl8ke2FjX3Zhcn1fdmFsdWUKKysgIGNhc2UgJGFj X29sZF9zZXQsJGFjX25ld19zZXQgaW4KKysgICAgc2V0LCkKKysgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFs JyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAk YWNfdmFyJyB3YXMgc2V0IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4m Mjt9CisrICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKKysgICAgLHNldCkKKysgICAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQg aW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFj X3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KKysgICAgICBhY19j YWNoZV9jb3JydXB0ZWQ9OiA7OworKyAgICAsKTs7CisrICAgICopCisrICAgICAgaWYgdGVzdCAi eCRhY19vbGRfdmFsIiAhPSAieCRhY19uZXdfdmFsIjsgdGhlbgorKwkjIGRpZmZlcmVuY2VzIGlu IHdoaXRlc3BhY2UgZG8gbm90IGxlYWQgdG8gZmFpbHVyZS4KKysJYWNfb2xkX3ZhbF93PWBlY2hv IHggJGFjX29sZF92YWxgCisrCWFjX25ld192YWxfdz1gZWNobyB4ICRhY19uZXdfdmFsYAorKwlp ZiB0ZXN0ICIkYWNfb2xkX3ZhbF93IiAhPSAiJGFjX25ld192YWxfdyI7IHRoZW4KKysJICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2lu Y2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRh Y192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQorKwkgIGFj X2NhY2hlX2NvcnJ1cHRlZD06CisrCWVsc2UKKysJICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO Tzogd2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFjX3Zhcicgc2lu Y2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IHdhcm5pbmc6IGln bm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRhY192YXInIHNpbmNlIHRoZSBwcmV2aW91 cyBydW46IiA+JjI7fQorKwkgIGV2YWwgJGFjX3Zhcj1cJGFjX29sZF92YWwKKysJZmkKKysJeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86ICAgZm9ybWVyIHZhbHVlOiAgXGAkYWNfb2xkX3ZhbCci ID4mNQorKyRhc19lY2hvICIkYXNfbWU6ICAgZm9ybWVyIHZhbHVlOiAgXGAkYWNfb2xkX3ZhbCci ID4mMjt9CisrCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiAgIGN1cnJlbnQgdmFsdWU6IFxg JGFjX25ld192YWwnIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiAgIGN1cnJlbnQgdmFsdWU6IFxg JGFjX25ld192YWwnIiA+JjI7fQorKyAgICAgIGZpOzsKKysgIGVzYWMKKysgICMgUGFzcyBwcmVj aW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KKysgIGlmIHRlc3QgIiRhY19uZXdfc2V0 IiA9IHNldDsgdGhlbgorKyAgICBjYXNlICRhY19uZXdfdmFsIGluCisrICAgICpcJyopIGFjX2Fy Zz0kYWNfdmFyPWAkYXNfZWNobyAiJGFjX25ld192YWwiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycv ZyJgIDs7CisrICAgICopIGFjX2FyZz0kYWNfdmFyPSRhY19uZXdfdmFsIDs7CisrICAgIGVzYWMK KysgICAgY2FzZSAiICRhY19jb25maWd1cmVfYXJncyAiIGluCisrICAgICAgKiIgJyRhY19hcmcn ICIqKSA7OyAjIEF2b2lkIGR1cHMuICBVc2Ugb2YgcXVvdGVzIGVuc3VyZXMgYWNjdXJhY3kuCisr ICAgICAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyci IDs7CisrICAgIGVzYWMKKysgIGZpCisrZG9uZQorK2lmICRhY19jYWNoZV9jb3JydXB0ZWQ7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJv bm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxk IiA+JjI7fQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHJ1biBcYG1h a2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29y IFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrYWNfZXh0PWMKKythY19jcHA9 JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKysKKythY19jb25maWdf aGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIHNvY2kvY29uZmlnLmgiCisrCisrCisrYWNfYXV4 X2Rpcj0KKytmb3IgYWNfZGlyIGluIGNvbmZpZyAiJHNyY2RpciIvY29uZmlnOyBkbworKyAgaWYg dGVzdCAtZiAiJGFjX2Rpci9pbnN0YWxsLXNoIjsgdGhlbgorKyAgICBhY19hdXhfZGlyPSRhY19k aXIKKysgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC1zaCAtYyIKKysgICAg YnJlYWsKKysgIGVsaWYgdGVzdCAtZiAiJGFjX2Rpci9pbnN0YWxsLnNoIjsgdGhlbgorKyAgICBh Y19hdXhfZGlyPSRhY19kaXIKKysgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFs bC5zaCAtYyIKKysgICAgYnJlYWsKKysgIGVsaWYgdGVzdCAtZiAiJGFjX2Rpci9zaHRvb2wiOyB0 aGVuCisrICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4 X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKKysgICAgYnJlYWsKKysgIGZpCisrZG9uZQorK2lmIHRl c3QgLXogIiRhY19hdXhfZGlyIjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiBjb25maWcg XCIkc3JjZGlyXCIvY29uZmlnIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90 IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluIGNvbmZpZyBcIiRzcmNkaXJcIi9jb25m aWciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKysjIFRoZXNl IHRocmVlIHZhcmlhYmxlcyBhcmUgdW5kb2N1bWVudGVkIGFuZCB1bnN1cHBvcnRlZCwKKysjIGFu ZCBhcmUgaW50ZW5kZWQgdG8gYmUgd2l0aGRyYXduIGluIGEgZnV0dXJlIEF1dG9jb25mIHJlbGVh c2UuCisrIyBUaGV5IGNhbiBjYXVzZSBzZXJpb3VzIHByb2JsZW1zIGlmIGEgYnVpbGRlcidzIHNv dXJjZSB0cmVlIGlzIGluIGEgZGlyZWN0b3J5CisrIyB3aG9zZSBmdWxsIG5hbWUgY29udGFpbnMg dW51c3VhbCBjaGFyYWN0ZXJzLgorK2FjX2NvbmZpZ19ndWVzcz0iJFNIRUxMICRhY19hdXhfZGly L2NvbmZpZy5ndWVzcyIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KKythY19jb25maWdf c3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgICMgUGxlYXNlIGRvbid0IHVzZSB0 aGlzIHZhci4KKythY19jb25maWd1cmU9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWd1cmUiICAj IFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCisrCisrCisrYW1fX2FwaV92ZXJzaW9uPScxLjEx JworKworKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9n cmFtIChmYXN0ZXIpLAorKyMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBC dXQgYXZvaWQgdGhlIGJyb2tlbiBvcgorKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgorKyMgU3lz ViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCisrIyBTdW5PUyAvdXNyL2V0Yy9pbnN0 YWxsCisrIyBJUklYIC9zYmluL2luc3RhbGwKKysjIEFJWCAvYmluL2luc3RhbGwKKysjIEFtaWdh T1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MK KysjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0 IGEgLWcgZmxhZworKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRs ZXMgbm9uZXhpc3RlbnQgYXJncworKyMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmll cyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKKysjIE9TLzIncyBzeXN0ZW0g aW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKKysjIC4v aW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4v aW5zdGFsbC5zaC4KKysjIFJlamVjdCBpbnN0YWxsIHByb2dyYW1zIHRoYXQgY2Fubm90IGluc3Rh bGwgbXVsdGlwbGUgZmlsZXMuCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0KKytpZiB0ZXN0IC16ICIk SU5TVEFMTCI7IHRoZW4KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEgg ZWxlbWVudHMuCisrY2FzZSAkYXNfZGlyLyBpbgorKyAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKKysg IC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dz L2Jpbi8qIHwgXAorKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFM TFxcLyogfCBcCisrICAvdXNyL3VjYi8qICkgOzsKKysgICopCisrICAgICMgT1NGMSBhbmQgU0NP IE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCisrICAgICMgRG9uJ3Qg dXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAor KyAgICAjIGJ5IGRlZmF1bHQuCisrICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3Qg aW5zdGFsbDsgZG8KKysgICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysJaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgorKwkgIGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBncmVwIGRzcG1zZyAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAg ICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRp b24uCisrCSAgICA6CisrCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorKwkgICAg Z3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4m MTsgdGhlbgorKwkgICAgIyBwcm9ncmFtLXNwZWNpZmljIGluc3RhbGwgc2NyaXB0IHVzZWQgYnkg SFAgcHdwbHVzLS1kb24ndCB1c2UuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgcm0gLXJmIGNv bmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCisrCSAgICBlY2hvIG9uZSA+IGNv bmZ0ZXN0Lm9uZQorKwkgICAgZWNobyB0d28gPiBjb25mdGVzdC50d28KKysJICAgIG1rZGlyIGNv bmZ0ZXN0LmRpcgorKwkgICAgaWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiIC1jIGNv bmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gImBwd2RgL2NvbmZ0ZXN0LmRpciIgJiYKKysJICAgICAg dGVzdCAtcyBjb25mdGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVzdC50d28gJiYKKysJICAgICAg dGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRlc3Qub25lICYmCisrCSAgICAgIHRlc3QgLXMgY29u ZnRlc3QuZGlyL2NvbmZ0ZXN0LnR3bworKwkgICAgdGhlbgorKwkgICAgICBhY19jdl9wYXRoX2lu c3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCisrCSAgICAgIGJyZWFrIDMK KysJICAgIGZpCisrCSAgZmkKKysJZmkKKysgICAgICBkb25lCisrICAgIGRvbmUKKysgICAgOzsK Kytlc2FjCisrCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytybSAtcmYgY29uZnRlc3Qu b25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysKKytmaQorKyAgaWYgdGVzdCAiJHthY19j dl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICAgSU5TVEFMTD0kYWNfY3ZfcGF0 aF9pbnN0YWxsCisrICBlbHNlCisrICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93 IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKKysgICAgIyB2YWx1ZSBmb3IgSU5TVEFMTCB3 aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAorKyAgICAjIGJyZWFr IG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcworKyAg ICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCisrICAgIElO U1RBTEw9JGFjX2luc3RhbGxfc2gKKysgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CisrJGFzX2VjaG8gIiRJTlNUQUxMIiA+JjY7IH0K KysKKysjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGlu ICR7dmFyLXZhbH0uCisrIyBJdCB0aGlua3MgdGhlIGZpcnN0IGNsb3NlIGJyYWNlIGVuZHMgdGhl IHZhcmlhYmxlIHN1YnN0aXR1dGlvbi4KKyt0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJ TlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCisrCisrdGVzdCAteiAiJElOU1RBTExfU0NSSVBU IiAmJiBJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9E QVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JworKworK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNh bmUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQg aXMgc2FuZS4uLiAiID4mNjsgfQorKyMgSnVzdCBpbiBjYXNlCisrc2xlZXAgMQorK2VjaG8gdGlt ZXN0YW1wID4gY29uZnRlc3QuZmlsZQorKyMgUmVqZWN0IHVuc2FmZSBjaGFyYWN0ZXJzIGluICRz cmNkaXIgb3IgdGhlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5CisrIyBuYW1lLiAgQWNjZXB0 IHNwYWNlIGFuZCB0YWIgb25seSBpbiB0aGUgbGF0dGVyLgorK2FtX2xmPScKKysnCisrY2FzZSBg cHdkYCBpbgorKyAgKltcXFwiXCNcJFwmXCdcYCRhbV9sZl0qKQorKyAgICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogdW5zYWZlIGFic29sdXRlIHdvcmtpbmcgZGlyZWN0b3J5 IG5hbWUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiB1bnNhZmUgYWJzb2x1dGUgd29y a2luZyBkaXJlY3RvcnkgbmFtZSIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07 OworK2VzYWMKKytjYXNlICRzcmNkaXIgaW4KKysgICpbXFxcIlwjXCRcJlwnXGAkYW1fbGZcIFwJ XSopCisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bnNhZmUgc3Jj ZGlyIHZhbHVlOiBcYCRzcmNkaXInIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogdW5z YWZlIHNyY2RpciB2YWx1ZTogXGAkc3JjZGlyJyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0 IDE7IH07IH07OworK2VzYWMKKysKKysjIERvIGBzZXQnIGluIGEgc3Vic2hlbGwgc28gd2UgZG9u J3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCisrIyBhcmd1bWVudHMuICBNdXN0IHRyeSAt TCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCisrIyBzeW1saW5rOyBzb21l IHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5rcwor KyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBjb250 YWluaW5nCisrIyBkaXJlY3RvcnkpLgorK2lmICgKKysgICBzZXQgWCBgbHMgLUx0ICIkc3JjZGly L2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCisrICAgaWYgdGVzdCAiJCoi ID0gIlgiOyB0aGVuCisrICAgICAgIyAtTCBkaWRuJ3Qgd29yay4KKysgICAgICBzZXQgWCBgbHMg LXQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlYAorKyAgIGZpCisrICAgcm0gLWYg Y29uZnRlc3QuZmlsZQorKyAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBj b25mdGVzdC5maWxlIiBcCisrICAgICAgJiYgdGVzdCAiJCoiICE9ICJYIGNvbmZ0ZXN0LmZpbGUg JHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCisrCisrICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQs IHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorKyAgICAgICMgaWYs IGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVyaXRzIGEKKysg ICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFj dHVhbGx5CisrICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNv bnNpZGVyZWQgInNhbmUiLgorKyAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJv a2VuCisrYWxpYXMgaW4geW91ciBlbnZpcm9ubWVudCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBi cm9rZW4KKythbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfQorKyAgIGZpCisrCisrICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQor KyAgICkKKyt0aGVuCisrICAgIyBPay4KKysgICA6CisrZWxzZQorKyAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBk aXN0cmlidXRlZCBmaWxlcyEKKytDaGVjayB5b3VyIHN5c3RlbSBjbG9jayIgPiY1CisrJGFzX2Vj aG8gIiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3Ry aWJ1dGVkIGZpbGVzIQorK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7IH0KKyt0ZXN0ICIkcHJvZ3JhbV9w cmVmaXgiICE9IE5PTkUgJiYKKysgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXiYkcHJvZ3Jh bV9wcmVmaXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgorKyMgVXNlIGEgZG91YmxlICQgc28g bWFrZSBpZ25vcmVzIGl0LgorK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9ORSAmJgorKyAg cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lIgorKyMgRG91YmxlIGFueSBcIG9yICQuCisrIyBCeSBkZWZhdWx0IHdhcyBg cyx4LHgnLCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KKythY19zY3JpcHQ9J3MvW1xcJF0vJiYvZztz LztzLHgseCwkLy8nCisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8gIiRwcm9ncmFt X3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCisrCisrIyBleHBhbmQgJGFjX2F1 eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYm IHB3ZGAKKysKKytpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9IHhzZXQ7IHRoZW4KKysgIGNh c2UgJGFtX2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBNSVNTSU5HPSJcJHtTSEVM TH0gXCIkYW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7CisrICAqKQorKyAgICBNSVNTSU5HPSJcJHtT SEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIgOzsKKysgIGVzYWMKKytmaQorKyMgVXNlIGV2YWwg dG8gZXhwYW5kICRTSEVMTAorK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCisr ICBhbV9taXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgorK2Vsc2UKKysgIGFtX21pc3Npbmdf cnVuPQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxgbWlzc2luZycg c2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogXGBtaXNzaW5nJyBzY3JpcHQgaXMgdG9vIG9sZCBvciBtaXNzaW5nIiA+JjI7fQorK2Zp CisrCisraWYgdGVzdCB4IiR7aW5zdGFsbF9zaH0iICE9IHhzZXQ7IHRoZW4KKysgIGNhc2UgJGFt X2F1eF9kaXIgaW4KKysgICpcICogfCAqXAkqKQorKyAgICBpbnN0YWxsX3NoPSJcJHtTSEVMTH0g JyRhbV9hdXhfZGlyL2luc3RhbGwtc2gnIiA7OworKyAgKikKKysgICAgaW5zdGFsbF9zaD0iXCR7 U0hFTEx9ICRhbV9hdXhfZGlyL2luc3RhbGwtc2giCisrICBlc2FjCisrZmkKKysKKysjIEluc3Rh bGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhl IHVzZXIKKysjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdo dCBub3QgYmUgdGhlIHJpZ2h0CisrIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxhdGlvbiBl bnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQorKyMgd2lsbCBob25vciB0aGUgYFNUUklQ JyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCisraWYgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KKysgIGlmIHRlc3QgLW4gIiRhY190b29s X3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29s X3ByZWZpeH1zdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisr c2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19TVFJJ UD0iJFNUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgK KytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19j dl9wcm9nX1NUUklQPSIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIgorKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAg ICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2Zp CisrZmkKKytTVFJJUD0kYWNfY3ZfcHJvZ19TVFJJUAorK2lmIHRlc3QgLW4gIiRTVFJJUCI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRTVFJJUCIgPiY1Cisr JGFzX2VjaG8gIiRTVFJJUCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysK KytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1NUUklQIjsgdGhlbgorKyAgYWNfY3RfU1RS SVA9JFNUUklQCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInN0cmlwIiwgc28gaXQg Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgc3RyaXA7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1NU UklQIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExl dCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsg SUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRh c19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X1NU UklQPSJzdHJpcCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisr ZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfU1RSSVA9JGFjX2N2 X3Byb2dfYWNfY3RfU1RSSVAKKytpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQorKyRh c19lY2hvICIkYWNfY3RfU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisr CisrICBpZiB0ZXN0ICJ4JGFjX2N0X1NUUklQIiA9IHg7IHRoZW4KKysgICAgU1RSSVA9IjoiCisr ICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5 ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIFNUUklQPSRh Y19jdF9TVFJJUAorKyAgZmkKKytlbHNlCisrICBTVFJJUD0iJGFjX2N2X3Byb2dfU1RSSVAiCisr ZmkKKysKKytmaQorK0lOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCQoaW5zdGFsbF9zaCkgLWMgLXMi CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIHRocmVhZC1z YWZlIG1rZGlyIC1wIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSB0aHJlYWQtc2Fm ZSBta2RpciAtcC4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRNS0RJUl9QIjsgdGhlbgorKyAg aWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL29wdC9zZncv YmluCisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICBmb3IgYWNfcHJvZyBpbiBta2RpciBnbWtkaXI7IGRvCisrCSBmb3IgYWNfZXhl Y19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysJICAgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y19wcm9nJGFjX2V4ZWNfZXh0IjsgfSB8fCBjb250aW51ZQorKwkgICBjYXNlIGAiJGFzX2Rpci8k YWNfcHJvZyRhY19leGVjX2V4dCIgLS12ZXJzaW9uIDI+JjFgIGluICMoCisrCSAgICAgJ21rZGly IChHTlUgY29yZXV0aWxzKSAnKiB8IFwKKysJICAgICAnbWtkaXIgKGNvcmV1dGlscykgJyogfCBc CisrCSAgICAgJ21rZGlyIChmaWxldXRpbHMpICc0LjEqKQorKwkgICAgICAgYWNfY3ZfcGF0aF9t a2Rpcj0kYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0CisrCSAgICAgICBicmVhayAzOzsKKysJ ICAgZXNhYworKwkgZG9uZQorKyAgICAgICBkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMK KysKKytmaQorKworKyAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGlyK3NldH0iID0gc2V0OyB0 aGVuCisrICAgIE1LRElSX1A9IiRhY19jdl9wYXRoX21rZGlyIC1wIgorKyAgZWxzZQorKyAgICAj IEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNo ZSBhCisrICAgICMgdmFsdWUgZm9yIE1LRElSX1Agd2l0aGluIGEgc291cmNlIGRpcmVjdG9yeSwg YmVjYXVzZSB0aGF0IHdpbGwKKysgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUg Y2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKysgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgdmFs dWUgaXMgYSByZWxhdGl2ZSBuYW1lLgorKyAgICB0ZXN0IC1kIC4vLS12ZXJzaW9uICYmIHJtZGly IC4vLS12ZXJzaW9uCisrICAgIE1LRElSX1A9IiRhY19pbnN0YWxsX3NoIC1kIgorKyAgZmkKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNS0RJUl9QIiA+JjUKKysk YXNfZWNobyAiJE1LRElSX1AiID4mNjsgfQorKworK21rZGlyX3A9IiRNS0RJUl9QIgorK2Nhc2Ug JG1rZGlyX3AgaW4KKysgIFtcXC8kXSogfCA/OltcXC9dKikgOzsKKysgICovKikgbWtkaXJfcD0i XCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKKytlc2FjCisrCisrZm9yIGFjX3Byb2cgaW4g Z2F3ayBtYXdrIG5hd2sgYXdrCisrZG8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBk dW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7 IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAt biAiJEFXSyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfQVdLPSIkQVdLIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCisrICAg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3Nh dmVfSUZTCisrCisrZmkKKytmaQorK0FXSz0kYWNfY3ZfcHJvZ19BV0sKKytpZiB0ZXN0IC1uICIk QVdLIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEFXSyIg PiY1CisrJGFzX2VjaG8gIiRBV0siID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisr CisrCisrICB0ZXN0IC1uICIkQVdLIiAmJiBicmVhaworK2RvbmUKKysKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtF KSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBc JChNQUtFKS4uLiAiID4mNjsgfQorK3NldCB4ICR7TUFLRS1tYWtlfQorK2FjX21ha2U9YCRhc19l Y2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAorK2lmIHsgYXNf dmFyPWFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldDsgZXZhbCAidGVzdCBcIlwkeyRhc192 YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCisrU0hFTEwgPSAvYmluL3No CisrYWxsOgorKwlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUlJworK19BQ0VPRgorKyMgR05V IG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJpbmcuLi4iLCB3aGljaCB3b3Vs ZCBjb25mdXNlIHVzLgorK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rl di9udWxsYCBpbgorKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQorKyAgICBldmFsIGFjX2N2X3Byb2df bWFrZV8ke2FjX21ha2V9X3NldD15ZXM7OworKyAgKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21h a2VfJHthY19tYWtlfV9zZXQ9bm87OworK2VzYWMKKytybSAtZiBjb25mdGVzdC5tYWtlCisrZmkK KytpZiBldmFsIHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQgPSB5ZXM7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFz X2VjaG8gInllcyIgPiY2OyB9CisrICBTRVRfTUFLRT0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysg IFNFVF9NQUtFPSJNQUtFPSR7TUFLRS1tYWtlfSIKKytmaQorKworK3JtIC1yZiAudHN0IDI+L2Rl di9udWxsCisrbWtkaXIgLnRzdCAyPi9kZXYvbnVsbAorK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgor KyAgYW1fX2xlYWRpbmdfZG90PS4KKytlbHNlCisrICBhbV9fbGVhZGluZ19kb3Q9XworK2ZpCisr cm1kaXIgLnRzdCAyPi9kZXYvbnVsbAorKworK2lmIHRlc3QgImBjZCAkc3JjZGlyICYmIHB3ZGAi ICE9ICJgcHdkYCI7IHRoZW4KKysgICMgVXNlIC1JJChzcmNkaXIpIG9ubHkgd2hlbiAkKHNyY2Rp cikgIT0gLiwgc28gdGhhdCBtYWtlJ3Mgb3V0cHV0CisrICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRo IHJlcGVhdGVkICItSS4iCisrICBhbV9faXNyYz0nIC1JJChzcmNkaXIpJworKyAgIyB0ZXN0IHRv IHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCisrICBpZiB0ZXN0IC1mICRzcmNkaXIv Y29uZmlnLnN0YXR1czsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogc291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlz dGNsZWFuXCIgdGhlcmUgZmlyc3QiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBzb3Vy Y2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwibWFrZSBkaXN0Y2xlYW5cIiB0 aGVyZSBmaXJzdCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisr ZmkKKysKKysjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKKytpZiB0ZXN0IC16ICIkQ1lH UEFUSF9XIjsgdGhlbgorKyAgaWYgKGN5Z3BhdGggLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+L2Rl di9udWxsOyB0aGVuCisrICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKKysgIGVsc2UKKysgICAg Q1lHUEFUSF9XPWVjaG8KKysgIGZpCisrZmkKKysKKysKKysjIERlZmluZSB0aGUgaWRlbnRpdHkg b2YgdGhlIHBhY2thZ2UuCisrIFBBQ0tBR0U9J3NvY2knCisrIFZFUlNJT049JzMuMC4wJworKwor KworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFBBQ0tBR0UgIiRQQUNLQUdF IgorK19BQ0VPRgorKworKworK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIFZF UlNJT04gIiRWRVJTSU9OIgorK19BQ0VPRgorKworKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVk cy4KKysKKytBQ0xPQ0FMPSR7QUNMT0NBTC0iJHthbV9taXNzaW5nX3J1bn1hY2xvY2FsLSR7YW1f X2FwaV92ZXJzaW9ufSJ9CisrCisrCisrQVVUT0NPTkY9JHtBVVRPQ09ORi0iJHthbV9taXNzaW5n X3J1bn1hdXRvY29uZiJ9CisrCisrCisrQVVUT01BS0U9JHtBVVRPTUFLRS0iJHthbV9taXNzaW5n X3J1bn1hdXRvbWFrZS0ke2FtX19hcGlfdmVyc2lvbn0ifQorKworKworK0FVVE9IRUFERVI9JHtB VVRPSEVBREVSLSIke2FtX21pc3NpbmdfcnVufWF1dG9oZWFkZXIifQorKworKworK01BS0VJTkZP PSR7TUFLRUlORk8tIiR7YW1fbWlzc2luZ19ydW59bWFrZWluZm8ifQorKworKyMgV2UgbmVlZCBh d2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRoZSBzeXN0ZW0gImF3ayIgaXMgYmFkIG9uCisr IyBzb21lIHBsYXRmb3Jtcy4KKysjIEFsd2F5cyBkZWZpbmUgQU1UQVIgZm9yIGJhY2t3YXJkIGNv bXBhdGliaWxpdHkuCisrCisrQU1UQVI9JHtBTVRBUi0iJHthbV9taXNzaW5nX3J1bn10YXIifQor KworK2FtX190YXI9JyR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiJzsgYW1fX3VudGFyPScke0FN VEFSfSB4ZiAtJworKworKworKworKworKworKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdp dGgtY3BwdW5pdC1wcmVmaXggd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X3By ZWZpeCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9jcHB1bml0X3ByZWZpeDsg Y3BwdW5pdF9jb25maWdfcHJlZml4PSIkd2l0aHZhbCIKKytlbHNlCisrICBjcHB1bml0X2NvbmZp Z19wcmVmaXg9IiIKKytmaQorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtY3BwdW5pdC1l eGVjLXByZWZpeCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2NwcHVuaXRfZXhlY19wcmVm aXgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9leGVjX3ByZWZp eDsgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIgorK2Vsc2UKKysgIGNwcHVu aXRfY29uZmlnX2V4ZWNfcHJlZml4PSIiCisrZmkKKysKKysKKysgIGlmIHRlc3QgeCRjcHB1bml0 X2NvbmZpZ19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgorKyAgICAgY3BwdW5pdF9jb25maWdfYXJn cz0iJGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5pdF9jb25maWdfZXhl Y19wcmVmaXgiCisrICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7 IHRoZW4KKysgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZp eC9iaW4vY3BwdW5pdC1jb25maWcKKysgICAgIGZpCisrICBmaQorKyAgaWYgdGVzdCB4JGNwcHVu aXRfY29uZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgorKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0i JGNwcHVuaXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX3ByZWZpeCIKKysg ICAgIGlmIHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgorKyAgICAg ICAgQ1BQVU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25m aWcKKysgICAgIGZpCisrICBmaQorKworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJj cHB1bml0LWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisr c2V0IGR1bW15IGNwcHVuaXQtY29uZmlnOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX0NQUFVO SVRfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGNhc2UgJENQUFVOSVRfQ09ORklHIGluCisrICBbXFwvXSogfCA/OltcXC9d KikKKysgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRDUFBVTklUX0NPTkZJRyIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyAgKikKKysg IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9u czsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYg JGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAg YWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIK KysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0k YXNfc2F2ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHIiAm JiBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSJubyIKKysgIDs7CisrZXNhYworK2ZpCisrQ1BQ VU5JVF9DT05GSUc9JGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUcKKytpZiB0ZXN0IC1uICIkQ1BQ VU5JVF9DT05GSUciOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkQ1BQVU5JVF9DT05GSUciID4mNQorKyRhc19lY2hvICIkQ1BQVU5JVF9DT05GSUciID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICBjcHB1bml0X3ZlcnNpb25fbWlu PTEuMTAKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQ3Bw dW5pdCAtIHZlcnNpb24gPj0gJGNwcHVuaXRfdmVyc2lvbl9taW4iID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbi4u LiAiID4mNjsgfQorKyAgbm9fY3BwdW5pdD0iIgorKyAgaWYgdGVzdCAiJENQUFVOSVRfQ09ORklH IiA9ICJubyIgOyB0aGVuCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICBub19jcHB1bml0PXllcworKyAg ZWxzZQorKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAorKyAg ICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCisrICAgIENQUFVOSVRfVkVS U0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKKysKKysgICAgY3BwdW5pdF9tYWpvcl92 ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChb MC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKKysgICAgY3BwdW5pdF9taW5vcl92 ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChb MC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKKysgICAgY3BwdW5pdF9taWNyb192 ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCisrICAgICAgICAgICBzZWQgJ3MvXChb MC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDMvJ2AKKysKKysgICAgY3BwdW5pdF9tYWpv cl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCisrICAgICAgICAgICBzZWQgJ3Mv XChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKKysgICAgaWYgdGVzdCAieCR7 Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KKysgICAgICAgY3BwdW5pdF9tYWpvcl9t aW49MAorKyAgICBmaQorKworKyAgICBjcHB1bml0X21pbm9yX21pbj1gZWNobyAkY3BwdW5pdF92 ZXJzaW9uX21pbiB8IFwKKysgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwpLlwoWzAtOV0qXCku XChbMC05XSpcKS9cMi8nYAorKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21pbm9yX21pbn0iID0g IngiIDsgdGhlbgorKyAgICAgICBjcHB1bml0X21pbm9yX21pbj0wCisrICAgIGZpCisrCisrICAg IGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWluIHwgXAorKyAgICAg ICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwpL1wzLydgCisrICAg IGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9fbWlufSIgPSAieCIgOyB0aGVuCisrICAgICAgIGNw cHVuaXRfbWljcm9fbWluPTAKKysgICAgZmkKKysKKysgICAgY3BwdW5pdF92ZXJzaW9uX3Byb3Bl cj1gZXhwciBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw+ICRjcHB1bml0X21h am9yX21pbiBcfCBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRjcHB1bml0 X21ham9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9taW5vcl92ZXJzaW9uIFw+ICRjcHB1 bml0X21pbm9yX21pbiBcfCBcCisrICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw9ICRj cHB1bml0X21ham9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9taW5vcl92ZXJzaW9uIFw9 ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCisrICAgICAgICAkY3BwdW5pdF9taWNyb192ZXJzaW9u IFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAorKworKyAgICBpZiB0ZXN0ICIkY3BwdW5pdF92ZXJz aW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9u LiRjcHB1bml0X21pY3JvX3ZlcnNpb24iID4mNQorKyRhc19lY2hvICIkY3BwdW5pdF9tYWpvcl92 ZXJzaW9uLiRjcHB1bml0X21pbm9yX3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbiIgPiY2 OyB9CisrICAgIGVsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgICBub19jcHB1bml0PXllcwor KyAgICBmaQorKyAgZmkKKysKKysgIGlmIHRlc3QgIngkbm9fY3BwdW5pdCIgPSB4IDsgdGhlbgor KyAgICAgOgorKyAgZWxzZQorKyAgICAgQ1BQVU5JVF9DRkxBR1M9IiIKKysgICAgIENQUFVOSVRf TElCUz0iIgorKyAgICAgOgorKyAgZmkKKysKKysKKysKKysKKysKKysgaWYgdGVzdCAieCRDUFBV TklUX0xJQlMiICE9IHg7IHRoZW4KKysgIEhBVkVfQ1BQVU5JVF9UUlVFPQorKyAgSEFWRV9DUFBV TklUX0ZBTFNFPScjJworK2Vsc2UKKysgIEhBVkVfQ1BQVU5JVF9UUlVFPScjJworKyAgSEFWRV9D UFBVTklUX0ZBTFNFPQorK2ZpCisrCisrCisrIyBSUE0gcmVsZWFzZSBudW1iZXIKKytSUE1fUkVM RUFTRT0iMTYiCisrCisrCisrIyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCisrR0VORVJJQ19M SUJSQVJZX1ZFUlNJT049IjM6MDowIgorKyMgICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAor KyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwgKy0tLSsKKysjICAgICAgICAgICAgICAgICB8 ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKKysj ICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAgICAgICAgfCAg ICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwor KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVy ZmFjZXMgaGF2ZSBiZWVuCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgcmVt b3ZlZCBvciBjaGFuZ2VkCisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgKy0gaW5jcmVtZW50 IGlmIHNvdXJjZSBjb2RlIGhhcyBjaGFuZ2VkOworKyMgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgIHNldCB0byB6ZXJvIGlmIGN1cnJlbnQgaXMgaW5jcmVtZW50ZWQKKysjICAgICAgICAgICAg ICAgICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQsIHJlbW92ZWQK KysjICAgICAgICAgICAgICAgICAgICBvciBjaGFuZ2VkCisrCisrCisrIyBVcGxvYWQgY29tbWFu ZCBmb3IgU291cmNlRm9yZ2UKKytVUExPQURfQ09NTUFORD0ibmNmdHBwdXQgLXYgdXBsb2FkLnNv dXJjZWZvcmdlLm5ldCAvaW5jb21pbmciCisrCisrCisrIyBDaGVjayBmb3IgaG9zdCBhbmQgZGlz YWJsZSBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGluIFdpbmRvd3MKKysjIE1ha2Ugc3VyZSB3 ZSBjYW4gcnVuIGNvbmZpZy5zdWIuCisrJFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiBz dW40ID4vZGV2L251bGwgMj4mMSB8fAorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog ZXJyb3I6IGNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiID4mNQorKyRh c19lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuICRTSEVMTCAkYWNfYXV4X2Rpci9jb25m aWcuc3ViIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2FjX2N2X2J1aWxkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGFjX2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworK3Rlc3QgIngk YWNfYnVpbGRfYWxpYXMiID0geCAmJgorKyAgYWNfYnVpbGRfYWxpYXM9YCRTSEVMTCAiJGFjX2F1 eF9kaXIvY29uZmlnLmd1ZXNzImAKKyt0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKKysg IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQg dHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrYWNfY3ZfYnVpbGQ9YCRTSEVMTCAiJGFjX2F1 eF9kaXIvY29uZmlnLnN1YiIgJGFjX2J1aWxkX2FsaWFzYCB8fAorKyAgeyB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6ICRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRhY19i dWlsZF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkU0hFTEwg JGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2J1aWxk IiA+JjY7IH0KKytjYXNlICRhY19jdl9idWlsZCBpbgorKyotKi0qKSA7OworKyopIHsgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBi dWlsZCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fu b25pY2FsIGJ1aWxkIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrZXNh YworK2J1aWxkPSRhY19jdl9idWlsZAorK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKKytzZXQg eCAkYWNfY3ZfYnVpbGQKKytzaGlmdAorK2J1aWxkX2NwdT0kMQorK2J1aWxkX3ZlbmRvcj0kMgor K3NoaWZ0OyBzaGlmdAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgSUZTIGlz IHVzZWQgdG8gY3JlYXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKKytidWlsZF9v cz0kKgorK0lGUz0kYWNfc2F2ZV9JRlMKKytjYXNlICRidWlsZF9vcyBpbiAqXCAqKSBidWlsZF9v cz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYworKworKworK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgIngkaG9zdF9hbGlhcyIgPSB4OyB0aGVuCisrICBh Y19jdl9ob3N0PSRhY19jdl9idWlsZAorK2Vsc2UKKysgIGFjX2N2X2hvc3Q9YCRTSEVMTCAiJGFj X2F1eF9kaXIvY29uZmlnLnN1YiIgJGhvc3RfYWxpYXNgIHx8CisrICAgIHsgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IGVycm9yOiAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9z dF9hbGlhcyBmYWlsZWQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkU0hFTEwgJGFj X2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiID4mMjt9CisrICAgeyAoZXhp dCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2hvc3QiID4m NjsgfQorK2Nhc2UgJGFjX2N2X2hvc3QgaW4KKysqLSotKikgOzsKKysqKSB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCB2YWx1ZSBvZiBjYW5vbmljYWwgaG9zdCIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgdmFsdWUgb2YgY2Fub25pY2Fs IGhvc3QiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKytlc2FjCisraG9z dD0kYWNfY3ZfaG9zdAorK2FjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKKytzZXQgeCAkYWNfY3Zf aG9zdAorK3NoaWZ0CisraG9zdF9jcHU9JDEKKytob3N0X3ZlbmRvcj0kMgorK3NoaWZ0OyBzaGlm dAorKyMgUmVtZW1iZXIsIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgSUZTIGlzIHVzZWQgdG8gY3Jl YXRlICQqLAorKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKKytob3N0X29zPSQqCisrSUZTPSRh Y19zYXZlX0lGUworK2Nhc2UgJGhvc3Rfb3MgaW4gKlwgKikgaG9zdF9vcz1gZWNobyAiJGhvc3Rf b3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCisrCisrCisrY2FzZSAkaG9zdCBpbgorKyAgKi0q LW1zZG9zKiB8ICotKi1nbzMyKiB8ICotKi1taW5ndzMyKiB8ICotKi1jeWd3aW4qIHwgKi0qLXdp bmRvd3MqKQorKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc2hhcmVkIHdhcyBnaXZlbi4K KytpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZh bD0kZW5hYmxlX3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysgICAgY2FzZSAkZW5hYmxl dmFsIGluCisrICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKKysgICAgbm8pIGVuYWJsZV9z aGFyZWQ9bm8gOzsKKysgICAgKikKKysgICAgICBlbmFibGVfc2hhcmVkPW5vCisrICAgICAgIyBM b29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBz ZXBhcmF0b3JzLgorKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9T RVBBUkFUT1IsIgorKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KKysJSUZTPSIkbHRf c2F2ZV9pZnMiCisrCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCisrCSAgZW5hYmxlX3No YXJlZD15ZXMKKysJZmkKKysgICAgICBkb25lCisrICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisr ICAgICAgOzsKKysgICAgZXNhYworK2Vsc2UKKysgIGVuYWJsZV9zaGFyZWQ9bm8KKytmaQorKwor KworKworKworKworKworKworKworKworKyAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtc3Rh dGljIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9zdGF0aWMrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KKysg ICAgY2FzZSAkZW5hYmxldmFsIGluCisrICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKKysg ICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKKysgICAgKikKKysgICAgIGVuYWJsZV9zdGF0aWM9 bm8KKysgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhl IGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBk bworKwlJRlM9IiRsdF9zYXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4K KysJICBlbmFibGVfc3RhdGljPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX3N0YXRp Yz15ZXMKKytmaQorKworKworKworKworKworKworKworKworKworKyAgICA7OworKyAgKikKKysg ICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAi JHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9z aGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9CisrICAgIGNhc2UgJGVuYWJsZXZhbCBpbgorKyAg ICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7CisrICAgIG5vKSBlbmFibGVfc2hhcmVkPW5vIDs7 CisrICAgICopCisrICAgICAgZW5hYmxlX3NoYXJlZD1ubworKyAgICAgICMgTG9vayBhdCB0aGUg YXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4K KysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIK KysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVfaWZzIgor KwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zaGFyZWQ9eWVzCisr CWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAgIDs7Cisr ICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc2hhcmVkPXllcworK2ZpCisrCisrCisrCisrCisr CisrCisrICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zdGF0aWMgd2FzIGdpdmVuLgorK2lm IHRlc3QgIiR7ZW5hYmxlX3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRl bmFibGVfc3RhdGljOyBwPSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwg aW4KKysgICAgeWVzKSBlbmFibGVfc3RhdGljPXllcyA7OworKyAgICBubykgZW5hYmxlX3N0YXRp Yz1ubyA7OworKyAgICAqKQorKyAgICAgZW5hYmxlX3N0YXRpYz1ubworKyAgICAgICMgTG9vayBh dCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJh dG9ycy4KKysgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJB VE9SLCIKKysgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCisrCUlGUz0iJGx0X3NhdmVf aWZzIgorKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgorKwkgIGVuYWJsZV9zdGF0aWM9 eWVzCisrCWZpCisrICAgICAgZG9uZQorKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICAg IDs7CisrICAgIGVzYWMKKytlbHNlCisrICBlbmFibGVfc3RhdGljPW5vCisrZmkKKysKKysKKysK KysKKysKKysKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9yIHByb2dyYW1zCisrc2F2 ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgorK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLXogIiRDWFgi OyB0aGVuCisrICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBDWFg9JENDQworKyAgZWxz ZQorKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJv ZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19y IHhsQworKyAgZG8KKysgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9w cmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisr c2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DWFg9IiRD WFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisr ICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2df Q1hYPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsg MgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisr Q1hYPSRhY19jdl9wcm9nX0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENYWCIg PiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJENY WCIgJiYgYnJlYWsKKysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBh Y19jdF9DWFg9JENYWAorKyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBj YysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4bEMKKytkbworKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2Fj X2N0X0NYWCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19h Y19jdF9DWFg9IiRhY19jdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4gIiRh Y19jdF9DWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3RfQ1hYIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CisrZmkKKysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DWFgiICYmIGJyZWFrCisr ZG9uZQorKworKyAgaWYgdGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhlbgorKyAgICBDWFg9Imcr KyIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBp bgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ1hY PSRhY19jdF9DWFgKKysgIGZpCisrZmkKKysKKysgIGZpCisrZmkKKysjIFByb3ZpZGUgc29tZSBp bmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBYICRhY19jb21w aWxlCisrYWNfY29tcGlsZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24g PiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lv biA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFj X3RyeT0iJGFjX2NvbXBpbGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jb21waWxlciAtdiA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNlICIoKCRhY190 cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysg ICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwk YXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIp ID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9 JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorKworK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRl c3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29u ZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKythY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworK2Fj X2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBiLm91 dCIKKysjIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRob3V0IC1vIGZpcnN0LCBkaXNy ZWdhcmQgYS5vdXQuCisrIyBJdCB3aWxsIGhlbHAgdXMgZGlhZ25vc2UgYnJva2VuIGNvbXBpbGVy cywgYW5kIGZpbmRpbmcgb3V0IGFuIGludHVpdGlvbgorKyMgb2YgZXhlZXh0LgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0 cHV0IGZpbGUgbmFtZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxl ciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KKythY19saW5rX2RlZmF1bHQ9 YCRhc19lY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAorKwor KyMgVGhlIHBvc3NpYmxlIG91dHB1dCBmaWxlczoKKythY19maWxlcz0iYS5vdXQgY29uZnRlc3Qu ZXhlIGNvbmZ0ZXN0IGEuZXhlIGFfb3V0LmV4ZSBiLm91dCBjb25mdGVzdC4qIgorKworK2FjX3Jt ZmlsZXM9CisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzCisrZG8KKysgIGNhc2UgJGFjX2ZpbGUg aW4KKysgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhT WU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5kU1lNIHwgKi5vIHwgKi5vYmog KSA7OworKyAgICAqICkgYWNfcm1maWxlcz0iJGFjX3JtZmlsZXMgJGFjX2ZpbGUiOzsKKysgIGVz YWMKKytkb25lCisrcm0gLWYgJGFjX3JtZmlsZXMKKysKKytpZiB7IChhY190cnk9IiRhY19saW5r X2RlZmF1bHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2Fj CisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor KyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGlua19kZWZhdWx0 IikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICMg QXV0b2NvbmYtMi4xMyBjb3VsZCBzZXQgdGhlIGFjX2N2X2V4ZWV4dCB2YXJpYWJsZSB0byBgbm8n LgorKyMgU28gaWdub3JlIGEgdmFsdWUgb2YgYG5vJywgb3RoZXJ3aXNlIHRoaXMgd291bGQgbGVh ZCB0byBgRVhFRVhUID0gbm8nCisrIyBpbiBhIE1ha2VmaWxlLiAgV2Ugc2hvdWxkIG5vdCBvdmVy cmlkZSBhY19jdl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKKysjIHNvIHRoYXQgdGhlIHVzZXIg Y2FuIHNob3J0LWNpcmN1aXQgdGhpcyB0ZXN0IGZvciBjb21waWxlcnMgdW5rbm93biB0bworKyMg QXV0b2NvbmYuCisrZm9yIGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcnCisrZG8KKysgIHRlc3QgLWYg IiRhY19maWxlIiB8fCBjb250aW51ZQorKyAgY2FzZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19l eHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJi ZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApCisrCTs7CisrICAgIFth Yl0ub3V0ICkKKysJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVjdXRhYmxlLCBidXQgZXhlZXh0 PScnIGlzIG1vc3QKKysJIyBjZXJ0YWlubHkgcmlnaHQuCisrCWJyZWFrOzsKKysgICAgKi4qICkK KysgICAgICAgIGlmIHRlc3QgIiR7YWNfY3ZfZXhlZXh0K3NldH0iID0gc2V0ICYmIHRlc3QgIiRh Y19jdl9leGVleHQiICE9IG5vOworKwl0aGVuIDo7IGVsc2UKKysJICAgYWNfY3ZfZXhlZXh0PWBl eHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCisrCWZpCisrCSMgV2Ugc2V0IGFjX2N2 X2V4ZWV4dCBoZXJlIGJlY2F1c2UgdGhlIGxhdGVyIHRlc3QgZm9yIGl0IGlzIG5vdAorKwkjIHNh ZmU6IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90IGFkZCB0aGUgc3VmZml4IGlmIGdpdmVuIGFuIGAt bycKKysJIyBhcmd1bWVudCwgc28gd2UgbWF5IG5lZWQgdG8ga25vdyBpdCBhdCB0aGF0IHBvaW50 IGFscmVhZHkuCisrCSMgRXZlbiBpZiB0aGlzIHNlY3Rpb24gbG9va3MgY3J1ZnR5OiBpdCBoYXMg dGhlIGFkdmFudGFnZSBvZgorKwkjIGFjdHVhbGx5IHdvcmtpbmcuCisrCWJyZWFrOzsKKysgICAg KiApCisrCWJyZWFrOzsKKysgIGVzYWMKKytkb25lCisrdGVzdCAiJGFjX2N2X2V4ZWV4dCIgPSBu byAmJiBhY19jdl9leGVleHQ9CisrCisrZWxzZQorKyAgYWNfZmlsZT0nJworK2ZpCisrCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4mNQorKyRhc19lY2hv ICIkYWNfZmlsZSIgPiY2OyB9CisraWYgdGVzdCAteiAiJGFjX2ZpbGUiOyB0aGVuCisrICAkYXNf ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJy b3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAk YWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMr KyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCisrU2VlIFxgY29uZmlnLmxvZycg Zm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDKysgY29t cGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBt b3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9OyB9Cisr ZmkKKysKKythY19leGVleHQ9JGFjX2N2X2V4ZWV4dAorKworKyMgQ2hlY2sgdGhhdCB0aGUgY29t cGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCisr IyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29y a3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciB3 b3Jrcy4uLiAiID4mNjsgfQorKyMgRklYTUU6IFRoZXNlIGNyb3NzIGNvbXBpbGVyIGhhY2tzIHNo b3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKKysjIElmIG5vdCBjcm9zcyBjb21waWxp bmcsIGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBhIHNpbXBsZSBwcm9ncmFtLgorK2lmIHRlc3QgIiRj cm9zc19jb21waWxpbmciICE9IHllczsgdGhlbgorKyAgaWYgeyBhY190cnk9Jy4vJGFjX2ZpbGUn CisrICB7IChjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY190cnkiKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorKyAgICBjcm9zc19jb21w aWxpbmc9bm8KKysgIGVsc2UKKysgICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBtYXli ZTsgdGhlbgorKwljcm9zc19jb21waWxpbmc9eWVzCisrICAgIGVsc2UKKysJeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQysrIGNvbXBpbGVkIHByb2dyYW1zLgorK0lm IHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgorK1NlZSBcYGNvbmZp Zy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCisrSWYgeW91IG1lYW50IHRvIGNyb3Nz IGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0 YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrICAgIGZpCisr ICBmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUK KyskYXNfZWNobyAieWVzIiA+JjY7IH0KKysKKytybSAtZiAtciBhLm91dCBhLm91dC5kU1lNIGEu ZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVh bl9maWxlc19zYXZlCisrIyBDaGVjayB0aGF0IHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRh YmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKysjIHRoZSBjb21waWxlciBpcyBicm9r ZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uICIgPiY2OyB9CisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1Cisr JGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQorKworK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2OyB9Cisr aWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwg KlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRh Y190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFj X3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRh Y19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4K KysgICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNvbmZ0ZXN0JyBhcmUgYHByZXNlbnQn ICh3ZWxsLCBvYnNlcnZhYmxlKQorKyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFu Y2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAorKyMgd29yayBwcm9wZXJseSAoaS5l LiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCisrIyBgcm0n LgorK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbwor KyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisrICBjYXNlICRhY19maWxlIGluCisr ICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwg Ki5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsK KysgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipc KSdgCisrCSAgYnJlYWs7OworKyAgICAqICkgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNl CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW4gXGAkYWNfcHdkJzoi ID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KKyt7 IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4 IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluaworK1NlZSBcYGNvbmZpZy5s b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fu bm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGlu aworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4 aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QkYWNfY3ZfZXhl ZXh0CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIg PiY1CisrJGFzX2VjaG8gIiRhY19jdl9leGVleHQiID4mNjsgfQorKworK3JtIC1mIGNvbmZ0ZXN0 LiRhY19leHQKKytFWEVFWFQ9JGFjX2N2X2V4ZWV4dAorK2FjX2V4ZWV4dD0kRVhFRVhUCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZp bGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxl cy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0K3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0 Lm9iagorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfY29tcGlsZSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9OyB0aGVuCisrICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iaiBj b25mdGVzdC4qOyBkbworKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlOworKyAgY2Fz ZSAkYWNfZmlsZSBpbgorKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAq LnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gKSA7 OworKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AK KysgICAgICAgYnJlYWs7OworKyAgZXNhYworK2RvbmUKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxg JGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoi ID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21w dXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCisrU2VlIFxgY29uZmln LmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj YW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorK1Nl ZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfTsgfQorK2ZpCisrCisrcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBj b25mdGVzdC4kYWNfZXh0CisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3Zfb2JqZXh0IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X29iamV4dCIgPiY2OyB9Cisr T0JKRVhUPSRhY19jdl9vYmpleHQKKythY19vYmpleHQ9JE9CSkVYVAorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBj b21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcg dGhlIEdOVSBDKysgY29tcGlsZXIuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2N4eF9j b21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysKKytpbnQKKyttYWluICgpCisreworKyNpZm5kZWYgX19HTlVDX18KKysgICAgICAgY2hva2Ug bWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFj X29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKysKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyth Y19jdl9jeHhfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKKysKKytmaQorK3sgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUK KyskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFj X2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR1hYPXllcworK2Vsc2UKKysgIEdYWD0KKytm aQorK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9CisrYWNfc2F2ZV9DWFhGTEFHUz0k Q1hYRkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAk Q1hYIGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENYWCBh Y2NlcHRzIC1nLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2N4eF9nK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFj X3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKKysgICBhY19jeHhfd2Vy cm9yX2ZsYWc9eWVzCisrICAgYWNfY3ZfcHJvZ19jeHhfZz1ubworKyAgIENYWEZMQUdTPSItZyIK KysgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworK2ludAor K21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYg Y29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRh Y19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2dfY3h4X2c9eWVzCisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKwlDWFhGTEFHUz0iIgorKyAgICAgIGNhdCA+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25m ZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysg IDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0 CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2 YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7Cisr CSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAg OgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQor K3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3h4X3dlcnJvcl9m bGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworKwkgQ1hYRkxBR1M9Ii1nIgorKwkgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisr eworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/ CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYg Y29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0 aGVuCisrICBhY19jdl9wcm9nX2N4eF9nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysg ICBhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jeHhfZyIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdl9wcm9nX2N4eF9nIiA+JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9D WFhGTEFHUyIgPSBzZXQ7IHRoZW4KKysgIENYWEZMQUdTPSRhY19zYXZlX0NYWEZMQUdTCisrZWxp ZiB0ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0geWVzOyB0aGVuCisrICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgorKyAgICBDWFhGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFH Uz0iLWciCisrICBmaQorK2Vsc2UKKysgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAg IENYWEZMQUdTPSItTzIiCisrICBlbHNlCisrICAgIENYWEZMQUdTPQorKyAgZmkKKytmaQorK2Fj X2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Cisr REVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgorKworK2FjX2NvbmZpZ19jb21tYW5kcz0i JGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKKysKKysKKythbV9tYWtlPSR7TUFLRS1tYWtl fQorK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKKythbV9fZG9pdDoKKysJQGVjaG8gdGhpcyBpcyB0 aGUgYW1fX2RvaXQgdGFyZ2V0CisrLlBIT05ZOiBhbV9fZG9pdAorK0VORAorKyMgSWYgd2UgZG9u J3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUgY29kZS4K Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1 ZGUgdXNlZCBieSAkYW1fbWFrZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN0eWxl IG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZS4uLiAiID4mNjsgfQorK2FtX19pbmNsdWRlPSIj IgorK2FtX19xdW90ZT0KKytfYW1fcmVzdWx0PW5vbmUKKysjIEZpcnN0IHRyeSBHTlUgbWFrZSBz dHlsZSBpbmNsdWRlLgorK2VjaG8gImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKKysjIElnbm9y ZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJvbSBgbWFrZScuCisrY2FzZSBgJGFt X21ha2UgLXMgLWYgY29uZm1mIDI+IC9kZXYvbnVsbGAgaW4gIygKKysqdGhlXCBhbV9fZG9pdFwg dGFyZ2V0KikKKysgIGFtX19pbmNsdWRlPWluY2x1ZGUKKysgIGFtX19xdW90ZT0KKysgIF9hbV9y ZXN1bHQ9R05VCisrICA7OworK2VzYWMKKysjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVk ZS4KKytpZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCisrICAgZWNobyAnLmluY2x1 ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorKyAgIGNhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAy PiAvZGV2L251bGxgIGluICMoCisrICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCisrICAgICBh bV9faW5jbHVkZT0uaW5jbHVkZQorKyAgICAgYW1fX3F1b3RlPSJcIiIKKysgICAgIF9hbV9yZXN1 bHQ9QlNECisrICAgICA7OworKyAgIGVzYWMKKytmaQorKworKworK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRfYW1fcmVzdWx0IiA+JjUKKyskYXNfZWNobyAiJF9hbV9yZXN1 bHQiID4mNjsgfQorK3JtIC1mIGNvbmZpbmMgY29uZm1mCisrCisrIyBDaGVjayB3aGV0aGVyIC0t ZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxl X2RlcGVuZGVuY3lfdHJhY2tpbmcrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5h YmxlX2RlcGVuZGVuY3lfdHJhY2tpbmc7CisrZmkKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBl bmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGly L2RlcGNvbXAiCisrICBBTURFUEJBQ0tTTEFTSD0nXCcKKytmaQorKyBpZiB0ZXN0ICJ4JGVuYWJs ZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKysgIEFNREVQX1RSVUU9CisrICBB TURFUF9GQUxTRT0nIycKKytlbHNlCisrICBBTURFUF9UUlVFPScjJworKyAgQU1ERVBfRkFMU0U9 CisrZmkKKysKKysKKysKKytkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9CisrCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRl cGNjIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBj Yy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxl cl90eXBlK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29t cCI7IHRoZW4KKysgICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAg T3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKKysgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2Ug ZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisrICAjIGluc3RhbmNlIGl0 IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAorKyAg IyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBw dXQgdGhlIG91dHB1dAorKyAgIyBpbiBEJy4KKysgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorKyAgIyBD b3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQg aWYgd2UncmUKKysgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisrICBjcCAiJGFtX2Rl cGNvbXAiIGNvbmZ0ZXN0LmRpcgorKyAgY2QgY29uZnRlc3QuZGlyCisrICAjIFdlIHdpbGwgYnVp bGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKKysg ICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9y IGluc3RhbmNlCisrICAjIGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91 dHB1dCBkZXBlbmRlbmNpZXMgYXMgYQorKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwg YnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisrICAjIHRoZSBjdXJyZW50IGRp cmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKKysgICMgZGly ZWN0b3J5LgorKyAgbWtkaXIgc3ViCisrCisrICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBp bGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4K KysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVowLTldKlwpKSQv XDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAgYW1fX3VuaXZlcnNhbD1mYWxzZQorKyAgY2Fz ZSAiICRkZXBjYyAiIGluICMoCisrICAgICAqXCAtYXJjaFwgKlwgLWFyY2hcICopIGFtX191bml2 ZXJzYWw9dHJ1ZSA7OworKyAgICAgZXNhYworKworKyAgZm9yIGRlcG1vZGUgaW4gJGFtX2NvbXBp bGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVuY2ll cywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBl bmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMgd2Ugc2hvdWxk IG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4KKysg ICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVz dCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hl biB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRoaXMgaGFwcGVu cyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1Yi9jb25mdGVz dC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8gJyNpbmNsdWRl ICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVzaW5nIGA6ID4g c3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorKyAgICAg ICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3ViL2NvbmZ0c3Qk aS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3Vi L2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICAjIFdlIGNoZWNrIHdp dGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKysgICAg IyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBu b3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0 IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAgICMgdmVyc2lvbnMgaGFkIHRyb3VibGUgd2l0 aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9fb2JqPXN1Yi9jb25mdGVzdC4ke09CSkVYVC1v fQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKKysgICAgY2FzZSAkZGVwbW9kZSBp bgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEgY29tcGlsZXIgcmFj ZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0ZXN0ICIkYW1fX3VuaXZlcnNhbCIgPSBmYWxz ZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAgIG5vc2lkZWVmZmVjdCkKKysgICAgICAjIGFm dGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3QsIHNvIHRoZXkn bGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisrICAg ICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCisr CWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAgICAgOzsKKysg ICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysgICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3Qg Z3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcworKyAgICAgICMgbm90 IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFu ZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUg aW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09CSkVYVC1vfQorKyAgICAgIGFt X19taW51c19vYmo9CisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysgICAgZXNhYwor KyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9jb25mdGVzdC5j IG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRl cGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNj IC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+L2Rldi9udWxs IDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmggc3ViL2NvbmZ0 ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBz dWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVwICRhbV9fb2Jq IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7TUFLRS1tYWtl fSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMgaWNjIGRvZXNu J3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUgd2FybmluZ3MK KysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3Rk ZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlvbiB3YXMgaWdu b3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3LjAg YW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdh cm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorKyAgICAg ICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAgIGljYzogQ29t bWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysgICAgICBpZiAo Z3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAgICAgZ3JlcCAn bm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxz ZQorKyAgICAgICAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2Rl CisrICAgICAgICBicmVhaworKyAgICAgIGZpCisrICAgIGZpCisrICBkb25lCisrCisrICBjZCAu LgorKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorK2Vsc2UKKysgIGFtX2N2X0NYWF9kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZT1ub25lCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4m NQorKyRhc19lY2hvICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjY7 IH0KKytDWFhERVBNT0RFPWRlcG1vZGU9JGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZQorKworKyBpZgorKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0g eG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUi ID0gZ2NjMzsgdGhlbgorKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0KKysgIGFtX19mYXN0ZGVwQ1hY X0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9JyMnCisrICBhbV9fZmFz dGRlcENYWF9GQUxTRT0KKytmaQorKworKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwor K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29yIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJvY2Vzc29y Li4uICIgPiY2OyB9CisraWYgdGVzdCAteiAiJENYWENQUCI7IHRoZW4KKysgIGlmIHRlc3QgIiR7 YWNfY3ZfcHJvZ19DWFhDUFArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CisrZWxzZQorKyAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENYWENQUCBu ZWVkcyB0byBiZSBleHBhbmRlZAorKyAgICBmb3IgQ1hYQ1BQIGluICIkQ1hYIC1FIiAiL2xpYi9j cHAiCisrICAgIGRvCisrICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJl cHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhh dCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNo IGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0 Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3Rz IGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1F IHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBq dXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2Fz ZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVm IF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNz ZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFj X3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJu X2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVk IHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor KworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysK KytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mg b24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysg ICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgor K2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3Ry eSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikg PiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJl cHJvY193YXJuX2ZsYWckYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlk IGlucHV0LgorK2NvbnRpbnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisr Cisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNh dXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNr aXBwZWQuCisrcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJl cHJvY19vazsgdGhlbgorKyAgYnJlYWsKKytmaQorKworKyAgICBkb25lCisrICAgIGFjX2N2X3By b2dfQ1hYQ1BQPSRDWFhDUFAKKysKKytmaQorKyAgQ1hYQ1BQPSRhY19jdl9wcm9nX0NYWENQUAor K2Vsc2UKKysgIGFjX2N2X3Byb2dfQ1hYQ1BQPSRDWFhDUFAKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRDWFhDUFAiID4mNQorKyRhc19lY2hvICIkQ1hYQ1BQIiA+ JjY7IH0KKythY19wcmVwcm9jX29rPWZhbHNlCisrZm9yIGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxh ZyBpbiAnJyB5ZXMKKytkbworKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGgg Z2NjLCBzbyBjb25maWd1cmluZyBnbGliYworKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGls ZXIgd29ya3MuCisrICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERD X18gaXMgZGVmaW5lZCwgc2luY2UKKysgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVl c3RhbmRpbmcgY29tcGlsZXJzLgorKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29k ZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKysgICMgbm90IGp1c3QgdGhyb3VnaCBj cHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgorKyAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaWZkZWYgX19TVERDX18KKysj IGluY2x1ZGUgPGxpbWl0cy5oPgorKyNlbHNlCisrIyBpbmNsdWRlIDxhc3NlcnQuaD4KKysjZW5k aWYKKysJCSAgICAgU3ludGF4IGVycm9yCisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3Bw IGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3Bw IGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRl c3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2 L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRo ZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIEJyb2tl bjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUKKytmaQorKworK3JtIC1mIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2Vz LiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycworKyAgIyBjYW4gYmUgZGV0 ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5 PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFs ICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVz PSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0g LWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxh ZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29u dGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+ JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrICAjIFBhc3NlcyBi b3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9OgorK2JyZWFrCisrZmkKKysKKytybSAtZiBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworK2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFr JywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAt ZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVu CisrICA6CisrZWxzZQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGlu IFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMrKyBwcmVw cm9jZXNzb3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCisrU2VlIFxgY29uZmlnLmxv ZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDKysg cHJlcHJvY2Vzc29yIFwiJENYWENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworK1NlZSBcYGNvbmZp Zy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfTsgfQorK2ZpCisrCisrYWNfZXh0PWMKKythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK KythY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY19jb21waWxlcl9nbnUKKysKKytDWFhGTEFHUz0iJHNhdmVfQ1hYRkxBR1MiCisrIyBGaW5k IGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3Rlciks CisrIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4gIEJ1dCBhdm9pZCB0aGUg YnJva2VuIG9yCisrIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6CisrIyBTeXNWIC9ldGMvaW5zdGFs bCwgL3Vzci9zYmluL2luc3RhbGwKKysjIFN1bk9TIC91c3IvZXRjL2luc3RhbGwKKysjIElSSVgg L3NiaW4vaW5zdGFsbAorKyMgQUlYIC9iaW4vaW5zdGFsbAorKyMgQW1pZ2FPUyAvQy9pbnN0YWxs LCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNjcworKyMgQUlYIDQgL3Vz ci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCisr IyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVu dCBhcmdzCisrIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRyaWVzIHRvIHVzZSB0aGUg bm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgorKyMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGlj aCBoYXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYworKyMgLi9pbnN0YWxsLCB3aGlj aCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgor KyMgUmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5zdGFsbCBtdWx0aXBsZSBm aWxlcy4KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGEgQlNELWNv bXBhdGlibGUgaW5zdGFsbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgQlNELWNv bXBhdGlibGUgaW5zdGFsbC4uLiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhl bgorK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNf c2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICAjIEFjY291bnQg Zm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50cy4KKytj YXNlICRhc19kaXIvIGluCisrICAuLyB8IC4vLyB8IC9jQy8qIHwgXAorKyAgL2V0Yy8qIHwgL3Vz ci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3MvYmluLyogfCBcCisr ICA/OlxcL29zMlxcL2luc3RhbGxcXC8qIHwgPzpcXC9PUzJcXC9JTlNUQUxMXFwvKiB8IFwKKysg IC91c3IvdWNiLyogKSA7OworKyAgKikKKysgICAgIyBPU0YxIGFuZCBTQ08gT0RUIDMuMCBoYXZl IHRoZWlyIG93biBuYW1lcyBmb3IgaW5zdGFsbC4KKysgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJz ZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290CisrICAgICMgYnkgZGVm YXVsdC4KKysgICAgZm9yIGFjX3Byb2cgaW4gZ2luc3RhbGwgc2NvaW5zdCBpbnN0YWxsOyBkbwor KyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKwlpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB9OyB0aGVuCisrCSAgaWYgdGVz dCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKysJICAgIGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19w cm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysJICAgICMgQUlYIGluc3Rh bGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KKysJICAgIDoK KysJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYmCisrCSAgICBncmVwIHB3cGx1cyAi JGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrCSAg ICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRv bid0IHVzZS4KKysJICAgIDoKKysJICBlbHNlCisrCSAgICBybSAtcmYgY29uZnRlc3Qub25lIGNv bmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKKysJICAgIGVjaG8gb25lID4gY29uZnRlc3Qub25lCisr CSAgICBlY2hvIHR3byA+IGNvbmZ0ZXN0LnR3bworKwkgICAgbWtkaXIgY29uZnRlc3QuZGlyCisr CSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMgY29uZnRlc3Qub25lIGNv bmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0 ZXN0Lm9uZSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LnR3byAmJgorKwkgICAgICB0ZXN0IC1zIGNvbmZ0 ZXN0LmRpci9jb25mdGVzdC5vbmUgJiYKKysJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29u ZnRlc3QudHdvCisrCSAgICB0aGVuCisrCSAgICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rp ci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKysJICAgICAgYnJlYWsgMworKwkgICAgZmkKKysJ ICBmaQorKwlmaQorKyAgICAgIGRvbmUKKysgICAgZG9uZQorKyAgICA7OworK2VzYWMKKysKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKworK3JtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3Qu dHdvIGNvbmZ0ZXN0LmRpcgorKworK2ZpCisrICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFs bCtzZXR9IiA9IHNldDsgdGhlbgorKyAgICBJTlNUQUxMPSRhY19jdl9wYXRoX2luc3RhbGwKKysg IGVsc2UKKysgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0 LiAgRG9uJ3QgY2FjaGUgYQorKyAgICAjIHZhbHVlIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJj ZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisrICAgICMgYnJlYWsgb3RoZXIgcGFja2Fn ZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCisrICAgICMgcmVtb3ZlZCwg b3IgaWYgdGhlIHZhbHVlIGlzIGEgcmVsYXRpdmUgbmFtZS4KKysgICAgSU5TVEFMTD0kYWNfaW5z dGFsbF9zaAorKyAgZmkKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRJTlNUQUxMIiA+JjUKKyskYXNfZWNobyAiJElOU1RBTEwiID4mNjsgfQorKworKyMgVXNlIHRl c3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4K KysjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFibGUgc3Vi c3RpdHV0aW9uLgorK3Rlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJPR1JB TT0nJHtJTlNUQUxMfScKKysKKyt0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElOU1RBTExf U0NSSVBUPScke0lOU1RBTEx9JworKworK3Rlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RB TExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisrCisrY2FzZSBgcHdkYCBpbgorKyAgKlwgKiB8 ICpcCSopCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBMaWJ0b29s IGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHdoaXRlc3BhY2UgaW4gXGBwd2RcYCIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogV0FSTklORzogTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCB3 aGl0ZXNwYWNlIGluIFxgcHdkXGAiID4mMjt9IDs7CisrZXNhYworKworKworKworK21hY3JvX3Zl cnNpb249JzIuMi42YicKKyttYWNyb19yZXZpc2lvbj0nMS4zMDE3JworKworKworKworKworKwor KworKworKworKworKworKworKworKworK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgor KworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0Mg LWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJEND IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJf Z251CisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBh Y193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKysg IGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1nY2MiCisrICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrZmkKKytmaQorK0NDPSRhY19jdl9wcm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNo byAiJENDIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYg dGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCisrICBhY19jdF9DQz0kQ0MKKysgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l IHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2Fj X2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNf Y3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxz ZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg JiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysg ICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAy CisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKyth Y19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkK KysKKysgIGlmIHRlc3QgIngkYWNfY3RfQ0MiID0geDsgdGhlbgorKyAgICBDQz0iIgorKyAgZWxz ZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMg bm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQi ID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBDQz0kYWNfY3RfQ0MK KysgIGZpCisrZWxzZQorKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgorK2ZpCisrCisraWYgdGVzdCAt eiAiJENDIjsgdGhlbgorKyAgICAgICAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0 aGVuCisrICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1j YyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7 YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBz ZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVz dCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4 fWNjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisr SUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKytDQz0kYWNfY3ZfcHJvZ19DQworK2lmIHRl c3QgLW4gIiRDQyI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRDQyIgPiY1CisrJGFzX2VjaG8gIiRDQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysKKysgIGZpCisrZmkKKytpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisrICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdp dGggYXJncy4KKytzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0 fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAg aWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrICBhY19wcm9nX3JlamVjdGVkPW5vCisr YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBB VEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25z OyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAk YXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBp ZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRo ZW4KKysgICAgICAgYWNfcHJvZ19yZWplY3RlZD15ZXMKKysgICAgICAgY29udGludWUKKysgICAg IGZpCisrICAgIGFjX2N2X3Byb2dfQ0M9ImNjIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAy CisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2lmIHRlc3QgJGFj X3Byb2dfcmVqZWN0ZWQgPSB5ZXM7IHRoZW4KKysgICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUg cGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KKysgIHNldCBkdW1teSAkYWNfY3Zf cHJvZ19DQworKyAgc2hpZnQKKysgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgorKyAgICAjIFdlIGNo b3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KKysgICAgIyBIb3dl dmVyLCBpdCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3Nl bgorKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRo ZSBmdWxsIGZpbGUgbmFtZS4KKysgICAgc2hpZnQKKysgICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rp ci8kYWNfd29yZCR7MSsnICd9JEAiCisrICBmaQorK2ZpCisrZmkKKytmaQorK0NDPSRhY19jdl9w cm9nX0NDCisraWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogJENDIiA+JjUKKyskYXNfZWNobyAiJENDIiA+JjY7IH0KKytlbHNlCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8g Im5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYgdGVzdCAteiAiJENDIjsgdGhlbgorKyAg aWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgZm9yIGFjX3Byb2cgaW4gY2wu ZXhlCisrICBkbworKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3By ZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytz ZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX0NDPSIk YWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ0M9JGFj X2N2X3Byb2dfQ0MKKytpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQorKyRhc19lY2hvICIkQ0MiID4mNjsgfQorK2Vs c2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNf ZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICAgIHRlc3QgLW4gIiRDQyIgJiYgYnJlYWsK KysgIGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKysgIGFjX2N0X0NDPSRDQwor KyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCisrZG8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0NDPSIk YWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19z YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAor K2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9 LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv CisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2 X3Byb2dfYWNfY3RfQ0M9IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisr ICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19j dF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4K KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Cisr JGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysK KysKKysgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0 ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KKysgICAgQ0M9IiIKKysgIGVsc2UKKysgICAgY2FzZSAk Y3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3 aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcg Y3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rv b2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ0M9JGFjX2N0X0NDCisrICBmaQorK2ZpCisr CisrZmkKKysKKysKKyt0ZXN0IC16ICIkQ0MiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6 IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK3sgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVy cm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICisrU2VlIFxgY29u ZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICisrU2VlIFxgY29uZmln LmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9OyB9CisrCisrIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVy LgorKyRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVy c2lvbiIgPiY1Cisrc2V0IFggJGFjX2NvbXBpbGUKKythY19jb21waWxlcj0kMgorK3sgKGFjX3Ry eT0iJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5F Tk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChl dmFsICIkYWNfY29tcGlsZXIgLS12ZXJzaW9uID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPwor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9CisreyAoYWNfdHJ5PSIkYWNfY29tcGlsZXIgLXYgPiY1IgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC12ID4mNSIpIDI+JjUKKysg IGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisreyAoYWNfdHJ5PSIkYWNfY29tcGls ZXIgLVYgPiY1IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC1W ID4mNSIpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9CisrCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRo ZSBHTlUgQyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB3ZSBh cmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19j dl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBj b25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19l eHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmgu ICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrI2lmbmRlZiBfX0dOVUNfXworKyAgICAgICBj aG9rZSBtZQorKyNlbmRpZgorKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3Jt IC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQor KyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAor KwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3Qu JGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJfZ251PXllcworK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGlsZXJfZ251PW5vCisrZmkKKysKKytybSAt ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQK KythY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251CisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQor KyRhc19lY2hvICIkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2Nv bXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAgR0NDPXllcworK2Vsc2UKKysgIEdDQz0KKytmaQor K2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KKythY19zYXZlX0NGTEFHUz0kQ0ZMQUdTCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMg LWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWcuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19zYXZlX2Nfd2Vycm9y X2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKKysgICBhY19jX3dlcnJvcl9mbGFnPXllcworKyAgIGFj X2N2X3Byb2dfY2NfZz1ubworKyAgIENGTEFHUz0iLWciCisrICAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOwor KyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytp ZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3Zf cHJvZ19jY19nPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJQ0ZM QUdTPSIiCisrICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxl IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysJYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCisrCSBD RkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VP RgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxl IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0 LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNv bmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4m NQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysg IChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY3ZfcHJvZ19jY19nPXllcworK2Vsc2UKKysg ICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wg LycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0 CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKKysgICBhY19jX3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nfd2Vycm9yX2Zs YWcKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9n X2NjX2ciID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19nIiA+JjY7IH0KKytpZiB0ZXN0 ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCisrICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdT CisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KKysgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCisrICAgIENGTEFHUz0iLWcgLU8yIgorKyAgZWxzZQorKyAgICBDRkxB R1M9Ii1nIgorKyAgZmkKKytlbHNlCisrICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAg ICBDRkxBR1M9Ii1PMiIKKysgIGVsc2UKKysgICAgQ0ZMQUdTPQorKyAgZmkKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQg SVNPIEM4OSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNj ZXB0IElTTyBDODkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfYzg5K3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGFjX2N2X3Byb2dfY2NfYzg5PW5vCisrYWNfc2F2ZV9DQz0kQ0MKKytjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRhcmcuaD4KKysjaW5jbHVk ZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CisrLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1Mg NS43J3Mgc3JjL2NvbmYuc2guICAqLworK3N0cnVjdCBidWYgeyBpbnQgeDsgfTsKKytGSUxFICog KCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOworK3N0YXRpYyBj aGFyICplIChwLCBpKQorKyAgICAgY2hhciAqKnA7CisrICAgICBpbnQgaTsKKyt7CisrICByZXR1 cm4gcFtpXTsKKyt9Cisrc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQp LCBjaGFyICoqcCwgLi4uKQorK3sKKysgIGNoYXIgKnM7CisrICB2YV9saXN0IHY7CisrICB2YV9z dGFydCAodixwKTsKKysgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CisrICB2YV9lbmQgKHYp OworKyAgcmV0dXJuIHM7CisrfQorKworKy8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29y dCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCisrICAgZnVuY3Rpb24gcHJvdG90 eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgor KyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBh cmUgc2lsZW50bHkgdHJlYXRlZAorKyAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBh biBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKKysgICBwcm9wZXIgQU5TSSBtb2Rl LiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCisr ICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09 MCB0byBnZXQgc29tZXRoaW5nCisrICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQuICAqLwor K2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CisrCisrLyogSUJNIEMg NiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBtYWNy byBwYXJhbWV0ZXJzCisrICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25zdGFudHMu ICAqLworKyNkZWZpbmUgRk9PKHgpICd4JworK2ludCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9PSAn eCcgPyAxIDogLTFdOworKworK2ludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOworK3N0cnVjdCBz MSB7aW50ICgqZikgKGludCBhKTt9OworK3N0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9 OworK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwg c3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOworK2ludCBhcmdjOworK2NoYXIgKiphcmd2 OworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0g IHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4dGM4OSAtcWxhbmdsdmw9YW5z aSAtc3RkIFwKKysJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNf XyIKKytkbworKyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCisrICBybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0k PworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1m IGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRo ZW4KKysgIGFjX2N2X3Byb2dfY2NfYzg5PSRhY19hcmcKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0CisrICB0ZXN0ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAieG5vIiAmJiBi cmVhaworK2RvbmUKKytybSAtZiBjb25mdGVzdC4kYWNfZXh0CisrQ0M9JGFjX3NhdmVfQ0MKKysK KytmaQorKyMgQUNfQ0FDSEVfVkFMCisrY2FzZSAieCRhY19jdl9wcm9nX2NjX2M4OSIgaW4KKysg IHgpCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUgbmVlZGVk IiA+JjUKKyskYXNfZWNobyAibm9uZSBuZWVkZWQiID4mNjsgfSA7OworKyAgeG5vKQorKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB1bnN1cHBvcnRlZCIgPiY1CisrJGFz X2VjaG8gInVuc3VwcG9ydGVkIiA+JjY7IH0gOzsKKysgICopCisrICAgIENDPSIkQ0MgJGFjX2N2 X3Byb2dfY2NfYzg5IgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfY3ZfcHJvZ19jY19jODkiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19jODkiID4m NjsgfSA7OworK2VzYWMKKysKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1Mn CisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2RlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlz dD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBz dHlsZSBvZiAkZGVwY2MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5 bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthbV9jdl9DQ19kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAi JGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0 cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisrICAjIG1ha2luZyBib2d1cyBmaWxl cyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgorKyAgIyBp bnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBl bmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1E JyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcuCisrICBta2RpciBjb25mdGVzdC5k aXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24n dCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgorKyAg Y3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNkIGNvbmZ0ZXN0LmRpcgorKyAgIyBX ZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBi ZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBt b2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0 IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysgICMgc2lkZSBlZmZlY3Qgb2YgY29t cGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgorKyAgIyB0aGUg Y3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0 CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKworKyAgYW1fY3ZfQ0NfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0g IiI7IHRoZW4KKysgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiAncy9eIypcKFthLXpBLVow LTldKlwpKSQvXDEvcCcgPCAuL2RlcGNvbXBgCisrICBmaQorKyAgYW1fX3VuaXZlcnNhbD1mYWxz ZQorKyAgY2FzZSAiICRkZXBjYyAiIGluICMoCisrICAgICAqXCAtYXJjaFwgKlwgLWFyY2hcICop IGFtX191bml2ZXJzYWw9dHJ1ZSA7OworKyAgICAgZXNhYworKworKyAgZm9yIGRlcG1vZGUgaW4g JGFtX2NvbXBpbGVyX2xpc3Q7IGRvCisrICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRl cGVuZGVuY2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycworKyAgICAjIGxpa2UgdG8gd3JhcCBs YXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisrICAgICMg d2Ugc2hvdWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkg dGhpcy4KKysgICAgIworKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9y IGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorKyAgICAjIG92ZXJ3cml0ZSBzb21lIG9m IHRoZW0gd2hlbiB0ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgorKyAgICAjIFRo aXMgaGFwcGVucyBhdCBsZWFzdCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KKysgICAgOiA+IHN1 Yi9jb25mdGVzdC5jCisrICAgIGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbworKyAgICAgIGVjaG8g JyNpbmNsdWRlICJjb25mdHN0JyRpJy5oIicgPj4gc3ViL2NvbmZ0ZXN0LmMKKysgICAgICAjIFVz aW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0 aAorKyAgICAgICMgU29sYXJpcyA4J3Mgey91c3IsfS9iaW4vc2guCisrICAgICAgdG91Y2ggc3Vi L2NvbmZ0c3QkaS5oCisrICAgIGRvbmUKKysgICAgZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9f cXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVvdGV9IiA+IGNvbmZtZgorKworKyAgICAjIFdl IGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91 dCIKKysgICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlIFN1blBybyBDKysgY29tcGls ZXIgZG9lcyBub3QgcHJvcGVybHkKKysgICAgIyBoYW5kbGUgYC1NIC1vJywgYW5kIHdlIG5lZWQg dG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCisrICAgICMgdmVyc2lvbnMgaGFkIHRy b3VibGUgd2l0aCBvdXRwdXQgaW4gc3ViZGlycworKyAgICBhbV9fb2JqPXN1Yi9jb25mdGVzdC4k e09CSkVYVC1vfQorKyAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKKysgICAgY2FzZSAk ZGVwbW9kZSBpbgorKyAgICBnY2MpCisrICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEgY29t cGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KKysgICAgICB0ZXN0ICIkYW1fX3VuaXZlcnNh bCIgPSBmYWxzZSB8fCBjb250aW51ZQorKyAgICAgIDs7CisrICAgIG5vc2lkZWVmZmVjdCkKKysg ICAgICAjIGFmdGVyIHRoaXMgdGFnLCBtZWNoYW5pc21zIGFyZSBub3QgYnkgc2lkZS1lZmZlY3Qs IHNvIHRoZXknbGwKKysgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVz dGVkCisrICAgICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVz OyB0aGVuCisrCWNvbnRpbnVlCisrICAgICAgZWxzZQorKwlicmVhaworKyAgICAgIGZpCisrICAg ICAgOzsKKysgICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKysgICAgICAjIFRoaXMgY29tcGls ZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcworKyAg ICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhl IGdhbWUsIGFuZAorKyAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3Vs ZCBub3QgYmUgaW1wYWN0ZWQuCisrICAgICAgYW1fX29iaj1jb25mdGVzdC4ke09CSkVYVC1vfQor KyAgICAgIGFtX19taW51c19vYmo9CisrICAgICAgOzsKKysgICAgbm9uZSkgYnJlYWsgOzsKKysg ICAgZXNhYworKyAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKKysgICAgICAgc291cmNlPXN1Yi9j b25mdGVzdC5jIG9iamVjdD0kYW1fX29iaiBcCisrICAgICAgIGRlcGZpbGU9c3ViL2NvbmZ0ZXN0 LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCisrICAgICAgICRTSEVMTCAuL2RlcGNv bXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwKKysgICAgICAgICA+ L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisrICAgICAgIGdyZXAgc3ViL2NvbmZ0c3QxLmgg c3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAgZ3JlcCBzdWIvY29u ZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAgICBncmVw ICRhbV9fb2JqIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgICR7 TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgICAgICMg aWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUg d2FybmluZ3MKKysgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdl IGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorKyAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlv biB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgorKyAgICAgICMgV2hlbiBnaXZlbiAtTVAs IGljYyA3LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CisrICAgICAgIyAgIGljYzogQ29tbWFu ZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJl ZAorKyAgICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CisrICAgICAgIyAg IGljYzogQ29tbWFuZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKKysg ICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKysgICAgICAg ICAgZ3JlcCAnbm90IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRo ZW4gOjsgZWxzZQorKyAgICAgICAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9 JGRlcG1vZGUKKysgICAgICAgIGJyZWFrCisrICAgICAgZmkKKysgICAgZmkKKysgIGRvbmUKKysK KysgIGNkIC4uCisrICBybSAtcmYgY29uZnRlc3QuZGlyCisrZWxzZQorKyAgYW1fY3ZfQ0NfZGVw ZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrCisrZmkKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5 cGUiID4mNQorKyRhc19lY2hvICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUi ID4mNjsgfQorK0NDREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZQorKworKyBpZgorKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIg IT0geG5vIFwKKysgICYmIHRlc3QgIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlw ZSIgPSBnY2MzOyB0aGVuCisrICBhbV9fZmFzdGRlcENDX1RSVUU9CisrICBhbV9fZmFzdGRlcEND X0ZBTFNFPScjJworK2Vsc2UKKysgIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKKysgIGFtX19mYXN0 ZGVwQ0NfRkFMU0U9CisrZmkKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0IiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfU0VEK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgICAgICAgICAgICBhY19z Y3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS9iYmJiYmJiYmJiYmJi YmJiYmJiYmJiYmJiYmJiYmJiYmIvCisrICAgICBmb3IgYWNfaSBpbiAxIDIgMyA0IDUgNiA3OyBk bworKyAgICAgICBhY19zY3JpcHQ9IiRhY19zY3JpcHQkYXNfbmwkYWNfc2NyaXB0IgorKyAgICAg ZG9uZQorKyAgICAgZWNobyAiJGFjX3NjcmlwdCIgMj4vZGV2L251bGwgfCBzZWQgOTlxID5jb25m dGVzdC5zZWQKKysgICAgICRhc191bnNldCBhY19zY3JpcHQgfHwgYWNfc2NyaXB0PQorKyAgICAg aWYgdGVzdCAteiAiJFNFRCI7IHRoZW4KKysgIGFjX3BhdGhfU0VEX2ZvdW5kPWZhbHNlCisrICAj IExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05B TUUtTElTVAorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBh c19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19wcm9nIGluIHNlZCBnc2VkOyBkbworKyAgICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAg ICBhY19wYXRoX1NFRD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKKysgICAgICB7IHRl c3QgLWYgIiRhY19wYXRoX1NFRCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfU0VEIjsgfSB8fCBj b250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX1NFRCBhbmQgc2VsZWN0IGl0IGlmIGl0 IGlzIGZvdW5kLgorKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX1NFRAorK2Nhc2UgYCIkYWNf cGF0aF9TRUQiIC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9TRUQ9 IiRhY19wYXRoX1NFRCIgYWNfcGF0aF9TRURfZm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAK KysgICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAg ZG8KKysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIK KysgICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3Qu aW4iICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJycgPj4gImNvbmZ0ZXN0Lm5sIgorKyAg ICAiJGFjX3BhdGhfU0VEIiAtZiBjb25mdGVzdC5zZWQgPCAiY29uZnRlc3QubmwiID4iY29uZnRl c3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJj b25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBleHBy ICRhY19jb3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfU0VE X21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVw IGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhfU0VEPSIkYWNfcGF0 aF9TRUQiCisrICAgICAgYWNfcGF0aF9TRURfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAgICAj IDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAgIHRl c3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRlc3Qu aW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKworKyAg ICAgICRhY19wYXRoX1NFRF9mb3VuZCAmJiBicmVhayAzCisrICAgIGRvbmUKKysgIGRvbmUKKytk b25lCisrSUZTPSRhc19zYXZlX0lGUworKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfU0VEIjsg dGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0 YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiA+JjUKKyskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogbm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiA+JjI7 fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyAgZmkKKytlbHNlCisrICBhY19jdl9w YXRoX1NFRD0kU0VECisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9wYXRoX1NFRCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wYXRoX1NFRCIg PiY2OyB9CisrIFNFRD0iJGFjX2N2X3BhdGhfU0VEIgorKyAgcm0gLWYgY29uZnRlc3Quc2VkCisr CisrdGVzdCAteiAiJFNFRCIgJiYgU0VEPXNlZAorK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBh bmQgLWUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfR1JFUCtzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0 IC16ICIkR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfR1JFUF9mb3VuZD1mYWxzZQorKyAgIyBMb29w IHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJ U1QKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbgorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX3Byb2cg aW4gZ3JlcCBnZ3JlcDsgZG8KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCisrICAgICAgYWNfcGF0aF9HUkVQPSIkYXNfZGlyLyRhY19wcm9n JGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfR1JFUCIgJiYgJGFzX3Rl c3RfeCAiJGFjX3BhdGhfR1JFUCI7IH0gfHwgY29udGludWUKKysjIENoZWNrIGZvciBHTlUgYWNf cGF0aF9HUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZvciBH TlUgJGFjX3BhdGhfR1JFUAorK2Nhc2UgYCIkYWNfcGF0aF9HUkVQIiAtLXZlcnNpb24gMj4mMWAg aW4KKysqR05VKikKKysgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3BhdGhfR1JFUCIgYWNfcGF0aF9H UkVQX2ZvdW5kPTo7OworKyopCisrICBhY19jb3VudD0wCisrICAkYXNfZWNob19uIDAxMjM0NTY3 ODkgPiJjb25mdGVzdC5pbiIKKysgIHdoaWxlIDoKKysgIGRvCisrICAgIGNhdCAiY29uZnRlc3Qu aW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCisrICAgIG12ICJjb25mdGVzdC50bXAi ICJjb25mdGVzdC5pbiIKKysgICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QubmwiCisrICAg ICRhc19lY2hvICdHUkVQJyA+PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0aF9HUkVQIiAt ZSAnR1JFUCQnIC1lICctKGNhbm5vdCBtYXRjaCktJyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVz dC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCisrICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNv bmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKKysgICAgYWNfY291bnQ9YGV4cHIg JGFjX2NvdW50ICsgMWAKKysgICAgaWYgdGVzdCAkYWNfY291bnQgLWd0ICR7YWNfcGF0aF9HUkVQ X21heC0wfTsgdGhlbgorKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVw IGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQorKyAgICAgIGFjX2N2X3BhdGhfR1JFUD0iJGFjX3Bh dGhfR1JFUCIKKysgICAgICBhY19wYXRoX0dSRVBfbWF4PSRhY19jb3VudAorKyAgICBmaQorKyAg ICAjIDEwKigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCisrICAg IHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhaworKyAgZG9uZQorKyAgcm0gLWYgY29uZnRl c3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7CisrZXNhYworKwor KyAgICAgICRhY19wYXRoX0dSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25l CisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0dS RVAiOyB0aGVuCisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBh Y2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNy L3hwZzQvYmluIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBn cmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIg PiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisrZWxzZQorKyAgYWNf Y3ZfcGF0aF9HUkVQPSRHUkVQCisrZmkKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19jdl9wYXRoX0dSRVAiID4mNQorKyRhc19lY2hvICIkYWNfY3ZfcGF0 aF9HUkVQIiA+JjY7IH0KKysgR1JFUD0iJGFjX2N2X3BhdGhfR1JFUCIKKysKKysKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGVncmVwIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgZWdyZXAuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhf RUdSRVArc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgaWYgZWNobyBhIHwgJEdSRVAgLUUgJyhhfGIpJyA+L2Rldi9udWxsIDI+JjEKKysg ICB0aGVuIGFjX2N2X3BhdGhfRUdSRVA9IiRHUkVQIC1FIgorKyAgIGVsc2UKKysgICAgIGlmIHRl c3QgLXogIiRFR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfRUdSRVBfZm91bmQ9ZmFsc2UKKysgICMg TG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFN RS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFz X2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytkbworKyAgSUZTPSRh c19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19w cm9nIGluIGVncmVwOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX0VHUkVQPSIkYXNfZGlyLyRhY19wcm9n JGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfRUdSRVAiICYmICRhc190 ZXN0X3ggIiRhY19wYXRoX0VHUkVQIjsgfSB8fCBjb250aW51ZQorKyMgQ2hlY2sgZm9yIEdOVSBh Y19wYXRoX0VHUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisrICAjIENoZWNrIGZv ciBHTlUgJGFjX3BhdGhfRUdSRVAKKytjYXNlIGAiJGFjX3BhdGhfRUdSRVAiIC0tdmVyc2lvbiAy PiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3BhdGhfRUdSRVAiIGFj X3BhdGhfRUdSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAKKysgICRhc19lY2hvX24g MDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAgZG8KKysgICAgY2F0ICJj b25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKKysgICAgbXYgImNvbmZ0 ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5u bCIKKysgICAgJGFzX2VjaG8gJ0VHUkVQJyA+PiAiY29uZnRlc3QubmwiCisrICAgICIkYWNfcGF0 aF9FR1JFUCIgJ0VHUkVQJCcgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYv bnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9k ZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBleHByICRhY19jb3VudCArIDFg CisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRUdSRVBfbWF4LTB9OyB0aGVu CisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3Ig YSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3BhdGhfRUdSRVAiCisr ICAgICAgYWNfcGF0aF9FR1JFUF9tYXg9JGFjX2NvdW50CisrICAgIGZpCisrICAgICMgMTAqKDJe MTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKKysgICAgdGVzdCAkYWNf Y291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25lCisrICBybSAtZiBjb25mdGVzdC5pbiBjb25m dGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKKytlc2FjCisrCisrICAgICAgJGFj X3BhdGhfRUdSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25lCisrZG9uZQor K0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0VHUkVQIjsgdGhl bgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJs ZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9i aW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGVncmVwIGNv dWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgPiYyO30K KysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisrZWxzZQorKyAgYWNfY3ZfcGF0 aF9FR1JFUD0kRUdSRVAKKytmaQorKworKyAgIGZpCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9FR1JFUCIgPiY1CisrJGFzX2VjaG8gIiRhY19j dl9wYXRoX0VHUkVQIiA+JjY7IH0KKysgRUdSRVA9IiRhY19jdl9wYXRoX0VHUkVQIgorKworKwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgZmdyZXAiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGZvciBmZ3JlcC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNf Y3ZfcGF0aF9GR1JFUCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKKytlbHNlCisrICBpZiBlY2hvICdhYipjJyB8ICRHUkVQIC1GICdhYipjJyA+L2Rldi9u dWxsIDI+JjEKKysgICB0aGVuIGFjX2N2X3BhdGhfRkdSRVA9IiRHUkVQIC1GIgorKyAgIGVsc2UK KysgICAgIGlmIHRlc3QgLXogIiRGR1JFUCI7IHRoZW4KKysgIGFjX3BhdGhfRkdSRVBfZm91bmQ9 ZmFsc2UKKysgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVzdCBmb3IgZWFj aCBvZiBQUk9HTkFNRS1MSVNUCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgIGZvciBhY19wcm9nIGluIGZncmVwOyBkbworKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycg JGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgICAgICBhY19wYXRoX0ZHUkVQPSIkYXNf ZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgorKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfRkdS RVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0ZHUkVQIjsgfSB8fCBjb250aW51ZQorKyMgQ2hl Y2sgZm9yIEdOVSBhY19wYXRoX0ZHUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCisr ICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfRkdSRVAKKytjYXNlIGAiJGFjX3BhdGhfRkdSRVAi IC0tdmVyc2lvbiAyPiYxYCBpbgorKypHTlUqKQorKyAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3Bh dGhfRkdSRVAiIGFjX3BhdGhfRkdSRVBfZm91bmQ9Ojs7CisrKikKKysgIGFjX2NvdW50PTAKKysg ICRhc19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgorKyAgd2hpbGUgOgorKyAgZG8K KysgICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKKysg ICAgbXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgorKyAgICBjcCAiY29uZnRlc3QuaW4i ICJjb25mdGVzdC5ubCIKKysgICAgJGFzX2VjaG8gJ0ZHUkVQJyA+PiAiY29uZnRlc3QubmwiCisr ICAgICIkYWNfcGF0aF9GR1JFUCIgRkdSRVAgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0 IiAyPi9kZXYvbnVsbCB8fCBicmVhaworKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVz dC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCisrICAgIGFjX2NvdW50PWBleHByICRhY19j b3VudCArIDFgCisrICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRkdSRVBfbWF4 LTB9OyB0aGVuCisrICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9v a2luZyBmb3IgYSBiZXR0ZXIgb25lCisrICAgICAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3BhdGhf RkdSRVAiCisrICAgICAgYWNfcGF0aF9GR1JFUF9tYXg9JGFjX2NvdW50CisrICAgIGZpCisrICAg ICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKKysgICAg dGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCisrICBkb25lCisrICBybSAtZiBjb25mdGVz dC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKKytlc2FjCisrCisr ICAgICAgJGFjX3BhdGhfRkdSRVBfZm91bmQgJiYgYnJlYWsgMworKyAgICBkb25lCisrICBkb25l CisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0ZH UkVQIjsgdGhlbgorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8g YWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91 c3IveHBnNC9iaW4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxl IGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2Jp biIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisrZWxzZQorKyAg YWNfY3ZfcGF0aF9GR1JFUD0kRkdSRVAKKytmaQorKworKyAgIGZpCisrZmkKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcGF0aF9GR1JFUCIgPiY1CisrJGFzX2Vj aG8gIiRhY19jdl9wYXRoX0ZHUkVQIiA+JjY7IH0KKysgRkdSRVA9IiRhY19jdl9wYXRoX0ZHUkVQ IgorKworKworK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIg LS13aXRoLWdudS1sZCB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX2dudV9sZCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9nbnVfbGQ7IHRlc3QgIiR3aXRodmFsIiA9IG5v IHx8IHdpdGhfZ251X2xkPXllcworK2Vsc2UKKysgIHdpdGhfZ251X2xkPW5vCisrZmkKKysKKyth Y19wcm9nPWxkCisraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICMgQ2hlY2sgaWYgZ2Nj IC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBsZCB1c2VkIGJ5ICRDQyIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDLi4uICIgPiY2OyB9CisrICBjYXNlICRob3N0IGlu CisrICAqLSotbWluZ3cqKQorKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSBy ZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisrICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ct bmFtZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKKysgICopCisrICAgIGFjX3Byb2c9YCgk Q0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKysgIGVzYWMKKysgIGNhc2UgJGFjX3By b2cgaW4KKysgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisrICAgIFtcXC9dKiB8ID86W1xc L10qKQorKyAgICAgIHJlX2RpcmVsdD0nL1teL11bXi9dKi9cLlwuLycKKysgICAgICAjIENhbm9u aWNhbGl6ZSB0aGUgcGF0aG5hbWUgb2YgbGQKKysgICAgICBhY19wcm9nPWAkRUNITyAiJGFjX3By b2cifCAkU0VEICdzJVxcXFwlLyVnJ2AKKysgICAgICB3aGlsZSAkRUNITyAiJGFjX3Byb2ciIHwg JEdSRVAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCisrCWFjX3Byb2c9YCRFQ0hP ICRhY19wcm9nfCAkU0VEICJzJSRyZV9kaXJlbHQlLyUiYAorKyAgICAgIGRvbmUKKysgICAgICB0 ZXN0IC16ICIkTEQiICYmIExEPSIkYWNfcHJvZyIKKysgICAgICA7OworKyAgIiIpCisrICAgICMg SWYgaXQgZmFpbHMsIHRoZW4gcHJldGVuZCB3ZSBhcmVuJ3QgdXNpbmcgR0NDLgorKyAgICBhY19w cm9nPWxkCisrICAgIDs7CisrICAqKQorKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNl YXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisrICAgIHdpdGhfZ251X2xkPXVua25vd24K KysgICAgOzsKKysgIGVzYWMKKytlbGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4K KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgR05VIGxkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9CisrZWxzZQorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyBmb3Igbm9uLUdOVSBsZC4uLiAiID4mNjsgfQorK2ZpCisr aWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLXogIiRMRCI7IHRoZW4KKysgIGx0 X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgZm9yIGFjX2RpciBpbiAk UEFUSDsgZG8KKysgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgIHRlc3QgLXogIiRhY19kaXIi ICYmIGFjX2Rpcj0uCisrICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8IHRlc3Qg LWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgorKyAgICAgIGx0X2N2X3BhdGhf TEQ9IiRhY19kaXIvJGFjX3Byb2ciCisrICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlIHByb2dy YW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAorKyAgICAgICMgYnV0IGFw cGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCisrICAgICAg IyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBwcmVmZXIu CisrICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxgIGluCisr ICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0gbm8g JiYgYnJlYWsKKysJOzsKKysgICAgICAqKQorKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IHllcyAm JiBicmVhaworKwk7OworKyAgICAgIGVzYWMKKysgICAgZmkKKysgIGRvbmUKKysgIElGUz0iJGx0 X3NhdmVfaWZzIgorK2Vsc2UKKysgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrZmkKKytmaQorKworK0xEPSIkbHRfY3Zf cGF0aF9MRCIKKytpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkTEQiID4mNQorKyRhc19lY2hvICIkTEQiID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNo byAibm8iID4mNjsgfQorK2ZpCisrdGVzdCAteiAiJExEIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiID4mNQor KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFU SCIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2dudV9sZCtzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAjIEknZCByYXRoZXIgdXNl IC0tdmVyc2lvbiBoZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQg LXYuCisrY2FzZSBgJExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysqR05VKiB8ICond2l0aCBC RkQnKikKKysgIGx0X2N2X3Byb2dfZ251X2xkPXllcworKyAgOzsKKysqKQorKyAgbHRfY3ZfcHJv Z19nbnVfbGQ9bm8KKysgIDs7CisrZXNhYworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X3Byb2dfZ251X2xkIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3By b2dfZ251X2xkIiA+JjY7IH0KKyt3aXRoX2dudV9sZD0kbHRfY3ZfcHJvZ19nbnVfbGQKKysKKysK KysKKysKKysKKysKKysKKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pIiA+JjUKKyskYXNf ZWNob19uICJjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChu bSkuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTk0rc2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAi JE5NIjsgdGhlbgorKyAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrICBsdF9j dl9wYXRoX05NPSIkTk0iCisrZWxzZQorKyAgbHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9vbF9wcmVm aXh9bm0iCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRidWlsZCIg PSAiJGhvc3QiOyB0aGVuCisrICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hlY2sgbm0i CisrICBmaQorKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCisrICAgIGx0 X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorKyAgICBmb3IgYWNfZGlyIGlu ICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47IGRvCisr ICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICAgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNf ZGlyPS4KKysgICAgICB0bXBfbm09IiRhY19kaXIvJGx0X3RtcF9ubSIKKysgICAgICBpZiB0ZXN0 IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVuCisrCSMg Q2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgorKwkjIEFk ZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVYLCB3aGlj aCBzYXlzOgorKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCisrCSMgVHJ1NjQn cyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3QgZmlsZQor KwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKysJKi9k ZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQorKwkgIGx0X2N2X3Bh dGhfTk09IiR0bXBfbm0gLUIiCisrCSAgYnJlYWsKKysJICA7OworKwkqKQorKwkgIGNhc2UgYCIk dG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorKwkgICovZGV2L251bGwq KQorKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKKysJICAgIGJyZWFrCisrCSAgICA7 OworKwkgICopCisrCSAgICBsdF9jdl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSJ9 ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAorKwkgICAgY29udGludWUgIyBzbyB0aGF0IHdl IGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKKysJICAgIDs7Cisr CSAgZXNhYworKwkgIDs7CisrCWVzYWMKKysgICAgICBmaQorKyAgICBkb25lCisrICAgIElGUz0i JGx0X3NhdmVfaWZzIgorKyAgZG9uZQorKyAgOiAke2x0X2N2X3BhdGhfTk09bm99CisrZmkKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9wYXRoX05NIiA+ JjUKKyskYXNfZWNobyAiJGx0X2N2X3BhdGhfTk0iID4mNjsgfQorK2lmIHRlc3QgIiRsdF9jdl9w YXRoX05NIiAhPSAibm8iOyB0aGVuCisrICBOTT0iJGx0X2N2X3BhdGhfTk0iCisrZWxzZQorKyAg IyBEaWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBhdGlibGUgbmFtZSBsaXN0ZXIsIGxvb2sgZm9yIGR1 bXBiaW4uCisrICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNf cHJvZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiCisrICBkbwor KyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9n Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJGFj X3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfRFVNUEJJTitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJERV TVBCSU4iICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfRFVNUEJJTj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCisrICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkK KytmaQorK0RVTVBCSU49JGFjX2N2X3Byb2dfRFVNUEJJTgorK2lmIHRlc3QgLW4gIiREVU1QQklO IjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJERVTVBCSU4i ID4mNQorKyRhc19lY2hvICIkRFVNUEJJTiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysKKysgICAgdGVzdCAtbiAiJERVTVBCSU4iICYmIGJyZWFrCisrICBkb25lCisrZmkK KytpZiB0ZXN0IC16ICIkRFVNUEJJTiI7IHRoZW4KKysgIGFjX2N0X0RVTVBCSU49JERVTVBCSU4K KysgIGZvciBhY19wcm9nIGluICJkdW1wYmluIC1zeW1ib2xzIiAibGluayAtZHVtcCAtc3ltYm9s cyIKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY19wcm9nOyBh Y193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFj X2N0X0RVTVBCSU4iOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU49IiRhY19jdF9E VU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytk bworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K KysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwor KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9w cm9nX2FjX2N0X0RVTVBCSU49IiRhY19wcm9nIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAy CisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkKKyth Y19jdF9EVU1QQklOPSRhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU4KKytpZiB0ZXN0IC1uICIkYWNf Y3RfRFVNUEJJTiI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdF9EVU1QQklOIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X0RVTVBCSU4iID4mNjsgfQor K2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKysk YXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrICB0ZXN0IC1uICIkYWNfY3RfRFVNUEJJ TiIgJiYgYnJlYWsKKytkb25lCisrCisrICBpZiB0ZXN0ICJ4JGFjX2N0X0RVTVBCSU4iID0geDsg dGhlbgorKyAgICBEVU1QQklOPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxp bmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlw bGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVz IDs7CisrZXNhYworKyAgICBEVU1QQklOPSRhY19jdF9EVU1QQklOCisrICBmaQorK2ZpCisrCisr CisrICBpZiB0ZXN0ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCisrICAgIE5NPSIkRFVNUEJJTiIK KysgIGZpCisrZmkKKyt0ZXN0IC16ICIkTk0iICYmIE5NPW5tCisrCisrCisrCisrCisrCisrCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5N KSBpbnRlcmZhY2UiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAo JE5NKSBpbnRlcmZhY2UuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X25tX2ludGVyZmFj ZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNl CisrICBsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKKysgIGVjaG8gImludCBzb21lX3Zhcmlh YmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjU2 MzI6ICRhY19jb21waWxlXCIiID4mNSkKKysgIChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVz dC5lcnIpCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21l OjU2MzU6ICROTSBcXFwiY29uZnRlc3QuJGFjX29iamV4dFxcXCJcIiIgPiY1KQorKyAgKGV2YWwg IiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5v dXQpCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjU2 Mzg6IG91dHB1dFwiIiA+JjUpCisrICBjYXQgY29uZnRlc3Qub3V0ID4mNQorKyAgaWYgJEdSRVAg J0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4K KysgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgorKyAgZmkKKysgIHJtIC1mIGNv bmZ0ZXN0KgorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X25tX2ludGVyZmFjZSIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9ubV9pbnRlcmZhY2UiID4mNjsg fQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGxuIC1z IHdvcmtzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzLi4u ICIgPiY2OyB9CisrTE5fUz0kYXNfbG5fcworK2lmIHRlc3QgIiRMTl9TIiA9ICJsbiAtcyI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFz X2VjaG8gInllcyIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKKyskYXNfZWNobyAibm8sIHVzaW5nICRMTl9T IiA+JjY7IH0KKytmaQorKworKyMgZmluZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBs aW5lIGFyZ3VtZW50cworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB0aGUg bWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3N5c19tYXhfY21kX2xlbitzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAgIGk9MAor KyAgdGVzdHN0cmluZz0iQUJDRCIKKysKKysgIGNhc2UgJGJ1aWxkX29zIGluCisrICBtc2Rvc2Rq Z3BwKikKKysgICAgIyBPbiBESkdQUCwgdGhpcyB0ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRs eSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYworKyAgICAjIChhbnkgc2luZ2xlIGFyZ3VtZW50IGV4 Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1ZmZlciBvdmVycnVuCisrICAgICMgZHVyaW5n IGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQgd2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0 aGlzCisrICAgICMgY2hlY2sgd291bGQgYmUgbGFyZ2VyIHRoYW4gaXQgc2hvdWxkIGJlLgorKyAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7ICAgICMgMTJLIGlzIGFib3V0IHJpZ2h0Cisr ICAgIDs7CisrCisrICBnbnUqKQorKyAgICAjIFVuZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMg bm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMKKysgICAgIyBubyBsaW1pdCB0byB0aGUgbGVu Z3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisrICAgICMgTGlidG9vbCB3aWxsIGludGVy cHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVyCisrICAgIGx0X2N2X3N5c19tYXhfY21kX2xl bj0tMTsKKysgICAgOzsKKysKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisrICAgICMg T24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2Vz CisrICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRoZSB0ZXN0c3RyaW5nIGdyb3dzIGV4cG9uZW50 aWFsbHkuCisrICAgICMgV29yc2UsIHNpbmNlIDl4L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBt dWx0aXRhc2tpbmcsCisrICAgICMgeW91IGVuZCB1cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIs IGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKKysgICAgIyB0aGUgdGVzdCBldmVudHVhbGx5IHN1 Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3RoIG9mIDI1NmspLgorKyAgICAjIEluc3RlYWQs IGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5pbXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkK KysgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQ KS4KKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7CisrICAgIDs7CisrCisrICBhbWln YW9zKikKKysgICAgIyBPbiBBbWlnYU9TIHdpdGggcGRrc2gsIHRoaXMgdGVzdCB0YWtlcyBob3Vy cywgbGl0ZXJhbGx5LgorKyAgICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBs aW5lIGxlbmd0aCBvZiA4MTkyLgorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKysg ICAgOzsKKysKKysgIG5ldGJzZCogfCBmcmVlYnNkKiB8IG9wZW5ic2QqIHwgZGFyd2luKiB8IGRy YWdvbmZseSopCisrICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQgc2luY2UgMzg2QlNELCBhdCBs ZWFzdC4gIExpa2VseSBmdXJ0aGVyLgorKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2N0bDsgdGhl bgorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJn bWF4YAorKyAgICBlbGlmIHRlc3QgLXggL3Vzci9zYmluL3N5c2N0bDsgdGhlbgorKyAgICAgIGx0 X2N2X3N5c19tYXhfY21kX2xlbj1gL3Vzci9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKKysg ICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj02NTUzNgkjIHVzYWJsZSBkZWZh dWx0IGZvciBhbGwgQlNEcworKyAgICBmaQorKyAgICAjIEFuZCBhZGQgYSBzYWZldHkgem9uZQor KyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBc LyA0YAorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21k X2xlbiBcKiAzYAorKyAgICA7OworKworKyAgaW50ZXJpeCopCisrICAgICMgV2Uga25vdyB0aGUg dmFsdWUgMjYyMTQ0IGFuZCBoYXJkY29kZSBpdCB3aXRoIGEgc2FmZXR5IHpvbmUgKGxpa2UgQlNE KQorKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTk2NjA4CisrICAgIDs7CisrCisrICBvc2Yq KQorKyAgICAjIERyLiBIYW5zIEVra2VoYXJkIFBsZXNzZXIgcmVwb3J0cyBzZWVpbmcgYSBrZXJu ZWwgcGFuaWMgcnVubmluZyBjb25maWd1cmUKKysgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4g ZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJdCBpcyBub3QKKysgICAgIyBu aWNlIHRvIGNhdXNlIGtlcm5lbCBwYW5pY3Mgc28gbGV0cyBhdm9pZCB0aGUgbG9vcCBiZWxvdy4K KysgICAgIyBGaXJzdCBzZXQgYSByZWFzb25hYmxlIGRlZmF1bHQuCisrICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj0xNjM4NAorKyAgICAjCisrICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY29uZmln OyB0aGVuCisrICAgICAgY2FzZSBgL3NiaW4vc3lzY29uZmlnIC1xIHByb2MgZXhlY19kaXNhYmxl X2FyZ19saW1pdGAgaW4KKysgICAgICAgICoxKikgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xIDs7 CisrICAgICAgZXNhYworKyAgICBmaQorKyAgICA7OworKyAgc2NvMy4ydjUqKQorKyAgICBsdF9j dl9zeXNfbWF4X2NtZF9sZW49MTAyNDAwCisrICAgIDs7CisrICBzeXN2NSogfCBzY281djYqIHwg c3lzdjQuMnV3MiopCisrICAgIGthcmdtYXg9YGdyZXAgQVJHX01BWCAvZXRjL2NvbmYvY2YuZC9z dHVuZSAyPi9kZXYvbnVsbGAKKysgICAgaWYgdGVzdCAtbiAiJGthcmdtYXgiOyB0aGVuCisrICAg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBlY2hvICRrYXJnbWF4IHwgc2VkICdzLy4qWwkgXS8v J2AKKysgICAgZWxzZQorKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAorKyAgICBm aQorKyAgICA7OworKyAgKikKKysgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBB UkdfTUFYKSAyPiAvZGV2L251bGxgCisrICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2Nt ZF9sZW4iOyB0aGVuCisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9z eXNfbWF4X2NtZF9sZW4gXC8gNGAKKysgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIg JGx0X2N2X3N5c19tYXhfY21kX2xlbiBcKiAzYAorKyAgICBlbHNlCisrICAgICAgIyBNYWtlIHRl c3RzdHJpbmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0Lgor KyAgICAgICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBzdGFydC4KKysgICAg ICBmb3IgaSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbworKyAgICAgICAgdGVzdHN0cmluZz0kdGVz dHN0cmluZyR0ZXN0c3RyaW5nCisrICAgICAgZG9uZQorKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtD T05GSUdfU0hFTEwtL2Jpbi9zaH19CisrICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1 aWx0LWluLCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKKysgICAgICAjIG1heGlt dW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgs IGJ1dAorKyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KKysgICAgICB3aGlsZSB7IHRlc3QgIlgiYCRT SEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8gIlgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYv bnVsbGAgXAorKwkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2 L251bGwgMj4mMSAmJgorKwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBl bm91Z2gKKysgICAgICBkbworKyAgICAgICAgaT1gZXhwciAkaSArIDFgCisrICAgICAgICB0ZXN0 c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKKysgICAgICBkb25lCisrICAgICAgIyBPbmx5 IGNoZWNrIHRoZSBzdHJpbmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCisrICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAorKyAgICAg IHRlc3RzdHJpbmc9CisrICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJl Y2F1c2UgQysrIGNvbXBpbGVycyBjYW4gdGFjayBvbgorKyAgICAgICMgbWFzc2l2ZSBhbW91bnRz IG9mIGFkZGl0aW9uYWwgYXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCisrICAg ICAgIyBsaW5rZXIuICBJdCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUu CisrICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9s ZW4gXC8gMmAKKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysKKytmaQorKworK2lmIHRlc3Qg LW4gJGx0X2N2X3N5c19tYXhfY21kX2xlbiA7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNQorKyRhc19lY2hvICIk bHRfY3Zfc3lzX21heF9jbWRfbGVuIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBub25lIiA+JjUKKyskYXNfZWNobyAibm9uZSIgPiY2OyB9Cisr ZmkKKyttYXhfY21kX2xlbj0kbHRfY3Zfc3lzX21heF9jbWRfbGVuCisrCisrCisrCisrCisrCisr CisrOiAke0NQPSJjcCAtZiJ9CisrOiAke01WPSJtdiAtZiJ9CisrOiAke1JNPSJybSAtZiJ9Cisr CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxs IHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMuLi4g IiA+JjY7IH0KKysjIFRyeSBzb21lIFhTSSBmZWF0dXJlcworK3hzaV9zaGVsbD1ubworKyggX2x0 X2R1bW15PSJhL2IvYyIKKysgIHRlc3QgIiR7X2x0X2R1bW15IyMqL30sJHtfbHRfZHVtbXklLyp9 LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9LCBcCisrICAgICAgPSBjLGEvYiwsIFwKKysgICAg JiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAorKyAgICAmJiB0ZXN0ICIkeyNfbHRf ZHVtbXl9IiAtZXEgNScgKSA+L2Rldi9udWxsIDI+JjEgXAorKyAgJiYgeHNpX3NoZWxsPXllcwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICR4c2lfc2hlbGwiID4mNQorKyRh c19lY2hvICIkeHNpX3NoZWxsIiA+JjY7IH0KKysKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwiIiA+JjUK KyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyBcIis9 XCIuLi4gIiA+JjY7IH0KKytsdF9zaGVsbF9hcHBlbmQ9bm8KKysoIGZvbz1iYXI7IHNldCBmb28g YmF6OyBldmFsICIkMSs9XCQyIiAmJiB0ZXN0ICIkZm9vIiA9IGJhcmJheiApIFwKKysgICAgPi9k ZXYvbnVsbCAyPiYxIFwKKysgICYmIGx0X3NoZWxsX2FwcGVuZD15ZXMKKyt7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfc2hlbGxfYXBwZW5kIiA+JjUKKyskYXNfZWNobyAi JGx0X3NoZWxsX2FwcGVuZCIgPiY2OyB9CisrCisrCisraWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJ TCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBsdF91bnNldD11bnNldAorK2Vs c2UKKysgIGx0X3Vuc2V0PWZhbHNlCisrZmkKKysKKysKKysKKysKKysKKysjIHRlc3QgRUJDRElD IG9yIEFTQ0lJCisrY2FzZSBgZWNobyBYfHRyIFggJ1wxMDEnYCBpbgorKyBBKSAjIEFTQ0lJIGJh c2VkIHN5c3RlbQorKyAgICAjIFxuIGlzIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgU29s YXJpcyA4IC91c3IvdWNiL3RyCisrICBsdF9TUDJOTD0ndHIgXDA0MCBcMDEyJworKyAgbHRfTkwy U1A9J3RyIFwwMTVcMDEyIFwwNDBcMDQwJworKyAgOzsKKysgKikgIyBFQkNESUMgYmFzZWQgc3lz dGVtCisrICBsdF9TUDJOTD0ndHIgXDEwMCBcbicKKysgIGx0X05MMlNQPSd0ciBcclxuIFwxMDBc MTAwJworKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisrCisrCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmpl Y3QgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJl bG9hZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2xkX3JlbG9h ZF9mbGFnK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGx0X2N2X2xkX3JlbG9hZF9mbGFnPSctcicKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY1CisrJGFzX2Vj aG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9CisrcmVsb2FkX2ZsYWc9JGx0X2N2X2xk X3JlbG9hZF9mbGFnCisrY2FzZSAkcmVsb2FkX2ZsYWcgaW4KKysiIiB8ICIgIiopIDs7CisrKikg cmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7CisrZXNhYworK3JlbG9hZF9jbWRzPSckTEQk cmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKytjYXNlICRob3N0X29zIGluCisr ICBkYXJ3aW4qKQorKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICAgIHJlbG9h ZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxv YWRfb2JqcycKKysgICAgZWxzZQorKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcg LW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysgICAgZmkKKysgICAgOzsKKytlc2FjCisrCisrCisr CisrCisrCisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW9iamR1bXAi LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2Fj X3Rvb2xfcHJlZml4fW9iamR1bXA7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfT0JKRFVNUCtz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfT0JKRFVNUD0iJE9C SkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfT0JKRFVNUD0iJHthY190b29sX3ByZWZpeH1vYmpkdW1wIgorKyAgICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAg ICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2Zp CisrZmkKKytPQkpEVU1QPSRhY19jdl9wcm9nX09CSkRVTVAKKytpZiB0ZXN0IC1uICIkT0JKRFVN UCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRPQkpEVU1Q IiA+JjUKKyskYXNfZWNobyAiJE9CSkRVTVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQor K2ZpCisrCisrCisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PQkpEVU1QIjsgdGhlbgor KyAgYWNfY3RfT0JKRFVNUD0kT0JKRFVNUAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICJvYmpkdW1wIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQg ZHVtbXkgb2JqZHVtcDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLW4gIiRhY19jdF9PQkpEVU1QIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9P QkpEVU1QPSIkYWNfY3RfT0JKRFVNUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu CisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNf ZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf ZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRo ZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSJvYmpkdW1wIgorKyAgICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUwor KworK2ZpCisrZmkKKythY19jdF9PQkpEVU1QPSRhY19jdl9wcm9nX2FjX2N0X09CSkRVTVAKKytp ZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19jdF9PQkpEVU1QIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X09C SkRVTVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrICBpZiB0ZXN0ICJ4 JGFjX2N0X09CSkRVTVAiID0geDsgdGhlbgorKyAgICBPQkpEVU1QPSJmYWxzZSIKKysgIGVsc2UK KysgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5v dCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+ JjI7fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgT0JKRFVNUD0kYWNfY3Rf T0JKRFVNUAorKyAgZmkKKytlbHNlCisrICBPQkpEVU1QPSIkYWNfY3ZfcHJvZ19PQkpEVU1QIgor K2ZpCisrCisrdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAorKworKworKwor KworKworKworKworKworKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBo b3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcy4uLiAiID4mNjsgfQor K2lmIHRlc3QgIiR7bHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Qrc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfZmlsZV9tYWdp Y19jbWQ9JyRNQUdJQ19DTUQnCisrbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9CisrbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCisrIyBOZWVkIHRvIHNldCB0aGUgcHJlY2Vk aW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0CisrIyBpbnRlcmxpYnJh cnkgZGVwZW5kZW5jaWVzLgorKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBub3Qgc3VwcG9ydGVk LgorKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0aGF0IHdlIHJl YWxseSBkb24ndCBrbm93LgorKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5kZW5jaWVzIHBhc3Nl ZCB3aXRoIG5vIGNoZWNrcy4KKysjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNrIGJ5IG1ha2luZyB0 ZXN0IHByb2dyYW0uCisrIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNrIGJ5IGxvb2tp bmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAorKyMgd2hpY2ggcmVzcG9uZHMgdG8gdGhlICRm aWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCisrIyBJZiB5b3UgaGF2 ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91J3JlIG5vdCBzdXJl CisrIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5b3UgcHJvYmFibHkg d2FudCB0aGlzIG9uZS4KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4WzQtOV0qKQorKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrYmVvcyopCisrICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytic2RpWzQ1XSop CisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05 XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCisrICBsdF9jdl9maWxl X21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m aWxlPS9zaGxpYi9saWJjLnNvCisrICA7OworKworK2N5Z3dpbiopCisrICAjIGZ1bmNfd2luMzJf bGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAorKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2 IERMTCcKKysgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJworKyAgOzsK KysKKyttaW5ndyogfCBwdzMyKikKKysgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRl IHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKKysgICMgZnVuY193aW4zMl9saWJpZCBzaGVs bCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAorKyAg IyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3Nz LWNvbXBpbGluZy4KKysgIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBv cnR8Xng4NiBETEwnCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlk JworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBm aWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKKysgICAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJworKyAgZmkKKysgIDs7CisrCisrY2VnY2MpCisr ICAjIHVzZSB0aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgor KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUt YXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKKysgIGx0X2N2X2ZpbGVfbWFnaWNf Y21kPSckT0JKRFVNUCAtZicKKysgIDs7CisrCisrZGFyd2luKiB8IHJoYXBzb2R5KikKKysgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2ZyZWVic2QqIHwg ZHJhZ29uZmx5KikKKysgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZf XyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICBpKjg2ICkK KysgICAgICAjIE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3 YXMgYSBtaXN0YWtlLgorKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0 aGlzIGlzIGNsZWFyZWQgdXAuCisrICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2Zp bGVfbWFnaWMgKEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbMy05XTg2IChjb21wYWN0ICk/ ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5JworKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21k PS91c3IvYmluL2ZpbGUKKysgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAv dXNyL2xpYi9saWJjLnNvLipgCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgZmkKKysgIDs7CisrCisrZ251 KikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworK2hw dXgxMC4yMCogfCBocHV4MTEqKQorKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmls ZQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIGlhNjQqKQorKyAgICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkg c2hhcmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKKysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2Zp bGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxF TEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XScK KysgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNs CisrICAgIDs7CisrICAqKQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9t YWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV0uWzAtOV0pIHNoYXJlZCBsaWJyYXJ5 JworKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9saWJjLnNsCisrICAg IDs7CisrICBlc2FjCisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICAjIFBJQyBjb2RlIGlz IGJyb2tlbiBvbiBJbnRlcml4IDMueCwgdGhhdCdzIHdoeSB8XC5hIG5vdCB8X3BpY1wuYSBoZXJl CisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSso XC5zb3xcLmEpJCcKKysgIDs7CisrCisraXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysg IGNhc2UgJExEIGluCisrICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7CisrICAqLW4z MnwqIi1uMzIgIikgbGlibWFnaWM9TjMyOzsKKysgICotNjR8KiItNjQgIikgbGlibWFnaWM9NjQt Yml0OzsKKysgICopIGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgIGVzYWMKKysgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworKworKyMgVGhpcyBtdXN0IGJlIExp bnV4IEVMRi4KKytsaW51eCogfCBrKmJzZCotZ251KQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9cGFzc19hbGwKKysgIDs7CisrCisrbmV0YnNkKikKKysgIGlmIGVjaG8gX19FTEZfXyB8 ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgorKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb1wuWzAtOV0r XC5bMC05XSt8X3BpY1wuYSkkJworKyAgZWxzZQorKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSsoXC5zb3xfcGljXC5hKSQnCisrICBmaQorKyAg OzsKKysKKytuZXdvczYqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFn aWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKGV4ZWN1dGFibGV8ZHluYW1pYyBsaWIpJwor KyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQorKyAgbHRfY3ZfZmlsZV9tYWdp Y190ZXN0X2ZpbGU9L3Vzci9saWIvbGlibmxzLnNvCisrICA7OworKworKypudG8qIHwgKnFueCop CisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAorKyAgOzsKKysKKytvcGVu YnNkKikKKysgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJw YyI7IHRoZW4KKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4g L2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfFwuc298X3BpY1wuYSkkJworKyAgZWxzZQor KyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nbWF0Y2hfcGF0dGVybiAvbGliW14vXSso XC5zb1wuWzAtOV0rXC5bMC05XSt8X3BpY1wuYSkkJworKyAgZmkKKysgIDs7CisrCisrb3NmMyog fCBvc2Y0KiB8IG9zZjUqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwK KysgIDs7CisrCisrcmRvcyopCisrICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2Fs bAorKyAgOzsKKysKKytzb2xhcmlzKikKKysgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBh c3NfYWxsCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2Fy ZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRo b2Q9cGFzc19hbGwKKysgIDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIGNhc2UgJGhvc3Rf dmVuZG9yIGluCisrICBtb3Rvcm9sYSkKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgRUxGIFswLTldWzAtOV0qLWJpdCBbTUxdU0IgKHNoYXJlZCBvYmplY3R8ZHlu YW1pYyBsaWIpIE1bMC05XVswLTldKiBWZXJzaW9uIFswLTldJworKyAgICBsdF9jdl9maWxlX21h Z2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9saWJjLnNvKmAKKysgICAgOzsKKysgIG5jcikK KysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKysgICAgOzsKKysgIHNl cXVlbnQpCisrICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xN XVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknCisrICAgIDs7CisrICBzbmkpCisrICAg IGx0X2N2X2ZpbGVfbWFnaWNfY21kPScvYmluL2ZpbGUnCisrICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPSJmaWxlX21hZ2ljIEVMRiBbMC05XVswLTldKi1iaXQgW0xNXVNCIGR5bmFtaWMg bGliIgorKyAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vbGliL2xpYmMuc28KKysgICAg OzsKKysgIHNpZW1lbnMpCisrICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs CisrICAgIDs7CisrICBwYykKKysgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKKysgICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrdHBmKikKKysgIGx0X2N2X2RlcGxpYnNf Y2hlY2tfbWV0aG9kPXBhc3NfYWxsCisrICA7OworK2VzYWMKKysKKytmaQorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY1 CisrJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY2OyB9CisrZmlsZV9t YWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCisrdGVzdCAteiAiJGRlcGxpYnNfY2hlY2tfbWV0aG9k IiAmJiBkZXBsaWJzX2NoZWNrX21ldGhvZD11bmtub3duCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBF eHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQgY2Fu IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZp eH1hcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BUitzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkQVIiOyB0 aGVuCisrICBhY19jdl9wcm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9y IGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQVI9IiR7YWNfdG9vbF9wcmVmaXh9YXIiCisrICAgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVf SUZTCisrCisrZmkKKytmaQorK0FSPSRhY19jdl9wcm9nX0FSCisraWYgdGVzdCAtbiAiJEFSIjsg dGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEFSIiA+JjUKKysk YXNfZWNobyAiJEFSIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2Zp CisraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiOyB0aGVuCisrICBhY19jdF9BUj0kQVIKKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBhcjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19hY19jdF9BUitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCisrICBhY19jdl9wcm9n X2FjX2N0X0FSPSIkYWNfY3RfQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgor K2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2Rp ciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu CisrICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVh ayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworK2ZpCisrZmkK KythY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19jdF9BUgorK2lmIHRlc3QgLW4gIiRhY19jdF9BUiI7 IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9BUiIg PiY1CisrJGFzX2VjaG8gIiRhY19jdF9BUiIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9Cisr ZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfQVIiID0geDsgdGhlbgorKyAgICBBUj0iZmFsc2Ui CisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4K Kyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9z cyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3Qg dHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIEFSPSRh Y19jdF9BUgorKyAgZmkKKytlbHNlCisrICBBUj0iJGFjX2N2X3Byb2dfQVIiCisrZmkKKysKKyt0 ZXN0IC16ICIkQVIiICYmIEFSPWFyCisrdGVzdCAteiAiJEFSX0ZMQUdTIiAmJiBBUl9GTEFHUz1j cnUKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKytpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9w cm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfU1RS SVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2Fz X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRI CisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rp cj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsg ZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFz X3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNf Y3ZfcHJvZ19TVFJJUD0iJHthY190b29sX3ByZWZpeH1zdHJpcCIKKysgICAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysg ICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytm aQorK2ZpCisrU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKKytpZiB0ZXN0IC1uICIkU1RSSVAiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkU1RSSVAiID4mNQor KyRhc19lY2hvICIkU1RSSVAiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisr CisrZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4KKysgIGFjX2N0X1NU UklQPSRTVFJJUAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHN0cmlwOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9T VFJJUCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9T VFJJUD0ic3RyaXAiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQor K2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X1NUUklQPSRhY19j dl9wcm9nX2FjX2N0X1NUUklQCisraWYgdGVzdCAtbiAiJGFjX2N0X1NUUklQIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NUUklQIiA+JjUKKysk YXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQor KworKyAgaWYgdGVzdCAieCRhY19jdF9TVFJJUCIgPSB4OyB0aGVuCisrICAgIFNUUklQPSI6Igor KyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisr eWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRy aXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBTVFJJUD0k YWNfY3RfU1RSSVAKKysgIGZpCisrZWxzZQorKyAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQIgor K2ZpCisrCisrdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06CisrCisrCisrCisrCisrCisrCisr aWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBh Y193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkUkFOTElCIjsg dGhlbgorKyAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJy aWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB VE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0 ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfUkFOTElCPSIke2FjX3Rvb2xfcHJlZml4 fXJhbmxpYiIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9u ZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrUkFOTElCPSRhY19jdl9wcm9nX1JB TkxJQgorK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkUkFOTElCIiA+JjUKKyskYXNfZWNobyAiJFJBTkxJQiIgPiY2OyB9 CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQor KyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRhY19j dl9wcm9nX1JBTkxJQiI7IHRoZW4KKysgIGFjX2N0X1JBTkxJQj0kUkFOTElCCisrICAjIEV4dHJh Y3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJv Z19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KKysgIGFj X2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0icmFubGliIgor KyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRh c19zYXZlX0lGUworKworK2ZpCisrZmkKKythY19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3Rf UkFOTElCCisraWYgdGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9SQU5MSUIiID4mNQorKyRhc19lY2hvICIk YWNfY3RfUkFOTElCIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYg dGVzdCAieCRhY19jdF9SQU5MSUIiID0geDsgdGhlbgorKyAgICBSQU5MSUI9IjoiCisrICBlbHNl CisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KKyt5ZXM6KQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytlc2FjCisrICAgIFJBTkxJQj0kYWNfY3Rf UkFOTElCCisrICBmaQorK2Vsc2UKKysgIFJBTkxJQj0iJGFjX2N2X3Byb2dfUkFOTElCIgorK2Zp CisrCisrdGVzdCAteiAiJFJBTkxJQiIgJiYgUkFOTElCPToKKysKKysKKysKKysKKysKKysKKysj IERldGVybWluZSBjb21tYW5kcyB0byBjcmVhdGUgb2xkLXN0eWxlIHN0YXRpYyBhcmNoaXZlcy4K KytvbGRfYXJjaGl2ZV9jbWRzPSckQVIgJEFSX0ZMQUdTICRvbGRsaWIkb2xkb2JqcycKKytvbGRf cG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWInCisrb2xkX3Bvc3R1bmluc3RhbGxf Y21kcz0KKysKKytpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorKyAgY2FzZSAkaG9zdF9vcyBp bgorKyAgb3BlbmJzZCopCisrICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0 YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCRvbGRsaWIiCisrICAgIDs7CisrICAqKQorKyAgICBvbGRf cG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIFwkb2xkbGli IgorKyAgICA7OworKyAgZXNhYworKyAgb2xkX2FyY2hpdmVfY21kcz0iJG9sZF9hcmNoaXZlX2Nt ZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmllZCwgdXNlIEND LgorK0xUQ0M9JHtMVENDLSIkQ0MifQorKworKyMgSWYgbm8gQyBjb21waWxlciBmbGFncyB3ZXJl IHNwZWNpZmllZCwgdXNlIENGTEFHUy4KKytMVENGTEFHUz0ke0xUQ0ZMQUdTLSIkQ0ZMQUdTIn0K KysKKysjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgorK2Nv bXBpbGVyPSRDQworKworKworKyMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5 bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRj b21waWxlciBvYmplY3QiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGNvbW1hbmQgdG8gcGFy c2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKyMgVGhlc2UgYXJlIHNhbmUgZGVm YXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0ZW1zLgorKyMgW1RoZXkg Y29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhhbiBVbHRyaXg/ISEgOyld CisrCisrIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9iYWwgc3ltYm9sIGNvZGVz LgorK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCisrCisrIyBSZWdleHAgdG8gbWF0Y2ggc3ltYm9scyB0 aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCisrc3ltcGF0PSdcKFtfQS1aYS16 XVtfQS1aYS16MC05XSpcKScKKysKKysjIERlZmluZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVz LgorK2Nhc2UgJGhvc3Rfb3MgaW4KKythaXgqKQorKyAgc3ltY29kZT0nW0JDRFRdJworKyAgOzsK KytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICBzeW1jb2RlPSdbQUJDREdJ U1RXXScKKysgIDs7CisraHB1eCopCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgorKyAgICBzeW1jb2RlPSdbQUJDREVHUlNUXScKKysgIGZpCisrICA7OworK2lyaXgqIHwgbm9u c3RvcHV4KikKKysgIHN5bWNvZGU9J1tCQ0RFR1JTVF0nCisrICA7OworK29zZiopCisrICBzeW1j b2RlPSdbQkNERUdRUlNUXScKKysgIDs7Cisrc29sYXJpcyopCisrICBzeW1jb2RlPSdbQkRSVF0n CisrICA7OworK3NjbzMuMnY1KikKKysgIHN5bWNvZGU9J1tEVF0nCisrICA7OworK3N5c3Y0LjJ1 dzIqKQorKyAgc3ltY29kZT0nW0RUXScKKysgIDs7Cisrc3lzdjUqIHwgc2NvNXY2KiB8IHVuaXh3 YXJlKiB8IE9wZW5VTklYKikKKysgIHN5bWNvZGU9J1tBQkRUXScKKysgIDs7Cisrc3lzdjQpCisr ICBzeW1jb2RlPSdbREZOU1RVXScKKysgIDs7CisrZXNhYworKworKyMgSWYgd2UncmUgdXNpbmcg R05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRhcmQgc3ltYm9sIGNvZGVzLgorK2Nhc2UgYCROTSAt ViAyPiYxYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgc3ltY29kZT0nW0FCQ0RHSVJT VFddJyA7OworK2VzYWMKKysKKysjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUg aW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgorKyMgU29tZSBzeXN0ZW1zIChlc3AuIG9uIGlh NjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVudGx5LAorKyMgc28gdXNlIHRo aXMgZ2VuZXJhbCBhcHByb2FjaC4KKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0i c2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5 bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgorKworKyMgVHJhbnNmb3JtIGFu IGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVz cworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUg J3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14k c3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwv cCciCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZp eD0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9 LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKGxpYlteIF0qXCkkLyAge1wiXDJcIiwg KHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQv ICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCisrCisrIyBIYW5kbGUgQ1JMRiBpbiBt aW5ndyB0b29sIGNoYWluCisrb3B0X2NyPQorK2Nhc2UgJGJ1aWxkX29zIGluCisrbWluZ3cqKQor KyAgb3B0X2NyPWAkRUNITyAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdgICMgb3B0aW9uIGNyIGlu IHJlZ2V4cAorKyAgOzsKKytlc2FjCisrCisrIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcnNj b3JlLCB0aGVuIHdpdGggaXQuCisrZm9yIGFjX3N5bXByZnggaW4gIiIgIl8iOyBkbworKworKyAg IyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBpbnRvIGEgcmF3IHN5bWJv bCBhbmQgYSBDIHN5bWJvbC4KKysgIHN5bXhmcm09IlxcMSAkYWNfc3ltcHJmeFxcMiBcXDIiCisr CisrICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMuCisrICBpZiB0ZXN0ICIkbHRf Y3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgorKyAgICAjIEZha2UgaXQgZm9y IGR1bXBiaW4gYW5kIHNheSBUIGZvciBhbnkgbm9uLXN0YXRpYyBmdW5jdGlvbgorKyAgICAjIGFu ZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgorKyAgICAjIEFsc28gZmluZCBDKysgYW5kIF9f ZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKKysgICAgIyB3aGljaCBzdGFydCB3aXRoIEAg b3IgPy4KKysgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFXSyAnIlwKKysiICAg ICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQgM307IlwKKysiICAgICAvU2VjdGlv biBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwK KysiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8L3tuZXh0fTsiXAorKyIgICAgIC8gMCsgVU5ERUYg L3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07IlwKKysiICAgICB7aWYoaGlkZVtz ZWN0aW9uXSkgbmV4dH07IlwKKysiICAgICB7Zj0wfTsgXCQgMH4vXChcKS4qXHwve2Y9MX07IHtw cmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07IlwKKysiICAgICB7c3BsaXQoXCQgMCwgYSwgL1x8 fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAorKyIgICAgIHNbMV1+L15bQD9dL3twcmludCBzWzFd LCBzWzFdOyBuZXh0fTsiXAorKyIgICAgIHNbMV1+cHJmeCB7c3BsaXQoc1sxXSx0LFwiQFwiKTsg cHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVuZ3RoKHByZngpKX0iXAorKyIgICAgICcgcHJmeD1e JGFjX3N5bXByZngiCisrICBlbHNlCisrICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9 InNlZCAtbiAtZSAncy9eLipbCSBdXCgkc3ltY29kZSRzeW1jb2RlKlwpWwkgXVsJIF0qJGFjX3N5 bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisrICBmaQorKworKyAgIyBDaGVjayB0 byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCisrICBwaXBlX3dvcmtzPW5vCisr CisrICBybSAtZiBjb25mdGVzdCoKKysgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9G CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIiB7CisrI2VuZGlmCisrY2hhciBubV90 ZXN0X3ZhcjsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKKyt2b2lkIG5tX3Rlc3RfZnVuYyh2 b2lkKXt9CisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRpZgorK2ludCBtYWluKCl7bm1f dGVzdF92YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9CisrX0xUX0VPRgorKworKyAg aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Cisr ICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IHRoZW4KKysgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCisrICAgIG5s aXN0PWNvbmZ0ZXN0Lm5tCisrICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUg XD4gJG5saXN0XCIiKSA+JjUKKysgIChldmFsICROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRs dF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgMj4mNQorKyAgYWNfc3RhdHVz PSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgorKyAgICAg ICMgVHJ5IHNvcnRpbmcgYW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCisrICAgICAgaWYgc29y dCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KKysJbXYgLWYgIiRubGlzdCJUICIk bmxpc3QiCisrICAgICAgZWxzZQorKwlybSAtZiAiJG5saXN0IlQKKysgICAgICBmaQorKworKyAg ICAgICMgTWFrZSBzdXJlIHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4K KysgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhl bgorKwlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4K KysJICBjYXQgPDxfTFRfRU9GID4gY29uZnRlc3QuJGFjX2V4dAorKyNpZmRlZiBfX2NwbHVzcGx1 cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorKworK19MVF9FT0YKKysJICAjIE5vdyBnZW5lcmF0 ZSB0aGUgc3ltYm9sIGZpbGUuCisrCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3Rv X2NkZWNsIicgPCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcK KysKKysJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKKysKKysvKiBUaGUgbWFw cGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCisrY29uc3Qgc3RydWN0 IHsKKysgIGNvbnN0IGNoYXIgKm5hbWU7CisrICB2b2lkICAgICAgICphZGRyZXNzOworK30KKyts dF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQorK3sKKysgIHsgIkBQUk9HUkFN QCIsICh2b2lkICopIDAgfSwKKytfTFRfRU9GCisrCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29k ZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3Qi IHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0CisrCSAgY2F0IDw8XF9MVF9FT0Yg Pj4gY29uZnRlc3QuJGFjX2V4dAorKyAgezAsICh2b2lkICopIDB9CisrfTsKKysKKysvKiBUaGlz IHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KKysjaWZkZWYgRlJF RUJTRF9XT1JLQVJPVU5ECisrc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgp IHsKKysgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOworK30KKysj ZW5kaWYKKysKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrX0xUX0VPRgorKwkg ICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCisrCSAgbXYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdHN0bS4kYWNfb2JqZXh0CisrCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKKysJICBs dF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKysJICBMSUJTPSJjb25mdHN0bS4kYWNfb2JqZXh0Igor KwkgIENGTEFHUz0iJENGTEFHUyRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyIKKysJ ICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKysg IChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCisrCSAgICBwaXBlX3dvcmtz PXllcworKwkgIGZpCisrCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKKysJICBDRkxBR1M9IiRsdF9z YXZlX0NGTEFHUyIKKysJZWxzZQorKwkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBp biAkbmxpc3QiID4mNQorKwlmaQorKyAgICAgIGVsc2UKKysJZWNobyAiY2Fubm90IGZpbmQgbm1f dGVzdF92YXIgaW4gJG5saXN0IiA+JjUKKysgICAgICBmaQorKyAgICBlbHNlCisrICAgICAgZWNo byAiY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiY1CisrICAgIGZp CisrICBlbHNlCisrICAgIGVjaG8gIiRwcm9nbmFtZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 CisrICAgIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVz dCogY29uZnRzdCoKKysKKysgICMgRG8gbm90IHVzZSB0aGUgZ2xvYmFsX3N5bWJvbF9waXBlIHVu bGVzcyBpdCB3b3Jrcy4KKysgIGlmIHRlc3QgIiRwaXBlX3dvcmtzIiA9IHllczsgdGhlbgorKyAg ICBicmVhaworKyAgZWxzZQorKyAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPQorKyAg ZmkKKytkb25lCisrCisrZmkKKysKKytpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfcGlwZSI7IHRoZW4KKysgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPQorK2Zp CisraWYgdGVzdCAteiAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUkbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfdG9fY2RlY2wiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBmYWlsZWQiID4mNQorKyRhc19lY2hvICJmYWlsZWQiID4mNjsgfQorK2Vsc2UK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG9rIiA+JjUKKyskYXNfZWNo byAib2siID4mNjsgfQorK2ZpCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxl LWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHtlbmFibGVfbGlidG9vbF9sb2Nr K3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9saWJ0b29sX2xvY2s7Cisr ZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9saWJ0b29sX2xvY2siICE9IHhubyAmJiBlbmFibGVfbGli dG9vbF9sb2NrPXllcworKworKyMgU29tZSBmbGFncyBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQgdG8g dGhlIGNvbXBpbGVyIG9yIGxpbmtlciBmb3IgZ29vZAorKyMgbGlidG9vbCBzdXBwb3J0LgorK2Nh c2UgJGhvc3QgaW4KKytpYTY0LSotaHB1eCopCisrICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBh cmUgdXNpbmcuCisrICBlY2hvICdpbnQgaTsnID4gY29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZh bCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IHRoZW4KKysgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgor KyAgICAgICpFTEYtMzIqKQorKwlIUFVYX0lBNjRfTU9ERT0iMzIiCisrCTs7CisrICAgICAgKkVM Ri02NCopCisrCUhQVVhfSUE2NF9NT0RFPSI2NCIKKysJOzsKKysgICAgZXNhYworKyAgZmkKKysg IHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrKi0qLWlyaXg2KikKKysgICMgRmluZCBvdXQgd2hp Y2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJyNsaW5lIDY4NDQgImNvbmZpZ3VyZSInID4g Y29uZnRlc3QuJGFjX2V4dAorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk YWNfY29tcGlsZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3Rh dHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICAgaWYgdGVzdCAiJGx0X2N2X3By b2dfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRl c3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmMzJi c21pcCIKKysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW1lbGYzMmJtaXBuMzIi CisrCSAgOzsKKysJKjY0LWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRibWlwIgorKwk7 OworKyAgICAgIGVzYWMKKysgICAgZWxzZQorKyAgICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29u ZnRlc3QuJGFjX29iamV4dGAgaW4KKysJKjMyLWJpdCopCisrCSAgTEQ9IiR7TEQtbGR9IC0zMiIK KysJICA7OworKwkqTjMyKikKKysJICBMRD0iJHtMRC1sZH0gLW4zMiIKKysJICA7OworKwkqNjQt Yml0KikKKysJICBMRD0iJHtMRC1sZH0gLTY0IgorKwkgIDs7CisrICAgICAgZXNhYworKyAgICBm aQorKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysgIDs7CisrCisreDg2XzY0LSprZnJlZWJz ZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGludXgqfCBcCisr czM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKKysgICMgRmluZCBvdXQg d2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KKysgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNf ZXh0CisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIi KSA+JjUKKysgIChldmFsICRhY19jb21waWxlKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfTsgdGhlbgorKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9g IGluCisrICAgICAgKjMyLWJpdCopCisrCWNhc2UgJGhvc3QgaW4KKysJICB4ODZfNjQtKmtmcmVl YnNkKi1nbnUpCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKKysJICAgIDs7 CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCisr CSAgICA7OworKwkgIHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCisrCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmMzJwcGNsaW51eCIKKysJICAgIDs7CisrCSAgczM5MHgtKmxpbnV4KikK KysJICAgIExEPSIke0xELWxkfSAtbSBlbGZfczM5MCIKKysJICAgIDs7CisrCSAgc3BhcmM2NC0q bGludXgqKQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgorKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgICo2NC1iaXQqKQorKwljYXNlICRob3N0IGluCisrCSAgeDg2XzY0 LSprZnJlZWJzZCotZ251KQorKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIK KysJICAgIDs7CisrCSAgeDg2XzY0LSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxm X3g4Nl82NCIKKysJICAgIDs7CisrCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCisr CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRwcGMiCisrCSAgICA7OworKwkgIHMzOTAqLSpsaW51 eCp8czM5MCotKnRwZiopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKKysJICAg IDs7CisrCSAgc3BhcmMqLSpsaW51eCopCisrCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3Bh cmMiCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBybSAtcmYg Y29uZnRlc3QqCisrICA7OworKworKyotKi1zY28zLjJ2NSopCisrICAjIE9uIFNDTyBPcGVuU2Vy dmVyIDUsIHdlIG5lZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCisrICBT QVZFX0NGTEFHUz0iJENGTEFHUyIKKysgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKKysgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIG5l ZWRzIC1iZWxmIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBp bGVyIG5lZWRzIC1iZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9jY19uZWVkc19i ZWxmK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGFjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSck Q0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0n JENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGls ZXJfZ251CisrCisrICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7 IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAg ICB9OyB0aGVuCisrICBsdF9jdl9jY19uZWVkc19iZWxmPXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJbHRfY3ZfY2NfbmVlZHNfYmVsZj1ubworK2ZpCisrCisrcm0g LXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgICBhY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGls ZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNQorKyRhc19lY2hvICIk bHRfY3ZfY2NfbmVlZHNfYmVsZiIgPiY2OyB9CisrICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRz X2JlbGYiICE9IHgieWVzIjsgdGhlbgorKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4w LCBlZ2NzIDEuMCBvciBuZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKKysgICAgQ0ZMQUdTPSIkU0FW RV9DRkxBR1MiCisrICBmaQorKyAgOzsKKytzcGFyYyotKnNvbGFyaXMqKQorKyAgIyBGaW5kIG91 dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgorKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVc IiIpID4mNQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0 ICRhY19zdGF0dXMpOyB9OyB0aGVuCisrICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qu b2AgaW4KKysgICAgKjY0LWJpdCopCisrICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4K KysgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiIDs7CisrICAgICAgKikK KysJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVs bCAyPiYxOyB0aGVuCisrCSAgTEQ9IiR7TEQtbGR9IC02NCIKKysJZmkKKysJOzsKKysgICAgICBl c2FjCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZmkKKysgIHJtIC1yZiBjb25mdGVzdCoKKysg IDs7CisrZXNhYworKworK25lZWRfbG9ja3M9IiRlbmFibGVfbGlidG9vbF9sb2NrIgorKworKwor KyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3aW4qKQorKyAgICBpZiB0 ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWwiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsOyBh Y193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0RTWU1VVElMK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiREU1lNVVRJ TCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiREU1lNVVRJTCIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9J RlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQg aW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29y ZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19EU1lNVVRJTD0iJHthY190 b29sX3ByZWZpeH1kc3ltdXRpbCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkK Kytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrRFNZTVVUSUw9 JGFjX2N2X3Byb2dfRFNZTVVUSUwKKytpZiB0ZXN0IC1uICIkRFNZTVVUSUwiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkRFNZTVVUSUwiID4mNQorKyRhc19l Y2hvICIkRFNZTVVUSUwiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisr ZmkKKytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19EU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N0X0RT WU1VVElMPSREU1lNVVRJTAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkc3ltdXRp bCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGRz eW11dGlsOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5n IGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRl c3QgLW4gIiRhY19jdF9EU1lNVVRJTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVU SUw9IiRhY19jdF9EU1lNVVRJTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisr ZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGly IGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIi ICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K KysgICAgYWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTD0iZHN5bXV0aWwiCisrICAgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisr CisrZmkKKytmaQorK2FjX2N0X0RTWU1VVElMPSRhY19jdl9wcm9nX2FjX2N0X0RTWU1VVElMCisr aWYgdGVzdCAtbiAiJGFjX2N0X0RTWU1VVElMIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0RTWU1VVElMIiA+JjUKKyskYXNfZWNobyAiJGFjX2N0 X0RTWU1VVElMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVz dCAieCRhY19jdF9EU1lNVVRJTCIgPSB4OyB0aGVuCisrICAgIERTWU1VVElMPSI6IgorKyAgZWxz ZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMg bm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBX QVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQi ID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBEU1lNVVRJTD0kYWNf Y3RfRFNZTVVUSUwKKysgIGZpCisrZWxzZQorKyAgRFNZTVVUSUw9IiRhY19jdl9wcm9nX0RTWU1V VElMIgorK2ZpCisrCisrICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1ubWVkaXQiLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAke2FjX3Rv b2xfcHJlZml4fW5tZWRpdDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19OTUVESVQrc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYg dGVzdCAtbiAiJE5NRURJVCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfTk1FRElUPSIkTk1FRElUIiAj IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElG UzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZT PSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX05NRURJ VD0iJHthY190b29sX3ByZWZpeH1ubWVkaXQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIK KysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK05N RURJVD0kYWNfY3ZfcHJvZ19OTUVESVQKKytpZiB0ZXN0IC1uICIkTk1FRElUIjsgdGhlbgorKyAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE5NRURJVCIgPiY1CisrJGFzX2Vj aG8gIiROTUVESVQiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkK KytpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19OTUVESVQiOyB0aGVuCisrICBhY19jdF9OTUVESVQ9 JE5NRURJVAorKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJubWVkaXQiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBubWVkaXQ7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTk1FRElUK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9O TUVESVQiOyB0aGVuCisrICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0iJGFjX2N0X05NRURJVCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19j dF9OTUVESVQ9Im5tZWRpdCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3RfTk1FRElU PSRhY19jdl9wcm9nX2FjX2N0X05NRURJVAorK2lmIHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfTk1FRElU IiA+JjUKKyskYXNfZWNobyAiJGFjX2N0X05NRURJVCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2 OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfTk1FRElUIiA9IHg7IHRoZW4KKysgICAg Tk1FRElUPSI6IgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xf d2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzog dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYwor KyAgICBOTUVESVQ9JGFjX2N0X05NRURJVAorKyAgZmkKKytlbHNlCisrICBOTUVESVQ9IiRhY19j dl9wcm9nX05NRURJVCIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgi OyB0aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9 bGlwbyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9bGlwbzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19MSVBPK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19MSVBPPSIkTElQTyIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0k YXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVz dCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19MSVBPPSIk e2FjX3Rvb2xfcHJlZml4fWxpcG8iCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91 bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZp CisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK0xJUE89JGFj X2N2X3Byb2dfTElQTworK2lmIHRlc3QgLW4gIiRMSVBPIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJExJUE8iID4mNQorKyRhc19lY2hvICIkTElQTyIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKytmaQorK2lmIHRlc3QgLXogIiRh Y19jdl9wcm9nX0xJUE8iOyB0aGVuCisrICBhY19jdF9MSVBPPSRMSVBPCisrICAjIEV4dHJhY3Qg dGhlIGZpcnN0IHdvcmQgb2YgImxpcG8iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgorK3NldCBkdW1teSBsaXBvOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0 X0xJUE8rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0xJUE8iOyB0aGVuCisrICBhY19jdl9wcm9nX2Fj X2N0X0xJUE89IiRhY19jdF9MSVBPIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K KytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19k aXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9l eHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhl bgorKyAgICBhY19jdl9wcm9nX2FjX2N0X0xJUE89ImxpcG8iCisrICAgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrZmkK KytmaQorK2FjX2N0X0xJUE89JGFjX2N2X3Byb2dfYWNfY3RfTElQTworK2lmIHRlc3QgLW4gIiRh Y19jdF9MSVBPIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGFjX2N0X0xJUE8iID4mNQorKyRhc19lY2hvICIkYWNfY3RfTElQTyIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysgIGlmIHRlc3QgIngkYWNfY3RfTElQTyIgPSB4OyB0aGVu CisrICAgIExJUE89IjoiCisrICBlbHNlCisrICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KKyt5ZXM6KQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KKythY190b29sX3dhcm5lZD15ZXMgOzsKKytl c2FjCisrICAgIExJUE89JGFjX2N0X0xJUE8KKysgIGZpCisrZWxzZQorKyAgTElQTz0iJGFjX2N2 X3Byb2dfTElQTyIKKytmaQorKworKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0 aGVuCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9b3Rv b2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSAk e2FjX3Rvb2xfcHJlZml4fW90b29sOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX09UT09MK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGlmIHRlc3QgLW4gIiRPVE9PTCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfT1RPT0w9IiRPVE9PTCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElG Uz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19PVE9P TD0iJHthY190b29sX3ByZWZpeH1vdG9vbCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgor KyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrT1RP T0w9JGFjX2N2X3Byb2dfT1RPT0wKKytpZiB0ZXN0IC1uICIkT1RPT0wiOyB0aGVuCisrICB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT1RPT0wiID4mNQorKyRhc19lY2hvICIk T1RPT0wiID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrZmkKKytpZiB0 ZXN0IC16ICIkYWNfY3ZfcHJvZ19PVE9PTCI7IHRoZW4KKysgIGFjX2N0X09UT09MPSRPVE9PTAor KyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJvdG9vbCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG90b29sOyBhY193b3JkPSQyCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHth Y19jdl9wcm9nX2FjX2N0X09UT09MK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlmIHRlc3QgLW4gIiRhY19jdF9PVE9PTCI7IHRoZW4K KysgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w9IiRhY19jdF9PVE9PTCIgIyBMZXQgdGhlIHVzZXIg b3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T RVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMK KysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTD0ib3Rvb2wi CisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9uZQorK2RvbmUKKytJRlM9 JGFzX3NhdmVfSUZTCisrCisrZmkKKytmaQorK2FjX2N0X09UT09MPSRhY19jdl9wcm9nX2FjX2N0 X09UT09MCisraWYgdGVzdCAtbiAiJGFjX2N0X09UT09MIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X09UT09MIiA+JjUKKyskYXNfZWNobyAiJGFj X2N0X09UT09MIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVz dCAieCRhY19jdF9PVE9PTCIgPSB4OyB0aGVuCisrICAgIE9UT09MPSI6IgorKyAgZWxzZQorKyAg ICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5H OiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9 CisrYWNfdG9vbF93YXJuZWQ9eWVzIDs7CisrZXNhYworKyAgICBPVE9PTD0kYWNfY3RfT1RPT0wK KysgIGZpCisrZWxzZQorKyAgT1RPT0w9IiRhY19jdl9wcm9nX09UT09MIgorK2ZpCisrCisrICAg IGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbDY0Iiwgc28gaXQgY2FuIGJlIGEgcHJv Z3JhbSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1vdG9vbDY0 OyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAk YWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2 OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX09UT09MNjQrc2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJE9UT09M NjQiOyB0aGVuCisrICBhY19jdl9wcm9nX09UT09MNjQ9IiRPVE9PTDY0IiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRI X1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lG UworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBp biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX09UT09MNjQ9IiR7YWNfdG9v bF9wcmVmaXh9b3Rvb2w2NCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytk b25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrT1RPT0w2ND0kYWNf Y3ZfcHJvZ19PVE9PTDY0CisraWYgdGVzdCAtbiAiJE9UT09MNjQiOyB0aGVuCisrICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRP VE9PTDY0IiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisraWYg dGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0w2NCI7IHRoZW4KKysgIGFjX2N0X09UT09MNjQ9JE9U T09MNjQKKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAib3Rvb2w2NCIsIHNvIGl0IGNh biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IG90b29sNjQ7IGFjX3dv cmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfT1RPT0w2NCtzZXR9IiA9IHNldDsgdGhlbgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkYWNfY3Rf T1RPT0w2NCI7IHRoZW4KKysgIGFjX2N2X3Byb2dfYWNfY3RfT1RPT0w2ND0iJGFjX2N0X09UT09M NjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lG Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisr ICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2df YWNfY3RfT1RPT0w2ND0ib3Rvb2w2NCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3Rf T1RPT0w2ND0kYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0CisraWYgdGVzdCAtbiAiJGFjX2N0X09U T09MNjQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf Y3RfT1RPT0w2NCIgPiY1CisrJGFzX2VjaG8gIiRhY19jdF9PVE9PTDY0IiA+JjY7IH0KKytlbHNl CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19jdF9PVE9PTDY0IiA9IHg7 IHRoZW4KKysgICAgT1RPT0w2ND0iOiIKKysgIGVsc2UKKysgICAgY2FzZSAkY3Jvc3NfY29tcGls aW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp cGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMg bm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2FybmVkPXll cyA7OworK2VzYWMKKysgICAgT1RPT0w2ND0kYWNfY3RfT1RPT0w2NAorKyAgZmkKKytlbHNlCisr ICBPVE9PTDY0PSIkYWNfY3ZfcHJvZ19PVE9PTDY0IgorK2ZpCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgLXNpbmds ZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAtc2lu Z2xlX21vZHVsZSBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfYXBw bGVfY2Nfc2luZ2xlX21vZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kPW5vCisrICAgICAg aWYgdGVzdCAteiAiJHtMVF9NVUxUSV9NT0RVTEV9IjsgdGhlbgorKwkjIEJ5IGRlZmF1bHQgd2Ug d2lsbCBhZGQgdGhlIC1zaW5nbGVfbW9kdWxlIGZsYWcuIFlvdSBjYW4gb3ZlcnJpZGUKKysJIyBi eSBlaXRoZXIgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgTFRfTVVMVElfTU9EVUxF CisrCSMgbm9uLWVtcHR5IGF0IGNvbmZpZ3VyZSB0aW1lLCBvciBieSBhZGRpbmcgLW11bHRpX21v ZHVsZSB0byB0aGUKKysJIyBsaW5rIGZsYWdzLgorKwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIq CisrCWVjaG8gImludCBmb28odm9pZCl7cmV0dXJuIDE7fSIgPiBjb25mdGVzdC5jCisrCWVjaG8g IiRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25mdGVzdC5keWxpYiBcCisrLWR5bmFt aWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMiID4mNQorKwkkTFRDQyAkTFRDRkxB R1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAorKwkgIC1keW5hbWljbGliIC1XbCwt c2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJyCisrICAgICAgICBfbHRfcmVz dWx0PSQ/CisrCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgorKwkgIGx0X2N2X2FwcGxlX2Nj X3NpbmdsZV9tb2Q9eWVzCisrCWVsc2UKKysJICBjYXQgY29uZnRlc3QuZXJyID4mNQorKwlmaQor KwlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCisrCXJtIC1mIGNvbmZ0ZXN0LioKKysgICAgICBm aQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2FwcGxl X2NjX3NpbmdsZV9tb2QiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21v ZCIgPiY2OyB9CisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig LWV4cG9ydGVkX3N5bWJvbHNfbGlzdCBsaW5rZXIgZmxhZyIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWcuLi4gIiA+JjY7IH0K KytpZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCtzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBsdF9jdl9sZF9l eHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm8KKysgICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKKysg ICAgICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KKysgICAgICBMREZMQUdTPSIkTERGTEFH UyAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCisrICAgICAgY2F0ID5j b25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisr Y2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisr eworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysg IGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5l cnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAk YWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgbHRfY3ZfbGRf ZXhwb3J0ZWRfc3ltYm9sc19saXN0PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysJbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vCisrZmkKKysKKytybSAt cmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhl ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKKysKKytmaQor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3QiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19s aXN0IiA+JjY7IH0KKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICByaGFwc29keSogfCBkYXJ3 aW4xLlswMTJdKQorKyAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmlu ZWQgJHt3bH1zdXBwcmVzcycgOzsKKysgICAgZGFyd2luMS4qKQorKyAgICAgIF9sdF9kYXJfYWxs b3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1z dXBwcmVzcycgOzsKKysgICAgZGFyd2luKikgIyBkYXJ3aW4gNS54IG9uCisrICAgICAgIyBpZiBy dW5uaW5nIG9uIDEwLjUgb3IgbGF0ZXIsIHRoZSBkZXBsb3ltZW50IHRhcmdldCBkZWZhdWx0cwor KyAgICAgICMgdG8gdGhlIE9TIHZlcnNpb24sIGlmIG9uIHg4NiwgYW5kIDEwLjQsIHRoZSBkZXBs b3ltZW50CisrICAgICAgIyB0YXJnZXQgZGVmYXVsdHMgdG8gMTAuNC4gRG9uJ3QgeW91IGxvdmUg aXQ/CisrICAgICAgY2FzZSAke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC0xMC4wfSwkaG9zdCBp bgorKwkxMC4wLCo4NiotZGFyd2luOCp8MTAuMCwqLWRhcndpbls5MV0qKQorKwkgIF9sdF9kYXJf YWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1keW5hbWljX2xvb2t1cCcgOzsK KysJMTAuWzAxMl0qKQorKwkgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25h bWVzcGFjZSAke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKKysJMTAuKikKKysJICBf bHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29r dXAnIDs7CisrICAgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgICBpZiB0ZXN0ICIkbHRf Y3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPSAieWVzIjsgdGhlbgorKyAgICAgIF9sdF9kYXJfc2lu Z2xlX21vZD0nJHNpbmdsZV9tb2R1bGUnCisrICAgIGZpCisrICAgIGlmIHRlc3QgIiRsdF9jdl9s ZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID0gInllcyI7IHRoZW4KKysgICAgICBfbHRfZGFyX2V4 cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7 bGlibmFtZX0tc3ltYm9scy5leHBzeW0nCisrICAgIGVsc2UKKysgICAgICBfbHRfZGFyX2V4cG9y dF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhw c3ltICR7bGlifScKKysgICAgZmkKKysgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiI7IHRo ZW4KKysgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8fCA6JworKyAgICBlbHNl CisrICAgICAgX2x0X2RzeW11dGlsPQorKyAgICBmaQorKyAgICA7OworKyAgZXNhYworKworK2Fj X2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENG TEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Cisr eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJl cHJvY2Vzc29yIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHBy ZXByb2Nlc3Nvci4uLiAiID4mNjsgfQorKyMgT24gU3Vucywgc29tZXRpbWVzICRDUFAgbmFtZXMg YSBkaXJlY3RvcnkuCisraWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4K KysgIENQUD0KKytmaQorK2lmIHRlc3QgLXogIiRDUFAiOyB0aGVuCisrICBpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8g YmUgZXhwYW5kZWQKKysgICAgZm9yIENQUCBpbiAiJENDIC1FIiAiJENDIC1FIC10cmFkaXRpb25h bC1jcHAiICIvbGliL2NwcCIKKysgICAgZG8KKysgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCisr Zm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVh ZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMg d2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5o PiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1p dHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhl IE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIs CisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNh dGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMg aW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlmCisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VP RgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3By ZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CisrCisrICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCisrY29udGludWUK KytmaQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrICAjIE9L LCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVh ZGVycworKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKysgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Cisr X0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0 ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEg PmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJy ID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAteiAiJGFj X2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52 YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysgICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytm aQorKworK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMg QmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdh cyBza2lwcGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFj X3ByZXByb2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19j dl9wcm9nX0NQUD0kQ1BQCisrCisrZmkKKysgIENQUD0kYWNfY3ZfcHJvZ19DUFAKKytlbHNlCisr ICBhY19jdl9wcm9nX0NQUD0kQ1BQCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiAkQ1BQIiA+JjUKKyskYXNfZWNobyAiJENQUCIgPiY2OyB9CisrYWNfcHJlcHJvY19v az1mYWxzZQorK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAj IFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGds aWJjCisrICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVy IDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQor KyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisr ICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVy J3MgcGFyc2VyLAorKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMg aGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNF T0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0 ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNv bmZkZWZzLmguICAqLworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+Cisr I2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJy b3IKKytfQUNFT0YKKytpZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytj YXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk YWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3Ry eV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRh Y190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16 ICIkYWNfY19wcmVwcm9jX3dhcm5fZmxhZyRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVuCisrICA6CisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0Lgor K2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAor KworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4 aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCisrICBjYXQgPmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytj YXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxhY19ub25leGlz dGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0 IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsICYmIHsKKysJIHRl c3QgLXogIiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgICMgQnJva2VuOiBzdWNj ZXNzIG9uIGludmFsaWQgaW5wdXQuCisrY29udGludWUKKytlbHNlCisrICAkYXNfZWNobyAiJGFz X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRh Y19leHQgPiY1CisrCisrICAjIFBhc3NlcyBib3RoIHRlc3RzLgorK2FjX3ByZXByb2Nfb2s9Ogor K2JyZWFrCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKwor K2RvbmUKKysjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5p bmcgY29kZSB3YXMgc2tpcHBlZC4KKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4 dAorK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisrICA6CisrZWxzZQorKyAgeyB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CisreyB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBj aGVjaworK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNo ZWNrCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisrZmkKKysKKythY19leHQ9YworK2FjX2NwcD0nJENQ UCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorKworKworK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdGRhcmcu aD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPGZsb2F0Lmg+CisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRl c3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19v YmpleHQ7IHRoZW4KKysgIGFjX2N2X2hlYWRlcl9zdGRjPXllcworK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorKworK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor KworK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIFN1bk9TIDQu eCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNF T0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdHJp bmcuaD4KKysKKytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0Iikg Mj4mNSB8CisrICAkRUdSRVAgIm1lbWNociIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICA6Cisr ZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1mIGNvbmZ0ZXN0KgorKwor K2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMgSVND IDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4K KysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUg PHN0ZGxpYi5oPgorKworK19BQ0VPRgorK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19l eHQiKSAyPiY1IHwKKysgICRFR1JFUCAiZnJlZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICA6 CisrZWxzZQorKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1mIGNvbmZ0ZXN0Kgor KworK2ZpCisrCisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysgICMg L2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1 c2luZyAtYW5zaS4KKysgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisr ICA6CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2lmICgoJyAnICYg MHgwRkYpID09IDB4MDIwKQorKyMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYgKGMp IDw9ICd6JykKKysjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gJ0EnICsgKChjKSAt ICdhJykgOiAoYykpCisrI2Vsc2UKKysjIGRlZmluZSBJU0xPV0VSKGMpIFwKKysJCSAgICgoJ2En IDw9IChjKSAmJiAoYykgPD0gJ2knKSBcCisrCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8 PSAncicpIFwKKysJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCisrIyBkZWZp bmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICgoYykgfCAweDQwKSA6IChjKSkKKysjZW5kaWYK KysKKysjZGVmaW5lIFhPUihlLCBmKSAoKChlKSAmJiAhKGYpKSB8fCAoIShlKSAmJiAoZikpKQor K2ludAorK21haW4gKCkKKyt7CisrICBpbnQgaTsKKysgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkr KykKKysgICAgaWYgKFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIgKGkpKQorKwl8fCB0b3VwcGVy IChpKSAhPSBUT1VQUEVSIChpKSkKKysgICAgICByZXR1cm4gMjsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytybSAtZiBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19s aW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5 X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2 YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNf ZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1CisrICBh Y19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1 cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRh Y19leGVleHQnCisrICB7IChjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY190cnkiKSAy PiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0g JGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorKyAgOgor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRh Y19zdGF0dXMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4m NQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysoIGV4aXQgJGFjX3N0 YXR1cyApCisrYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KKytmaQorK3JtIC1yZiBjb25mdGVzdC5kU1lN Cisrcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25m dGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrZmkK KysKKysKKytmaQorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X2hlYWRlcl9zdGRjIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjY7 IH0KKytpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKworK2NhdCA+PmNv bmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBTVERDX0hFQURFUlMgMQorK19BQ0VPRgorKwor K2ZpCisrCisrIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25m bGljdGluZy4KKysKKysKKysKKysKKysKKysKKysKKysKKysKKytmb3IgYWNfaGVhZGVyIGluIHN5 cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmggc3RyaW5nLmggbWVtb3J5Lmggc3RyaW5ncy5o IFwKKysJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaAorK2RvCisrYXNfYWNfSGVhZGVy PWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zh cj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQK KysKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25m dGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4K KysgIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKKytmaQorKworK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisr YWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRh c192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2Fz X3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlm IHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9B Q0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAg MQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQorKworKworKworK2ZvciBhY19oZWFkZXIgaW4g ZGxmY24uaAorK2RvCisrYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19o ZWFkZXIiIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgJGFjX2hlYWRlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFk ZXIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwi XCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNv bmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4g ICovCisrJGFjX2luY2x1ZGVzX2RlZmF1bHQKKysKKysjaW5jbHVkZSA8JGFjX2hlYWRlcj4KKytf QUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25m dGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIx ID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVy ciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0hlYWRl cj1ubyIKKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2Fj X0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVz IiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfSGVhZGVyJ30KKysJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhl bgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZF XyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorK19BQ0VPRgorKworK2ZpCisrCisrZG9uZQor KworKworKworK2FjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK KythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBpZiB0 ZXN0IC1uICIkQ0NDIjsgdGhlbgorKyAgICBDWFg9JENDQworKyAgZWxzZQorKyAgICBpZiB0ZXN0 IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisrICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdw cCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19yIHhsQworKyAgZG8KKysg ICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15ICRhY190 b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX0NYWCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC1uICIkQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVf SUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0 IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9w cmVmaXgkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25l CisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrQ1hYPSRhY19jdl9wcm9n X0NYWAorK2lmIHRlc3QgLW4gIiRDWFgiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkQ1hYIiA+JjUKKyskYXNfZWNobyAiJENYWCIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgICAgdGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKKysg IGRvbmUKKytmaQorK2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCisrICBhY19jdF9DWFg9JENYWAor KyAgZm9yIGFjX3Byb2cgaW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0Mg S0NDIFJDQyB4bENfciB4bEMKKytkbworKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk YWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1 bW15ICRhY19wcm9nOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NYWCtzZXR9IiA9 IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0 ZXN0IC1uICIkYWNfY3RfQ1hYIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19hY19jdF9DWFg9IiRhY19j dF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZl X0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2Rv CisrICBJRlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9Lgor KyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisr ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3By b2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKytmaQorK2ZpCisrYWNfY3Rf Q1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAorK2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVu CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ1hYIiA+JjUK KyskYXNfZWNobyAiJGFjX2N0X0NYWCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkK KysKKysKKysgIHRlc3QgLW4gIiRhY19jdF9DWFgiICYmIGJyZWFrCisrZG9uZQorKworKyAgaWYg dGVzdCAieCRhY19jdF9DWFgiID0geDsgdGhlbgorKyAgICBDWFg9ImcrKyIKKysgIGVsc2UKKysg ICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgorK3llczopCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7 fQorK2FjX3Rvb2xfd2FybmVkPXllcyA7OworK2VzYWMKKysgICAgQ1hYPSRhY19jdF9DWFgKKysg IGZpCisrZmkKKysKKysgIGZpCisrZmkKKysjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91 dCB0aGUgY29tcGlsZXIuCisrJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig QysrIGNvbXBpbGVyIHZlcnNpb24iID4mNQorK3NldCBYICRhY19jb21waWxlCisrYWNfY29tcGls ZXI9JDIKKyt7IChhY190cnk9IiRhY19jb21waWxlciAtLXZlcnNpb24gPiY1IgorK2Nhc2UgIigo JGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA+JjUiKSAyPiY1Cisr ICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFjX3RyeT0iJGFjX2NvbXBp bGVyIC12ID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2Vz YWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIi CisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlciAt diA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorK3sgKGFj X3RyeT0iJGFjX2NvbXBpbGVyIC1WID4mNSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jb21waWxlciAtViA+JjUiKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVy IHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlciIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X2N4eF9jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKyNpZm5k ZWYgX19HTlVDX18KKysgICAgICAgY2hva2UgbWUKKysjZW5kaWYKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNf dHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8 ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7 OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9l Y2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21w aWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycg Y29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0 IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIk YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYWNfY29tcGlsZXJf Z251PXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY29tcGls ZXJfZ251PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKythY19jdl9jeHhfY29tcGlsZXJfZ251PSRhY19jb21w aWxlcl9nbnUKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2N4eF9jb21waWxl cl9nbnUiID4mNjsgfQorK2lmIHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgorKyAg R1hYPXllcworK2Vsc2UKKysgIEdYWD0KKytmaQorK2FjX3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFH UytzZXR9CisrYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWciID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nLi4uICIgPiY2OyB9CisraWYgdGVz dCAiJHthY19jdl9wcm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhf d2Vycm9yX2ZsYWcKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9eWVzCisrICAgYWNfY3ZfcHJvZ19j eHhfZz1ubworKyAgIENYWEZMQUdTPSItZyIKKysgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1 cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFj X3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29t cGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisn IGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNh dCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAi JGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAg ICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGFjX2N2X3Byb2df Y3h4X2c9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlDWFhGTEFH Uz0iIgorKyAgICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZz LmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr CisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysJYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwor KwkgQ1hYRkxBR1M9Ii1nIgorKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog Y29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNf ZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19j b21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9wcm9nX2N4eF9nPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysKKytmaQorKworK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2Zp CisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0CisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgICBhY19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVf Y3h4X3dlcnJvcl9mbGFnCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3ZfcHJvZ19jeHhfZyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9wcm9nX2N4eF9nIiA+ JjY7IH0KKytpZiB0ZXN0ICIkYWNfdGVzdF9DWFhGTEFHUyIgPSBzZXQ7IHRoZW4KKysgIENYWEZM QUdTPSRhY19zYXZlX0NYWEZMQUdTCisrZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2N4eF9nID0geWVz OyB0aGVuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBDWFhGTEFHUz0iLWcg LU8yIgorKyAgZWxzZQorKyAgICBDWFhGTEFHUz0iLWciCisrICBmaQorK2Vsc2UKKysgIGlmIHRl c3QgIiRHWFgiID0geWVzOyB0aGVuCisrICAgIENYWEZMQUdTPSItTzIiCisrICBlbHNlCisrICAg IENYWEZMQUdTPQorKyAgZmkKKytmaQorK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQICRDUFBGTEFH UycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9n bnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrZGVwY2M9IiRDWFgiICBhbV9jb21waWxlcl9s aXN0PQorKworK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBkZXBlbmRlbmN5 IHN0eWxlIG9mICRkZXBjYyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5kZW5jeSBz dHlsZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FtX2N2X0NYWF9kZXBlbmRl bmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAt ZiAiJGFtX2RlcGNvbXAiOyB0aGVuCisrICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0 ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisrICAjIG1ha2luZyBib2d1cyBm aWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgorKyAg IyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2ls bCBlbmQgdXAKKysgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBg LU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKysgICMgaW4gRCcuCisrICBta2RpciBjb25mdGVz dC5kaXIKKysgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3 b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisrICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5Lgor KyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKKysgIGNkIGNvbmZ0ZXN0LmRpcgorKyAg IyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9y eSBiZWNhdXNlCisrICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5j eSBtb2Rlcy4gIEZvciBpbnN0YW5jZQorKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBw b3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKysgICMgc2lkZSBlZmZlY3Qgb2Yg Y29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgorKyAgIyB0 aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2Jq ZWN0CisrICAjIGRpcmVjdG9yeS4KKysgIG1rZGlyIHN1YgorKworKyAgYW1fY3ZfQ1hYX2RlcGVu ZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKysgIGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0 IiA9ICIiOyB0aGVuCisrICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16 QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorKyAgZmkKKysgIGFtX191bml2ZXJzYWw9 ZmFsc2UKKysgIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAorKyAgICAgKlwgLWFyY2hcICpcIC1hcmNo XCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKKysgICAgIGVzYWMKKysKKysgIGZvciBkZXBtb2Rl IGluICRhbV9jb21waWxlcl9saXN0OyBkbworKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFu eSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKysgICAgIyBsaWtlIHRvIHdy YXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAorKyAg ICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2Vk IGJ5IHRoaXMuCisrICAgICMKKysgICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVz IGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKKysgICAgIyBvdmVyd3JpdGUgc29t ZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29tbWFuZCBsaW5lcy4KKysgICAg IyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisrICAgIDog PiBzdWIvY29uZnRlc3QuYworKyAgICBmb3IgaSBpbiAxIDIgMyA0IDUgNjsgZG8KKysgICAgICBl Y2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisrICAgICAg IyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5o IHdpdGgKKysgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmluL3NoLgorKyAgICAgIHRvdWNo IHN1Yi9jb25mdHN0JGkuaAorKyAgICBkb25lCisrICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7 YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIgPiBjb25mbWYKKysKKysgICAg IyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1z dGRvdXQiCisrICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNv bXBpbGVyIGRvZXMgbm90IHByb3Blcmx5CisrICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBu ZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAorKyAgICAjIHZlcnNpb25zIGhh ZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKKysgICAgYW1fX29iaj1zdWIvY29uZnRl c3QuJHtPQkpFWFQtb30KKysgICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoiCisrICAgIGNh c2UgJGRlcG1vZGUgaW4KKysgICAgZ2NjKQorKyAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBh IGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCisrICAgICAgdGVzdCAiJGFtX191bml2 ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKKysgICAgICA7OworKyAgICBub3NpZGVlZmZlY3Qp CisrICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZm ZWN0LCBzbyB0aGV5J2xsCisrICAgICAgIyBvbmx5IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJl cXVlc3RlZAorKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0g eHllczsgdGhlbgorKwljb250aW51ZQorKyAgICAgIGVsc2UKKysJYnJlYWsKKysgICAgICBmaQor KyAgICAgIDs7CisrICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCisrICAgICAgIyBUaGlzIGNv bXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMK KysgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGlu IHRoZSBnYW1lLCBhbmQKKysgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBz aG91bGQgbm90IGJlIGltcGFjdGVkLgorKyAgICAgIGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQt b30KKysgICAgICBhbV9fbWludXNfb2JqPQorKyAgICAgIDs7CisrICAgIG5vbmUpIGJyZWFrIDs7 CisrICAgIGVzYWMKKysgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBcCisrICAgICAgIHNvdXJjZT1z dWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAorKyAgICAgICBkZXBmaWxlPXN1Yi9jb25m dGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorKyAgICAgICAkU0hFTEwgLi9k ZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3QuYyBcCisrICAgICAg ICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgorKyAgICAgICBncmVwIHN1Yi9jb25mdHN0 MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisrICAgICAgIGdyZXAgc3Vi L2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKKysgICAgICAg Z3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorKyAgICAg ICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAg ICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlz c3VlIHdhcm5pbmdzCisrICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBT byB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKKysgICAgICAjIHRoYXQgc2F5cyBhbiBv cHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KKysgICAgICAjIFdoZW4gZ2l2ZW4g LU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorKyAgICAgICMgICBpY2M6IENv bW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVx dWlyZWQKKysgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBpbiBpY2MgOC4wOgorKyAgICAg ICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVk CisrICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CisrICAg ICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIDo7IGVsc2UKKysgICAgICAgIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJf dHlwZT0kZGVwbW9kZQorKyAgICAgICAgYnJlYWsKKysgICAgICBmaQorKyAgICBmaQorKyAgZG9u ZQorKworKyAgY2QgLi4KKysgIHJtIC1yZiBjb25mdGVzdC5kaXIKKytlbHNlCisrICBhbV9jdl9D WFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorK2ZpCisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21w aWxlcl90eXBlIiA+JjUKKyskYXNfZWNobyAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGls ZXJfdHlwZSIgPiY2OyB9CisrQ1hYREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DWFhfZGVwZW5kZW5j aWVzX2NvbXBpbGVyX3R5cGUKKysKKysgaWYKKysgIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lf dHJhY2tpbmciICE9IHhubyBcCisrICAmJiB0ZXN0ICIkYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19j b21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKysgIGFtX19mYXN0ZGVwQ1hYX1RSVUU9CisrICBh bV9fZmFzdGRlcENYWF9GQUxTRT0nIycKKytlbHNlCisrICBhbV9fZmFzdGRlcENYWF9UUlVFPScj JworKyAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9CisrZmkKKysKKysKKytpZiB0ZXN0IC1uICIkQ1hY IiAmJiAoIHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgorKyAgICAoICh0ZXN0ICJYJENYWCIgPSAi WGcrKyIgJiYgYGcrKyAtdiA+L2Rldi9udWxsIDI+JjFgICkgfHwKKysgICAgKHRlc3QgIlgkQ1hY IiAhPSAiWGcrKyIpKSkgOyB0aGVuCisrICBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKyth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3NvciIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHByZXByb2Nlc3Nvci4u LiAiID4mNjsgfQorK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCisrICBpZiB0ZXN0ICIke2Fj X2N2X3Byb2dfQ1hYQ1BQK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDWFhDUFAgbmVl ZHMgdG8gYmUgZXhwYW5kZWQKKysgICAgZm9yIENYWENQUCBpbiAiJENYWCAtRSIgIi9saWIvY3Bw IgorKyAgICBkbworKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKKytmb3IgYWNfY3h4X3ByZXBy b2Nfd2Fybl9mbGFnIGluICcnIHllcworK2RvCisrICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQg Y29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCisrICAjIHdpdGggYSBmcmVzaCBj cm9zcy1jb21waWxlciB3b3Jrcy4KKysgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5o PiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBl dmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCisrICAjIE9uIHRoZSBOZVhULCBjYyAtRSBy dW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorKyAgIyBub3QganVz dCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2Uu CisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpZmRlZiBf X1NURENfXworKyMgaW5jbHVkZSA8bGltaXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2Vy dC5oPgorKyNlbmRpZgorKwkJICAgICBTeW50YXggZXJyb3IKKytfQUNFT0YKKytpZiB7IChhY190 cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAq XCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9l Y2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVO TzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2 YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0 dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBy bSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9m bGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysg ICAgICAgfTsgdGhlbgorKyAgOgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KKytjb250aW51ZQorK2ZpCisrCisr cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKysgICMgT0ssIHdvcmtzIG9u IHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCisrICAj IGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KKytfQUNFT0YKKytp ZiB7IChhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+Y29uZnRlc3QuZXIxCisr ICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbCAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXBy b2Nfd2Fybl9mbGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfTsgdGhlbgorKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBp bnB1dC4KKytjb250aW51ZQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysg ICMgUGFzc2VzIGJvdGggdGVzdHMuCisrYWNfcHJlcHJvY19vaz06CisrYnJlYWsKKytmaQorKwor K3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisrCisrZG9uZQorKyMgQmVjYXVz ZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lw cGVkLgorK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisraWYgJGFjX3ByZXBy b2Nfb2s7IHRoZW4KKysgIGJyZWFrCisrZmkKKysKKysgICAgZG9uZQorKyAgICBhY19jdl9wcm9n X0NYWENQUD0kQ1hYQ1BQCisrCisrZmkKKysgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKKytl bHNlCisrICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkQ1hYQ1BQIiA+JjUKKyskYXNfZWNobyAiJENYWENQUCIgPiY2 OyB9CisrYWNfcHJlcHJvY19vaz1mYWxzZQorK2ZvciBhY19jeHhfcHJlcHJvY193YXJuX2ZsYWcg aW4gJycgeWVzCisrZG8KKysgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdj Yywgc28gY29uZmlndXJpbmcgZ2xpYmMKKysgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVy IHdvcmtzLgorKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19f IGlzIGRlZmluZWQsIHNpbmNlCisrICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0 YW5kaW5nIGNvbXBpbGVycy4KKysgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUg dGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCisrICAjIG5vdCBqdXN0IHRocm91Z2ggY3Bw LiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKysgIGNhdCA+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2Nh dCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2lmZGVmIF9fU1REQ19fCisrIyBp bmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisrI2VuZGlm CisrCQkgICAgIFN5bnRheCBlcnJvcgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0iJGFjX2NwcCBj b25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NwcCBj b25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3Jl cCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0 LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9u dWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWckYWNfY3h4X3dl cnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9OyB0aGVu CisrICA6CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBCcm9rZW46 IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorK2NvbnRpbnVlCisrZmkKKysKKytybSAtZiBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX2V4dAorKworKyAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4g IE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKKysgICMgY2FuIGJlIGRldGVj dGVkIGFuZCBob3cuCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorK19BQ0VPRgorK2lmIHsgKGFjX3RyeT0i JGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiog fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89 JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAk YWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAi JGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0k PworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1m IGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSA+L2Rldi9udWxsICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfcHJlcHJvY193YXJuX2ZsYWck YWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAg ICB9OyB0aGVuCisrICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorK2NvbnRp bnVlCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKyAgIyBQYXNzZXMgYm90 aCB0ZXN0cy4KKythY19wcmVwcm9jX29rPToKKyticmVhaworK2ZpCisrCisrcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKysKKytkb25lCisrIyBCZWNhdXNlIG9mIGBicmVhaycs IF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCisrcm0gLWYg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKytpZiAkYWNfcHJlcHJvY19vazsgdGhlbgor KyAgOgorK2Vsc2UKKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbiBc YCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjI7fQorK19sdF9jYXVnaHRfQ1hYX2Vycm9yPXllczsgfQorK2ZpCisrCisrYWNfZXh0PWMK KythY19jcHA9JyRDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ0MgLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKysKKytlbHNl CisrICBfbHRfY2F1Z2h0X0NYWF9lcnJvcj15ZXMKKytmaQorKworKworKworKworKworKyMgU2V0 IG9wdGlvbnMKKysKKysKKysKKysgICAgICAgIGVuYWJsZV9kbG9wZW49bm8KKysKKysKKysgIGVu YWJsZV93aW4zMl9kbGw9bm8KKysKKysKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRo LXBpYyB3YXMgZ2l2ZW4uCisraWYgdGVzdCAiJHt3aXRoX3BpYytzZXR9IiA9IHNldDsgdGhlbgor KyAgd2l0aHZhbD0kd2l0aF9waWM7IHBpY19tb2RlPSIkd2l0aHZhbCIKKytlbHNlCisrICBwaWNf bW9kZT1kZWZhdWx0CisrZmkKKysKKysKKyt0ZXN0IC16ICIkcGljX21vZGUiICYmIHBpY19tb2Rl PWRlZmF1bHQKKysKKysKKysKKysKKysKKysKKysKKysgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJs ZS1mYXN0LWluc3RhbGwgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2Zhc3RfaW5zdGFs bCtzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfZmFzdF9pbnN0YWxsOyBw PSR7UEFDS0FHRS1kZWZhdWx0fQorKyAgICBjYXNlICRlbmFibGV2YWwgaW4KKysgICAgeWVzKSBl bmFibGVfZmFzdF9pbnN0YWxsPXllcyA7OworKyAgICBubykgZW5hYmxlX2Zhc3RfaW5zdGFsbD1u byA7OworKyAgICAqKQorKyAgICAgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKysgICAgICAjIExv b2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNl cGFyYXRvcnMuCisrICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NF UEFSQVRPUiwiCisrICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbworKwlJRlM9IiRsdF9z YXZlX2lmcyIKKysJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KKysJICBlbmFibGVfZmFz dF9pbnN0YWxsPXllcworKwlmaQorKyAgICAgIGRvbmUKKysgICAgICBJRlM9IiRsdF9zYXZlX2lm cyIKKysgICAgICA7OworKyAgICBlc2FjCisrZWxzZQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD15 ZXMKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKyMgVGhpcyBjYW4gYmUg dXNlZCB0byByZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKKytMSUJUT09MX0RFUFM9IiRsdG1h aW4iCisrCisrIyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KKytMSUJUT09MPSckKFNIRUxM KSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKyt0ZXN0IC16ICIk TE5fUyIgJiYgTE5fUz0ibG4gLXMiCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICBzZXRv cHQgTk9fR0xPQl9TVUJTVAorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBvYmpkaXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBvYmpkaXIu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X29iamRpcitzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBybSAtZiAubGlicyAyPi9k ZXYvbnVsbAorK21rZGlyIC5saWJzIDI+L2Rldi9udWxsCisraWYgdGVzdCAtZCAubGliczsgdGhl bgorKyAgbHRfY3Zfb2JqZGlyPS5saWJzCisrZWxzZQorKyAgIyBNUy1ET1MgZG9lcyBub3QgYWxs b3cgZmlsZW5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIGRvdC4KKysgIGx0X2N2X29iamRpcj1fbGli cworK2ZpCisrcm1kaXIgLmxpYnMgMj4vZGV2L251bGwKKytmaQorK3sgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6ICRsdF9jdl9vYmpkaXIiID4mNQorKyRhc19lY2hvICIkbHRfY3Zf b2JqZGlyIiA+JjY7IH0KKytvYmpkaXI9JGx0X2N2X29iamRpcgorKworKworKworKworKworK2Nh dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKysjZGVmaW5lIExUX09CSkRJUiAiJGx0X2N2X29iamRp ci8iCisrX0FDRU9GCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrY2FzZSAkaG9zdF9vcyBpbgorK2FpeDMqKQorKyAgIyBBSVggc29tZXRpbWVzIGhh cyBwcm9ibGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCisrICAj IHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxl LCB0aGUgcHJvYmxlbXMKKysgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KKysgIGlmIHRl c3QgIlgke0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgorKyAgICBDT0xMRUNUX05B TUVTPQorKyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUworKyAgZmkKKysgIDs7CisrZXNhYworKwor KyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQg YmFja3NsYXNoaWZpZXMKKysjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3 aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorK3NlZF9xdW90ZV9zdWJzdD0ncy9cKFsiYCRc XF1cKS9cXFwxL2cnCisrCisrIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlh YmxlIHJlZmVyZW5jZXMuCisrZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9n JworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBl ZCBzaGVsbCB2YXJpYWJsZSBpbiBhCisrIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgor K2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCisrCisrIyBT ZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBx dW90ZS4KKytkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9n JworKworKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGlu IGV2YWxlZCBleHByZXNzaW9ucworK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJworKworKyMg R2xvYmFsIHZhcmlhYmxlczoKKytvZmlsZT1saWJ0b29sCisrY2FuX2J1aWxkX3NoYXJlZD15ZXMK KysKKysjIEFsbCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSBgLmEnIGFyY2hpdmUgZm9yIHN0YXRp YyBsaW5raW5nIChleGNlcHQgTVNWQywKKysjIHdoaWNoIG5lZWRzICcubGliJykuCisrbGliZXh0 PWEKKysKKyt3aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xkIgorKworK29sZF9DQz0iJEND IgorK29sZF9DRkxBR1M9IiRDRkxBR1MiCisrCisrIyBTZXQgc2FuZSBkZWZhdWx0cyBmb3IgdmFy aW91cyB2YXJpYWJsZXMKKyt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCisrdGVzdCAteiAiJExUQ0Mi ICYmIExUQ0M9JENDCisrdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCisr dGVzdCAteiAiJExEIiAmJiBMRD1sZAorK3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4 dD1vCisrCisrZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisrICBjYXNlICRjY190ZW1w IGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hl ICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5 ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2Nj X2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVe JGhvc3RfYWxpYXMtJSUiYAorKworKworKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmls ZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdAorK3Rlc3QgLXogIiRNQUdJQ19DTUQi ICYmIE1BR0lDX0NNRD1maWxlCisrY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KKytmaWxl X21hZ2ljKikKKysgIGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIgPSAnJE1BR0lDX0NNRCc7IHRo ZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAke2FjX3Rv b2xfcHJlZml4fWZpbGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAke2FjX3Rvb2xf cHJlZml4fWZpbGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01E K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGNhc2UgJE1BR0lDX0NNRCBpbgorK1tcXC8qXSB8ICA/OltcXC9dKikKKysgIGx0X2N2X3Bh dGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dCB3aXRoIGEgcGF0aC4KKysgIDs7CisrKikKKysgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNf Q01EIgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrICBhY19k dW1teT0iL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKKysgIGZvciBhY19kaXIgaW4gJGFj X2R1bW15OyBkbworKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2Rp ciIgJiYgYWNfZGlyPS4KKysgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyR7YWNfdG9vbF9wcmVmaXh9 ZmlsZTsgdGhlbgorKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyLyR7YWNfdG9v bF9wcmVmaXh9ZmlsZSIKKysgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUi OyB0aGVuCisrCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCisrCSJmaWxlX21hZ2ljICIq KQorKwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAi ZmlsZV9tYWdpYyBcKC4qXCkiYAorKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01E IgorKwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4g L2Rldi9udWxsIHwKKysJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxs OyB0aGVuCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCisrCisr KioqIFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxp YnJhcmllcywKKysqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0 b29sIGNhbm5vdCByZWNvZ25pemUuCisrKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1h eSBmYWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCisrKioqIGFzIHN1Y2guICBUaGlz IHdpbGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0CisrKioq IGRlcGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3Vj aCBsaWJ0b29sCisrKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHBy b2JsZW0uICBOZXZlcnRoZWxlc3MsIHlvdQorKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHBy b2JsZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KKysqKiogYnVnLWxpYnRvb2xA Z251Lm9yZworKworK19MVF9FT0YKKysJICBmaSA7OworKwllc2FjCisrICAgICAgZmkKKysgICAg ICBicmVhaworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrICBNQUdJ Q19DTUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKKysgIDs7CisrZXNhYworK2ZpCisrCisrTUFHSUNf Q01EPSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCisraWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRNQUdJQ19DTUQiID4m NQorKyRhc19lY2hvICIkTUFHSUNfQ01EIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytm aQorKworKworKworKworKworK2lmIHRlc3QgLXogIiRsdF9jdl9wYXRoX01BR0lDX0NNRCI7IHRo ZW4KKysgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKysgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBmaWxlIiA+JjUKKyskYXNfZWNob19uICJj aGVja2luZyBmb3IgZmlsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcGF0aF9NQUdJ Q19DTUQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKyAgY2FzZSAkTUFHSUNfQ01EIGluCisrW1xcLypdIHwgID86W1xcL10qKQorKyAgbHRf Y3ZfcGF0aF9NQUdJQ19DTUQ9IiRNQUdJQ19DTUQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRo ZSB0ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysqKQorKyAgbHRfc2F2ZV9NQUdJQ19DTUQ9IiRN QUdJQ19DTUQiCisrICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKKysg IGFjX2R1bW15PSIvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRIIgorKyAgZm9yIGFjX2RpciBp biAkYWNfZHVtbXk7IGRvCisrICAgIElGUz0iJGx0X3NhdmVfaWZzIgorKyAgICB0ZXN0IC16ICIk YWNfZGlyIiAmJiBhY19kaXI9LgorKyAgICBpZiB0ZXN0IC1mICRhY19kaXIvZmlsZTsgdGhlbgor KyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyL2ZpbGUiCisrICAgICAgaWYgdGVz dCAtbiAiJGZpbGVfbWFnaWNfdGVzdF9maWxlIjsgdGhlbgorKwljYXNlICRkZXBsaWJzX2NoZWNr X21ldGhvZCBpbgorKwkiZmlsZV9tYWdpYyAiKikKKysJICBmaWxlX21hZ2ljX3JlZ2V4PWBleHBy ICIkZGVwbGlic19jaGVja19tZXRob2QiIDogImZpbGVfbWFnaWMgXCguKlwpImAKKysJICBNQUdJ Q19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKKysJICBpZiBldmFsICRmaWxlX21hZ2ljX2Nt ZCBcJGZpbGVfbWFnaWNfdGVzdF9maWxlIDI+IC9kZXYvbnVsbCB8CisrCSAgICAkRUdSRVAgIiRm aWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgorKwkgICAgOgorKwkgIGVsc2UKKysJ ICAgIGNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiB0aGUgY29tbWFuZCBsaWJ0 b29sIHVzZXMgdG8gZGV0ZWN0IHNoYXJlZCBsaWJyYXJpZXMsCisrKioqICRmaWxlX21hZ2ljX2Nt ZCwgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbGlidG9vbCBjYW5ub3QgcmVjb2duaXplLgorKyoqKiBU aGUgcmVzdWx0IGlzIHRoYXQgbGlidG9vbCBtYXkgZmFpbCB0byByZWNvZ25pemUgc2hhcmVkIGxp YnJhcmllcworKyoqKiBhcyBzdWNoLiAgVGhpcyB3aWxsIGFmZmVjdCB0aGUgY3JlYXRpb24gb2Yg bGlidG9vbCBsaWJyYXJpZXMgdGhhdAorKyoqKiBkZXBlbmQgb24gc2hhcmVkIGxpYnJhcmllcywg YnV0IHByb2dyYW1zIGxpbmtlZCB3aXRoIHN1Y2ggbGlidG9vbAorKyoqKiBsaWJyYXJpZXMgd2ls bCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwcm9ibGVtLiAgTmV2ZXJ0aGVsZXNzLCB5b3UKKysq KiogbWF5IHdhbnQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHlvdXIgc3lzdGVtIG1hbmFnZXIg YW5kL29yIHRvCisrKioqIGJ1Zy1saWJ0b29sQGdudS5vcmcKKysKKytfTFRfRU9GCisrCSAgZmkg OzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgYnJlYWsKKysgICAgZmkKKysgIGRvbmUKKysg IElGUz0iJGx0X3NhdmVfaWZzIgorKyAgTUFHSUNfQ01EPSIkbHRfc2F2ZV9NQUdJQ19DTUQiCisr ICA7OworK2VzYWMKKytmaQorKworK01BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgor K2lmIHRlc3QgLW4gIiRNQUdJQ19DTUQiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkTUFHSUNfQ01EIiA+JjUKKyskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2 OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysKKysgIGVsc2UKKysgICAgTUFHSUNf Q01EPToKKysgIGZpCisrZmkKKysKKysgIGZpCisrICA7OworK2VzYWMKKysKKysjIFVzZSBDIGZv ciB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGluIHRoZSBsaWJ0b29sIHNjcmlwdAorKworK2x0 X3NhdmVfQ0M9IiRDQyIKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNf Y29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwor K2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19j dl9jX2NvbXBpbGVyX2dudQorKworKworKyMgU291cmNlIGZpbGUgZXh0ZW5zaW9uIGZvciBDIHRl c3Qgc291cmNlcy4KKythY19leHQ9YworKworKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBj b21waWxlZCBDIHRlc3Qgc291cmNlcy4KKytvYmpleHQ9bworK29iamV4dD0kb2JqZXh0CisrCisr IyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKKytsdF9zaW1wbGVfY29t cGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCisrCisrIyBDb2RlIHRvIGJl IHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKKytsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2lu dCBtYWluKCl7cmV0dXJuKDApO30nCisrCisrCisrCisrCisrCisrCisrCisrIyBJZiBubyBDIGNv bXBpbGVyIHdhcyBzcGVjaWZpZWQsIHVzZSBDQy4KKytMVENDPSR7TFRDQy0iJENDIn0KKysKKysj IElmIG5vIEMgY29tcGlsZXIgZmxhZ3Mgd2VyZSBzcGVjaWZpZWQsIHVzZSBDRkxBR1MuCisrTFRD RkxBR1M9JHtMVENGTEFHUy0iJENGTEFHUyJ9CisrCisrIyBBbGxvdyBDQyB0byBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KKytjb21waWxlcj0kQ0MKKysKKysjIFNhdmUgdGhlIGRl ZmF1bHQgY29tcGlsZXIsIHNpbmNlIGl0IGdldHMgb3ZlcndyaXR0ZW4gd2hlbiB0aGUgb3RoZXIK KysjIHRhZ3MgYXJlIGJlaW5nIHRlc3RlZCwgYW5kIF9MVF9UQUdWQVIoY29tcGlsZXIsIFtdKSBp cyBhIE5PUC4KKytjb21waWxlcl9ERUZBVUxUPSRDQworKworKyMgc2F2ZSB3YXJuaW5ncy9ib2ls ZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCisrYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2Jq ZXh0CisrZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19l eHQKKytldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9e ICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25m dGVzdC5lcnJgCisrJFJNIGNvbmZ0ZXN0KgorKworK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29i amV4dAorK2VjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0 CisrZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9k JyA+Y29uZnRlc3QuZXJyCisrX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVy cmAKKyskUk0gLXIgY29uZnRlc3QqCisrCisrCisrIyMgQ0FWRUFUIEVNUFRPUjoKKysjIyBUaGVy ZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90 IGNoYW5nZQorKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJv dW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5CisrIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisr aWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgorKworK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVp bHRpbl9mbGFnPQorKworK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICBsdF9wcm9nX2Nv bXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1mbm8tYnVpbHRpbicKKysKKysgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRp IC1mbm8tZXhjZXB0aW9ucyIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVy IHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0 ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGx0X2N2X3Byb2dfY29t cGlsZXJfcnR0aV9leGNlcHRpb25zPW5vCisrICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2Jq ZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4k YWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxhZz0iLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucyIK KysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdT IHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRl c3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRz ZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBh IGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3Jy ZWN0bHkuCisrICAgIyBUaGUgb3B0aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8g YXZvaWQgY29uZnVzaW5nIHNlZC4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIg fCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6 OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsg dCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAi XCJcJGFzX21lOjkzNzk6ICRsdF9jb21waWxlXCIiID4mNSkKKysgICAoZXZhbCAiJGx0X2NvbXBp bGUiIDI+Y29uZnRlc3QuZXJyKQorKyAgIGFjX3N0YXR1cz0kPworKyAgIGNhdCBjb25mdGVzdC5l cnIgPiY1CisrICAgZWNobyAiJGFzX21lOjkzODM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAg IGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgorKyAg ICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYg bm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBv dGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCisrICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJf Ym9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisrICAgICAkU0VE ICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKysgICAgIGlmIHRl c3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4v ZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlv bnM9eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0 aV9leGNlcHRpb25zIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9l eGNlcHRpb25zIiA+JjY7IH0KKysKKytpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0 aV9leGNlcHRpb25zIiA9IHh5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyAtZm5vLXJ0dGkgLWZu by1leGNlcHRpb25zIgorK2Vsc2UKKysgICAgOgorK2ZpCisrCisrZmkKKysKKysKKysKKysKKysK KysKKysgIGx0X3Byb2dfY29tcGlsZXJfd2w9CisrbHRfcHJvZ19jb21waWxlcl9waWM9CisrbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9CisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4m NjsgfQorKworKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysgICAgbHRfcHJvZ19jb21w aWxlcl93bD0nLVdsLCcKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisr CisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXgqKQorKyAgICAgICMgQWxsIEFJWCBj b2RlIGlzIFBJQy4KKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkj IEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBhbWlnYW9zKikK KysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisrICAgICAgICAgICAg IyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAgICAgICAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKKysgICAgICAgIDs7CisrICAgICAgbTY4aykKKysg ICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8gYnVpbGQg c2hhcmVkIGxpYnJhcmllcywgYnV0CisrICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAtbTY4MDIw JyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCisrICAgICAg ICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KKysgICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0JworKyAgICAgICAgOzsK KysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgYmVvcyogfCBpcml4NSogfCBpcml4Niog fCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgICMgUElDIGlzIHRo ZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgorKyAgICAgIDs7CisrCisrICAgIG1pbmd3KiB8IGN5 Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCisrICAgICAgIyBUaGlzIGhhY2sgaXMgc28g dGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworKyAgICAg ICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9s cyBmb3IgZXhhbXBsZSkuCisrICAgICAgIyBBbHRob3VnaCB0aGUgY3lnd2luIGdjYyBpZ25vcmVz IC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQorKyAgICAgICMgKC0tZGlzYWJs ZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1E RExMX0VYUE9SVCcKKysgICAgICA7OworKworKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KKysgICAgICAjIENvbW1v biBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCisrICAgICAgbHRfcHJvZ19j b21waWxlcl9waWM9Jy1mbm8tY29tbW9uJworKyAgICAgIDs7CisrCisrICAgIGhwdXgqKQorKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9y IDMyLWJpdAorKyAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRl ZmF1bHQgYnV0IHRoZSBwaWMgZmxhZworKyAgICAgICMgc2V0cyB0aGUgZGVmYXVsdCBUTFMgbW9k ZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisrICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KKysgICAg ICBocHBhKjY0KikKKysJIyArWiB0aGUgZGVmYXVsdAorKwk7OworKyAgICAgICopCisrCWx0X3By b2dfY29tcGlsZXJfcGljPSctZlBJQycKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysK KysgICAgaW50ZXJpeFszLTldKikKKysgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJ QyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgorKyAgICAgICMgSW5zdGVhZCwgd2UgcmVs b2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgorKyAgICAgIDs7CisrCisrICAgIG1z ZG9zZGpncHAqKQorKyAgICAgICMgSnVzdCBiZWNhdXNlIHdlIHVzZSBHQ0MgZG9lc24ndCBtZWFu IHdlIHN1ZGRlbmx5IGdldCBzaGFyZWQgbGlicmFyaWVzCisrICAgICAgIyBvbiBzeXN0ZW1zIHRo YXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxk X3NoYXJlZD1ubworKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KKysgICAgICA7OworKworKyAgICAq bnRvKiB8ICpxbngqKQorKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVm aW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNvcmVk dW1wLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJworKyAgICAg IDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVu CisrCWx0X3Byb2dfY29tcGlsZXJfcGljPS1LY29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAg IDs7CisrCisrICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJworKyAg ICAgIDs7CisrICAgIGVzYWMKKysgIGVsc2UKKysgICAgIyBQT1JUTUUgQ2hlY2sgZm9yIGZsYWcg dG8gcGFzcyBsaW5rZXIgZmxhZ3MgdGhyb3VnaCB0aGUgc3lzdGVtIGNvbXBpbGVyLgorKyAgICBj YXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0n LVdsLCcKKysgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkjIEFJWCA1 IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3NvcgorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0n LUJzdGF0aWMnCisrICAgICAgZWxzZQorKwlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLWJuc28g LWJJOi9saWIvc3lzY2FsbHMuZXhwJworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgbWlu Z3cqIHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKiB8IGNlZ2NjKikKKysgICAgICAjIFRoaXMgaGFj ayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5n CisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9y dCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURE TExfRVhQT1JUJworKyAgICAgIDs7CisrCisrICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEq KQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgIyBQSUMgaXMgdGhl IGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBIUC1VWCwgYnV0CisrICAgICAgIyBu b3QgZm9yIFBBIEhQLVVYLgorKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgaHBwYSo2 NCp8aWE2NCopCisrCSMgK1ogdGhlIGRlZmF1bHQKKysJOzsKKysgICAgICAqKQorKwlsdF9wcm9n X2NvbXBpbGVyX3BpYz0nK1onCisrCTs7CisrICAgICAgZXNhYworKyAgICAgICMgSXMgdGhlcmUg YSBiZXR0ZXIgbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgdGhhdCB3b3JrcyB3aXRoIHRoZSBidW5k bGVkIENDPworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPScke3dsfS1hICR7d2x9YXJj aGl2ZScKKysgICAgICA7OworKworKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQor KyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgIyBQSUMgKHdpdGggLUtQ SUMpIGlzIHRoZSBkZWZhdWx0LgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9u X3NoYXJlZCcKKysgICAgICA7OworKworKyAgICBsaW51eCogfCBrKmJzZCotZ251KQorKyAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgIyBvbGQgSW50ZWwgZm9yIHg4Nl82NCB3aGlj aCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCisrICAgICAgZWNjKikKKysJbHRfcHJvZ19jb21waWxl cl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworKwlsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBpY2MgdXNlZCB0 byBiZSBpbmNvbXBhdGlibGUgd2l0aCBHQ0MuCisrICAgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2Nl cHQgLUtQSUMgYW55IG1vcmUuCisrICAgICAgaWNjKiB8IGlmb3J0KikKKysJbHRfcHJvZ19jb21w aWxlcl93bD0nLVdsLCcKKysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJworKwlsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKKysgICAgICAgIDs7CisrICAgICAgIyBMYWhleSBG b3J0cmFuIDguMS4KKysgICAgICBsZjk1KikKKysJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcK KysJbHRfcHJvZ19jb21waWxlcl9waWM9Jy0tc2hhcmVkJworKwlsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYz0nLS1zdGF0aWMnCisrCTs7CisrICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBw Z2Y5NSopCisrICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBl bnRpdW0gZ2NjIGNvbXBpbGVyLAorKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0 KQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LWZwaWMnCisrCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysgICAgICAgIDs7 CisrICAgICAgY2NjKikKKysgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAg ICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4KKysgICAgICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICAgIDs7CisrICAgICAgeGwqKQorKwkjIElCTSBY TCBDIDguMC9Gb3J0cmFuIDEwLjEgb24gUFBDCisrCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwn CisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctcXBpYycKKysJbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1xc3RhdGljbGluaycKKysJOzsKKysgICAgICAqKQorKwljYXNlIGAkQ0MgLVYgMj4mMSB8 IHNlZCA1cWAgaW4KKysJKlN1blwgQyopCisrCSAgIyBTdW4gQyA1LjkKKysJICBsdF9wcm9nX2Nv bXBpbGVyX3BpYz0nLUtQSUMnCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGlj JworKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrCSAgOzsKKysJKlN1blwgRiopCisr CSAgIyBTdW4gRm9ydHJhbiA4LjMgcGFzc2VzIGFsbCB1bnJlY29nbml6ZWQgZmxhZ3MgdG8gdGhl IGxpbmtlcgorKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKysJICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrCSAgbHRfcHJvZ19jb21waWxlcl93bD0nJworKwkg IDs7CisrCWVzYWMKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgbmV3c29z NikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisrICAgICpudG8qIHwgKnFu eCopCisrICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJl ZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDIC1zaGFyZWQnCisrICAgICAgOzsKKysKKysg ICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1X bCwnCisrICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCisrICAgICAgbHRfcHJvZ19jb21w aWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJworKyAgICAgIDs7CisrCisrICAgIHJkb3MqKQorKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKKysgICAgICA7OworKwor KyAgICBzb2xhcmlzKikKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCisrICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorKwlsdF9wcm9nX2NvbXBpbGVy X3dsPSctUW9wdGlvbiBsZCAnOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJzs7CisrICAgICAgZXNhYworKyAgICAgIDs7CisrCisrICAgIHN1bm9zNCopCisrICAgICAg bHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJworKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfcGljPSctUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycK KysgICAgICA7OworKworKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyopCisrICAg ICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKysgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLUtQSUMnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAg ICAgIDs7CisrCisrICAgIHN5c3Y0Kk1QKikKKysgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0 aGVuCisrCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS2NvbmZvcm1fcGljJworKwlsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKworKyAgICBz eXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQorKyAg ICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9w aWM9Jy1LUElDJworKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKysg ICAgICA7OworKworKyAgICB1bmljb3MqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1X bCwnCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrICAgICAg OzsKKysKKysgICAgdXRzNCopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1waWMnCisr ICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworKyAgICAgIDs7CisrCisr ICAgICopCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisrICAg ICAgOzsKKysgICAgZXNhYworKyAgZmkKKysKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBw bGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoK KysgICpkamdwcCopCisrICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPQorKyAgICA7OworKyAgKikK KysgICAgbHRfcHJvZ19jb21waWxlcl9waWM9IiRsdF9wcm9nX2NvbXBpbGVyX3BpYyAtRFBJQyIK KysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0 X3Byb2dfY29tcGlsZXJfcGljIiA+JjUKKyskYXNfZWNobyAiJGx0X3Byb2dfY29tcGlsZXJfcGlj IiA+JjY7IH0KKysKKysKKysKKysKKysKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhl IFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKytpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21w aWxlcl9waWMiOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg aWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpYyB3b3JrcyIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBp bGVyX3BpYyB3b3Jrcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxl cl9waWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9bm8KKysgICBhY19v dXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKKysgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKKysgICBsdF9jb21waWxlcl9mbGFnPSIkbHRf cHJvZ19jb21waWxlcl9waWMgLURQSUMiCisrICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIg KDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKKysgICAjICgyKSBiZWZvcmUg YSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgorKyAgICMg Tm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVz IGFuZCBiZWdpbnMKKysgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28g dGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgorKyAgICMgVGhlIG9wdGlvbiBpcyByZWZl cmVuY2VkIHZpYSBhIHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCisrICAgbHRfY29t cGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAs MVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0 XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAnczokOiAkbHRfY29tcGlsZXJf ZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5NzE4OiAkbHRfY29tcGlsZVwiIiA+ JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0 dXM9JD8KKysgICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19tZTo5NzIyOiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1z ICIkYWNfb3V0ZmlsZSI7IHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorKyAg ICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcg PmNvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+ Y29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29u ZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgIGx0X2N2X3By b2dfY29tcGlsZXJfcGljX3dvcmtzPXllcworKyAgICAgZmkKKysgICBmaQorKyAgICRSTSBjb25m dGVzdCoKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsdF9j dl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2Nv bXBpbGVyX3BpY193b3JrcyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBp bGVyX3BpY193b3JrcyIgPSB4eWVzOyB0aGVuCisrICAgIGNhc2UgJGx0X3Byb2dfY29tcGlsZXJf cGljIGluCisrICAgICAiIiB8ICIgIiopIDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgOzsKKysgICAgIGVzYWMKKytlbHNlCisrICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hh cmVkPW5vCisrZmkKKysKKytmaQorKworKworKworKworKworKworKyMKKysjIENoZWNrIHRvIG1h a2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCisrIworK3dsPSRsdF9wcm9n X2NvbXBpbGVyX3dsIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJGx0X3Byb2dfY29tcGlsZXJf c3RhdGljXCIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBp bGVyIHN0YXRpYyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFn IHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRp Y193b3JrcytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz1ubworKyAgIHNhdmVf TERGTEFHUz0iJExERkxBR1MiCisrICAgTERGTEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNf ZmxhZyIKKysgICBlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRh Y19leHQKKysgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBj b25mdGVzdCRhY19leGVleHQ7IHRoZW4KKysgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJu IGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAgICAgIyBTbyBzYXkg bm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsg dGhlbgorKyAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgorKyAg ICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysgICAgICAgJEVDSE8gIlgkX2x0X2xpbmtlcl9i b2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gY29uZnRlc3QuZXhwCisrICAgICAgICRT RUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgICBp ZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAg ICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzPXllcworKyAgICAgICBmaQorKyAg ICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKKysg ICAgIGZpCisrICAgZmkKKysgICAkUk0gLXIgY29uZnRlc3QqCisrICAgTERGTEFHUz0iJHNhdmVf TERGTEFHUyIKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRs dF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9w cm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPiY2OyB9CisrCisraWYgdGVzdCB4IiRsdF9jdl9w cm9nX2NvbXBpbGVyX3N0YXRpY193b3JrcyIgPSB4eWVzOyB0aGVuCisrICAgIDoKKytlbHNlCisr ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPQorK2ZpCisrCisrCisrCisrCisrCisrCisrCisr ICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBv cnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9j X289bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKKysgICBta2RpciBjb25mdGVz dAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0CisrICAgZWNobyAiJGx0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrCisrICAgbHRfY29tcGlsZXJf ZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRp b24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCisrICAgIyAo MikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVu ZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBi YWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5 cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KKysgICBsdF9jb21waWxl PWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczouKkZMQUdTfVx7MCwxXH0g OiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjog JGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFn OidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjk4MjM6ICRsdF9jb21waWxlXCIiID4mNSkK KysgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKKysgICBhY19zdGF0 dXM9JD8KKysgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKKysgICBlY2hvICIkYXNfbWU6OTgy NzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVz dCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRoZSBjb21w aWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXpl ZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAkRUNITyAi WCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91dC9jb25m dGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5v dXQvY29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBk aWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisr ICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcworKyAgICAgZmkKKysgICBmaQorKyAg IGNobW9kIHUrdyAuIDI+JjUKKysgICAkUk0gY29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBp bGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxh dGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlf ZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0 CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29uZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrCisr ZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21w aWxlcl9jX28iID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iID4mNjsg fQorKworKworKworKworKworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19v YmpleHQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3Nl dH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysg IGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9u dWxsCisrICAgbWtkaXIgY29uZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAor KyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4 dAorKworKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIK KysgICAjIEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdT IHZhcmlhYmxlLCBvcgorKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRl c3QuIiwgb3IgKDMpIGF0IHRoZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRz ZWxmIGRvZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBh IGRvbGxhciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3Jy ZWN0bHkuCisrICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAg LWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1l ICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAn czokOiAkbHRfY29tcGlsZXJfZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo5ODc4 OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25m dGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1 CisrICAgZWNobyAiJGFzX21lOjk4ODI6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgIGlmIChl eGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0CisrICAg dGhlbgorKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBv cHRpb24gaWYgbm90IHJlY29nbml6ZWQKKysgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3 YXJuaW5ncworKyAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2Vk IC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisrICAgICAkU0VEICcvXiQvZDsgL14gKisv ZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1z IG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5l cjIgPi9kZXYvbnVsbDsgdGhlbgorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMK KysgICAgIGZpCisrICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJFJNIGNvbmZ0ZXN0 KgorKyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2Zp bGVzLyBmb3IKKysgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9p aV9maWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAg JFJNIG91dC8qICYmIHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgJFJNIC1yIGNvbmZ0ZXN0Cisr ICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUKKyskYXNfZWNobyAiJGx0X2N2X3By b2dfY29tcGlsZXJfY19vIiA+JjY7IH0KKysKKysKKysKKysKKytoYXJkX2xpbmtzPSJub3R0ZXN0 ZWQiCisraWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA9IG5vICYmIHRlc3QgIiRu ZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBv ZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MuLi4gIiA+ JjY7IH0KKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25mdGVz dC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2ggY29u ZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1u bworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9 bm8KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkX2xpbmtzIiA+ JjUKKyskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQorKyAgaWYgdGVzdCAiJGhhcmRfbGlu a3MiID0gbm87IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1 bnNhZmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBz dXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mMjt9CisrICAg IG5lZWRfbG9ja3M9d2FybgorKyAgZmkKKytlbHNlCisrICBuZWVkX2xvY2tzPW5vCisrZmkKKysK KysKKysKKysKKysKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3 aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJp ZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5r ZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQorKworKyAgcnVu cGF0aF92YXI9CisrICBhbGxvd191bmRlZmluZWRfZmxhZz0KKysgIGFsd2F5c19leHBvcnRfc3lt Ym9scz1ubworKyAgYXJjaGl2ZV9jbWRzPQorKyAgYXJjaGl2ZV9leHBzeW1fY21kcz0KKysgIGNv bXBpbGVyX25lZWRzX29iamVjdD1ubworKyAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lcz1ubworKyAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQorKyAgZXhwb3J0X3N5bWJvbHNf Y21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAk U0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAg aGFyZGNvZGVfYXV0b21hdGljPW5vCisrICBoYXJkY29kZV9kaXJlY3Q9bm8KKysgIGhhcmRjb2Rl X2RpcmVjdF9hYnNvbHV0ZT1ubworKyAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KKysgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9CisrICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PQorKyAgaGFyZGNvZGVfbWludXNfTD1ubworKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11bnN1 cHBvcnRlZAorKyAgaW5oZXJpdF9ycGF0aD1ubworKyAgbGlua19hbGxfZGVwbGlicz11bmtub3du CisrICBtb2R1bGVfY21kcz0KKysgIG1vZHVsZV9leHBzeW1fY21kcz0KKysgIG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHM9CisrICBvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcz0KKysgIHRo cmVhZF9zYWZlX2ZsYWdfc3BlYz0KKysgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQorKyAgIyBp bmNsdWRlX2V4cHN5bXMgc2hvdWxkIGJlIGEgbGlzdCBvZiBzcGFjZS1zZXBhcmF0ZWQgc3ltYm9s cyB0byBiZSAqYWx3YXlzKgorKyAgIyBpbmNsdWRlZCBpbiB0aGUgc3ltYm9sIGxpc3QKKysgIGlu Y2x1ZGVfZXhwc3ltcz0KKysgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRlZCBy ZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCisrICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBieSBg ICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCisrICAjIGVu ZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3ltYm9s cyBgYScgYW5kIGBiYycsCisrICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5z IGBkJy4KKysgIGV4Y2x1ZGVfZXhwc3ltcz0nX0dMT0JBTF9PRkZTRVRfVEFCTEVffF9HTE9CQUxf X0ZbSURdXy4qJworKyAgIyBBbHRob3VnaCBfR0xPQkFMX09GRlNFVF9UQUJMRV8gaXMgYSB2YWxp ZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0CisrICAjIHBsYXRmb3JtcyAoYWIpdXNlIGl0IGlu IFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29uZnVzZWQgaWYKKysgICMgdGhlIHN5 bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5jZSBwb3J0YWJsZSBjb2RlIGNhbm5v dAorKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0J3MgcHJvYmFibHkgZmluZSB0byBu ZXZlciBpbmNsdWRlIGl0IGluCisrICAjIHByZWxvYWRlZCBzeW1ib2wgdGFibGVzLgorKyAgIyBF eGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9uL2ZpbmFsaXphdGlvbiBzeW1ib2xz LgorKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisrCisrICBjYXNlICRob3N0X29zIGluCisrICBj eWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICAgICMgRklYTUU6IHRoZSBNU1ZD KysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKysgICAgIyBXaGVu IG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKysg ICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKysgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0 aGVuCisrICAgICAgd2l0aF9nbnVfbGQ9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGludGVyaXgq KQorKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBnY2MgYW5kIG5vdCBjODkgKD0g TVNWQysrKQorKyAgICB3aXRoX2dudV9sZD15ZXMKKysgICAgOzsKKysgIG9wZW5ic2QqKQorKyAg ICB3aXRoX2dudV9sZD1ubworKyAgICA7OworKyAgZXNhYworKworKyAgbGRfc2hsaWJzPXllcwor KyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgICAjIElmIGFyY2hpdmVf Y21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQorKyAgICB3bGFyYz0n JHt3bH0nCisrCisrICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJl ZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCisrICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJl ZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorKyAgICAjIGhlcmUg YWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3NhcnkuCisrICAgIHJ1bnBhdGhf dmFyPUxEX1JVTl9QQVRICisrICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJw YXRoICR7d2x9JGxpYmRpcicKKysgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS0t ZXhwb3J0LWR5bmFtaWMnCisrICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13 aG9sZS1hcmNoaXZlIGV0LiBhbC4KKysgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ25v LXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWM9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIict LW5vLXdob2xlLWFyY2hpdmUnCisrICAgIGVsc2UKKysgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYz0KKysgICAgZmkKKysgICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCisrICAgIGNh c2UgYCRMRCAtdiAyPiYxYCBpbgorKyAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAtOV0uKiB8ICpc IDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKysgICAgICAqXCAyLjExLjkzLjAu MlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgorKyAgICAg ICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1h bmRyYWtlIDguMiAuLi4KKysgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9u cworKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKysgICAgZXNhYwor KworKyAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KKysgICAg Y2FzZSAkaG9zdF9vcyBpbgorKyAgICBhaXhbMy05XSopCisrICAgICAgIyBPbiBBSVgvUFBDLCB0 aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tlbgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIg IT0gaWE2NDsgdGhlbgorKwlsZF9zaGxpYnM9bm8KKysJY2F0IDw8X0xUX0VPRiAxPiYyCisrCisr KioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4x LCBpcyByZXBvcnRlZAorKyoqKiB0byBiZSB1bmFibGUgdG8gcmVsaWFibHkgY3JlYXRlIHNoYXJl ZCBsaWJyYXJpZXMgb24gQUlYLgorKyoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5n IHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQorKyoqKiByZWFsbHkgY2FyZSBmb3Ig c2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIG1vZGlmeSB5b3VyIFBBVEgKKysqKiog c28gdGhhdCBhIG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLCBhbmQgdGhlbiByZXN0YXJ0LgorKwor K19MVF9FT0YKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGFtaWdhb3MqKQorKyAgICAg IGNhc2UgJGhvc3RfY3B1IGluCisrICAgICAgcG93ZXJwYykKKysgICAgICAgICAgICAjIHNlZSBj b21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0CisrICAgICAgICAgICAgYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t c29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzPScnCisrICAgICAgICA7OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgYXJjaGl2ZV9j bWRzPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBO QU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNk ZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRF Q0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFy eS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpk aXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAk bGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFyeSAtMzIpJworKyAgICAgICAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICAgICAgICBoYXJk Y29kZV9taW51c19MPXllcworKyAgICAgICAgOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysK KysgICAgYmVvcyopCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9y dGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlhbGxvd191bmRlZmluZWRf ZmxhZz11bnN1cHBvcnRlZAorKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBz YXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCisrCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMg ZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJYXJjaGl2ZV9jbWRzPSckQ0Mg LW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lIC1vICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysgICAgICBm aQorKyAgICAgIDs7CisrCisrICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK KysgICAgICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgKSBpcyBhY3R1 YWxseSBtZWFuaW5nbGVzcywKKysgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZv ciBETExzLgorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysg ICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAgICAgIGFsd2F5c19leHBv cnRfc3ltYm9scz1ubworKyAgICAgIGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9 eWVzCisrICAgICAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5j ZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipb IF1cKFteIF0qXCkvXDEgREFUQS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bQUlUV11bIF0vcy8uKlsg XS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKworKyAgICAgIGlmICRM RCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKysg ICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWlt YWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrCSMgSWYgdGhl IGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKKysJ IyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBlbmQuLi4KKysJYXJj aGl2ZV9leHBzeW1fY21kcz0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0g eEVYUE9SVFM7IHRoZW4KKysJICBjcCAkZXhwb3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNv bmFtZS5kZWY7CisrCWVsc2UKKysJICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29u YW1lLmRlZjsKKysJICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25h bWUuZGVmOworKwlmaX4KKysJJENDIC1zaGFyZWQgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25h bWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1Y bGlua2VyICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysgICAgICBmaQorKyAg ICAgIDs7CisrCisrICAgIGludGVyaXhbMy05XSopCisrICAgICAgaGFyZGNvZGVfZGlyZWN0PW5v CisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrICAgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPScke3dsfS1FJworKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAzLngsIHdlIGNh bm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KKysgICAgICAjIEluc3Rl YWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNlICgweDEwMDAw MDAwIGJ5CisrICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3Qs IHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQorKyAgICAgICMgY29uc3VtaW5nIGFuZCBmcmFn bWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwKKysgICAg ICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQgMHg2 RkZDMDAwMCBhdCBsaW5rCisrICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAw MCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCisrICAgICAgYXJjaGl2ZV9jbWRzPSck Q0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2 IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKyAgICAgIGFyY2hpdmVfZXhw c3ltX2NtZHM9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRz b25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRv dXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFO RE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCisrICAg ICAgOzsKKysKKysgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251KQorKyAgICAg IHRtcF9kaWV0PW5vCisrICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxpYmM7 IHRoZW4KKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBkaWV0XCAqKSB0bXBfZGlldD15ZXM7 OwkjIGxpbnV4LWRpZXRsaWJjIHdpdGggc3RhdGljIGxpbmtpbmcgKCFkaWV0LWR5bikKKysJZXNh YworKyAgICAgIGZpCisrICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBv cnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAorKwkgJiYgdGVzdCAiJHRtcF9kaWV0 IiA9IG5vCisrICAgICAgdGhlbgorKwl0bXBfYWRkZmxhZz0KKysJdG1wX3NoYXJlZGZsYWc9Jy1z aGFyZWQnCisrCWNhc2UgJGNjX2Jhc2VuYW1lLCRob3N0X2NwdSBpbgorKyAgICAgICAgcGdjYyop CQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBk byB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5j ZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdo b2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCisrCSAgOzsKKysJcGdm NzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBp bGVycworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBm b3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3 X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRu ZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgdG1wX2FkZGZs YWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CisrCWVjYyosaWE2NCogfCBpY2MqLGlhNjQqKQkj IEludGVsIEMgY29tcGlsZXIgb24gaWE2NAorKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1pYycg OzsKKysJZWZjKixpYTY0KiB8IGlmb3J0KixpYTY0KikJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVy IG9uIGlhNjQKKysJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7Cisr CWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCisrCSAgdG1wX2FkZGZs YWc9JyAtbm9mb3JfbWFpbicgOzsKKysJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKKysJ ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KKysJICB0bXBfc2hhcmVkZmxhZz0nLS1zaGFyZWQn IDs7CisrCXhsW2NDXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBDIChkZWFsIHdpdGggeGxmIGJl bG93KQorKwkgIHRtcF9zaGFyZWRmbGFnPSctcW1rc2hyb2JqJworKwkgIHRtcF9hZGRmbGFnPSA7 OworKwllc2FjCisrCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorKwkqU3VuXCBDKikJ CQkjIFN1biBDIDUuOQorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUt YXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBk byB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNl LCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hv bGUtYXJjaGl2ZScKKysJICBjb21waWxlcl9uZWVkc19vYmplY3Q9eWVzCisrCSAgdG1wX3NoYXJl ZGZsYWc9Jy1HJyA7OworKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMworKwkgIHRtcF9z aGFyZWRmbGFnPSctRycgOzsKKysJZXNhYworKwlhcmNoaXZlX2NtZHM9JyRDQyAnIiR0bXBfc2hh cmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCisrICAgICAgICBpZiB0ZXN0ICJ4 JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisrICAgICAgICAgIGFyY2hp dmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFt ZS52ZXJ+CisrCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsv IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICBlY2hvICJsb2NhbDogKjsg fTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICRDQyAnIiR0bXBfc2hh cmVkZmxhZyIiJHRtcF9hZGRmbGFnIicgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisrICAgICAgICBmaQorKworKwljYXNlICRj Y19iYXNlbmFtZSBpbgorKwl4bGYqKQorKwkgICMgSUJNIFhMIEZvcnRyYW4gMTAuMSBvbiBQUEMg Y2Fubm90IGNyZWF0ZSBzaGFyZWQgbGlicyBpdHNlbGYKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYz0nLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlIC0tbm8td2hvbGUtYXJjaGl2ZScKKysJ ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQorKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfbGQ9Jy1ycGF0aCAkbGliZGlyJworKwkgIGFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJwor KwkgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KKysJ ICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRp ci8kbGlibmFtZS52ZXJ+CisrCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMv XCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKysJICAgICAgZWNo byAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCSAgICAg ICRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRz b25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGli JworKwkgIGZpCisrCSAgOzsKKysJZXNhYworKyAgICAgIGVsc2UKKysgICAgICAgIGxkX3NobGli cz1ubworKyAgICAgIGZpCisrICAgICAgOzsKKysKKysgICAgbmV0YnNkKikKKysgICAgICBpZiBl Y2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgor KwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2Vy X2ZsYWdzIC1vICRsaWInCisrCXdsYXJjPQorKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisr ICAgICAgZmkKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBpZiAkTEQgLXYg Mj4mMSB8ICRHUkVQICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KKysJbGRfc2hsaWJzPW5v CisrCWNhdCA8PF9MVF9FT0YgMT4mMgorKworKyoqKiBXYXJuaW5nOiBUaGUgcmVsZWFzZXMgMi44 Liogb2YgdGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5CisrKioqIGNyZWF0ZSBzaGFyZWQg bGlicmFyaWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKyoqKiBp cyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBn cmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdlci4gIEFub3Ro ZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmln dXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisrKioqIHVzZWQsIGFuZCB0aGVu IHJlc3RhcnQuCisrCisrX0xUX0VPRgorKyAgICAgIGVsaWYgJExEIC0taGVscCAyPiYxIHwgJEdS RVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorKwlhcmNo aXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSck Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZpCisrICAgICAg OzsKKysKKysgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9w ZW5VTklYKikKKysgICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KKysgICAgICAgICpcIFswMV0u KiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMVswLTVdLiopCisrCWxkX3NobGlicz1ubworKwljYXQg PDxfTFRfRU9GIDE+JjIKKysKKysqKiogV2FybmluZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5r ZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5vdAorKyoqKiByZWxpYWJseSBjcmVhdGUgc2hh cmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAorKyoqKiBp cyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBn cmFkZSBHTlUKKysqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4g IEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQorKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIg Y29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCisrKioqIHVzZWQsIGFu ZCB0aGVuIHJlc3RhcnQuCisrCisrX0xUX0VPRgorKwk7OworKwkqKQorKwkgICMgRm9yIHNlY3Vy aXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHlvdSBhbHdheXMKKysJ ICAjIHVzZSBhYnNvbHV0ZSBwYXRocyBmb3IgbmFtaW5nIHNoYXJlZCBsaWJyYXJpZXMsIGFuZCBl eGNsdWRlIHRoZQorKwkgICMgRFRfUlVOUEFUSCB0YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGli cmFyaWVzLiAgQnV0IGRvaW5nIHNvCisrCSAgIyByZXF1aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2 ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFpbi4KKysJICBpZiAkTEQgLS1oZWxwIDI+JjEg fCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisr CSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXIn CisrCSAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworKwkgICAgYXJjaGl2 ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHds JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCSAgZWxzZQorKwkgICAgbGRfc2hsaWJzPW5vCisr CSAgZmkKKysJOzsKKysgICAgICBlc2FjCisrICAgICAgOzsKKysKKysgICAgc3Vub3M0KikKKysg ICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnNoYXJlYWJsZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAgICAgd2xhcmM9CisrICAg ICAgaGFyZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K KysgICAgICA7OworKworKyAgICAqKQorKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQ ICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKysJYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJEND IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk d2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1v ICRsaWInCisrICAgICAgZWxzZQorKwlsZF9zaGxpYnM9bm8KKysgICAgICBmaQorKyAgICAgIDs7 CisrICAgIGVzYWMKKysKKysgICAgaWYgdGVzdCAiJGxkX3NobGlicyIgPSBubzsgdGhlbgorKyAg ICAgIHJ1bnBhdGhfdmFyPQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9CisrICAg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQorKyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjPQorKyAgICBmaQorKyAgZWxzZQorKyAgICAjIFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRp b24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5vdCBHTlUgbGQpCisrICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgYWl4MyopCisrICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0 ZWQKKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9eWVzCisrICAgICAgYXJjaGl2ZV9leHBz eW1fY21kcz0nJExEIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1ib2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFS ICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCisrICAgICAgIyBOb3RlOiB0 aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUK KysgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkgLUwuCisrICAgICAgaGFy ZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16 ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0aGVuCisrCSMgTmVpdGhlciBkaXJlY3QgaGFy ZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdpdGggYQorKwkjIGJyb2tl biBjb2xsZWN0Mi4KKysJaGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9ydGVkCisrICAgICAgZmkKKysg ICAgICA7OworKworKyAgICBhaXhbNC05XSopCisrICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9 IGlhNjQ7IHRoZW4KKysJIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2lu ZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKwkjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lh bC4KKysJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0 JworKwlub19lbnRyeV9mbGFnPSIiCisrICAgICAgZWxzZQorKwkjIElmIHdlJ3JlIHVzaW5nIEdO VSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKysJIyAtQyBtZWFucyBk ZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQor KwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgZXhw b3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdc Jyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikp ICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29y dCAtdSA+ICRleHBvcnRfc3ltYm9scycKKysJZWxzZQorKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9 JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9 PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAz LDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9z eW1ib2xzJworKwlmaQorKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisrCisrCSMgVGVzdCBp ZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorKwkjIEFJ WCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKKysJ IyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKysJY2FzZSAkaG9zdF9vcyBpbiBhaXg0Llsy M118YWl4NC5bMjNdLip8YWl4WzUtOV0qKQorKwkgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBk bworKwkgIGlmICh0ZXN0ICRsZF9mbGFnID0gIi1icnRsIiB8fCB0ZXN0ICRsZF9mbGFnID0gIi1X bCwtYnJ0bCIpOyB0aGVuCisrCSAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworKwkgICAg YnJlYWsKKysJICBmaQorKwkgIGRvbmUKKysJICA7OworKwllc2FjCisrCisrCWV4cF9zeW1fZmxh Zz0nLWJleHBvcnQnCisrCW5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKKysgICAgICBmaQorKwor KyAgICAgICMgV2hlbiBsYXJnZSBleGVjdXRhYmxlcyBvciBzaGFyZWQgb2JqZWN0cyBhcmUgYnVp bHQsIEFJWCBsZCBjYW4KKysgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxl IG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKKysgICAgICAjIG9yIHByb2dyYW0g cmVzdWx0cyBpbiAiZXJyb3IgVE9DIG92ZXJmbG93IiBhZGQgLW1taW5pbWFsLXRvYyB0bworKyAg ICAgICMgQ1hYRkxBR1MvQ0ZMQUdTIGZvciBnKysvZ2NjLiAgSW4gdGhlIGNhc2VzIHdoZXJlIHRo YXQgaXMgbm90CisrICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1i YmlndG9jIHRvIExERkxBR1MuCisrCisrICAgICAgYXJjaGl2ZV9jbWRzPScnCisrICAgICAgaGFy ZGNvZGVfZGlyZWN0PXllcworKyAgICAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysg ICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworKyAgICAgIGxpbmtfYWxsX2RlcGxp YnM9eWVzCisrICAgICAgZmlsZV9saXN0X3NwZWM9JyR7d2x9LWYsJworKworKyAgICAgIGlmIHRl c3QgIiRHQ0MiID0geWVzOyB0aGVuCisrCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEyXXxhaXg0 LlswMTJdLiopCisrCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93 ZXIsIHRoZSBjaGVjaworKwkjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9lc24ndCB3b3Jr IHVuZGVyIDQuMysKKysJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29s bGVjdDJgCisrCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKKysJICAgc3RyaW5ncyAi JGNvbGxlY3QybmFtZSIgfCAkR1JFUCByZXNvbHZlX2xpYl9uYW1lID4vZGV2L251bGwKKysJICB0 aGVuCisrCSAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgOgorKwkgIGVsc2UKKysJ ICAjIFdlIGhhdmUgb2xkIGNvbGxlY3QyCisrCSAgaGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9ydGVk CisrCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1 bmluc3RhbGxlZAorKwkgICMgcGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0 dGluZyBoYXJkY29kZV9taW51c19MCisrCSAgIyB0byB1bnN1cHBvcnRlZCBmb3JjZXMgcmVsaW5r aW5nCisrCSAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysJICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPSctTCRsaWJkaXInCisrCSAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KKysJICBmaQor KwkgIDs7CisrCWVzYWMKKysJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisrCWlmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgIHNoYXJlZF9mbGFnPSIkc2hhcmVk X2ZsYWcgIicke3dsfS1HJworKwlmaQorKyAgICAgIGVsc2UKKysJIyBub3QgdXNpbmcgZ2NjCisr CWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSMgVmlzdWFsQWdlIEMrKywgVmVy c2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCisrCSMgY2hva2Vz IG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6CisrCSAgc2hhcmVkX2Zs YWc9Jy1HJworKwllbHNlCisrCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0g eWVzOyB0aGVuCisrCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKKysJICBlbHNlCisrCSAgICBz aGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJworKwkgIGZpCisrCWZpCisrICAgICAgZmkKKysKKysg ICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LWJleHBhbGwnCisrICAgICAgIyBJ dCBzZWVtcyB0aGF0IC1iZXhwYWxsIGRvZXMgbm90IGV4cG9ydCBzeW1ib2xzIGJlZ2lubmluZyB3 aXRoCisrICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRl IGEgbGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4KKysgICAgICBhbHdheXNfZXhwb3J0X3N5bWJv bHM9eWVzCisrICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0 aGVuCisrCSMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1bnRpbWUgbG9hZGlu ZyBmbGFncyAoLWJydGwpLAorKwkjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0 IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCWFsbG93X3VuZGVmaW5lZF9mbGFnPSct YmVyb2snCisrICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhl IHZhbHVlIGVuY29kZWQgaW4gYW4KKysgICAgICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KKysgICAg ICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50Cisr bWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFj X2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisr ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRh c19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2Zs YWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBj b25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMg fHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysK KytsdF9haXhfbGlicGF0aF9zZWQ9JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7 CisrCS9eMC8geworKwkgICAgcy9eMCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAg fScKKythaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwg fCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJp dCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9s aWJwYXRoIjsgdGhlbgorKyAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhl ZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkK KytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYg Y29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9s aWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKKysKKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrICAgICAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGli b2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBp ZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7 d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9 JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKysgICAgICBlbHNl CisrCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYz0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCisrCSAgYWxsb3dfdW5k ZWZpbmVkX2ZsYWc9Ii16IG5vZGVmcyIKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDICRz aGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMg JyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKwll bHNlCisrCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVu Y29kZWQgaW4gYW4KKysJICMgZW1wdHkgZXhlY3V0YWJsZS4KKysJIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg eworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKytsdF9haXhfbGlicGF0aF9zZWQ9 JworKyAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisrCS9eMC8geworKwkgICAgcy9e MCAgKlwoLipcKSQvXDEvCisrCSAgICBwCisrCX0KKysgICAgfScKKythaXhfbGlicGF0aD1gZHVt cCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4 X2xpYnBhdGhfc2VkImAKKysjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0 IGZpbmQgYW55dGhpbmcuCisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorKyAgYWl4 X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNF RCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCisrZmkKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25m dGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytp ZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGli IjsgZmkKKysKKysJIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRs aWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUg b3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKKysJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0 aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCisrCSAgbm9fdW5k ZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJub3RvaycKKysJICBhbGxvd191bmRlZmluZWRfZmxhZz0n ICR7d2x9LWJlcm9rJworKwkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8g c2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj PSckY29udmVuaWVuY2UnCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9eWVzCisrCSAgIyBUaGlz IGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxp YnJhcmllcy4KKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDICRzaGFyZWRfZmxhZyInIC1v ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRv dXRwdXRfb2JqZGlyLyRzb25hbWUnCisrCWZpCisrICAgICAgZmkKKysgICAgICA7OworKworKyAg ICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMpCisr ICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAorKyAg ICAgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrICAgICAgICAg ICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJworKyAgICAgICAgOzsKKysgICAgICBtNjhrKQorKyAg ICAgICAgICAgIGFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRh dGF+JEVDSE8gIiNkZWZpbmUgTkFNRSAkbGlibmFtZSIgPiAkb3V0cHV0X29iamRpci9hMml4bGli cmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIExJQlJBUllfSUQgMSIgPj4gJG91dHB1dF9vYmpkaXIv YTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBWRVJTSU9OICRtYWpvciIgPj4gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBSRVZJU0lPTiAkcmV2aXNp b24iID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEFSICRBUl9GTEFHUyAkbGli ICRsaWJvYmpzfiRSQU5MSUIgJGxpYn4oY2QgJG91dHB1dF9vYmpkaXIgJiYgYTJpeGxpYnJhcnkg LTMyKScKKysgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXIn CisrICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICAgIDs7CisrICAgICAg ZXNhYworKyAgICAgIDs7CisrCisrICAgIGJzZGlbNDVdKikKKysgICAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWM9LXJkeW5hbWljCisrICAgICAgOzsKKysKKysgICAgY3lnd2luKiB8IG1pbmd3 KiB8IHB3MzIqIHwgY2VnY2MqKQorKyAgICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJy ZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCisrICAgICAgIyBNaWNyb3NvZnQgVmlzdWFs IEMrKy4KKysgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVh bmluZ2xlc3MsIGFzIHRoZXJlIGlzCisrICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4K KysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScgJworKyAgICAgIGFsbG93X3VuZGVm aW5lZF9mbGFnPXVuc3VwcG9ydGVkCisrICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIg ZmlsZXMsIG5vdCAuYSBmaWxlcy4KKysgICAgICBsaWJleHQ9bGliCisrICAgICAgIyBUZWxsIGx0 bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCisrICAgICAgc2hyZXh0X2Nt ZHM9Ii5kbGwiCisrICAgICAgIyBGSVhNRTogU2V0dGluZyBsaW5rbmFtZXMgaGVyZSBpcyBhIGJh ZCBoYWNrLgorKyAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBp bGVyX2ZsYWdzIGAkRUNITyAiWCRkZXBsaWJzIiB8ICRYc2VkIC1lICdcJydzLyAtbGMkLy8nXCcn YCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCisrICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21h dGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KKysgICAgICBvbGRf YXJjaGl2ZV9mcm9tX25ld19jbWRzPSd0cnVlJworKyAgICAgICMgRklYTUU6IFNob3VsZCBsZXQg dGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCisrICAgICAgb2xkX2FyY2hpdmVfY21k cz0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJworKyAgICAgIGZpeF9zcmNm aWxlX3BhdGg9J2BjeWdwYXRoIC13ICIkc3JjZmlsZSJgJworKyAgICAgIGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXM9eWVzCisrICAgICAgOzsKKysKKysgICAgZGFyd2luKiB8IHJo YXBzb2R5KikKKysKKysKKysgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCisrICBoYXJkY29kZV9k aXJlY3Q9bm8KKysgIGhhcmRjb2RlX2F1dG9tYXRpYz15ZXMKKysgIGhhcmRjb2RlX3NobGlicGF0 aF92YXI9dW5zdXBwb3J0ZWQKKysgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScnCisrICBsaW5r X2FsbF9kZXBsaWJzPXllcworKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiRfbHRfZGFyX2FsbG93 X3VuZGVmaW5lZCIKKysgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICBpZm9ydCopIF9sdF9k YXJfY2FuX3NoYXJlZD15ZXMgOzsKKysgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7 CisrICBlc2FjCisrICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVu CisrICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKysgICAgYXJjaGl2ZV9jbWRzPSJc JENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpz IFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFt ZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgorKyAgICBt b2R1bGVfY21kcz0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUg XCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgorKyAg ICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4g XCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNs aWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwk Y29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5n ICR7X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRp bH0iCisrICAgIG1vZHVsZV9leHBzeW1fY21kcz0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRf c3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJEND IFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBs aWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9 IgorKworKyAgZWxzZQorKyAgbGRfc2hsaWJzPW5vCisrICBmaQorKworKyAgICAgIDs7CisrCisr ICAgIGRndXgqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v CisrICAgICAgOzsKKysKKysgICAgZnJlZWJzZDEqKQorKyAgICAgIGxkX3NobGlicz1ubworKyAg ICAgIDs7CisrCisrICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUg YysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgorKyAgICAjIHN1cHBvcnQuICBGdXR1cmUg dmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8K KysgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkg KGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCisrICAgICMgZXh0cmEgc3BhY2UpLgorKyAgICBmcmVl YnNkMi4yKikKKysgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIvYysrcnQwLm8nCisrICAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2Rp cmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysK KysgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBvZiBGcmVlQlNEIDIgZG8gbm90 IGhhdmUgdGhpcyBmZWF0dXJlLgorKyAgICBmcmVlYnNkMiopCisrICAgICAgYXJjaGl2ZV9jbWRz PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29kZV9taW51c19MPXll cworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAgICAj IEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJy YXJpZXMuCisrICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysgICAgICBhcmNoaXZlX2NtZHM9 JyRDQyAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwor KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKysgICAgICBoYXJk Y29kZV9kaXJlY3Q9eWVzCisrICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAg IDs7CisrCisrICAgIGhwdXg5KikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KwlhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1m UElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8k c29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAg ZWxzZQorKwlhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiAr YiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwg bXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworKyAgICAgIGZpCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworKworKyAg ICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisr ICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisrICAg ICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9 JyR7d2x9LUUnCisrICAgICAgOzsKKysKKysgICAgaHB1eDEwKikKKysgICAgICBpZiB0ZXN0ICIk R0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWFyY2hpdmVfY21kcz0n JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0 YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysg ICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxf bGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKKysgICAgICBm aQorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorKwloYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZD0nK2IgJGxpYmRpcicKKysJaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06 CisrCWhhcmRjb2RlX2RpcmVjdD15ZXMKKysJaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcwor KwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrCSMgaGFyZGNvZGVfbWludXNf TDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCSMgYnV0IGFzIHRoZSBkZWZhdWx0 IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgorKwloYXJkY29kZV9taW51c19MPXllcworKyAgICAg IGZpCisrICAgICAgOzsKKysKKysgICAgaHB1eDExKikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9 IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisrCWNhc2UgJGhvc3RfY3B1IGluCisr CWhwcGEqNjQqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgOzsK KysJaWE2NCopCisrCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7 d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7Owor Kwllc2FjCisrICAgICAgZWxzZQorKwljYXNlICRob3N0X2NwdSBpbgorKwlocHBhKjY0KikKKysJ ICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwlpYTY0KikKKysJICBhcmNo aXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0 aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkq KQorKwkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2Ig JHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCisrCSAgOzsKKysJZXNhYworKyAgICAgIGZpCisrICAgICAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCisrCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2Ig JHt3bH0kbGliZGlyJworKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKysKKysJY2FzZSAk aG9zdF9jcHUgaW4KKysJaHBwYSo2NCp8aWE2NCopCisrCSAgaGFyZGNvZGVfZGlyZWN0PW5vCisr CSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKwkgIDs7CisrCSopCisrCSAgaGFyZGNvZGVf ZGlyZWN0PXllcworKwkgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysJICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCisrCisrCSAgIyBoYXJkY29kZV9taW51c19MOiBO b3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKKysJICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBs b2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKysJICBoYXJkY29kZV9taW51c19MPXllcworKwkgIDs7 CisrCWVzYWMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIGlyaXg1KiB8IGlyaXg2KiB8 IG5vbnN0b3B1eCopCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9y ZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSMg VHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBvcHRpb24sIGlmIGl0IGRvZXMgbm90 CisrCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmlsZSBkb2VzIG5vdCB3b3JrIGVpdGhl ciBhbmQKKysJIyBpbXBsaWNpdGx5IGV4cG9ydCBhbGwgc3ltYm9scy4KKysgICAgICAgIHNhdmVf TERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBMREZMQUdTPSIkTERGTEFHUyAtc2hhcmVkICR7 d2x9LWV4cG9ydGVkX3N5bWJvbCAke3dsfWZvbyAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0v ZGV2L251bGwiCisrICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKytpbnQg Zm9vKHZvaWQpIHt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIg aW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikg YWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19t ZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1 CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/Cisr ICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYm IHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0 ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJ IHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0 JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0Mg LXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7 d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVy c2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3ds fSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zICR7d2x9LWV4cG9ydHNfZmlsZSAke3dsfSRl eHBvcnRfc3ltYm9scyAtbyAkbGliJworKworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZh aWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+ JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25m dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwK KysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgICAgICAgTERG TEFHUz0iJHNhdmVfTERGTEFHUyIKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIg fCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3Jl Z2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCisrICAgICAgZmkKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Yz0nbm8nCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3 bH0kbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorKyAgICAgIGlu aGVyaXRfcnBhdGg9eWVzCisrICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKKysgICAgICA7Owor KworKyAgICBuZXRic2QqKQorKyAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdS RVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCisrCWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVh YmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKKysg ICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzJyAgICAgICMgRUxGCisrICAgICAgZmkKKysgICAgICBoYXJk Y29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfZGlyZWN0 PXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7OworKworKyAg ICBuZXdzb3M2KQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAgIGhhcmRjb2RlX2RpcmVj dD15ZXMKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3ds fSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisrICAgICAgaGFy ZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIDs7CisrCisrICAgICpudG8qIHwgKnFueCop CisrICAgICAgOzsKKysKKysgICAgb3BlbmJzZCopCisrICAgICAgaWYgdGVzdCAtZiAvdXNyL2xp YmV4ZWMvbGQuc287IHRoZW4KKysJaGFyZGNvZGVfZGlyZWN0PXllcworKwloYXJkY29kZV9zaGxp YnBhdGhfdmFyPW5vCisrCWhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT15ZXMKKysJaWYgdGVzdCAt eiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRo b3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKwkgIGFyY2hp dmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRw aWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1y ZXRhaW4tc3ltYm9scy1maWxlLCRleHBvcnRfc3ltYm9scycKKysJICBoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0nJHt3bH0tRScKKysJZWxzZQorKwkgIGNhc2UgJGhvc3Rfb3MgaW4KKysJICAgb3BlbmJz ZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikKKysJICAgICBhcmNo aXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5r ZXJfZmxhZ3MnCisrCSAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwor KwkgICAgIDs7CisrCSAgICopCisrCSAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGlj X2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKysJICAgICA7 OworKwkgIGVzYWMKKysJZmkKKysgICAgICBlbHNlCisrCWxkX3NobGlicz1ubworKyAgICAgIGZp CisrICAgICAgOzsKKysKKysgICAgb3MyKikKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPSctTCRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKysgICAgICBhbGxv d191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorKyAgICAgIGFyY2hpdmVfY21kcz0nJEVDSE8g IkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVD SE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpz ID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUuZGVmJworKyAgICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J2VteGltcCAtbyAkb3V0 cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKKysgICAg ICA7OworKworKyAgICBvc2YzKikKKysgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KwlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon CisrCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2 ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29i amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrICAgICAgZWxzZQorKwlhbGxvd191bmRlZmlu ZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNo YXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNl dF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRf b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysgICAgICBmaQorKyAgICAgIGFyY2hpdmVf Y21kc19uZWVkX2xjPSdubycKKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCisrICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06 CisrICAgICAgOzsKKysKKysgICAgb3NmNCogfCBvc2Y1KikJIyBhcyBvc2YzKiB3aXRoIHRoZSBh ZGRpdGlvbiBvZiAtbXN5bSBmbGFnCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K KysJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwq JworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7 d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVy c2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3ds fSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCWhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysgICAgICBlbHNlCisrCWFs bG93X3VuZGVmaW5lZF9mbGFnPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJworKwlhcmNoaXZlX2Nt ZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmlu ZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9y ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworKwlhcmNoaXZl X2V4cHN5bV9jbWRzPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAi JXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50 ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgorKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRs aWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYg JEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3Ry eSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKKysK KysJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQorKwlo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctcnBhdGggJGxpYmRpcicKKysgICAgICBmaQorKyAg ICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPSdubycKKysgICAgICBoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yPToKKysgICAgICA7OworKworKyAgICBzb2xhcmlzKikKKysgICAgICBub191bmRlZmlu ZWRfZmxhZz0nIC16IGRlZnMnCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJ d2xhcmM9JyR7d2x9JworKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LXogJHt3bH10 ZXh0ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzJworKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxp Yi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRs aWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgJENDIC1zaGFyZWQg JHt3bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0kc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4 cCcKKysgICAgICBlbHNlCisrCWNhc2UgYCRDQyAtViAyPiYxYCBpbgorKwkqIkNvbXBpbGVycyA1 LjAiKikKKysJICB3bGFyYz0nJworKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HJHthbGxvd191bmRl ZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCisrCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIu ZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGli LmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkgICRMRCAtRyR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAk ZGVwbGlicyAkbGlua2VyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysJICA7OworKwkqKQorKwkgIHds YXJjPScke3dsfScKKysJICBhcmNoaXZlX2NtZHM9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2Zs YWd9IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn CisrCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNh dCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5l Y2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkgICRDQyAtRyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworKwkgIDs7CisrCWVzYWMKKysgICAgICBm aQorKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKysgICAgICBo YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAg IHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKKysgICAgICAqKQorKwkjIFRo ZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25z LAorKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0 IHdpdGhvdXQgYCR3bCcsCisrCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVy LgorKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQorKwlpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3ds fS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJh Y3QnCisrCWVsc2UKKysJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nLXogYWxsZXh0cmFjdCRj b252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKKysJZmkKKysJOzsKKysgICAgICBlc2FjCisr ICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMKKysgICAgICA7OworKworKyAgICBzdW5vczQqKQor KyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRoZW4KKysJIyBVc2Ug JENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRy YSAubworKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4K KysJYXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKyAgICAgIGVsc2UKKysJYXJjaGl2ZV9jbWRzPSck TEQgLWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk bGlua2VyX2ZsYWdzJworKyAgICAgIGZpCisrICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nLUwkbGliZGlyJworKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKysgICAgICBoYXJkY29k ZV9taW51c19MPXllcworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICA7 OworKworKyAgICBzeXN2NCkKKysgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgorKwlzbmkpCisr CSAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRsaW5rZXJfZmxhZ3MnCisrCSAgaGFyZGNvZGVfZGlyZWN0PXllcyAjIGlzIHRoaXMgcmVh bGx5IHRydWU/Pz8KKysJOzsKKysJc2llbWVucykKKysJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBh IFBMQU1MSUIKKysJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCisrCSAgYXJjaGl2 ZV9jbWRzPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwor KwkgIHJlbG9hZF9jbWRzPSckQ0MgLXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKKysJICBoYXJk Y29kZV9kaXJlY3Q9bm8KKysgICAgICAgIDs7CisrCW1vdG9yb2xhKQorKwkgIGFyY2hpdmVfY21k cz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2Zs YWdzJworKwkgIGhhcmRjb2RlX2RpcmVjdD1ubyAjTW90b3JvbGEgbWFudWFsIHNheXMgeWVzLCBi dXQgbXkgdGVzdHMgc2F5IHRoZXkgbGllCisrCTs7CisrICAgICAgZXNhYworKyAgICAgIHJ1bnBh dGhfdmFyPSdMRF9SVU5fUEFUSCcKKysgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCisr ICAgICAgOzsKKysKKysgICAgc3lzdjQuMyopCisrICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcg LWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrICAg ICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0nLUJleHBvcnQnCisrICAgICAgOzsKKysKKysgICAgc3lzdjQqTVAqKQorKyAgICAgIGlm IHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCisrCWhhcmRjb2RlX3No bGlicGF0aF92YXI9bm8KKysJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysJaGFyZGNvZGVfcnVu cGF0aF92YXI9eWVzCisrCWxkX3NobGlicz15ZXMKKysgICAgICBmaQorKyAgICAgIDs7CisrCisr ICAgIHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LlswMV0uWzEw XSogfCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCisrICAgICAgbm9fdW5kZWZpbmVk X2ZsYWc9JyR7d2x9LXosdGV4dCcKKysgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubworKyAg ICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KKysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVO X1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9j bWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICR7 d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBlbHNlCisrCWFyY2hpdmVfY21k cz0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1HICR7d2x9LUJleHBvcnQ6 JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIHN5c3Y1KiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiopCisrICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBk ZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKKysgICAgICAjIGxpbmsg d2l0aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJj IHRvCisrICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91 dCBubyBsaWJyYXJ5IHdvdWxkCisrICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2Un cmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKyAgICAgICMgdGhvdWdoLCB3aGlj aCBkb2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAor KyAgICAgICMgYXMgLXogZGVmcy4KKysgICAgICBub191bmRlZmluZWRfZmxhZz0nJHt3bH0teix0 ZXh0JworKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScke3dsfS16LG5vZGVmcycKKysgICAg ICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9 bm8KKysgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SLCRsaWJkaXInCisr ICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKKysgICAgICBsaW5rX2FsbF9kZXBs aWJzPXllcworKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmV4cG9ydCcK KysgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCisrCisrICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisrCWFyY2hpdmVf ZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK KysgICAgICBlbHNlCisrCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJYXJjaGl2ZV9leHBzeW1f Y21kcz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKysgICAgICBmaQor KyAgICAgIDs7CisrCisrICAgIHV0czQqKQorKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1o ICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJworKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKysgICAgICBoYXJkY29kZV9z aGxpYnBhdGhfdmFyPW5vCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICBsZF9zaGxpYnM9 bm8KKysgICAgICA7OworKyAgICBlc2FjCisrCisrICAgIGlmIHRlc3QgeCRob3N0X3ZlbmRvciA9 IHhzbmk7IHRoZW4KKysgICAgICBjYXNlICRob3N0IGluCisrICAgICAgc3lzdjQgfCBzeXN2NC4y dXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQorKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7 d2x9LUJsYXJnZWR5bnN5bScKKysJOzsKKysgICAgICBlc2FjCisrICAgIGZpCisrICBmaQorKwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRsZF9zaGxpYnMiID4mNQorKyRh c19lY2hvICIkbGRfc2hsaWJzIiA+JjY7IH0KKyt0ZXN0ICIkbGRfc2hsaWJzIiA9IG5vICYmIGNh bl9idWlsZF9zaGFyZWQ9bm8KKysKKyt3aXRoX2dudV9sZD0kd2l0aF9nbnVfbGQKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysjCisrIyBEbyB3ZSBuZWVkIHRv IGV4cGxpY2l0bHkgbGluayBsaWJjPworKyMKKytjYXNlICJ4JGFyY2hpdmVfY21kc19uZWVkX2xj IiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysgIGFyY2hp dmVfY21kc19uZWVkX2xjPXllcworKworKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVz ICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICAgIGNhc2UgJGFyY2hpdmVfY21kcyBpbgor KyAgICAqJ34nKikKKysgICAgICAjIEZJWE1FOiB3ZSBtYXkgaGF2ZSB0byBkZWFsIHdpdGggbXVs dGktY29tbWFuZCBzZXF1ZW5jZXMuCisrICAgICAgOzsKKysgICAgJyRDQyAnKikKKysgICAgICAj IFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5j ZSBvbiBzb21lCisrICAgICAgIyBzeXN0ZW1zLCAtbGdjYyBoYXMgdG8gY29tZSBiZWZvcmUgLWxj LiBJZiBnY2MgYWxyZWFkeSBwYXNzZXMgLWxjCisrICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1s YyBiZWZvcmUgLWxnY2MuCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2Vk IGluLi4uICIgPiY2OyB9CisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIGVjaG8gIiRsdF9z aW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgICAgIGlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorKyAg KGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMp OyB9IDI+Y29uZnRlc3QuZXJyOyB0aGVuCisrICAgICAgICBzb25hbWU9Y29uZnRlc3QKKysgICAg ICAgIGxpYj1jb25mdGVzdAorKyAgICAgICAgbGlib2Jqcz1jb25mdGVzdC4kYWNfb2JqZXh0Cisr ICAgICAgICBkZXBsaWJzPQorKyAgICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wKKysJcGlj X2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljCisrICAgICAgICBjb21waWxlcl9mbGFncz0tdgor KyAgICAgICAgbGlua2VyX2ZsYWdzPS12CisrICAgICAgICB2ZXJzdHJpbmc9CisrICAgICAgICBv dXRwdXRfb2JqZGlyPS4KKysgICAgICAgIGxpYm5hbWU9Y29uZnRlc3QKKysgICAgICAgIGx0X3Nh dmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9mbGFnCisrICAgICAgICBh bGxvd191bmRlZmluZWRfZmxhZz0KKysgICAgICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM SU5FTk86IFwiJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9u dWxsIDJcPlwmMVwiIikgPiY1CisrICAoZXZhbCAkYXJjaGl2ZV9jbWRzIDJcPlwmMSBcfCAkR1JF UCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKSAyPiY1CisrICBhY19zdGF0dXM9JD8KKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfQorKyAgICAgICAgdGhlbgorKwkgIGFyY2hpdmVfY21kc19uZWVkX2xj PW5vCisrICAgICAgICBlbHNlCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9eWVzCisrICAgICAg ICBmaQorKyAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X3NhdmVfYWxsb3dfdW5kZWZp bmVkX2ZsYWcKKysgICAgICBlbHNlCisrICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKKysg ICAgICBmaQorKyAgICAgICRSTSBjb25mdGVzdCoKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogcmVzdWx0OiAkYXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNQorKyRhc19lY2hvICIk YXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNjsgfQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgIGZp CisrICA7OworK2VzYWMKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4uLiAiID4mNjsg fQorKworK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisrICBjYXNlICRob3N0X29zIGluCisr ICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsKKysgICAgKikg bHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKKysgIGVzYWMKKysgIGx0X3NlYXJjaF9wYXRo X3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1l ICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICBpZiAkRUNITyAiJGx0X3NlYXJj aF9wYXRoX3NwZWMiIHwgJEdSRVAgJzsnID4vZGV2L251bGwgOyB0aGVuCisrICAgICMgaWYgdGhl IHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IK KysgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRhcmQgcGF0aCBzZXBhcmF0b3Ig KGkuZS4gIjoiKSAtIGl0IGlzCisrICAgICMgYXNzdW1lZCB0aGF0IG5vIHBhcnQgb2YgYSBub3Jt YWwgcGF0aG5hbWUgY29udGFpbnMgIjsiIGJ1dCB0aGF0IHNob3VsZAorKyAgICAjIG9rYXkgaW4g dGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRp Yy4KKysgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVj IiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAorKyAgZWxzZQorKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVj PWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJB VE9SLyAvZyJgCisrICBmaQorKyAgIyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRl ZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKKysgICMgYW5kIGFkZCBtdWx0aWxp YiBkaXIgaWYgbmVjZXNzYXJ5LgorKyAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9CisrICBs dF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENGTEFHUyAkTERGTEFHUyAtcHJpbnQtbXVs dGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAorKyAgZm9yIGx0X3N5c19wYXRoIGluICRsdF9z ZWFyY2hfcGF0aF9zcGVjOyBkbworKyAgICBpZiB0ZXN0IC1kICIkbHRfc3lzX3BhdGgvJGx0X211 bHRpX29zX2RpciI7IHRoZW4KKysgICAgICBsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0 X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aC8kbHRfbXVsdGlfb3NfZGlyIgor KyAgICBlbHNlCisrICAgICAgdGVzdCAtZCAiJGx0X3N5c19wYXRoIiAmJiBcCisrCWx0X3RtcF9s dF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMgJGx0X3N5c19w YXRoIgorKyAgICBmaQorKyAgZG9uZQorKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gJGx0 X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjIHwgYXdrICcKKytCRUdJTiB7UlM9IiAiOyBGUz0iL3xc biI7fSB7CisrICBsdF9mb289IiI7CisrICBsdF9jb3VudD0wOworKyAgZm9yIChsdF9pID0gTkY7 IGx0X2kgPiAwOyBsdF9pLS0pIHsKKysgICAgaWYgKCRsdF9pICE9ICIiICYmICRsdF9pICE9ICIu IikgeworKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7CisrICAgICAgICBsdF9jb3VudCsrOwor KyAgICAgIH0gZWxzZSB7CisrICAgICAgICBpZiAobHRfY291bnQgPT0gMCkgeworKyAgICAgICAg ICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKKysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAg IGx0X2NvdW50LS07CisrICAgICAgICB9CisrICAgICAgfQorKyAgICB9CisrICB9CisrICBpZiAo bHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbbHRfZm9vXSsrOyB9CisrICBpZiAobHRfZnJlcVtsdF9m b29dID09IDEpIHsgcHJpbnQgbHRfZm9vOyB9CisrfSdgCisrICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAorK2Vsc2UKKysgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKytmaQorK2xpYnJh cnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRuYW1lJworK3NvbmFtZV9zcGVjPQor K3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21kcz0KKytwb3N0dW5pbnN0YWxsX2Nt ZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisrc2hsaWJwYXRoX3Zhcj0KKytzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3ZlcnNpb25fdHlwZT1ub25lCisrZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj PSIvbGliIC91c3IvbGliIgorK25lZWRfbGliX3ByZWZpeD11bmtub3duCisraGFyZGNvZGVfaW50 b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVlZF92ZXJzaW9uIHRvIG5vLCBtYWtlIHN1 cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCisrIyBmbGFncyB0byBiZSBsZWZ0IHdp dGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVua25vd24KKysKKytjYXNlICRob3N0X29z IGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZS5h JworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisrICAjIEFJWCAzIGhhcyBubyB2ZXJzaW9u aW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZlcnNpb24gdG8gdGhlIG5hbWUuCisr ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgOzsKKysKKythaXhbNC05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVz CisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKyAgICAjIEFJWCA1IHN1cHBv cnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAgdG8gMi45NS54LCBjb2xsZWN0MiB3 b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBmb3IgZGVwZW5kZW5jZSBsaWJyYXJp ZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0aAorKyAgICAjIHRoZSBsaW5lIGAj ISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRlZCBsaWJyYXJ5IHRvCisrICAgICMg ZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGlicmFyeS4gIFRoaXMgd2FzIGZpeGVk IGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9mIEdDQyBwcmlvciB0byAzLjAuCisr ICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwgYWl4NC5bMDFdIHwgYWl4NC5bMDFd LiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAy ICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAgZWNobyAnIHllcyAnCisrCSAgIGVjaG8g JyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgJEdSRVAgeWVzID4gL2Rldi9udWxsOyB0aGVuCisr CToKKysgICAgICBlbHNlCisrCWNhbl9idWlsZF9zaGFyZWQ9bm8KKysgICAgICBmaQorKyAgICAg IDs7CisrICAgIGVzYWMKKysgICAgIyBBSVggKG9uIFBvd2VyKikgaGFzIG5vIHZlcnNpb25pbmcg c3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFyZGNvZGUgY29ycmVjdAorKyAgICAj IHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdlIGNhbiBhZGQgdmVyc2lvbmluZyBz dXBwb3J0IHRvCisrICAgICMgY29sbGVjdDIsIHNvIGFkZGl0aW9uYWwgbGlua3MgY2FuIGJlIHVz ZWZ1bCBpbiBmdXR1cmUuCisrICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9 IHllczsgdGhlbgorKyAgICAgICMgSWYgdXNpbmcgcnVuIHRpbWUgbGlua2luZyAob24gQUlYIDQu MiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbworKyAgICAgICMgaW5zdGVhZCBvZiBsaWI8bmFt ZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBhcmUgbm90CisrICAgICAgIyB0eXBp Y2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgorKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBlbHNl CisrICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNpb24gZm9yIHNoYXJlZCBsaWJyYXJp ZXMgdGhyb3VnaCBBSVg0LjIKKysgICAgICAjIGFuZCBsYXRlciB3aGVuIHdlIGFyZSBub3QgZG9p bmcgcnVuIHRpbWUgbGlua2luZy4KKysgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKKysgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBmaQorKyAgICBzaGxpYnBhdGhf dmFyPUxJQlBBVEgKKysgIGZpCisrICA7OworKworK2FtaWdhb3MqKQorKyAgY2FzZSAkaG9zdF9j cHUgaW4KKysgIHBvd2VycGMpCisrICAgICMgU2luY2UgSnVseSAyMDA3IEFtaWdhT1M0IG9mZmlj aWFsbHkgc3VwcG9ydHMgLnNvIGxpYnJhcmllcy4KKysgICAgIyBXaGVuIGNvbXBpbGluZyB0aGUg ZXhlY3V0YWJsZSwgYWRkIC11c2UtZHlubGQgLUxzb2JqczogdG8gdGhlIGNvbXBpbGVsaW5lLgor KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKKysgICAgOzsKKysgIG02OGspCisrICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEnCisrICAgICMgQ3JlYXRlICR7bGli bmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xpYnMuCisrICAgIGZpbmlzaF9ldmFs PSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGli bmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGli cmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5h OyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnku YSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwg ZXhpdCAxOyBkb25lJworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytiZW9zKikKKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorKyAg OzsKKysKKytic2RpWzQ1XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfdmVyc2lv bj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2Jp biIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisr ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIg L3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKKysgICMgdGhlIGRl ZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCisrICAj IC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBs ZXQgdXMgYWxsb3cKKysgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFt cworKyAgOzsKKysKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisrICB2ZXJz aW9uX3R5cGU9d2luZG93cworKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKworKyAgY2FzZSAkR0NDLCRob3N0X29zIGluCisr ICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiogfCB5ZXMsY2VnY2MqKQorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRsbC5hJworKyAgICAjIERMTCBpcyBpbnN0 YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCisrICAgIHBvc3Rp bnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgorKyAgICAgIGRscGF0 aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdcJydpOyBlY2hv IFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhg fgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorKyAgICAgICRp bnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZX4KKysgICAgICBjaG1vZCBh K3ggXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGlmIHRlc3QgLW4gJ1wnJyRzdHJpcG1lJ1wnJyAm JiB0ZXN0IC1uICdcJyckc3RyaXBsaWInXCcnOyB0aGVuCisrICAgICAgICBldmFsICdcJyckc3Ry aXBsaWIgXCRkbGRpci8kZGxuYW1lJ1wnJyB8fCBleGl0IFwkPzsKKysgICAgICBmaScKKysgICAg cG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVj aG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorKyAgICAgICAk Uk0gXCRkbHBhdGgnCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysKKysg ICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBjeWd3aW4qKQorKyAgICAgICMgQ3lnd2luIERMTHMg dXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAgIHNvbmFtZV9zcGVjPSdg ZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3lnLydgYGVjaG8gJHtyZWxlYXNlfSB8 ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9s b2NhbC9saWIiCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwgY2VnY2MqKQorKyAgICAgICMgTWlu R1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4CisrICAgICAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1 ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEND IC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15s aWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCisr ICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50 ZWQgYnkKKysgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2UgYXJlIHJ1bm5pbmcgb24gQ3lnd2lu LiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKKysgICAgICAgICMgcGF0aCB3aXRoIDsgc2VwYXJhdG9y cywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhhbmRsZSB0aGUKKysgICAgICAgICMg ZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVh dmUgdGhlbSwKKysgICAgICAgICMgZXNwZWNpYWxseSBhcyB3ZSBtaWdodCBwYXNzIGZpbGVzIGZv dW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKysgICAgICAgICMgd2hpY2ggd291bGRuJ3Qg dW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4KKysgICAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAt ZSAncy87LyAvZydgCisrICAgICAgZWxzZQorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICAtZSAicy8kUEFU SF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIHB3MzIqKQorKyAg ICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJworKyAgICAg IGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3 LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtz aGFyZWRfZXh0fScKKysgICAgICA7OworKyAgICBlc2FjCisrICAgIDs7CisrCisrICAqKQorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAt ZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKysg ICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCisrICAjIEZJ WE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1 dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAorKyAgOzsKKysKKytkYXJ3aW4qIHwg cmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQiCisrICB2ZXJzaW9u X3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJl ZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKKysgIHNocmV4dF9j bWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwor KworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVj IC91c3IvbG9jYWwvbGliIgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9j YWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgqKQorKyAgdmVyc2lvbl90eXBl PWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFy ZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKworK2Zy ZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK2ZyZWVic2QqIHwgZHJh Z29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhl eSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlz LgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2JqZm9ybWF0 PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysg ICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKKysgICAgKikgb2JqZm9ybWF0PWVs ZiA7OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1h dAorKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAgIGZyZWVic2QtZWxmKikKKysgICAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92ZXJzaW9uPXllcworKyAgICAgIDs7Cisr ICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAkaG9zdF9v cyBpbgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz CisrICAgIDs7CisrICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQorKyAgICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwK KysgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBm cmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAg ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICAqKSAjIGZyb20gNC42IG9uLCBh bmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgICAg aGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytnbnUq KQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRf dmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7 bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElC UkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hwdXg5KiB8 IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8g dGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bworKyAgIyBsaW5rIGFn YWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGli X3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBjYXNlICRob3N0X2NwdSBpbgorKyAg aWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisrICAgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKKysgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysg ICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK KysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKysgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4 MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisrICAgIGZpCisr ICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMK KysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBzaHJleHRfY21kcz0nLnNsJworKyAgICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wi CisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5k bGUgU0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5s ZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgICBz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3Bh MjBfNjQiCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9w YXRoX3NwZWMKKysgICAgOzsKKysgICopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisrICAgIGR5 bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9U0hMSUJf UEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJl ZCB0byBlbmFibGUgU0hMSUJfUEFUSAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29uYW1lX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAgOzsKKysg IGVzYWMKKysgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJy YXJpZXMgYXJlIG1vZGUgNTU1LgorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWIn CisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9Jwor KyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK KysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwor KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytpcml4NSog fCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBub25zdG9w dXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CisrICAgICopCisrCWlmIHRlc3QgIiRsdF9j dl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZlcnNpb25fdHlwZT1saW51eAorKwllbHNl CisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7OworKyAgZXNhYworKyAgbmVlZF9saWJfcHJl Zml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBjYXNlICRob3N0X29zIGluCisrICBpcml4NSogfCBu b25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisrICAgIDs7CisrICAqKQorKyAg ICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVz IHRvIExECisrICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIp CisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OworKyAgICAqLW4z MnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQorKyAgICAgIGxp YnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OworKyAgICAqLTY0fCoiLTY0ICJ8 Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKKysgICAgICBsaWJzdWZmPTY0IHNobGlic3Vm Zj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1h Z2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGli c3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIK KysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrIyBObyBzaGFyZWQgbGliIHN1 cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgorK2xpbnV4Km9sZGxkKiB8IGxp bnV4KmFvdXQqIHwgbGludXgqY29mZiopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysK KysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkKKysgIHZl cnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249 bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxp Ym5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4i IGxkY29uZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAjIFNvbWUgYmludXRpbHMgbGQg YXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKysgIHNhdmVfTERGTEFHUz0kTERGTEFHUwor KyAgc2F2ZV9saWJkaXI9JGxpYmRpcgorKyAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJGx0X3By b2dfY29tcGlsZXJfd2xcIjsgXAorKyAgICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjXCIiCisrICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKworK2ludAorK21haW4gKCkKKyt7CisrCisrICA7CisrICByZXR1cm4gMDsK Kyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVl eHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5P OiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZh bCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIx CisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBc JD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRl c3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAorKyAgICAgICB9OyB0aGVuCisrICBpZiAgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsOyB0aGVu CisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrZmkKKysKKytlbHNlCisrICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZ TQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf aXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKysgIExERkxBR1M9JHNhdmVfTERGTEFHUworKyAgbGliZGlyPSRzYXZlX2xpYmRpcgor KworKyAgIyBUaGlzIGltcGxpZXMgbm8gZmFzdF9pbnN0YWxsLCB3aGljaCBpcyB1bmFjY2VwdGFi bGUuCisrICAjIFNvbWUgcmV3b3JrIHdpbGwgYmUgbmVlZGVkIHRvIGFsbG93IGZvciBmYXN0X2lu c3RhbGwKKysgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCisrICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCisrCisrICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIHN5 c3RlbSBsaWJyYXJ5IHBhdGguCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYjY0 IC91c3IvbGliNjQgL2xpYiAvdXNyL2xpYiIKKysKKysgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29u dGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCisrICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsg dGhlbgorKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRm KCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcJDIpKTsgc2tpcCA9IDE7IH0geyBpZiAo IXNraXApIHByaW50IFwkMDsgc2tpcCA9IDA7IH0nIDwgL2V0Yy9sZC5zby5jb25mIHwgJFNFRCAt ZSAncy8jLiovLzsvXlsJIF0qaHdjYXBbCSBdL2Q7cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89 W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisrICAgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorKyAg ZmkKKysKKysgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUg c2hhcmVkIGxpYnJhcmllcyBvbgorKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25seSBz dXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQorKyAgIyBHTlUgZHluYW1pYyBsaW5r ZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCisrICAjIG1v c3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBkYXlz IGFuZAorKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3 YXMgcmVtb3ZlZCwgYW5kIHdlCisrICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMgbGlu a2VyIGlzIGluIHVzZS4KKysgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisrICA7 OworKworK25ldGJzZCopCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5lZWRfbGliX3ByZWZp eD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8 ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9z YmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIChh Lm91dCkgbGQuc28nCisrICBlbHNlCisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisrICAgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICAgIGR5bmFt aWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworKyAgZmkKKysgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK25ld3NvczYpCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIDs7CisrCisrKm50byogfCAq cW54KikKKysgIHZlcnNpb25fdHlwZT1xbngKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVl ZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCisrICA7OworKworK29w ZW5ic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisrICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIiCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICMgU29tZSBvbGRlciB2 ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGli cy4KKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMuKikJ bmVlZF92ZXJzaW9uPXllcyA7OworKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7CisrICBl c2FjCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JworKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9f IHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1 IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysg ICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQorKwlzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9bm8KKysJOzsKKysgICAgICAqKQorKwlzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCisrCTs7CisrICAgICAgZXNhYworKyAgZWxzZQorKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrICBmaQorKyAgOzsKKysKKytvczIqKQorKyAgbGlibmFtZV9z cGVjPSckbmFtZScKKysgIHNocmV4dF9jbWRzPSIuZGxsIgorKyAgbmVlZF9saWJfcHJlZml4PW5v CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFtZS5h JworKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQ QVRICisrICA7OworKworK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKKysgIHZlcnNpb25fdHlwZT1v c2YKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgbGlicmFy eV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4 ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVk X2V4dH0nCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMvY2Mg L3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKKysgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgorKyAgOzsKKysKKytyZG9zKikK KysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK3NvbGFyaXMqKQorKyAgdmVyc2lvbl90 eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysg ICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCisrICBwb3N0 aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJworKyAgOzsKKysKKytzdW5vczQqKQorKyAgdmVy c2lvbl90eXBlPXN1bm9zCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4JworKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcgJGxp YmRpcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu CisrICAgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgZmkKKysgIG5lZWRfdmVyc2lvbj15ZXMKKysg IDs7CisrCisrc3lzdjQgfCBzeXN2NC4zKikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGNhc2UgJGhv c3RfdmVuZG9yIGluCisrICAgIHNuaSkKKysgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KKysgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgICAgICBydW5wYXRoX3Zhcj1MRF9S VU5fUEFUSAorKyAgICAgIDs7CisrICAgIHNpZW1lbnMpCisrICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCisrICAgICAgOzsKKysgICAgbW90b3JvbGEpCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5v CisrICAgICAgbmVlZF92ZXJzaW9uPW5vCisrICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPW5vCisrICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGliIC91 c3IvY2NzL2xpYicKKysgICAgICA7OworKyAgZXNhYworKyAgOzsKKysKKytzeXN2NCpNUCopCisr ICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCisrICAgIHZlcnNpb25fdHlwZT1saW51eAorKyAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRs aWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgICBz b25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKKysgICAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIGZpCisrICA7OworKworK3N5c3Y1KiB8IHNjbzMuMnY1 KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorKyAgdmVy c2lvbl90eXBlPWZyZWVic2QtZWxmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVy c2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKKysgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysgICAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3MvbGli IC91c3IvbGliIC9saWInCisrICBlbHNlCisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0n L3Vzci9jY3MvbGliIC91c3IvbGliJworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgc2Nv My4ydjUqKQorKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIC9saWIiCisrCTs7CisrICAgIGVzYWMKKysgIGZpCisrICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCisrICA7OworKworK3RwZiopCisrICAjIFRQRiBp cyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBHTlUvTGludXgu CisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92 ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKysgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgIDs7CisrCisrdXRzNCopCisrICB2ZXJzaW9uX3R5cGU9bGludXgKKysgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7OworKwor KyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKKyskYXNfZWNobyAiJGR5 bmFtaWNfbGlua2VyIiA+JjY7IH0KKyt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2Fu X2J1aWxkX3NoYXJlZD1ubworKworK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRz aGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKKytpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor KyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlu ayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCisrZmkKKysKKytp ZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhl bgorKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIgorK2ZpCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YytzZXR9IiA9IHNldDsgdGhlbgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9j dl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0 byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQorKyRhc19lY2hvX24g ImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4g IiA+JjY7IH0KKytoYXJkY29kZV9hY3Rpb249CisraWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMiIHx8CisrICAgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiB8fAorKyAgIHRlc3Qg IlgkaGFyZGNvZGVfYXV0b21hdGljIiA9ICJYeWVzIiA7IHRoZW4KKysKKysgICMgV2UgY2FuIGhh cmRjb2RlIG5vbi1leGlzdGVudCBkaXJlY3Rvcmllcy4KKysgIGlmIHRlc3QgIiRoYXJkY29kZV9k aXJlY3QiICE9IG5vICYmCisrICAgICAjIElmIHRoZSBvbmx5IG1lY2hhbmlzbSB0byBhdm9pZCBo YXJkY29kaW5nIGlzIHNobGlicGF0aF92YXIsIHdlCisrICAgICAjIGhhdmUgdG8gcmVsaW5rLCBv dGhlcndpc2Ugd2UgbWlnaHQgbGluayB3aXRoIGFuIGluc3RhbGxlZCBsaWJyYXJ5CisrICAgICAj IHdoZW4gd2Ugc2hvdWxkIGJlIGxpbmtpbmcgd2l0aCBhIHlldC10by1iZS1pbnN0YWxsZWQgb25l CisrICAgICAjIyB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCApIiAh PSBubyAmJgorKyAgICAgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IG5vOyB0aGVuCisrICAg ICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBkaXJlY3Rv cnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbj1yZWxpbmsKKysgIGVsc2UKKysgICAgIyBXZSBjYW4g bGluayB3aXRob3V0IGhhcmRjb2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3Rpbmcg ZGlycy4KKysgICAgaGFyZGNvZGVfYWN0aW9uPWltbWVkaWF0ZQorKyAgZmkKKytlbHNlCisrICAj IFdlIGNhbm5vdCBoYXJkY29kZSBhbnl0aGluZywgb3IgZWxzZSB3ZSBjYW4gb25seSBoYXJkY29k ZSBleGlzdGluZworKyAgIyBkaXJlY3Rvcmllcy4KKysgIGhhcmRjb2RlX2FjdGlvbj11bnN1cHBv cnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGhhcmRjb2Rl X2FjdGlvbiIgPiY1CisrJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rpb24iID4mNjsgfQorKworK2lm IHRlc3QgIiRoYXJkY29kZV9hY3Rpb24iID0gcmVsaW5rIHx8CisrICAgdGVzdCAiJGluaGVyaXRf cnBhdGgiID0geWVzOyB0aGVuCisrICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQKKysgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KKytlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgiID0geWVzIHx8CisrICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBu bzsgdGhlbgorKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5CisrICBlbmFi bGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCisrZmkKKysKKysKKysKKysKKysKKysKKysgIGlmIHRl c3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgorKyAgZW5hYmxlX2Rsb3Blbj11bmtu b3duCisrICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgorKyAgZW5hYmxlX2Rsb3Blbl9zZWxm X3N0YXRpYz11bmtub3duCisrZWxzZQorKyAgbHRfY3ZfZGxvcGVuPW5vCisrICBsdF9jdl9kbG9w ZW5fbGlicz0KKysKKysgIGNhc2UgJGhvc3Rfb3MgaW4KKysgIGJlb3MqKQorKyAgICBsdF9jdl9k bG9wZW49ImxvYWRfYWRkX29uIgorKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KKysgICAgbHRfY3Zf ZGxvcGVuX3NlbGY9eWVzCisrICAgIDs7CisrCisrICBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK KysgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKKysgICAgbHRfY3ZfZGxvcGVuX2xpYnM9 CisrICAgIDs7CisrCisrICBjeWd3aW4qKQorKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKKysg ICAgbHRfY3ZfZGxvcGVuX2xpYnM9CisrICAgIDs7CisrCisrICBkYXJ3aW4qKQorKyAgIyBpZiBs aWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3QgaXQKKysgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYg dGVzdCAiJHthY19jdl9saWJfZGxfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJ QlMKKytMSUJTPSItbGRsICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRv IGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo ZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50 IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisr ZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgZGxvcGVuICgpOworK2ludAorK21haW4gKCkKKyt7 CisrcmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRo ZW4KKysgIGFjX2N2X2xpYl9kbF9kbG9wZW49eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQorKworKwlhY19jdl9saWJfZGxfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29u ZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1 CisrJGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFj X2N2X2xpYl9kbF9kbG9wZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3Bl biIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCisrZWxzZQorKworKyAgICBsdF9jdl9kbG9wZW49 ImR5bGQiCisrICAgIGx0X2N2X2Rsb3Blbl9saWJzPQorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15 ZXMKKysKKytmaQorKworKyAgICA7OworKworKyAgKikKKysgICAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBzaGxfbG9hZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIHNobF9sb2FkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9mdW5jX3NobF9s b2FkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrLyogRGVm aW5lIHNobF9sb2FkIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4g ZGVjbGFyZXMgc2hsX2xvYWQuCisrICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+ IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisrI2RlZmluZSBzaGxfbG9hZCBpbm5vY3VvdXNf c2hsX2xvYWQKKysKKysvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFu ZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRo IGNoYXIgc2hsX2xvYWQgKCk7IGJlbG93LgorKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNz ZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisrICAgIDxsaW1pdHMuaD4gZXhp c3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisrCisrI2lmZGVmIF9fU1RE Q19fCisrIyBpbmNsdWRlIDxsaW1pdHMuaD4KKysjZWxzZQorKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CisrI2VuZGlmCisrCisrI3VuZGVmIHNobF9sb2FkCisrCisrLyogT3ZlcnJpZGUgYW55IEdDQyBp bnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNlIGNoYXIgYmVjYXVz ZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisrICAgYnVpbHRpbiBh bmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KKysj aWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hhciBzaGxfbG9hZCAo KTsKKysvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGlj aCBpdCBpbXBsZW1lbnRzCisrICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBm dW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisrICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRo IF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworKyNpZiBkZWZpbmVkIF9f c3R1Yl9zaGxfbG9hZCB8fCBkZWZpbmVkIF9fc3R1Yl9fX3NobF9sb2FkCisrY2hva2UgbWUKKysj ZW5kaWYKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBzaGxfbG9hZCAoKTsKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg eworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2Z1bmNfc2hsX2xvYWQ9 eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9mdW5jX3No bF9sb2FkPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBc CisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX3NobF9sb2FkIiA+JjUK KyskYXNfZWNobyAiJGFjX2N2X2Z1bmNfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNf Y3ZfZnVuY19zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0ic2hsX2xv YWQiCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBz aGxfbG9hZCBpbiAtbGRsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNobF9sb2Fk IGluIC1sZGxkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxkX3NobF9sb2Fk K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsZCAgJExJQlMiCisr Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FD RU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysvKiBPdmVycmlk ZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KKysgICBVc2Ug Y2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysg ICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBw bHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIKKysjZW5kaWYKKytjaGFy IHNobF9sb2FkICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIHNobF9sb2FkICgpOwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3Rf eCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX2RsZF9z aGxfbG9hZD15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2 X2xpYl9kbGRfc2hsX2xvYWQ9bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0g LWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2Nv bmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAor K0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjUKKyskYXNfZWNobyAi JGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNjsgfQorK2lmIHRlc3QgIngkYWNfY3ZfbGliX2Rs ZF9zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4KKysgIGx0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0 X2N2X2Rsb3Blbl9saWJzPSItbGRsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIGRsb3BlbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IGRsb3Blbi4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19kbG9wZW4rc2V0fSIg PSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9G CisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysvKiBEZWZpbmUgZGxvcGVu IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZGxv cGVuLgorKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0 aW1lb2ZkYXkuICAqLworKyNkZWZpbmUgZGxvcGVuIGlubm9jdW91c19kbG9wZW4KKysKKysvKiBT eXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHBy b3RvdHlwZXMsCisrICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgZGxvcGVuICgpOyBi ZWxvdy4KKysgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBp cyBkZWZpbmVkLCBzaW5jZQorKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFu ZGluZyBjb21waWxlcnMuICAqLworKworKyNpZmRlZiBfX1NURENfXworKyMgaW5jbHVkZSA8bGlt aXRzLmg+CisrI2Vsc2UKKysjIGluY2x1ZGUgPGFzc2VydC5oPgorKyNlbmRpZgorKworKyN1bmRl ZiBkbG9wZW4KKysKKysvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBh dm9pZCBhbiBlcnJvci4KKysgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUg cmV0dXJuIHR5cGUgb2YgYSBHQ0MKKysgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBw cm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworKyNpZmRlZiBfX2NwbHVzcGx1cworK2V4 dGVybiAiQyIKKysjZW5kaWYKKytjaGFyIGRsb3BlbiAoKTsKKysvKiBUaGUgR05VIEMgbGlicmFy eSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisrICAgIHRv IGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5h bWVkCisrICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUg aXMgYW4gYWxpYXMuICAqLworKyNpZiBkZWZpbmVkIF9fc3R1Yl9kbG9wZW4gfHwgZGVmaW5lZCBf X3N0dWJfX19kbG9wZW4KKytjaG9rZSBtZQorKyNlbmRpZgorKworK2ludAorK21haW4gKCkKKyt7 CisrcmV0dXJuIGRsb3BlbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKyty bSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3Ry eT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytl c2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wi IgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+ Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0 LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVz dC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi ID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg PSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRo ZW4KKysgIGFjX2N2X2Z1bmNfZGxvcGVuPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysJYWNfY3ZfZnVuY19kbG9wZW49bm8KKytmaQorKworK3JtIC1yZiBjb25mdGVz dC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFj X2N2X2Z1bmNfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2X2Z1bmNfZGxvcGVuIiA+JjY7 IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfZGxvcGVuIiA9IHgiInllczsgdGhlbgorKyAgbHRf Y3ZfZGxvcGVuPSJkbG9wZW4iCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yIGRsb3BlbiBpbiAtbGRsLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9saWJfZGxf ZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbGRsICAkTElC UyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8K KytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD QworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgor K2NoYXIgZGxvcGVuICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIGRsb3BlbiAoKTsK KysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAi KCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3Ry eTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNo bz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5 X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19z dGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisr ICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl eHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0 X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGFjX2N2X2xpYl9kbF9k bG9wZW49eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2Fz OiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19jdl9s aWJfZGxfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9s aWJfZGxfZGxvcGVuIiA+JjY7IH0KKytpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0g eCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9 Ii1sZGwiCisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZv ciBkbG9wZW4gaW4gLWxzdmxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVu IGluIC1sc3ZsZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfbGliX3N2bGRfZGxvcGVu K3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbHN2bGQgICRMSUJTIgor K2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrLyogT3ZlcnJp ZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisrICAgVXNl IGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisr ICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFw cGx5LiAgKi8KKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiCisrI2VuZGlmCisrY2hh ciBkbG9wZW4gKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxvcGVuICgpOworKyAg OworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRh Y190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsK KysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJc IlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNo byIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1 cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJt IC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIk YXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVz KTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgYWNfY3ZfbGliX3N2bGRfZGxv cGVuPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYWNfY3ZfbGli X3N2bGRfZGxvcGVuPW5vCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiAkYWNfY3ZfbGliX3N2bGRfZGxvcGVuIiA+JjUKKyskYXNfZWNobyAiJGFjX2N2 X2xpYl9zdmxkX2Rsb3BlbiIgPiY2OyB9CisraWYgdGVzdCAieCRhY19jdl9saWJfc3ZsZF9kbG9w ZW4iID0geCIieWVzOyB0aGVuCisrICBsdF9jdl9kbG9wZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVu X2xpYnM9Ii1sc3ZsZCIKKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBm b3IgZGxkX2xpbmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X2xpYl9k bGRfZGxkX2xpbmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sZGxk ICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKwor Ky8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y LgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNl bmRpZgorK2NoYXIgZGxkX2xpbmsgKCk7CisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gZGxk X2xpbmsgKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5r IgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj aG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwg YWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNo byAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVy MQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Cisr CSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBhY19j dl9saWJfZGxkX2RsZF9saW5rPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysJYWNfY3ZfbGliX2RsZF9kbGRfbGluaz1ubworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0 LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID4mNQor KyRhc19lY2hvICIkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY2OyB9CisraWYgdGVzdCAieCRh Y19jdl9saWJfZGxkX2RsZF9saW5rIiA9IHgiInllczsgdGhlbgorKyAgbHRfY3ZfZGxvcGVuPSJk bGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgorK2ZpCisrCisrCisrZmkKKysKKysK KytmaQorKworKworK2ZpCisrCisrCisrZmkKKysKKysKKytmaQorKworKyAgICA7OworKyAgZXNh YworKworKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9IHhubzsgdGhlbgorKyAgICBlbmFi bGVfZGxvcGVuPXllcworKyAgZWxzZQorKyAgICBlbmFibGVfZGxvcGVuPW5vCisrICBmaQorKwor KyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCisrICBkbG9wZW4pCisrICAgIHNhdmVfQ1BQRkxBR1M9 IiRDUFBGTEFHUyIKKysgICAgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzICYm IENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0giCisrCisrICAgIHNhdmVfTERGTEFH Uz0iJExERkxBR1MiCisrICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERGTEFHUz1c IlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjXCIKKysKKysgICAgc2F2ZV9MSUJT PSIkTElCUyIKKysgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9saWJzICRMSUJTIgorKworKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBhIHByb2dyYW0gY2Fu IGRsb3BlbiBpdHNlbGYiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBwcm9n cmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9kbG9w ZW5fc2VsZitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK KytlbHNlCisrICAJICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Cisr ICBsdF9jdl9kbG9wZW5fc2VsZj1jcm9zcworK2Vsc2UKKysgIGx0X2RsdW5rbm93bj0wOyBsdF9k bG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKKysgIGx0X3N0YXR1cz0kbHRfZGx1bmtu b3duCisrICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorKyNsaW5lIDEyNjgxICJj b25maWd1cmUiCisrI2luY2x1ZGUgImNvbmZkZWZzLmgiCisrCisrI2lmIEhBVkVfRExGQ05fSAor KyNpbmNsdWRlIDxkbGZjbi5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxzdGRpby5oPgorKwor KyNpZmRlZiBSVExEX0dMT0JBTAorKyMgIGRlZmluZSBMVF9ETEdMT0JBTAkJUlRMRF9HTE9CQUwK KysjZWxzZQorKyMgIGlmZGVmIERMX0dMT0JBTAorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQlE TF9HTE9CQUwKKysjICBlbHNlCisrIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCTAKKysjICBlbmRp ZgorKyNlbmRpZgorKworKy8qIFdlIG1heSBoYXZlIHRvIGRlZmluZSBMVF9ETExBWllfT1JfTk9X IGluIHRoZSBjb21tYW5kIGxpbmUgaWYgd2UKKysgICBmaW5kIG91dCBpdCBkb2VzIG5vdCB3b3Jr IGluIHNvbWUgcGxhdGZvcm0uICovCisrI2lmbmRlZiBMVF9ETExBWllfT1JfTk9XCisrIyAgaWZk ZWYgUlRMRF9MQVpZCisrIyAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkJUlRMRF9MQVpZCisr IyAgZWxzZQorKyMgICAgaWZkZWYgRExfTEFaWQorKyMgICAgICBkZWZpbmUgTFRfRExMQVpZX09S X05PVwkJRExfTEFaWQorKyMgICAgZWxzZQorKyMgICAgICBpZmRlZiBSVExEX05PVworKyMgICAg ICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCVJUTERfTk9XCisrIyAgICAgIGVsc2UKKysjICAg ICAgICBpZmRlZiBETF9OT1cKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCURM X05PVworKyMgICAgICAgIGVsc2UKKysjICAgICAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9X CTAKKysjICAgICAgICBlbmRpZgorKyMgICAgICBlbmRpZgorKyMgICAgZW5kaWYKKysjICBlbmRp ZgorKyNlbmRpZgorKworK3ZvaWQgZm5vcmQoKSB7IGludCBpPTQyO30KKytpbnQgbWFpbiAoKQor K3sKKysgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9O T1cpOworKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247CisrCisrICBpZiAoc2VsZikKKysg ICAgeworKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAgc3RhdHVzID0gJGx0 X2Rsbm9fdXNjb3JlOworKyAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3Rh dHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisrICAgICAgLyogZGxjbG9zZSAoc2VsZik7ICovCisr ICAgIH0KKysgIGVsc2UKKysgICAgcHV0cyAoZGxlcnJvciAoKSk7CisrCisrICByZXR1cm4gc3Rh dHVzOworK30KKytfTFRfRU9GCisrICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBc IiRhY19saW5rXCIiKSA+JjUKKysgIChldmFsICRhY19saW5rKSAyPiY1CisrICBhY19zdGF0dXM9 JD8KKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9IDI+ L2Rldi9udWxsOyB0aGVuCisrICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mNSAyPi9kZXYvbnVs bAorKyAgICBsdF9zdGF0dXM9JD8KKysgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgorKyAgICAgIHgk bHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OworKyAgICAgIHgkbHRfZGxu ZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7CisrICAgICAgeCRsdF9kbHVua25v d258eCopIGx0X2N2X2Rsb3Blbl9zZWxmPW5vIDs7CisrICAgIGVzYWMKKysgIGVsc2UgOgorKyAg ICAjIGNvbXBpbGF0aW9uIGZhaWxlZAorKyAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubworKyAgZmkK KytmaQorK3JtIC1mciBjb25mdGVzdCoKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRsdF9jdl9kbG9wZW5fc2VsZiIgPiY1CisrJGFzX2VjaG8gIiRsdF9j dl9kbG9wZW5fc2VsZiIgPiY2OyB9CisrCisrICAgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuX3Nl bGYiID0geHllczsgdGhlbgorKyAgICAgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgTERG TEFHUz1cIlwkTERGTEFHUyAkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNcIgorKyAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5r ZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciBhIHN0YXRpY2FsbHkgbGlua2VkIHByb2dyYW0gY2FuIGRsb3BlbiBpdHNlbGYuLi4g IiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYytzZXR9IiA9IHNl dDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICAJICBpZiB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisrICBsdF9jdl9kbG9wZW5fc2Vs Zl9zdGF0aWM9Y3Jvc3MKKytlbHNlCisrICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9 MTsgbHRfZGxuZWVkX3VzY29yZT0yCisrICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgorKyAgY2F0 ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKysjbGluZSAxMjc3NyAiY29uZmlndXJlIgor KyNpbmNsdWRlICJjb25mZGVmcy5oIgorKworKyNpZiBIQVZFX0RMRkNOX0gKKysjaW5jbHVkZSA8 ZGxmY24uaD4KKysjZW5kaWYKKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKysjaWZkZWYgUlRM RF9HTE9CQUwKKysjICBkZWZpbmUgTFRfRExHTE9CQUwJCVJUTERfR0xPQkFMCisrI2Vsc2UKKysj ICBpZmRlZiBETF9HTE9CQUwKKysjICAgIGRlZmluZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCisr IyAgZWxzZQorKyMgICAgZGVmaW5lIExUX0RMR0xPQkFMCQkwCisrIyAgZW5kaWYKKysjZW5kaWYK KysKKysvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUgTFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29t bWFuZCBsaW5lIGlmIHdlCisrICAgZmluZCBvdXQgaXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBs YXRmb3JtLiAqLworKyNpZm5kZWYgTFRfRExMQVpZX09SX05PVworKyMgIGlmZGVmIFJUTERfTEFa WQorKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCVJUTERfTEFaWQorKyMgIGVsc2UKKysj ICAgIGlmZGVmIERMX0xBWlkKKysjICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xB WlkKKysjICAgIGVsc2UKKysjICAgICAgaWZkZWYgUlRMRF9OT1cKKysjICAgICAgICBkZWZpbmUg TFRfRExMQVpZX09SX05PVwlSVExEX05PVworKyMgICAgICBlbHNlCisrIyAgICAgICAgaWZkZWYg RExfTk9XCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlETF9OT1cKKysjICAg ICAgICBlbHNlCisrIyAgICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwkwCisrIyAgICAg ICAgZW5kaWYKKysjICAgICAgZW5kaWYKKysjICAgIGVuZGlmCisrIyAgZW5kaWYKKysjZW5kaWYK KysKKyt2b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9CisraW50IG1haW4gKCkKKyt7CisrICB2b2lk ICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKKysgIGlu dCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOworKworKyAgaWYgKHNlbGYpCisrICAgIHsKKysgICAg ICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29y ZTsKKysgICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9k bG5lZWRfdXNjb3JlOworKyAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLworKyAgICB9CisrICBl bHNlCisrICAgIHB1dHMgKGRsZXJyb3IgKCkpOworKworKyAgcmV0dXJuIHN0YXR1czsKKyt9Cisr X0xUX0VPRgorKyAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wi IikgPiY1CisrICAoZXZhbCAkYWNfbGluaykgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsg dGhlbgorKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JjUgMj4vZGV2L251bGwKKysgICAgbHRf c3RhdHVzPSQ/CisrICAgIGNhc2UgeCRsdF9zdGF0dXMgaW4KKysgICAgICB4JGx0X2Rsbm9fdXNj b3JlKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CisrICAgICAgeCRsdF9kbG5lZWRf dXNjb3JlKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9eWVzIDs7CisrICAgICAgeCRsdF9kbHVu a25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubyA7OworKyAgICBlc2FjCisrICBl bHNlIDoKKysgICAgIyBjb21waWxhdGlvbiBmYWlsZWQKKysgICAgbHRfY3ZfZGxvcGVuX3NlbGZf c3RhdGljPW5vCisrICBmaQorK2ZpCisrcm0gLWZyIGNvbmZ0ZXN0KgorKworKworK2ZpCisreyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRp YyIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMiID4mNjsgfQorKyAg ICBmaQorKworKyAgICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCisrICAgIExERkxBR1M9IiRz YXZlX0xERkxBR1MiCisrICAgIExJQlM9IiRzYXZlX0xJQlMiCisrICAgIDs7CisrICBlc2FjCisr CisrICBjYXNlICRsdF9jdl9kbG9wZW5fc2VsZiBpbgorKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVu X3NlbGY9JGx0X2N2X2Rsb3Blbl9zZWxmIDs7CisrICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5r bm93biA7OworKyAgZXNhYworKworKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGlu CisrICB5ZXN8bm8pIGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxm X3N0YXRpYyA7OworKyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7Cisr ICBlc2FjCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKytzdHJpcGxpYj0KKytvbGRfc3RyaXBsaWI9CisreyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3RyaXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlz IHBvc3NpYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYg Mj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4KKysgIHRlc3QgLXogIiRv bGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtZGVidWciCisrICB0 ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIK KysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2Vj aG8gInllcyIgPiY2OyB9CisrZWxzZQorKyMgRklYTUUgLSBpbnNlcnQgc29tZSByZWFsIHRlc3Rz LCBob3N0X29zIGlzbid0IHJlYWxseSBnb29kIGVub3VnaAorKyAgY2FzZSAkaG9zdF9vcyBpbgor KyAgZGFyd2luKikKKysgICAgaWYgdGVzdCAtbiAiJFNUUklQIiA7IHRoZW4KKysgICAgICBzdHJp cGxpYj0iJFNUUklQIC14IgorKyAgICAgIG9sZF9zdHJpcGxpYj0iJFNUUklQIC1TIgorKyAgICAg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8g InllcyIgPiY2OyB9CisrICAgIGVsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysgICAgZmkKKysgICAg OzsKKysgICopCisrICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+ JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICA7OworKyAgZXNhYworK2ZpCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAjIFJlcG9ydCB3aGljaCBsaWJyYXJ5IHR5 cGVzIHdpbGwgYWN0dWFsbHkgYmUgYnVpbHQKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQorKyRh c19lY2hvX24gImNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4u LiAiID4mNjsgfQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNhbl9i dWlsZF9zaGFyZWQiID4mNQorKyRhc19lY2hvICIkY2FuX2J1aWxkX3NoYXJlZCIgPiY2OyB9Cisr CisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0byBidWls ZCBzaGFyZWQgbGlicmFyaWVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRv IGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KKysgIHRlc3QgIiRjYW5fYnVpbGRf c2hhcmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubworKworKyAgIyBPbiBBSVgsIHNoYXJl ZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFjZSwg YW5kCisrICAjIGFyZSBhbGwgYnVpbHQgZnJvbSBQSUMuCisrICBjYXNlICRob3N0X29zIGluCisr ICBhaXgzKikKKysgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVuYWJsZV9zdGF0 aWM9bm8KKysgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKysgICAgICBhcmNoaXZlX2Nt ZHM9IiRhcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRsaWIiCisrICAgICAgcG9zdGluc3RhbGxfY21k cz0nJFJBTkxJQiAkbGliJworKyAgICBmaQorKyAgICA7OworKworKyAgYWl4WzQtOV0qKQorKyAg ICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQgJiYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxp bmtpbmciID0gbm8gOyB0aGVuCisrICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYm IGVuYWJsZV9zdGF0aWM9bm8KKysgICAgZmkKKysgICAgOzsKKysgIGVzYWMKKysgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRlbmFibGVfc2hhcmVkIiA+JjUKKyskYXNfZWNo byAiJGVuYWJsZV9zaGFyZWQiID4mNjsgfQorKworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcyIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLi4uICIg PiY2OyB9CisrICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3Rh dGljIGlzIHllcy4KKysgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3Rh dGljPXllcworKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGVuYWJsZV9z dGF0aWMiID4mNQorKyRhc19lY2hvICIkZW5hYmxlX3N0YXRpYyIgPiY2OyB9CisrCisrCisrCisr CisrZmkKKythY19leHQ9YworK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0n JENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp bGVyX2dudQorKworK0NDPSIkbHRfc2F2ZV9DQyIKKysKKysKKythY19leHQ9Y3BwCisrYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKyth cmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KKythbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Cisr YWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubworK2FyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPQor K2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFg9bm8KKytleHBvcnRfZHluYW1pY19mbGFnX3NwZWNf Q1hYPQorK2hhcmRjb2RlX2RpcmVjdF9DWFg9bm8KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVf Q1hYPW5vCisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9CisraGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19sZF9DWFg9CisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9CisraGFy ZGNvZGVfbWludXNfTF9DWFg9bm8KKytoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD11bnN1cHBv cnRlZAorK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9bm8KKytpbmhlcml0X3JwYXRoX0NYWD1ubwor K21vZHVsZV9jbWRzX0NYWD0KKyttb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPQorK2xpbmtfYWxsX2Rl cGxpYnNfQ1hYPXVua25vd24KKytvbGRfYXJjaGl2ZV9jbWRzX0NYWD0kb2xkX2FyY2hpdmVfY21k cworK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0KKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9 CisrZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9bm8KKysKKysjIFNvdXJj ZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KKythY19leHQ9Y3BwCisrCisr IyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0IHNvdXJjZXMuCisr b2JqZXh0PW8KKytvYmpleHRfQ1hYPSRvYmpleHQKKysKKysjIE5vIHNlbnNlIGluIHJ1bm5pbmcg YWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVhZHkgZGV0ZXJtaW5lZCB0aGF0CisrIyB0aGUgQ1hY IGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hh cmVkKQorKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMg b24gdGhpcyBwbGF0Zm9ybSwKKysjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRo ZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KKytpZiB0ZXN0ICIkX2x0X2NhdWdo dF9DWFhfZXJyb3IiICE9IHllczsgdGhlbgorKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxl IGNvbXBpbGUgdGVzdHMKKysgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVf dmFyaWFibGUgPSAwOyIKKysKKysgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRl c3RzCisrICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBtYWluKGludCwgY2hhciAqW10p IHsgcmV0dXJuKDApOyB9JworKworKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2Vk IGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorKworKworKworKworKwor KworKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCisrTFRDQz0ke0xU Q0MtIiRDQyJ9CisrCisrIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1 c2UgQ0ZMQUdTLgorK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQorKworKyMgQWxsb3cg Q0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisrY29tcGlsZXI9JENDCisr CisrCisrICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQor KyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9jb21w aWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfY29tcGlsZSIgMj4m MSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRf Y29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCisrJFJNIGNvbmZ0ZXN0Kgor KworKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrZWNobyAiJGx0X3NpbXBsZV9s aW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKKytldmFsICIkYWNfbGluayIgMj4mMSA+ L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5lcnIKKytfbHRfbGlu a2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorKyRSTSAtciBjb25mdGVzdCoKKysK KysKKysgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCisr ICBsdF9zYXZlX0NDPSRDQworKyAgbHRfc2F2ZV9MRD0kTEQKKysgIGx0X3NhdmVfR0NDPSRHQ0MK KysgIEdDQz0kR1hYCisrICBsdF9zYXZlX3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAorKyAgbHRf c2F2ZV9wYXRoX0xEPSRsdF9jdl9wYXRoX0xECisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3Byb2df Z251X2xkY3h4K3NldH0iOyB0aGVuCisrICAgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9n X2dudV9sZGN4eAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQgbHRfY3ZfcHJvZ19nbnVfbGQKKysg IGZpCisrICBpZiB0ZXN0IC1uICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KKysgICAg bHRfY3ZfcGF0aF9MRD0kbHRfY3ZfcGF0aF9MRENYWAorKyAgZWxzZQorKyAgICAkYXNfdW5zZXQg bHRfY3ZfcGF0aF9MRAorKyAgZmkKKysgIHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExE Q1hYCisrICBDQz0ke0NYWC0iYysrIn0KKysgIGNvbXBpbGVyPSRDQworKyAgY29tcGlsZXJfQ1hY PSRDQworKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisrICBjYXNlICRjY190ZW1w IGluCisrICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hl ICkgOzsKKysgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5 ICkgOzsKKysgICAgXC0qKSA7OworKyAgICAqKSBicmVhazs7CisrICBlc2FjCisrZG9uZQorK2Nj X2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVe JGhvc3RfYWxpYXMtJSUiYAorKworKworKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgor KyAgICAjIFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21waWxpbmcgQysrIGNv ZGUsIHNvIHNldCB0aGUKKysgICAgIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQorKyAgICBp ZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVp bHRpbl9mbGFnX0NYWD0nIC1mbm8tYnVpbHRpbicKKysgICAgZWxzZQorKyAgICAgIGx0X3Byb2df Y29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0KKysgICAgZmkKKysKKysgICAgaWYgdGVzdCAi JEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAjIFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmln dXJhdGlvbgorKworKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251LWxkIHdhcyBnaXZl bi4KKytpZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFs PSR3aXRoX2dudV9sZDsgdGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzCisr ZWxzZQorKyAgd2l0aF9nbnVfbGQ9bm8KKytmaQorKworK2FjX3Byb2c9bGQKKytpZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgorKyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBn aXZlcyBhIHBhdGguCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y IGxkIHVzZWQgYnkgJENDIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbGQgdXNlZCBi eSAkQ0MuLi4gIiA+JjY7IH0KKysgIGNhc2UgJGhvc3QgaW4KKysgICotKi1taW5ndyopCisrICAg ICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1cHNldHMgbWlu Z3cKKysgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQg J1wwMTUnYCA7OworKyAgKikKKysgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxk KSAyPiY1YCA7OworKyAgZXNhYworKyAgY2FzZSAkYWNfcHJvZyBpbgorKyAgICAjIEFjY2VwdCBh YnNvbHV0ZSBwYXRocy4KKysgICAgW1xcL10qIHwgPzpbXFwvXSopCisrICAgICAgcmVfZGlyZWx0 PScvW14vXVteL10qL1wuXC4vJworKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBv ZiBsZAorKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcn YAorKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAv ZGV2L251bGwgMj4mMTsgZG8KKysJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJl X2RpcmVsdCUvJSJgCisrICAgICAgZG9uZQorKyAgICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRh Y19wcm9nIgorKyAgICAgIDs7CisrICAiIikKKysgICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0 ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCisrICAgIGFjX3Byb2c9bGQKKysgICAgOzsKKysgICop CisrICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQg aW4gUEFUSC4KKysgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorKyAgICA7OworKyAgZXNhYworK2Vs aWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIGZvciBHTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBHTlUgbGQuLi4gIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CisrZmkKKytpZiB0ZXN0ICIke2x0X2N2X3BhdGhf TEQrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgaWYgdGVzdCAteiAiJExEIjsgdGhlbgorKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworKyAgICBJRlM9IiRs dF9zYXZlX2lmcyIKKysgICAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KKysgICAgaWYg dGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRh Y19leGVleHQiOyB0aGVuCisrICAgICAgbHRfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIK KysgICAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgcHJvZ3JhbSBpcyBHTlUgbGQuICBJJ2QgcmF0 aGVyIHVzZSAtLXZlcnNpb24sCisrICAgICAgIyBidXQgYXBwYXJlbnRseSBzb21lIHZhcmlhbnRz IG9mIEdOVSBsZCBvbmx5IGFjY2VwdCAtdi4KKysgICAgICAjIEJyZWFrIG9ubHkgaWYgaXQgd2Fz IHRoZSBHTlUvbm9uLUdOVSBsZCB0aGF0IHdlIHByZWZlci4KKysgICAgICBjYXNlIGAiJGx0X2N2 X3BhdGhfTEQiIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KKysgICAgICAqR05VKiB8ICond2l0aCBC RkQnKikKKysJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSBubyAmJiBicmVhaworKwk7OworKyAgICAg ICopCisrCXRlc3QgIiR3aXRoX2dudV9sZCIgIT0geWVzICYmIGJyZWFrCisrCTs7CisrICAgICAg ZXNhYworKyAgICBmaQorKyAgZG9uZQorKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCisrZWxzZQorKyAg bHRfY3ZfcGF0aF9MRD0iJExEIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRo IGEgcGF0aC4KKytmaQorK2ZpCisrCisrTEQ9IiRsdF9jdl9wYXRoX0xEIgorK2lmIHRlc3QgLW4g IiRMRCI7IHRoZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRMRCIg PiY1CisrJGFzX2VjaG8gIiRMRCIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKyt0 ZXN0IC16ICIkTEQiICYmIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBh Y2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJy b3I6IG5vIGFjY2VwdGFibGUgbGQgZm91bmQgaW4gXCRQQVRIIiA+JjI7fQorKyAgIHsgKGV4aXQg MSk7IGV4aXQgMTsgfTsgfQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBp ZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcg aWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0 X2N2X3Byb2dfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorK2Vsc2UKKysgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBh cHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KKytjYXNlIGAkTEQgLXYgMj4m MSA8L2Rldi9udWxsYCBpbgorKypHTlUqIHwgKid3aXRoIEJGRCcqKQorKyAgbHRfY3ZfcHJvZ19n bnVfbGQ9eWVzCisrICA7OworKyopCisrICBsdF9jdl9wcm9nX2dudV9sZD1ubworKyAgOzsKKytl c2FjCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJv Z19nbnVfbGQiID4mNQorKyRhc19lY2hvICIkbHRfY3ZfcHJvZ19nbnVfbGQiID4mNjsgfQorK3dp dGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZAorKworKworKworKworKworKworKworKyAgICAg ICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJseWluZyBsaW5rZXIs IHNpbmNlIHRoZQorKyAgICAgICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93IGFzc3VtZSB0aGF0 IEdOVSBsZCBpcyBiZWluZyB1c2VkLgorKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5 ZXM7IHRoZW4KKysgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxp YiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysgICAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCisrCisrICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKworKyAgICAgICAgIyBJZiBh cmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKKysgICAg ICAgICMgWFhYIEkgdGhpbmsgd2xhcmMgY2FuIGJlIGVsaW1pbmF0ZWQgaW4gbHRjZi1jeHgsIGJ1 dCBJIG5lZWQgdG8KKysgICAgICAgICMgICAgIGludmVzdGlnYXRlIGl0IGEgbGl0dGxlIGJpdCBt b3JlLiAoTU0pCisrICAgICAgICB3bGFyYz0nJHt3bH0nCisrCisrICAgICAgICAjIGFuY2llbnQg R05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisrICAgICAgICBp ZiBldmFsICJgJENDIC1wcmludC1wcm9nLW5hbWU9bGRgIC0taGVscCAyPiYxIiB8CisrCSAgJEdS RVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisrICAgICAgICAgIHdob2xl X2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVu Y2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJjaGl2ZScKKysgICAgICAgIGVsc2UKKysgICAgICAg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPQorKyAgICAgICAgZmkKKysgICAgICBlbHNl CisrICAgICAgICB3aXRoX2dudV9sZD1ubworKyAgICAgICAgd2xhcmM9CisrCisrICAgICAgICAj IEEgZ2VuZXJpYyBhbmQgdmVyeSBzaW1wbGUgZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBjcmVhdGlv bgorKyAgICAgICAgIyBjb21tYW5kIGZvciBHTlUgQysrIGZvciB0aGUgY2FzZSB3aGVyZSBpdCB1 c2VzIHRoZSBuYXRpdmUKKysgICAgICAgICMgbGlua2VyLCBpbnN0ZWFkIG9mIEdOVSBsZC4gIElm IHBvc3NpYmxlLCB0aGlzIHNldHRpbmcgc2hvdWxkCisrICAgICAgICAjIG92ZXJyaWRkZW4gdG8g dGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5hdGl2ZSBsaW5rZXIgZmVhdHVyZXMgb24KKysgICAgICAg ICMgdGhlIHBsYXRmb3JtIGl0IGlzIGJlaW5nIHVzZWQgb24uCisrICAgICAgICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisrICAgICAg ZmkKKysKKysgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3Nl IG91dHB1dCB0aGF0IGxpc3RzCisrICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2Jq ZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCisrICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgIlwtTCInCisrCisrICAg IGVsc2UKKysgICAgICBHWFg9bm8KKysgICAgICB3aXRoX2dudV9sZD1ubworKyAgICAgIHdsYXJj PQorKyAgICBmaQorKworKyAgICAjIFBPUlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlv dXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hhcmFjdGVyaXN0aWNzCisrICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQp IHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmll cy4uLiAiID4mNjsgfQorKyAgICBsZF9zaGxpYnNfQ1hYPXllcworKyAgICBjYXNlICRob3N0X29z IGluCisrICAgICAgYWl4MyopCisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgIDs7Cisr ICAgICAgYWl4WzQtOV0qKQorKyAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KKysgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2lu ZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorKyAgICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhp bmcgc3BlY2lhbC4KKysgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworKyAgICAg ICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JworKyAgICAgICAgICBub19lbnRyeV9mbGFnPSIi CisrICAgICAgICBlbHNlCisrICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KKysK KysgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtp bmcgb3Igbm9ybWFsCisrICAgICAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlz IHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQorKyAgICAgICAgICAjIG5lZWQgdG8gZG8gcnVudGlt ZSBsaW5raW5nLgorKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0Llsy M10uKnxhaXhbNS05XSopCisrCSAgICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KKysJICAg ICAgY2FzZSAkbGRfZmxhZyBpbgorKwkgICAgICAqLWJydGwqKQorKwkgICAgICAgIGFpeF91c2Vf cnVudGltZWxpbmtpbmc9eWVzCisrCSAgICAgICAgYnJlYWsKKysJICAgICAgICA7OworKwkgICAg ICBlc2FjCisrCSAgICBkb25lCisrCSAgICA7OworKyAgICAgICAgICBlc2FjCisrCisrICAgICAg ICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCisrICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9Jy1i bm9lbnRyeScKKysgICAgICAgIGZpCisrCisrICAgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJs ZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCisrICAgICAgICAjIGhh dmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBh IGxpYnJhcnkKKysgICAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3Zl cmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCisrICAgICAgICAjIENYWEZMQUdTL0NGTEFHUyBm b3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAorKyAgICAgICAgIyBl bm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1MuCisr CisrICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPScnCisrICAgICAgICBoYXJkY29kZV9kaXJlY3Rf Q1hYPXllcworKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKKysgICAg ICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSc6JworKyAgICAgICAgbGlua19hbGxf ZGVwbGlic19DWFg9eWVzCisrICAgICAgICBmaWxlX2xpc3Rfc3BlY19DWFg9JyR7d2x9LWYsJwor KworKyAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KKysgICAgICAgICAgY2FzZSAk aG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKysgICAgICAgICAgIyBXZSBvbmx5 IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCisrICAgICAg ICAgICMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwor KwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAKKysJICBp ZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgorKwkgICAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5h bWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+L2Rldi9udWxsCisrCSAgdGhlbgorKwkgICAg IyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCisrCSAgICA6CisrCSAgZWxzZQorKwkgICAgIyBX ZSBoYXZlIG9sZCBjb2xsZWN0MgorKwkgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD11bnN1cHBvcnRl ZAorKwkgICAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRo ZSB1bmluc3RhbGxlZAorKwkgICAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGgu ICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKKysJICAgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2Vz IHJlbGlua2luZworKwkgICAgaGFyZGNvZGVfbWludXNfTF9DWFg9eWVzCisrCSAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGliZGlyJworKwkgICAgaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcl9DWFg9CisrCSAgZmkKKysgICAgICAgICAgZXNhYworKyAgICAgICAgICBzaGFy ZWRfZmxhZz0nLXNoYXJlZCcKKysJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIg PSB5ZXM7IHRoZW4KKysJICAgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwor KwkgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAgICMgbm90IHVzaW5nIGdjYworKyAgICAg ICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgorKwkgICMgVmlzdWFsQWdlIEMr KywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNlCisrCSAg IyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKKysJICBz aGFyZWRfZmxhZz0nLUcnCisrICAgICAgICAgIGVsc2UKKysJICAgIGlmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0t RycKKysJICAgIGVsc2UKKysJICAgICAgc2hhcmVkX2ZsYWc9JyR7d2x9LWJNOlNSRScKKysJICAg IGZpCisrICAgICAgICAgIGZpCisrICAgICAgICBmaQorKworKyAgICAgICAgZXhwb3J0X2R5bmFt aWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmV4cGFsbCcKKysgICAgICAgICMgSXQgc2VlbXMgdGhh dCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAorKyAgICAg ICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMgYmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBv ZiBzeW1ib2xzIHRvCisrCSMgZXhwb3J0LgorKyAgICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xz X0NYWD15ZXMKKysgICAgICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHll czsgdGhlbgorKyAgICAgICAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBy dW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwKKysgICAgICAgICAgIyAtYmVyb2sgd2lsbCBs aW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKyAg ICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Jy1iZXJvaycKKysgICAgICAgICAgIyBE ZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFu IGVtcHR5CisrICAgICAgICAgICMgZXhlY3V0YWJsZS4KKysgICAgICAgICAgY2F0ID5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNv bmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKytpbnQKKyttYWluICgpCisreworKwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrCisrbHRfYWl4X2xpYnBh dGhfc2VkPScKKysgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geworKwkvXjAvIHsKKysJ ICAgIHMvXjAgICpcKC4qXCkkL1wxLworKwkgICAgcAorKwl9CisrICAgIH0nCisrYWl4X2xpYnBh dGg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAi JGx0X2FpeF9saWJwYXRoX3NlZCJgCisrIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdl IGRpZG4ndCBmaW5kIGFueXRoaW5nLgorK2lmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4K KysgIGFpeF9saWJwYXRoPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVs bCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorK2ZpCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K KytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lw YThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf ZXh0CisraWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9s aWI6L2xpYiI7IGZpCisrCisrICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hY PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorKworKyAgICAgICAgICBh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp Ym9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBg aWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgk e3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3ds fSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisrICAgICAgICBl bHNlCisrICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9s aWInCisrCSAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ii16IG5vZGVmcyIKKysJICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRj b21waWxlcl9mbGFncyAke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9z eW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzIgorKyAgICAgICAgICBlbHNlCisrCSAgICAjIERldGVy bWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KKysJ ICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KKysJICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9B Q0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29u ZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQg Y29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsKKysgIHJldHVy biAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFj X2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgor KyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190 cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysg IChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVz dC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgewor KwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVz dC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRh Y19leGVleHQKKysgICAgICAgfTsgdGhlbgorKworK2x0X2FpeF9saWJwYXRoX3NlZD0nCisrICAg IC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKysJL14wLyB7CisrCSAgICBzL14wICAqXCgu KlwpJC9cMS8KKysJICAgIHAKKysJfQorKyAgICB9JworK2FpeF9saWJwYXRoPWBkdW1wIC1IIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0 aF9zZWQiYAorKyMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBh bnl0aGluZy4KKytpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCisrICBhaXhfbGlicGF0 aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1l ICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKytmaQorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6 IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4 dCA+JjUKKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9v IFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK2lmIHRlc3Qg LXogIiRhaXhfbGlicGF0aCI7IHRoZW4gYWl4X2xpYnBhdGg9Ii91c3IvbGliOi9saWIiOyBmaQor KworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LWJsaWJwYXRoOiRs aWJkaXI6JyIkYWl4X2xpYnBhdGgiCisrCSAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRo ZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAorKwkgICAgIyAtYmVyb2sgd2lsbCBsaW5r IHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgorKwkgICAg bm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tYmVybm90b2snCisrCSAgICBhbGxvd191bmRl ZmluZWRfZmxhZ19DWFg9JyAke3dsfS1iZXJvaycKKysJICAgICMgRXhwb3J0ZWQgc3ltYm9scyBj YW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcworKwkgICAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPSckY29udmVuaWVuY2UnCisrCSAgICBhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFg9eWVzCisrCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cgQUlYIHRy YWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKKysJICAgICMgbGlicmFyaWVzLgorKwkgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFS ICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpk aXIvJHNvbmFtZScKKysgICAgICAgICAgZmkKKysgICAgICAgIGZpCisrICAgICAgICA7OworKwor KyAgICAgIGJlb3MqKQorKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgYWxsb3dfdW5kZWZpbmVkX2Zs YWdfQ1hYPXVuc3VwcG9ydGVkCisrCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNv bT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYworKwkgICMgc3VwcG9ydCAtLXVuZGVmaW5lZC4g IFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKKysJICBhcmNoaXZlX2Nt ZHNfQ1hYPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCWVsc2UKKysJICBsZF9zaGxpYnNfQ1hY PW5vCisrCWZpCisrCTs7CisrCisrICAgICAgY2hvcnVzKikKKysgICAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCisrICAgICAgICAgICopCisrCSAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg bGlicmFyeSBzdXBwb3J0CisrCSAgbGRfc2hsaWJzX0NYWD1ubworKwkgIDs7CisrICAgICAgICBl c2FjCisrICAgICAgICA7OworKworKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKKysgICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCBD WFgpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAorKyAgICAgICAgIyBhcyB0aGVyZSBpcyBubyBz ZWFyY2ggcGF0aCBmb3IgRExMcy4KKysgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPSctTCRsaWJkaXInCisrICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9dW5zdXBw b3J0ZWQKKysgICAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9bm8KKysgICAgICAgIGVu YWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYPXllcworKworKyAgICAgICAgaWYg JExEIC0taGVscCAyPiYxIHwgJEdSRVAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgor KyAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJh c2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisrICAgICAgICAgICMgSWYg dGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBpcyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUK KysgICAgICAgICAgIyBpcyBFWFBPUlRTKSwgdXNlIGl0IGFzIGlzOyBvdGhlcndpc2UsIHByZXBl bmQuLi4KKysgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2lmIHRlc3QgInhgJFNF RCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCisrCSAgICBjcCAkZXhwb3J0 X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisrICAgICAgICAgIGVsc2UKKysJ ICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworKwkgICAgY2F0 ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKysgICAgICAg ICAgZml+CisrICAgICAgICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29iamRpci8k c29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5h YmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicK KysgICAgICAgIGVsc2UKKysgICAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAgICAgZmkK KysgICAgICAgIDs7CisrICAgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKysKKysKKysgIGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWD1ubworKyAgaGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKyAgaGFy ZGNvZGVfYXV0b21hdGljX0NYWD15ZXMKKysgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPXVu c3VwcG9ydGVkCisrICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JycKKysgIGxpbmtfYWxs X2RlcGxpYnNfQ1hYPXllcworKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIkX2x0X2Rhcl9h bGxvd191bmRlZmluZWQiCisrICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgaWZvcnQqKSBf bHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7CisrICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdD QyA7OworKyAgZXNhYworKyAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsg dGhlbgorKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1lY2hvCisrICAgIGFyY2hpdmVfY21k c19DWFg9IlwkQ0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBc JGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRo L1wkc29uYW1lIFwkdmVyc3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0i CisrICAgIG1vZHVsZV9jbWRzX0NYWD0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwk bGliIC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5 bXV0aWx9IgorKyAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRl eHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5 bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJv YmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNv bmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5 bXN9JHtfbHRfZHN5bXV0aWx9IgorKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgLWUg J3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9 LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVu ZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRf c3ltc30ke19sdF9kc3ltdXRpbH0iCisrICAgICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19z aW5nbGVfbW9kIiAhPSAieWVzIjsgdGhlbgorKyAgICAgIGFyY2hpdmVfY21kc19DWFg9IlwkQ0Mg LXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwk bGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIg XCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1l IFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCisrICAgICAgYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBc JG91dHB1dF9vYmpkaXIvXCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2VlcF9w cml2YXRlX2V4dGVybnMgLW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwk Q0MgLWR5bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1h c3Rlci5vIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9c JHNvbmFtZSBcJHZlcnN0cmluZyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0i CisrICAgIGZpCisrCisrICBlbHNlCisrICBsZF9zaGxpYnNfQ1hYPW5vCisrICBmaQorKworKwk7 OworKworKyAgICAgIGRndXgqKQorKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysgICAg ICAgICAgZWMrKyopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKKysJICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIDs7CisrICAgICAgICAgIGdoY3gq KQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkg ICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAg IGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgZnJlZWJzZFsxMl0qKQorKyAgICAgICAgIyBD Kysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9yZQor KwkjIHN3aXRjaCB0byBFTEYKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgIDs7 CisrCisrICAgICAgZnJlZWJzZC1lbGYqKQorKyAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNf Q1hYPW5vCisrICAgICAgICA7OworKworKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKysg ICAgICAgICMgRnJlZUJTRCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGgg c3RhbmRhcmQgRUxGCisrICAgICAgICAjIGNvbnZlbnRpb25zCisrICAgICAgICBsZF9zaGxpYnNf Q1hYPXllcworKyAgICAgICAgOzsKKysKKysgICAgICBnbnUqKQorKyAgICAgICAgOzsKKysKKysg ICAgICBocHV4OSopCisrICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3 bH0rYiAke3dsfSRsaWJkaXInCisrICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WD06CisrICAgICAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJworKyAg ICAgICAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysgICAgICAgIGhhcmRjb2RlX21pbnVzX0xf Q1hYPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCisrCQkJCSAgICAgICAgICAgICAjIGJ1 dCBhcyB0aGUgZGVmYXVsdAorKwkJCQkgICAgICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGli cmFyeS4KKysKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikK KysgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQK KysgICAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICAgICAgOzsKKysgICAgICAg ICAgYUNDKikKKysgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckUk0gJG91dHB1dF9vYmpk aXIvJHNvbmFtZX4kQ0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAk bGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKysgICAgICAgICAgICAjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz CisrICAgICAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFu ZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxp YnJhcnkuCisrICAgICAgICAgICAgIworKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBl YXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysgICAgICAgICAg ICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8g c3RyaXAgdGhlbQorKyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBk b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysgICAgICAgICAgICAjIGRlcGVuZGVu Y2llcy4KKysgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgk Q0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsg bGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpl eHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2Vz YWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisrICAgICAgICAgICAgOzsKKysgICAg ICAgICAgKikKKysgICAgICAgICAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JEND IC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8g JG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29u YW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCisrICAgICAgICAg ICAgZWxzZQorKyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0CisrICAgICAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrICAgICAgICAgICAg ZmkKKysgICAgICAgICAgICA7OworKyAgICAgICAgZXNhYworKyAgICAgICAgOzsKKysKKysgICAg ICBocHV4MTAqfGhwdXgxMSopCisrICAgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0 aGVuCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2IgJHt3bH0kbGli ZGlyJworKwkgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKKysKKysgICAgICAgICAg Y2FzZSAkaG9zdF9jcHUgaW4KKysgICAgICAgICAgICBocHBhKjY0KnxpYTY0KikKKysgICAgICAg ICAgICAgIDs7CisrICAgICAgICAgICAgKikKKysJICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjX0NYWD0nJHt3bH0tRScKKysgICAgICAgICAgICAgIDs7CisrICAgICAgICAgIGVzYWMKKysg ICAgICAgIGZpCisrICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgICAgICBocHBhKjY0 KnxpYTY0KikKKysgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCisrICAgICAgICAg ICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KKysgICAgICAgICAgICA7OworKyAgICAg ICAgICAqKQorKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCisrICAgICAgICAg ICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKKysgICAgICAgICAgICBoYXJkY29k ZV9taW51c19MX0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAorKwkJCQkJICAgICAg ICAgIyBidXQgYXMgdGhlIGRlZmF1bHQKKysJCQkJCSAgICAgICAgICMgbG9jYXRpb24gb2YgdGhl IGxpYnJhcnkuCisrICAgICAgICAgICAgOzsKKysgICAgICAgIGVzYWMKKysKKysgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgICMgRklYTUU6IGluc2Vy dCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkg ICAgOzsKKysgICAgICAgICAgYUNDKikKKysJICAgIGNhc2UgJGhvc3RfY3B1IGluCisrCSAgICAg IGhwcGEqNjQqKQorKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7 d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICA7OworKwkgICAgICBpYTY0 KikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgOzsK KysJICAgICAgKikKKysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAk e3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cycKKysJICAgICAgICA7OworKwkgICAgZXNhYworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJo aWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisr CSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUg ZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20K KysJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVl ZCB0byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9u J3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJ ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12 IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGlu ICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAk eiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAi WCRsaXN0IiB8ICRYc2VkJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgIGlmIHRlc3Qg IiRHWFgiID0geWVzOyB0aGVuCisrCSAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xkID0gbm87IHRo ZW4KKysJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgICAgICAgaHBwYSo2NCopCisr CSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJ QyAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICAgICAg OzsKKysJICAgICAgICAgIGlhNjQqKQorKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9k ZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisrCSAgICAgICAgICAgIDs7CisrCSAgICAg ICAgICAqKQorKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9z dGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xp YmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgICAgICAgICAgOzsKKysJICAgICAgICBlc2Fj CisrCSAgICAgIGZpCisrCSAgICBlbHNlCisrCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICBmaQor KwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgaW50ZXJpeFsz LTldKikKKysJaGFyZGNvZGVfZGlyZWN0X0NYWD1ubworKwloYXJkY29kZV9zaGxpYnBhdGhfdmFy X0NYWD1ubworKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxp YmRpcicKKysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKKysJIyBIYWNr OiBPbiBJbnRlcml4IDMueCwgd2UgY2Fubm90IGNvbXBpbGUgUElDIGJlY2F1c2Ugb2YgYSBicm9r ZW4gZ2NjLgorKwkjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBp bWFnZSBiYXNlICgweDEwMDAwMDAwIGJ5CisrCSMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBpZiB0 aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKKysJIyBjb25zdW1pbmcg YW5kIGZyYWdtZW50aW5nIHByb2Nlc3MuICBUbyBhdm9pZCB0aGlzLCB3ZSBwaWNrIGEgcmFuZG9t LAorKwkjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAwMCBhbmQg MHg2RkZDMDAwMCBhdCBsaW5rCisrCSMgdGltZS4gIE1vdmluZyB1cCBmcm9tIDB4MTAwMDAwMDAg YWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgorKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0gJSA0MDk2IC8g MiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJworKwlhcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1 dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00t JCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKKysJOzsKKysg ICAgICBpcml4NSogfCBpcml4NiopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAg ICAgICAgICBDQyopCisrCSAgICAjIFNHSSBDKysKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhz ZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxp YicKKysKKysJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3Qg YmUgY3JlYXRlZCB1c2luZworKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJ WCBDKysgY29tcGlsZXIuICBUaGlzIGlzCisrCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUg aW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKKysJICAgICMgaW4gdGhlIGFyY2hp dmUuCisrCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1hciAtV1IsLXUgLW8gJG9sZGxp YiAkb2xkb2JqcycKKysJICAgIDs7CisrICAgICAgICAgICopCisrCSAgICBpZiB0ZXN0ICIkR1hY IiA9IHllczsgdGhlbgorKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4K KysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRF Q0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11 cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli JworKwkgICAgICBlbHNlCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg LW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIg fCAkWHNlZGAgLW8gJGxpYicKKysJICAgICAgZmkKKysJICAgIGZpCisrCSAgICBsaW5rX2FsbF9k ZXBsaWJzX0NYWD15ZXMKKysJICAgIDs7CisrICAgICAgICBlc2FjCisrICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKyAgICAg ICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKyAgICAgICAgaW5oZXJpdF9ycGF0 aF9DWFg9eWVzCisrICAgICAgICA7OworKworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisr ICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAgICBLQ0MqKQorKwkgICAgIyBL dWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxlcgorKworKwkgICAgIyBL Q0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRoZSBvdXRwdXQgZmlsZQor KwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1VWCksIHNvIHJlbmFtZSB0 aGUgbGlicmFyeQorKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdpdGggdmVyc2lvbikgYWZ0 ZXIgbGlua2luZy4KKysJICAgIGFyY2hpdmVfY21kc19DWFg9J3RlbXBleHQ9YGVjaG8gJHNoYXJl ZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9XVwpL1xcXFxcMS9nJ1wnJ2A7 IHRlbXBsaWI9YGVjaG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsg JENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGli ICRsaWInCisrCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hh cmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcn YDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJg OyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0ZW1wbGliICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzOyBtdiBcJHRlbXBsaWIgJGxpYicKKysJICAg ICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQg bGlzdHMKKysJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQg ZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCisr CSAgICAjCisrCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZl bnQgdGhpcyBjb21waWxlciBmcm9tCisrCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0g b2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQorKwkgICAgIyBmcm9tIHRoZSBv dXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQorKwkg ICAgIyBkZXBlbmRlbmNpZXMuCisrCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxp c3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVk X2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxp c3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0 KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2Fj OyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworKworKwkgICAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgICBleHBvcnRfZHluYW1p Y19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisrCisrCSAgICAjIEFyY2hp dmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJ ICAgICMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMrKyBjb21waWxlci4K KysJICAgIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAkb2xk b2JqcycKKysJICAgIDs7CisrCSAgaWNwYyogfCBlY3BjKiApCisrCSAgICAjIEludGVsIEMrKwor KwkgICAgd2l0aF9nbnVfbGQ9eWVzCisrCSAgICAjIHZlcnNpb24gOC4wIGFuZCBhYm92ZSBvZiBp Y3BjIGNob2tlIG9uIG11bHRpcGx5IGRlZmluZWQgc3ltYm9scworKwkgICAgIyBpZiB3ZSBhZGQg JHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3RzLCBob3dldmVyIDcuMSBhbmQKKysJ ICAgICMgZWFybGllciBkbyBub3QgYWRkIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisrCSAgICBj YXNlIGAkQ0MgLVYgMj4mMWAgaW4KKysJICAgICAgKiJWZXJzaW9uIDcuIiopCisrCSAgICAgICAg YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCisrCQlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQg JHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZp bGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisrCQk7OworKwkgICAgICAqKSAgIyBWZXJz aW9uIDguMCBvciBuZXdlcgorKwkgICAgICAgIHRtcF9pZHluPQorKwkgICAgICAgIGNhc2UgJGhv c3RfY3B1IGluCisrCQkgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5bmFtaWMnOzsKKysJCWVzYWMK KysJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCisrCQlhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5 biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGli JworKwkJOzsKKysJICAgIGVzYWMKKysJICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwor KwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXIn CisrCSAgICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS0tZXhwb3J0LWR5bmFt aWMnCisrCSAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNo aXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworKwkgICAgOzsKKysgICAg ICAgICAgcGdDQyogfCBwZ2NwcCopCisrICAgICAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBDKysg Y29tcGlsZXIKKysJICAgIGNhc2UgYCRDQyAtVmAgaW4KKysJICAgICpwZ0NDXCBbMS01XSogfCAq cGdjcHBcIFsxLTVdKikKKysJICAgICAgcHJlbGlua19jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRl LmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5z dGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgor KwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUg XCoubyB8ICROTDJTUGAiJworKwkgICAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0ndHBsZGlyPVRl bXBsYXRlLmRpcn4KKysJCXJtIC1yZiAkdHBsZGlyfgorKwkJJENDIC0tcHJlbGlua19vYmplY3Rz IC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2xkb2JqcyRvbGRfZGVwbGlic34KKysJCSRB UiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5h bWUgXCoubyB8ICROTDJTUGB+CisrCQkkUkFOTElCICRvbGRsaWInCisrCSAgICAgIGFyY2hpdmVf Y21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAtcmYgJHRwbGRpcn4KKysJCSRD QyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3Rzfgor KwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKKysJICAgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CisrCQlybSAtcmYg JHRwbGRpcn4KKysJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0 cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9z dGRlcF9vYmplY3RzfgorKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3 bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkg ICAgICA7OworKwkgICAgKikgIyBWZXJzaW9uIDYgd2lsbCB1c2Ugd2VhayBzeW1ib2xzCisrCSAg ICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworKwkgICAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysKKysJICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAgd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBp biAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmll bmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVu aWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrICAgICAgICAgICAgOzsKKysJICBj eHgqKQorKwkgICAgIyBDb21wYXEgQysrCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNo YXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKysJICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR3bCRzb25hbWUgIC1vICRsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0 X3N5bWJvbHMnCisrCisrCSAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorKwkgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1ycGF0aCAkbGliZGlyJworKwkgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcl9DWFg9OgorKworKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgIyB3aGF0ICJoaWRk ZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICMKKysJICAgICMgVGhlcmUgZG9l c24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KKysJ ICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0 byBzdHJpcCB0aGVtCisrCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3Qg Z2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CisrCSAgICAjIGRlcGVuZGVuY2llcy4KKysJICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAt diBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiYDsgdGVtcGxpc3Q9YCRFQ0hPICJY JHRlbXBsaXN0IiB8ICRYc2VkIC1lICJzL1woXi4qbGQuKlwpXCggLipsZCAuKiRcKS9cMS8iYDsg bGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpl eHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2Vz YWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisrCSAgICA7OworKwkgIHhsKikKKysJ ICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCisrCSAgICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworKwkgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworKwkgICAgYXJj aGl2ZV9jbWRzX0NYWD0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICBpZiB0ZXN0ICJ4 JHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCisrCSAgICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5h bWUudmVyfgorKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIg Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorKwkJZWNobyAibG9jYWw6ICo7IH07IiA+ PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisrCQkkQ0MgLXFta3Nocm9iaiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0t dmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicK KysJICAgIGZpCisrCSAgICA7OworKwkgICopCisrCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNl ZCA1cWAgaW4KKysJICAgICpTdW5cIEMqKQorKwkgICAgICAjIFN1biBDKysgNS45CisrCSAgICAg IG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKKysJICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzJworKwkgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRl ZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1i b2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCisrCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYPSctUiRsaWJkaXInCisrCSAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVj X0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4g JGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNl PVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVu Y2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisrCSAgICAgIGNvbXBpbGVyX25lZWRzX29i amVjdF9DWFg9eWVzCisrCisrCSAgICAgICMgTm90IHN1cmUgd2hldGhlciBzb21ldGhpbmcgYmFz ZWQgb24KKysJICAgICAgIyAkQ0MgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNv bmZ0ZXN0JHNoYXJlZF9leHQgMj4mMQorKwkgICAgICAjIHdvdWxkIGJlIGJldHRlci4KKysJICAg ICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCisrCisrCSAgICAgICMgQXJjaGl2ZXMg Y29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZworKwkgICAg ICAjICJDQyAteGFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgU3VuIEMrKyBjb21waWxlci4gIFRoaXMg aXMKKysJICAgICAgIyBuZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0 ZXMgYXJlIGluY2x1ZGVkCisrCSAgICAgICMgaW4gdGhlIGFyY2hpdmUuCisrCSAgICAgIG9sZF9h cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXhhciAtbyAkb2xkbGliICRvbGRvYmpzJworKwkgICAgICA7 OworKwkgICAgZXNhYworKwkgICAgOzsKKysJZXNhYworKwk7OworKworKyAgICAgIGx5bnhvcyop CisrICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysJ bGRfc2hsaWJzX0NYWD1ubworKwk7OworKworKyAgICAgIG04OGsqKQorKyAgICAgICAgIyBGSVhN RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CisrICAgICAgICBsZF9zaGxpYnNf Q1hYPW5vCisrCTs7CisrCisrICAgICAgbXZzKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1l IGluCisrICAgICAgICAgIGN4eCopCisrCSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBs aWJyYXJ5IHN1cHBvcnQKKysJICAgIGxkX3NobGlic19DWFg9bm8KKysJICAgIDs7CisrCSAgKikK KysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAg bGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysJZXNhYworKwk7OworKworKyAgICAgIG5ldGJz ZCopCisrICAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18g Pi9kZXYvbnVsbDsgdGhlbgorKwkgIGFyY2hpdmVfY21kc19DWFg9JyRMRCAtQnNoYXJlYWJsZSAg LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkbGlua2VyX2ZsYWdzJworKwkgIHdsYXJjPQorKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWNfQ1hYPSctUiRsaWJkaXInCisrCSAgaGFyZGNvZGVfZGlyZWN0X0NYWD15ZXMKKysJICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubworKwlmaQorKwkjIFdvcmthcm91bmQgc29tZSBicm9r ZW4gcHJlLTEuNSB0b29sY2hhaW5zCisrCW91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNo YXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIGNvbmZ0ZXN0LiRv YmpleHQgfCAkU0VEIC1lICJzOi1sZ2NjIC1sYyAtbGdjYzo6IicKKysJOzsKKysKKysgICAgICAq bnRvKiB8ICpxbngqKQorKyAgICAgICAgbGRfc2hsaWJzX0NYWD15ZXMKKysJOzsKKysKKysgICAg ICBvcGVuYnNkMiopCisrICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIGFyZSBmYWlybHkg YnJva2VuCisrCWxkX3NobGlic19DWFg9bm8KKysJOzsKKysKKysgICAgICBvcGVuYnNkKikKKysJ aWYgdGVzdCAtZiAvdXNyL2xpYmV4ZWMvbGQuc287IHRoZW4KKysJICBoYXJkY29kZV9kaXJlY3Rf Q1hYPXllcworKwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrCSAgaGFyZGNvZGVf ZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKKysJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJl ZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRsaWInCisrCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisrCSAgaWYgdGVzdCAteiAiYGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3Rf Y3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCisrCSAgICBhcmNoaXZlX2V4cHN5bV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlLCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworKwkgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tRScKKysJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NY WD0iJHdsYXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hv bGUtYXJjaGl2ZScKKysJICBmaQorKwkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKysJ ZWxzZQorKwkgIGxkX3NobGlic19DWFg9bm8KKysJZmkKKysJOzsKKysKKysgICAgICBvc2YzKiB8 IG9zZjQqIHwgb3NmNSopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAg ICBLQ0MqKQorKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21w aWxlcgorKworKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlm IHRoZSBvdXRwdXQgZmlsZQorKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBI UC1VWCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQorKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUg KHdpdGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KKysJICAgIGFyY2hpdmVfY21kc19DWFg9J3Rl bXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW14oKTAtOUEtWmEtent9 XVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVjaG8gIiRsaWIiIHwgJFNFRCAtZSAicy9cJHt0 ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25hbWUgLW8gXCR0 ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKKysKKysJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJworKwkgICAgaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvcl9DWFg9OgorKworKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3Qg ZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCisrCSAgICAjIHRoZSBLQUkgQysrIGNvbXBpbGVy LgorKwkgICAgY2FzZSAkaG9zdCBpbgorKwkgICAgICBvc2YzKikgb2xkX2FyY2hpdmVfY21kc19D WFg9JyRDQyAtQnN0YXRpYyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OworKwkgICAgICAqKSBvbGRf YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7CisrCSAgICBlc2Fj CisrCSAgICA7OworKyAgICAgICAgICBSQ0MqKQorKwkgICAgIyBSYXRpb25hbCBDKysgMi40LjEK KysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAg bGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgY3h4KikKKysJICAgIGNhc2Ug JGhvc3QgaW4KKysJICAgICAgb3NmMyopCisrCSAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJICAgICAgICBhcmNoaXZl X2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3ds fS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0 cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisrCSAgICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysJCTs7CisrCSAg ICAgICopCisrCSAgICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgLWV4cGVjdF91bnJl c29sdmVkIFwqJworKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJHthbGxv d191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0 ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNl ZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli JworKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdmb3IgaSBpbiBgY2F0ICRleHBv cnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIg Pj4gJGxpYi5leHA7IGRvbmV+CisrCSAgICAgICAgICBlY2hvICItaGlkZGVuIj4+ICRsaWIuZXhw fgorKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9v YmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdz IC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBgdGVzdCAt biAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNl ZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGli fgorKwkgICAgICAgICAgJFJNICRsaWIuZXhwJworKwkgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKKysJCTs7CisrCSAgICBlc2FjCisrCisrCSAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CisrCisrCSAgICAjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KKysJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgIworKwkgICAg IyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGls ZXIgZnJvbQorKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBz byB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KKysJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQg dGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKKysJICAgICMgZGVwZW5kZW5j aWVzLgorKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJl ZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAkR1JFUCAt diAibGQ6ImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4u KmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBk byBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4 dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhz ZWQnCisrCSAgICA7OworKwkgICopCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKKysJICAgICAgY2FzZSAkaG9z dCBpbgorKwkgICAgICAgIG9zZjMqKQorKwkgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJEND IC1zaGFyZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7 d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3Jl Z2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKysJCSAg OzsKKysJICAgICAgICAqKQorKwkgICAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3lt ICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hP ICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0 ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisr CQkgIDs7CisrCSAgICAgIGVzYWMKKysKKysJICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Y19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKysJICAgICAgaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvcl9DWFg9OgorKworKwkgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCisrCSAgICAgICMgd2hhdCAiaGlkZGVu IiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgorKwkgICAg ICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KKysJICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlu a19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdS RVAgIlwtTCInCisrCisrCSAgICBlbHNlCisrCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgICBsZF9zaGxpYnNfQ1hYPW5vCisrCSAgICBmaQor KwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisrICAgICAgcHNvcyopCisr ICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAg ICAgIGxkX3NobGlic19DWFg9bm8KKysgICAgICAgIDs7CisrCisrICAgICAgc3Vub3M0KikKKysg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIENDKikKKysJICAgICMgU3Vu IEMrKyA0LngKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9y dAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgbGNjKikKKysJ ICAgICMgTHVjaWQKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJ ICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRf c2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgIGVzYWMKKysgICAgICAgIDs7CisrCisr ICAgICAgc29sYXJpcyopCisrICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAg ICBDQyopCisrCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCisrICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcworKwkgICAgbm9fdW5kZWZpbmVk X2ZsYWdfQ1hYPScgLXpkZWZzJworKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxv d191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKKysJICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRl eHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8g ImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CisrCSAgICAgICRDQyAtRyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3N+JFJNICRsaWIuZXhwJworKworKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 Jy1SJGxpYmRpcicKKysJICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisrCSAgICBj YXNlICRob3N0X29zIGluCisrCSAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0u KikgOzsKKysJICAgICAgKikKKysJCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUg YW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCisrCQkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlu a2VyX2ZsYWcnLgorKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXli ZSAyLjUuMT8pCisrCQl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9Jy16IGFsbGV4dHJhY3Qk Y29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCisrCSAgICAgICAgOzsKKysJICAgIGVzYWMK KysJICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcworKworKwkgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9J2VjaG8nCisrCisrCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVj dCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKKysJICAgICMgIkNDIC14YXIiLCB3aGVyZSAi Q0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcworKwkgICAgIyBuZWNlc3Nhcnkg dG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCisrCSAgICAj IGluIHRoZSBhcmNoaXZlLgorKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAteGFyIC1v ICRvbGRsaWIgJG9sZG9ianMnCisrCSAgICA7OworKyAgICAgICAgICBnY3gqKQorKwkgICAgIyBH cmVlbiBIaWxscyBDKysgQ29tcGlsZXIKKysJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKysKKysJICAgICMgVGhl IEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZlLgorKwkgICAg b2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAkTERGTEFHUyAtYXJjaGl2ZSAtbyAkb2xkbGliICRv bGRvYmpzJworKwkgICAgOzsKKysgICAgICAgICAgKikKKysJICAgICMgR05VIEMrKyBjb21waWxl ciB3aXRoIFNvbGFyaXMgbGlua2VyCisrCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0 ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKysJICAgICAgbm9fdW5kZWZpbmVkX2ZsYWdfQ1hY PScgJHt3bH0teiAke3dsfWRlZnMnCisrCSAgICAgIGlmICRDQyAtLXZlcnNpb24gfCAkR1JFUCAt diAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25h bWUgLW8gJGxpYicKKysJICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgorKwkJ ICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9m bGFnc34kUk0gJGxpYi5leHAnCisrCisrCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBp bGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cworKwkgICAgICAgICMgd2hhdCAi aGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgor KwkgICAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgorKwkgICAgICAgIG91dHB1dF92 ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQg Mj4mMSB8ICRHUkVQICJcLUwiJworKwkgICAgICBlbHNlCisrCSAgICAgICAgIyBnKysgMi43IGFw cGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcworKwkgICAgICAgICMg cGxhdGZvcm0uCisrCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HIC1ub3N0ZGxpYiAk TERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCisrCSAgICAgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQg JGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNo byAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KKysJCSAgJENDIC1HIC1ub3N0ZGxpYiAke3ds fS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKKysKKysJICAg ICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCisrCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCisrCSAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCisrCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAkQ0ZM QUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworKwkgICAgICBmaQor KworKwkgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tUiAkd2wkbGli ZGlyJworKwkgICAgICBjYXNlICRob3N0X29zIGluCisrCQlzb2xhcmlzMi5bMC01XSB8IHNvbGFy aXMyLlswLTVdLiopIDs7CisrCQkqKQorKwkJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9 JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0JGNvbnZlbmllbmNlICR7d2x9LXogJHt3bH1kZWZhdWx0 ZXh0cmFjdCcKKysJCSAgOzsKKysJICAgICAgZXNhYworKwkgICAgZmkKKysJICAgIDs7CisrICAg ICAgICBlc2FjCisrICAgICAgICA7OworKworKyAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5J WCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAu WzAyNF0qKQorKyAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0NYWD0nJHt3bH0teix0ZXh0JworKyAg ICAgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubworKyAgICAgIGhhcmRjb2RlX3NobGlicGF0 aF92YXJfQ1hYPW5vCisrICAgICAgcnVucGF0aF92YXI9J0xEX1JVTl9QQVRIJworKworKyAgICAg IGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICBDQyopCisrCSAgYXJjaGl2ZV9jbWRzX0NY WD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HICR7d2x9LUJl eHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKKysJICA7OworKwkqKQorKwkgIGFyY2hpdmVfY21kc19D WFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKKysJICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgIDs7CisrICAgICAgZXNhYwor KyAgICAgIDs7CisrCisrICAgICAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KikKKysJIyBO b3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3 ZSBkbyBub3QKKysJIyBsaW5rIHdpdGggLWxjLCBhbmQgdGhhdCB3b3VsZCBjYXVzZSBhbnkgc3lt Ym9scyB1c2VkIGZyb20gbGliYyB0bworKwkjIGFsd2F5cyBiZSB1bnJlc29sdmVkLCB3aGljaCBt ZWFucyBqdXN0IGFib3V0IG5vIGxpYnJhcnkgd291bGQKKysJIyBldmVyIGxpbmsgY29ycmVjdGx5 LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAorKwkjIHRob3VnaCwg d2hpY2ggZG9lcyBjYXRjaCBzb21lIGJhZCBzeW1ib2xzIGJ1dCBpc24ndCBhcyBoZWF2eS1oYW5k ZWQKKysJIyBhcyAteiBkZWZzLgorKwlub191bmRlZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4 dCcKKysJYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LG5vZGVmcycKKysJYXJjaGl2 ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrCWhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCisr CWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1SLCRsaWJkaXInCisrCWhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPSc6JworKwlsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMK KysJZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tQmV4cG9ydCcKKysJcnVucGF0 aF92YXI9J0xEX1JVTl9QQVRIJworKworKwljYXNlICRjY19iYXNlbmFtZSBpbgorKyAgICAgICAg ICBDQyopCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworKwkgICAgYXJjaGl2ZV9l eHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr CSAgICA7OworKwkgICopCisrCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3ds fS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisr CSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHt3bH0tQmV4cG9ydDok ZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJworKwkgICAgOzsKKysJZXNhYworKyAgICAgIDs7CisrCisrICAgICAg dGFuZGVtKikKKysgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisrICAgICAgICAgIE5DQyop CisrCSAgICAjIE5vblN0b3AtVVggTkNDIDMuMjAKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsK KysgICAgICAgICAgKikKKysJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAorKwkgICAgbGRfc2hsaWJzX0NYWD1ubworKwkgICAgOzsKKysgICAgICAgIGVzYWMK KysgICAgICAgIDs7CisrCisrICAgICAgdnh3b3JrcyopCisrICAgICAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKKysgICAgICAgIGxkX3NobGlic19DWFg9bm8K KysgICAgICAgIDs7CisrCisrICAgICAgKikKKysgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAorKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubworKyAgICAg ICAgOzsKKysgICAgZXNhYworKworKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7 IH0KKysgICAgdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1u bworKworKyAgICBHQ0NfQ1hYPSIkR1hYIgorKyAgICBMRF9DWFg9IiRMRCIKKysKKysgICAgIyMg Q0FWRUFUIEVNUFRPUjoKKysgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4g dGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKKysgICAgIyMgdGhlIHJ1bm5pbmcg b3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0 bHkKKysgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCisrICAgICMgRGVwZW5kZW5jaWVzIHRv IHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6CisrcHJlZGVw X29iamVjdHNfQ1hYPQorK3Bvc3RkZXBfb2JqZWN0c19DWFg9CisrcHJlZGVwc19DWFg9CisrcG9z dGRlcHNfQ1hYPQorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9CisrCisrY2F0ID4gY29u ZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKKytjbGFzcyBGb28KKyt7CisrcHVibGljOgorKyAgRm9v ICh2b2lkKSB7IGEgPSAwOyB9CisrcHJpdmF0ZToKKysgIGludCBhOworK307CisrX0xUX0VPRgor KworK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m NQorKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19z dGF0dXMpOyB9OyB0aGVuCisrICAjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJh Y3QgdGhlIG5lY2Vzc2FyeQorKyAgIyBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxh Z3MuCisrCisrICAjIFNlbnRpbmVsIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5v dCB3ZSBhcmUgYmVmb3JlCisrICAjIHRoZSBjb25mdGVzdCBvYmplY3QgZmlsZS4KKysgIHByZV90 ZXN0X29iamVjdF9kZXBzX2RvbmU9bm8KKysKKysgIGZvciBwIGluIGBldmFsICIkb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQiYDsgZG8KKysgICAgY2FzZSAkcCBpbgorKworKyAgICAtTCogfCAtUiog fCAtbCopCisrICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtM LFJ9IiBhbmQgdGhlIHBhdGguCisrICAgICAgICMgUmVtb3ZlIHRoZSBzcGFjZS4KKysgICAgICAg aWYgdGVzdCAkcCA9ICItTCIgfHwKKysgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KKysJ IHByZXY9JHAKKysJIGNvbnRpbnVlCisrICAgICAgIGVsc2UKKysJIHByZXY9CisrICAgICAgIGZp CisrCisrICAgICAgIGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0 aGVuCisrCSBjYXNlICRwIGluCisrCSAtTCogfCAtUiopCisrCSAgICMgSW50ZXJuYWwgY29tcGls ZXIgbGlicmFyeSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQorKwkgICAjIHByb3ZpZGVk IHRoZSB1c2VyLiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKKysJICAgIyB1 c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCisr CSAgIGlmIHRlc3QgLXogIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIjsgdGhlbgorKwkg ICAgIGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9IiR7cHJldn0ke3B9IgorKwkgICBlbHNl CisrCSAgICAgY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NYWD0iJHtjb21waWxlcl9saWJfc2Vh cmNoX3BhdGhfQ1hYfSAke3ByZXZ9JHtwfSIKKysJICAgZmkKKysJICAgOzsKKysJICMgVGhlICIt bCIgY2FzZSB3b3VsZCBuZXZlciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCisrCSAjIGxp bmtlZCwgc28gZG9uJ3QgYm90aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KKysJIGVzYWMKKysgICAg ICAgZWxzZQorKwkgaWYgdGVzdCAteiAiJHBvc3RkZXBzX0NYWCI7IHRoZW4KKysJICAgcG9zdGRl cHNfQ1hYPSIke3ByZXZ9JHtwfSIKKysJIGVsc2UKKysJICAgcG9zdGRlcHNfQ1hYPSIke3Bvc3Rk ZXBzX0NYWH0gJHtwcmV2fSR7cH0iCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKwor KyAgICAqLiRvYmpleHQpCisrICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2Jq ZWN0IGZpbGUgb25seSBzaG93cyB1cAorKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91 dHB1dC4KKysgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCisr CSBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lPXllcworKwkgY29udGludWUKKysgICAgICAgZmkK KysKKysgICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRo ZW4KKysJIGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0aGVuCisrCSAgIHByZWRl cF9vYmplY3RzX0NYWD0iJHAiCisrCSBlbHNlCisrCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHBy ZWRlcF9vYmplY3RzX0NYWCAkcCIKKysJIGZpCisrICAgICAgIGVsc2UKKysJIGlmIHRlc3QgLXog IiRwb3N0ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgorKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIk cCIKKysJIGVsc2UKKysJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHBvc3RkZXBfb2JqZWN0c19D WFggJHAiCisrCSBmaQorKyAgICAgICBmaQorKyAgICAgICA7OworKworKyAgICAqKSA7OyAjIEln bm9yZSB0aGUgcmVzdC4KKysKKysgICAgZXNhYworKyAgZG9uZQorKworKyAgIyBDbGVhbiB1cC4K KysgIHJtIC1mIGEub3V0IGEuZXhlCisrZWxzZQorKyAgZWNobyAibGlidG9vbC5tNDogZXJyb3I6 IHByb2JsZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCisrZmkKKysKKyskUk0gLWYgY29u ZmVzdC4kb2JqZXh0CisrCisrIyBQT1JUTUU6IG92ZXJyaWRlIGFib3ZlIHRlc3Qgb24gc3lzdGVt cyB3aGVyZSBpdCBpcyBicm9rZW4KKytjYXNlICRob3N0X29zIGluCisraW50ZXJpeFszLTldKikK KysgICMgSW50ZXJpeCAzLjUgaW5zdGFsbHMgY29tcGxldGVseSBob3NlZCAubGEgZmlsZXMgZm9y IEMrKywgc28gcmF0aGVyIHRoYW4KKysgICMgaGFjayBhbGwgYXJvdW5kIGl0LCBsZXQncyBqdXN0 IHRydXN0ICJnKysiIHRvIERUUlQuCisrICBwcmVkZXBfb2JqZWN0c19DWFg9CisrICBwb3N0ZGVw X29iamVjdHNfQ1hYPQorKyAgcG9zdGRlcHNfQ1hYPQorKyAgOzsKKysKKytsaW51eCopCisrICBj YXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KKysgICpTdW5cIEMqKQorKyAgICAjIFN1biBD KysgNS45CisrCisrICAgICMgVGhlIG1vcmUgc3RhbmRhcmRzLWNvbmZvcm1pbmcgc3RscG9ydDQg bGlicmFyeSBpcworKyAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2 b2lkIHNwZWNpZnlpbmcKKysgICAgIyBpdCBpZiBpdCdzIGluIENYWEZMQUdTLiBJZ25vcmUgbGli Q3J1biBhcworKyAgICAjIC1saWJyYXJ5PXN0bHBvcnQ0IGRlcGVuZHMgb24gaXQuCisrICAgIGNh c2UgIiAkQ1hYICRDWFhGTEFHUyAiIGluCisrICAgICoiIC1saWJyYXJ5PXN0bHBvcnQ0ICIqKQor KyAgICAgIHNvbGFyaXNfdXNlX3N0bHBvcnQ0PXllcworKyAgICAgIDs7CisrICAgIGVzYWMKKysK KysgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAg ICBwb3N0ZGVwc19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysg ICAgOzsKKysgIGVzYWMKKysgIDs7CisrCisrc29sYXJpcyopCisrICBjYXNlICRjY19iYXNlbmFt ZSBpbgorKyAgQ0MqKQorKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBv cnQ0IGxpYnJhcnkgaXMKKysgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5 LiBBdm9pZCBzcGVjaWZ5aW5nCisrICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3Jl IGxpYkNydW4gYXMKKysgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgorKyAg ICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgorKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAi KikKKysgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKKysgICAgICA7OworKyAgICBlc2Fj CisrCisrICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1nb29kIHNldHVwIG9mIHNo YXJlZCBsaWJyYXJpZXMgZm9yCisrICAgICMgU3VuIGNvbXBpbGVyIHZlcnNpb25zIGJlZm9yZSA1 LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKKysgICAgIyBhcmNoaXZlIHdpbGwgYmUg bGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUgYnVncy4KKysgICAgaWYg dGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4KKysgICAgICBwb3N0ZGVw c19DWFg9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKKysgICAgZmkKKysgICAgOzsKKysg IGVzYWMKKysgIDs7CisrZXNhYworKworKworK2Nhc2UgIiAkcG9zdGRlcHNfQ1hYICIgaW4KKysq IiAtbGMgIiopIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubyA7OworK2VzYWMKKysgY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0KKytpZiB0ZXN0IC1uICIke2NvbXBpbGVyX2xpYl9zZWFy Y2hfcGF0aF9DWFh9IjsgdGhlbgorKyBjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYPWBlY2hv ICIgJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSIgfCAke1NFRH0gLWUgJ3MhIC1MISAh ZycgLWUgJ3MhXiAhISdgCisrZmkKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9CisrbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PQorK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0KKysKKyt7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUMiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2Ug UElDLi4uICIgPiY2OyB9CisrCisrICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0 aWMsIHdsLCBldGMuCisrICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgorKyAgICBsdF9wcm9n X2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY PSctc3RhdGljJworKworKyAgICBjYXNlICRob3N0X29zIGluCisrICAgIGFpeCopCisrICAgICAg IyBBbGwgQUlYIGNvZGUgaXMgUElDLgorKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCisrCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCisrCWx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrICAgICAgZmkKKysgICAgICA7OworKwor KyAgICBhbWlnYW9zKikKKysgICAgICBjYXNlICRob3N0X2NwdSBpbgorKyAgICAgIHBvd2VycGMp CisrICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAor KyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCisrICAgICAgICA7 OworKyAgICAgIG02OGspCisrICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2 ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAorKyAgICAgICAgICAgICMg YWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhp bmcgYmV0dGVyLAorKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCisrICAgICAgICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJl c3RvcmUtYTQnCisrICAgICAgICA7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKworKyAgICBi ZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3Nm NSopCisrICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCisrICAgICAg OzsKKysgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBwdzMyKiB8IGNlZ2NjKikKKysgICAg ICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVy IGl0IGlzIGJlaW5nCisrICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQg c2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KKysgICAgICAjIEFsdGhvdWdoIHRo ZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxl CisrICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKKysgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1ERExMX0VYUE9SVCcKKysgICAgICA7OworKyAgICBkYXJ3 aW4qIHwgcmhhcHNvZHkqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxh dGZvcm0KKysgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZp bGVzCisrICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZm5vLWNvbW1vbicKKysgICAg ICA7OworKyAgICAqZGpncHAqKQorKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFy ZWQgbGlicmFyaWVzIGF0IGFsbAorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KKysg ICAgICA7OworKyAgICBpbnRlcml4WzMtOV0qKQorKyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1m cGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCisrICAgICAgIyBJbnN0ZWFk LCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1bnRpbWUuCisrICAgICAgOzsKKysg ICAgc3lzdjQqTVAqKQorKyAgICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KKysJbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPS1LY29uZm9ybV9waWMKKysgICAgICBmaQorKyAgICAgIDs7Cisr ICAgIGhwdXgqKQorKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAt VVgsIGJ1dCBub3QgZm9yIDMyLWJpdAorKyAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVY LCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZworKyAgICAgICMgc2V0cyB0aGUg ZGVmYXVsdCBUTFMgbW9kZWwgYW5kIGFmZmVjdHMgaW5saW5pbmcuCisrICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KKysgICAgICBocHBhKjY0KikKKysJOzsKKysgICAgICAqKQorKwlsdF9wcm9nX2Nv bXBpbGVyX3BpY19DWFg9Jy1mUElDJworKwk7OworKyAgICAgIGVzYWMKKysgICAgICA7OworKyAg ICAqcW54KiB8ICpudG8qKQorKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8g ZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCisrICAgICAgIyBpdCB3aWxsIGNv cmVkdW1wLgorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMgLXNoYXJlZCcK KysgICAgICA7OworKyAgICAqKQorKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQ SUMnCisrICAgICAgOzsKKysgICAgZXNhYworKyAgZWxzZQorKyAgICBjYXNlICRob3N0X29zIGlu CisrICAgICAgYWl4WzQtOV0qKQorKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCisrCWlmIHRlc3Qg IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisrCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBw cm9jZXNzb3IKKysJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJworKwll bHNlCisrCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctYm5zbyAtYkk6L2xpYi9zeXNj YWxscy5leHAnCisrCWZpCisrCTs7CisrICAgICAgY2hvcnVzKikKKysJY2FzZSAkY2NfYmFzZW5h bWUgaW4KKysJY3hjaDY4KikKKysJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICMg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgQ1hYKT0iLS1ub19hdXRvX2luc3Rh bnRpYXRpb24gLXUgX19tYWluIC11IF9fcHJlbWFpbiAtdSBfYWJvcnQgLXIgJENPT0xfRElSL2xp Yi9saWJPcmIuYSAkTVZNRV9ESVIvbGliL0NDL2xpYkMuYSAkTVZNRV9ESVIvbGliL2NsYXNzaXgv bGliY3gucy5hIgorKwkgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBkZ3V4KikKKysJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KKysJICBlYysrKikKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLUtQSUMnCisrCSAgICA7OworKwkgIGdoY3gqKQorKwkgICAgIyBHcmVlbiBIaWxscyBDKysg Q29tcGlsZXIKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKKysJICAgIDs7 CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBmcmVlYnNkKiB8IGRyYWdv bmZseSopCisrCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKKysJOzsKKysgICAgICBocHV4OSogfCBo cHV4MTAqIHwgaHB1eDExKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCisrCSAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiICE9IGlhNjQ7IHRoZW4KKysJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPScrWicK KysJICAgIGZpCisrCSAgICA7OworKwkgIGFDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nJHt3bH0tYSAk e3dsfWFyY2hpdmUnCisrCSAgICBjYXNlICRob3N0X2NwdSBpbgorKwkgICAgaHBwYSo2NCp8aWE2 NCopCisrCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKKysJICAgICAgOzsKKysJICAgICopCisrCSAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCisrCSAgICAgIDs7CisrCSAgICBlc2Fj CisrCSAgICA7OworKwkgICopCisrCSAgICA7OworKwllc2FjCisrCTs7CisrICAgICAgaW50ZXJp eCopCisrCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBDKysgKG5vIHNoYXJlZCBs aWJzKQorKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/CisrCTs7CisrICAgICAgaXJpeDUq IHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyop CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCisrCSAgICAjIENDIHBpYyBmbGFnIC1LUElD IGlzIHRoZSBkZWZhdWx0LgorKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJZXNhYworKwk7 OworKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisr CSAgS0NDKikKKysJICAgICMgS0FJIEMrKyBDb21waWxlcgorKwkgICAgbHRfcHJvZ19jb21waWxl cl93bF9DWFg9Jy0tYmFja2VuZCAtV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hY PSctZlBJQycKKysJICAgIDs7CisrCSAgZWNwYyogKQorKwkgICAgIyBvbGQgSW50ZWwgQysrIGZv ciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgorKwkgICAgbHRfcHJvZ19jb21w aWxlcl93bF9DWFg9Jy1XbCwnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElD JworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJworKwkgICAgOzsK KysJICBpY3BjKiApCisrCSAgICAjIEludGVsIEMrKywgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUg d2l0aCBHQ0MuCisrCSAgICAjIElDQyAxMCBkb2Vzbid0IGFjY2VwdCAtS1BJQyBhbnkgbW9yZS4K KysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctZlBJQycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0n LXN0YXRpYycKKysJICAgIDs7CisrCSAgcGdDQyogfCBwZ2NwcCopCisrCSAgICAjIFBvcnRsYW5k IEdyb3VwIEMrKyBjb21waWxlcgorKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwn CisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mcGljJworKwkgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKKysJICAgIDs7CisrCSAgY3h4KikKKysJICAg ICMgQ29tcGFxIEMrKworKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAg SXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQorKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0 IFVuaXggb2JqZWN0cyBhcmUgUElDLgorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQor KwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKKysJICAgIDs7 CisrCSAgeGxjKiB8IHhsQyopCisrCSAgICAjIElCTSBYTCA4LjAgb24gUFBDCisrCSAgICBsdF9w cm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLXFwaWMnCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1xc3RhdGljbGlu aycKKysJICAgIDs7CisrCSAgKikKKysJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBp bgorKwkgICAgKlN1blwgQyopCisrCSAgICAgICMgU3VuIEMrKyA1LjkKKysJICAgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKKysJICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfQ1hYPSctQnN0YXRpYycKKysJICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1Rb3B0 aW9uIGxkICcKKysJICAgICAgOzsKKysJICAgIGVzYWMKKysJICAgIDs7CisrCWVzYWMKKysJOzsK KysgICAgICBseW54b3MqKQorKwk7OworKyAgICAgIG04OGsqKQorKwk7OworKyAgICAgIG12cyop CisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisrCSAgY3h4KikKKysJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLVcgYyxleHBvcnRhbGwnCisrCSAgICA7OworKwkgICopCisrCSAgICA7Owor Kwllc2FjCisrCTs7CisrICAgICAgbmV0YnNkKikKKysJOzsKKysgICAgICAqcW54KiB8ICpudG8q KQorKyAgICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJl ZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKKysgICAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KKysg ICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMgLXNoYXJlZCcKKysgICAgICAg IDs7CisrICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQorKwljYXNlICRjY19iYXNlbmFtZSBp bgorKwkgIEtDQyopCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNrZW5kIC1X bCwnCisrCSAgICA7OworKwkgIFJDQyopCisrCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQorKwkg ICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJworKwkgICAgOzsKKysJICBjeHgqKQor KwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hY PSctV2wsJworKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBw ZWFycyB0aGF0IGFsbCBBbHBoYQorKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXgg b2JqZWN0cyBhcmUgUElDLgorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQorKwkgICAg bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKKysJICAgIDs7CisrCSAg KikKKysJICAgIDs7CisrCWVzYWMKKysJOzsKKysgICAgICBwc29zKikKKysJOzsKKysgICAgICBz b2xhcmlzKikKKysJY2FzZSAkY2NfYmFzZW5hbWUgaW4KKysJICBDQyopCisrCSAgICAjIFN1biBD KysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCisrCSAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Y19DWFg9Jy1LUElDJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRp YycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctUW9wdGlvbiBsZCAnCisrCSAgICA7 OworKwkgIGdjeCopCisrCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgorKwkgICAgbHRf cHJvZ19jb21waWxlcl9waWNfQ1hYPSctUElDJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsK KysJZXNhYworKwk7OworKyAgICAgIHN1bm9zNCopCisrCWNhc2UgJGNjX2Jhc2VuYW1lIGluCisr CSAgQ0MqKQorKwkgICAgIyBTdW4gQysrIDQueAorKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNf Q1hYPSctcGljJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycK KysJICAgIDs7CisrCSAgbGNjKikKKysJICAgICMgTHVjaWQKKysJICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0nLXBpYycKKysJICAgIDs7CisrCSAgKikKKysJICAgIDs7CisrCWVzYWMKKysJ OzsKKysgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3Bl blVOSVgqKQorKwljYXNlICRjY19iYXNlbmFtZSBpbgorKwkgIENDKikKKysJICAgIGx0X3Byb2df Y29tcGlsZXJfd2xfQ1hYPSctV2wsJworKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct S1BJQycKKysJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCisrCSAg ICA7OworKwllc2FjCisrCTs7CisrICAgICAgdGFuZGVtKikKKysJY2FzZSAkY2NfYmFzZW5hbWUg aW4KKysJICBOQ0MqKQorKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIwCisrCSAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJworKwkgICAgOzsKKysJICAqKQorKwkgICAgOzsKKysJ ZXNhYworKwk7OworKyAgICAgIHZ4d29ya3MqKQorKwk7OworKyAgICAgICopCisrCWx0X3Byb2df Y29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KKysJOzsKKysgICAgZXNhYworKyAgZmkK KysKKytjYXNlICRob3N0X29zIGluCisrICAjIEZvciBwbGF0Zm9ybXMgd2hpY2ggZG8gbm90IHN1 cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKKysgICpkamdwcCopCisrICAgIGx0X3By b2dfY29tcGlsZXJfcGljX0NYWD0KKysgICAgOzsKKysgICopCisrICAgIGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWD0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCAtRFBJQyIKKysgICAgOzsKKytl c2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X3Byb2dfY29tcGls ZXJfcGljX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiID4m NjsgfQorKworKworKworKyMKKysjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgUElDIGZsYWcgYWN0 dWFsbHkgd29ya3MuCisrIworK2lmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgi OyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBp bGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggd29ya3MiID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYIHdvcmtzLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY193b3Jrc19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPW5vCisr ICAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CisrICAgZWNobyAiJGx0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisrICAgbHRfY29tcGlsZXJfZmxh Zz0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCAtRFBJQyIKKysgICAjIEluc2VydCB0aGUgb3B0 aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAgICMg KDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRoZSBl bmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRhaW4g YmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3QgYSBo eXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgIyBUaGUgb3B0 aW9uIGlzIHJlZmVyZW5jZWQgdmlhIGEgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW5nIHNlZC4K KysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysgICAtZSAnczou KkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAgLWUgJ3M6IFte IF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1lICdzOiQ6ICRs dF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE0Nzk3OiAkbHRf Y29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikK KysgICBhY19zdGF0dXM9JD8KKysgICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8gIiRh c19tZToxNDgwMTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1 cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCisrICAgICAjIFRoZSBjb21waWxlciBj YW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAorKyAg ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFs IG91dHB1dC4KKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNl ZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBj b25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy MiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgorKyAg ICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFg9eWVzCisrICAgICBmaQorKyAg IGZpCisrICAgJFJNIGNvbmZ0ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWCIgPiY1CisrJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgiID4mNjsgfQorKworK2lm IHRlc3QgeCIkbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4K KysgICAgY2FzZSAkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIGluCisrICAgICAiIiB8ICIgIiop IDs7CisrICAgICAqKSBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9IiAkbHRfcHJvZ19jb21waWxl cl9waWNfQ1hYIiA7OworKyAgICAgZXNhYworK2Vsc2UKKysgICAgbHRfcHJvZ19jb21waWxlcl9w aWNfQ1hYPQorKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0NYWD1ubwor K2ZpCisrCisrZmkKKysKKysKKysKKysjCisrIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIHN0YXRp YyBmbGFnIGFjdHVhbGx5IHdvcmtzLgorKyMKKyt3bD0kbHRfcHJvZ19jb21waWxlcl93bF9DWFgg ZXZhbCBsdF90bXBfc3RhdGljX2ZsYWc9XCIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYXCIK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRp YyBmbGFnICRsdF90bXBfc3RhdGljX2ZsYWcgd29ya3MiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzLi4u ICIgPiY2OyB9CisraWYgdGVzdCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19D WFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPW5vCisrICAgc2F2ZV9M REZMQUdTPSIkTERGTEFHUyIKKysgICBMREZMQUdTPSIkTERGTEFHUyAkbHRfdG1wX3N0YXRpY19m bGFnIgorKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFj X2V4dAorKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0ZXN0IC1zIGNv bmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgorKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4g YW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBu byBpZiB0aGVyZSBhcmUgd2FybmluZ3MKKysgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0 aGVuCisrICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisrICAg ICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgICAkRUNITyAiWCRfbHRfbGlua2VyX2Jv aWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBjb25mdGVzdC5leHAKKysgICAgICAgJFNF RCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisrICAgICAgIGlm IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisrICAgICAg ICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYPXllcworKyAgICAgICBmaQor KyAgICAgZWxzZQorKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9 eWVzCisrICAgICBmaQorKyAgIGZpCisrICAgJFJNIC1yIGNvbmZ0ZXN0KgorKyAgIExERkxBR1M9 IiRzYXZlX0xERkxBR1MiCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA+JjUKKyskYXNfZWNo byAiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY2OyB9CisrCisraWYg dGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID0geHllczsgdGhl bgorKyAgICA6CisrZWxzZQorKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9CisrZmkK KysKKysKKysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlm ICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCtzZXR9 IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBs dF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9bm8KKysgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2 L251bGwKKysgICBta2RpciBjb25mdGVzdAorKyAgIGNkIGNvbmZ0ZXN0CisrICAgbWtkaXIgb3V0 CisrICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNf ZXh0CisrCisrICAgbHRfY29tcGlsZXJfZmxhZz0iLW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0 IgorKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxB R1MgdmFyaWFibGUsIG9yCisrICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25m dGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KKysgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBp dHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCisrICAgIyB3aXRo IGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNv cnJlY3RseS4KKysgICBsdF9jb21waWxlPWBlY2hvICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKKysg ICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCisrICAg LWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAorKyAgIC1l ICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCisrICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE0 ODk2OiAkbHRfY29tcGlsZVwiIiA+JjUpCisrICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9j b25mdGVzdC5lcnIpCisrICAgYWNfc3RhdHVzPSQ/CisrICAgY2F0IG91dC9jb25mdGVzdC5lcnIg PiY1CisrICAgZWNobyAiJGFzX21lOjE0OTAwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgICBp ZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAor KyAgIHRoZW4KKysgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0 aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisrICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBh cmUgd2FybmluZ3MKKysgICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAk WHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorKyAgICAgJFNFRCAnL14kL2Q7IC9e ICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKysgICAgIGlmIHRlc3Qg ISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRl c3QuZXIyID4vZGV2L251bGw7IHRoZW4KKysgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Q1hYPXllcworKyAgICAgZmkKKysgICBmaQorKyAgIGNobW9kIHUrdyAuIDI+JjUKKysgICAkUk0g Y29uZnRlc3QqCisrICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBv dXQvaWlfZmlsZXMvIGZvcgorKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgorKyAgIHRlc3Qg LWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmls ZXMKKysgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0CisrICAgY2QgLi4KKysgICAkUk0gLXIgY29u ZnRlc3QKKysgICAkUk0gY29uZnRlc3QqCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjUKKyskYXNfZWNo byAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY2OyB9CisrCisrCisrCisrICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMg LWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29t cGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9CisraWYgdGVz dCAiJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9j X29fQ1hYPW5vCisrICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCisrICAgbWtkaXIgY29u ZnRlc3QKKysgICBjZCBjb25mdGVzdAorKyAgIG1rZGlyIG91dAorKyAgIGVjaG8gIiRsdF9zaW1w bGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAorKworKyAgIGx0X2NvbXBp bGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKKysgICAjIEluc2VydCB0aGUg b3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlhYmxlLCBvcgorKyAg ICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwgb3IgKDMpIGF0IHRo ZSBlbmQuCisrICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRvZXMgbm90IGNvbnRh aW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucworKyAgICMgd2l0aCBhIGRvbGxhciBzaWduIChub3Qg YSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHkuCisrICAgbHRfY29t cGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCisrICAgLWUgJ3M6LipGTEFHU31cezAs MVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAorKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0 XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKKysgICAtZSAnczokOiAkbHRfY29tcGlsZXJf ZmxhZzonYAorKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNDk0ODogJGx0X2NvbXBpbGVcIiIg PiY1KQorKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQorKyAgIGFj X3N0YXR1cz0kPworKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQorKyAgIGVjaG8gIiRhc19t ZToxNDk1MjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAgaWYgKGV4aXQgJGFjX3N0YXR1cykg JiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKKysgICB0aGVuCisrICAgICAjIFRo ZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj b2duaXplZAorKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCisrICAgICAk RUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IG91 dC9jb25mdGVzdC5leHAKKysgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3Qu ZXJyID5vdXQvY29uZnRlc3QuZXIyCisrICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVy MiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0 aGVuCisrICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKKysgICAgIGZpCisr ICAgZmkKKysgICBjaG1vZCB1K3cgLiAyPiY1CisrICAgJFJNIGNvbmZ0ZXN0KgorKyAgICMgU0dJ IEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVzLyBmb3IKKysg ICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KKysgICB0ZXN0IC1kIG91dC9paV9maWxlcyAmJiAk Uk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCisrICAgJFJNIG91dC8qICYm IHJtZGlyIG91dAorKyAgIGNkIC4uCisrICAgJFJNIC1yIGNvbmZ0ZXN0CisrICAgJFJNIGNvbmZ0 ZXN0KgorKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBp bGVyX2Nfb19DWFgiID4mNjsgfQorKworKworKworKworK2hhcmRfbGlua3M9Im5vdHRlc3RlZCIK KytpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA9IG5vICYmIHRlc3QgIiRu ZWVkX2xvY2tzIiAhPSBubzsgdGhlbgorKyAgIyBkbyBub3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZSBv ZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCisrICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgaWYgd2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBpZiB3ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MuLi4gIiA+ JjY7IH0KKysgIGhhcmRfbGlua3M9eWVzCisrICAkUk0gY29uZnRlc3QqCisrICBsbiBjb25mdGVz dC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubworKyAgdG91Y2ggY29u ZnRlc3QuYQorKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+JjUgfHwgaGFyZF9saW5rcz1u bworKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9udWxsICYmIGhhcmRfbGlua3M9 bm8KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRoYXJkX2xpbmtzIiA+ JjUKKyskYXNfZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQorKyAgaWYgdGVzdCAiJGhhcmRfbGlu a3MiID0gbm87IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1 bnNhZmUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5vdCBz dXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mMjt9CisrICAg IG5lZWRfbG9ja3M9d2FybgorKyAgZmkKKytlbHNlCisrICBuZWVkX2xvY2tzPW5vCisrZmkKKysK KysKKysKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIg dGhlICRjb21waWxlciBsaW5rZXIgKCRMRCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExE KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9CisrCisrICBleHBvcnRfc3lt Ym9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9s X3BpcGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1i b2xzJworKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgYWl4WzQtOV0qKQorKyAgICAjIElmIHdlJ3Jl IHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAiLUMiIG9wdGlvbi4KKysgICAg IyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBkb24ndCBkZW1hbmdsZSB3 aXRoIEdOVSBubQorKyAgICBpZiAkTk0gLVYgMj4mMSB8ICRHUkVQICdHTlUnID4gL2Rldi9udWxs OyB0aGVuCisrICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQnBnICRsaWJvYmpz ICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0g IkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHBy aW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAgIGVsc2UK KysgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252 ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8 fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwk IDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCisrICAgIGZpCisrICAgIDs7 CisrICBwdzMyKikKKysgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9IiRsdGRsbF9jbWRzIgor KyAgOzsKKysgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCisrICAgIGV4cG9ydF9zeW1ib2xz X2NtZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlw ZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdSU11bIF0vcy8uKlsgXVwoW14gXSpcKS9cMSBEQVRBLzsv Xi4qWyBdX19ubV9fL3MvXi4qWyBdX19ubV9fXChbXiBdKlwpWyBdW14gXSovXDEgREFUQS87L15J WyBdL2Q7L15bQUlUV11bIF0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3lt Ym9scycKKysgIDs7CisrICAqKQorKyAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRs aWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEICdcJydzLy4q IC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworKyAgOzsKKysgIGVzYWMK KysgIGV4Y2x1ZGVfZXhwc3ltc19DWFg9J19HTE9CQUxfT0ZGU0VUX1RBQkxFX3xfR0xPQkFMX19G W0lEXV8uKicKKysKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkbGRfc2hs aWJzX0NYWCIgPiY1CisrJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+JjY7IH0KKyt0ZXN0ICIk bGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCisrCisrd2l0aF9nbnVf bGRfQ1hYPSR3aXRoX2dudV9sZAorKworKworKworKworKworKworKyMKKysjIERvIHdlIG5lZWQg dG8gZXhwbGljaXRseSBsaW5rIGxpYmM/CisrIworK2Nhc2UgIngkYXJjaGl2ZV9jbWRzX25lZWRf bGNfQ1hYIiBpbgorK3h8eHllcykKKysgICMgQXNzdW1lIC1sYyBzaG91bGQgYmUgYWRkZWQKKysg IGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKKysKKysgIGlmIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorKyAgICBjYXNlICRhcmNoaXZl X2NtZHNfQ1hYIGluCisrICAgIConficqKQorKyAgICAgICMgRklYTUU6IHdlIG1heSBoYXZlIHRv IGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNlcy4KKysgICAgICA7OworKyAgICAnJEND ICcqKQorKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBjb21waWxlciBpbXBsaWNpdGx5IGxpbmtz IHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKKysgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBj b21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKKysgICAgICAjIHRvIGxk LCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2Vk IGluIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhw bGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KKysgICAgICAkUk0gY29uZnRlc3QqCisrICAg ICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 CisrCisrICAgICAgaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGls ZVwiIikgPiY1CisrICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorKyAgYWNfc3RhdHVzPSQ/Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4KKysgICAgICAgIHNvbmFtZT1j b25mdGVzdAorKyAgICAgICAgbGliPWNvbmZ0ZXN0CisrICAgICAgICBsaWJvYmpzPWNvbmZ0ZXN0 LiRhY19vYmpleHQKKysgICAgICAgIGRlcGxpYnM9CisrICAgICAgICB3bD0kbHRfcHJvZ19jb21w aWxlcl93bF9DWFgKKysJcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWAorKyAgICAg ICAgY29tcGlsZXJfZmxhZ3M9LXYKKysgICAgICAgIGxpbmtlcl9mbGFncz0tdgorKyAgICAgICAg dmVyc3RyaW5nPQorKyAgICAgICAgb3V0cHV0X29iamRpcj0uCisrICAgICAgICBsaWJuYW1lPWNv bmZ0ZXN0CisrICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRl ZmluZWRfZmxhZ19DWFgKKysgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0KKysgICAg ICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFyY2hpdmVfY21kc19DWFgg Mlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiIpID4mNQorKyAg KGV2YWwgJGFyY2hpdmVfY21kc19DWFggMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYv bnVsbCAyXD5cJjEpIDI+JjUKKysgIGFjX3N0YXR1cz0kPworKyAgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9Cisr ICAgICAgICB0aGVuCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCisrICAgICAgICBl bHNlCisrCSAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcworKyAgICAgICAgZmkKKysgICAg ICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxh ZworKyAgICAgIGVsc2UKKysgICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorKyAgICAgIGZp CisrICAgICAgJFJNIGNvbmZ0ZXN0KgorKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4mNQorKyRhc19lY2hvICIkYXJj aGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiA+JjY7IH0KKysgICAgICA7OworKyAgICBlc2FjCisrICBm aQorKyAgOzsKKytlc2FjCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrCisrICAgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MiID4m NQorKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4u LiAiID4mNjsgfQorKworK2xpYnJhcnlfbmFtZXNfc3BlYz0KKytsaWJuYW1lX3NwZWM9J2xpYiRu YW1lJworK3NvbmFtZV9zcGVjPQorK3NocmV4dF9jbWRzPSIuc28iCisrcG9zdGluc3RhbGxfY21k cz0KKytwb3N0dW5pbnN0YWxsX2NtZHM9CisrZmluaXNoX2NtZHM9CisrZmluaXNoX2V2YWw9Cisr c2hsaWJwYXRoX3Zhcj0KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9dW5rbm93bgorK3Zl cnNpb25fdHlwZT1ub25lCisrZHluYW1pY19saW5rZXI9IiRob3N0X29zIGxkLnNvIgorK3N5c19s aWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGliIgorK25lZWRfbGliX3ByZWZpeD11 bmtub3duCisraGFyZGNvZGVfaW50b19saWJzPW5vCisrCisrIyB3aGVuIHlvdSBzZXQgbmVlZF92 ZXJzaW9uIHRvIG5vLCBtYWtlIHN1cmUgaXQgZG9lcyBub3QgY2F1c2UgLXNldF92ZXJzaW9uCisr IyBmbGFncyB0byBiZSBsZWZ0IHdpdGhvdXQgYXJndW1lbnRzCisrbmVlZF92ZXJzaW9uPXVua25v d24KKysKKytjYXNlICRob3N0X29zIGluCisrYWl4MyopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAkbGlibmFtZS5hJworKyAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICisrCisrICAj IEFJWCAzIGhhcyBubyB2ZXJzaW9uaW5nIHN1cHBvcnQsIHNvIHdlIGFwcGVuZCBhIG1ham9yIHZl cnNpb24gdG8gdGhlIG5hbWUuCisrICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJworKyAgOzsKKysKKythaXhbNC05XSopCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhl bgorKyAgICAjIEFJWCA1IHN1cHBvcnRzIElBNjQKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICAgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBlbHNlCisrICAgICMgV2l0aCBHQ0MgdXAg dG8gMi45NS54LCBjb2xsZWN0MiB3b3VsZCBjcmVhdGUgYW4gaW1wb3J0IGZpbGUKKysgICAgIyBm b3IgZGVwZW5kZW5jZSBsaWJyYXJpZXMuICBUaGUgaW1wb3J0IGZpbGUgd291bGQgc3RhcnQgd2l0 aAorKyAgICAjIHRoZSBsaW5lIGAjISAuJy4gIFRoaXMgd291bGQgY2F1c2UgdGhlIGdlbmVyYXRl ZCBsaWJyYXJ5IHRvCisrICAgICMgZGVwZW5kIG9uIGAuJywgYWx3YXlzIGFuIGludmFsaWQgbGli cmFyeS4gIFRoaXMgd2FzIGZpeGVkIGluCisrICAgICMgZGV2ZWxvcG1lbnQgc25hcHNob3RzIG9m IEdDQyBwcmlvciB0byAzLjAuCisrICAgIGNhc2UgJGhvc3Rfb3MgaW4KKysgICAgICBhaXg0IHwg YWl4NC5bMDFdIHwgYWl4NC5bMDFdLiopCisrICAgICAgaWYgeyBlY2hvICcjaWYgX19HTlVDX18g PiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDk3KScKKysJICAgZWNo byAnIHllcyAnCisrCSAgIGVjaG8gJyNlbmRpZic7IH0gfCAke0NDfSAtRSAtIHwgJEdSRVAgeWVz ID4gL2Rldi9udWxsOyB0aGVuCisrCToKKysgICAgICBlbHNlCisrCWNhbl9idWlsZF9zaGFyZWQ9 bm8KKysgICAgICBmaQorKyAgICAgIDs7CisrICAgIGVzYWMKKysgICAgIyBBSVggKG9uIFBvd2Vy KikgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gY3VycmVudGx5IHdlIGNhbiBub3QgaGFy ZGNvZGUgY29ycmVjdAorKyAgICAjIHNvbmFtZSBpbnRvIGV4ZWN1dGFibGUuIFByb2JhYmx5IHdl IGNhbiBhZGQgdmVyc2lvbmluZyBzdXBwb3J0IHRvCisrICAgICMgY29sbGVjdDIsIHNvIGFkZGl0 aW9uYWwgbGlua3MgY2FuIGJlIHVzZWZ1bCBpbiBmdXR1cmUuCisrICAgIGlmIHRlc3QgIiRhaXhf dXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorKyAgICAgICMgSWYgdXNpbmcgcnVuIHRp bWUgbGlua2luZyAob24gQUlYIDQuMiBvciBsYXRlcikgdXNlIGxpYjxuYW1lPi5zbworKyAgICAg ICMgaW5zdGVhZCBvZiBsaWI8bmFtZT4uYSB0byBsZXQgcGVvcGxlIGtub3cgdGhhdCB0aGVzZSBh cmUgbm90CisrICAgICAgIyB0eXBpY2FsIEFJWCBzaGFyZWQgbGlicmFyaWVzLgorKyAgICAgIGxp YnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1 ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3No YXJlZF9leHR9JworKyAgICBlbHNlCisrICAgICAgIyBXZSBwcmVzZXJ2ZSAuYSBhcyBleHRlbnNp b24gZm9yIHNoYXJlZCBsaWJyYXJpZXMgdGhyb3VnaCBBSVg0LjIKKysgICAgICAjIGFuZCBsYXRl ciB3aGVuIHdlIGFyZSBub3QgZG9pbmcgcnVuIHRpbWUgbGlua2luZy4KKysgICAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9LmEgJGxpYm5hbWUuYScKKysgICAgICBz b25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAg ICBmaQorKyAgICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKKysgIGZpCisrICA7OworKworK2FtaWdh b3MqKQorKyAgY2FzZSAkaG9zdF9jcHUgaW4KKysgIHBvd2VycGMpCisrICAgICMgU2luY2UgSnVs eSAyMDA3IEFtaWdhT1M0IG9mZmljaWFsbHkgc3VwcG9ydHMgLnNvIGxpYnJhcmllcy4KKysgICAg IyBXaGVuIGNvbXBpbGluZyB0aGUgZXhlY3V0YWJsZSwgYWRkIC11c2UtZHlubGQgLUxzb2Jqczog dG8gdGhlIGNvbXBpbGVsaW5lLgorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgOzsKKysgIG02OGsp CisrICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuaXhsaWJyYXJ5ICRsaWJuYW1lLmEn CisrICAgICMgQ3JlYXRlICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgZW50cmllcyBpbiAvc3lzL2xp YnMuCisrICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5 IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydz JV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8k e2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIg JHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGli bmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworKyAgICA7OworKyAgZXNhYworKyAg OzsKKysKKytiZW9zKikKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7c2hhcmVk X2V4dH0nCisrICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCisrICBzaGxpYnBhdGhf dmFyPUxJQlJBUllfUEFUSAorKyAgOzsKKysKKytic2RpWzQ1XSopCisrICB2ZXJzaW9uX3R5cGU9 bGludXgKKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgZmluaXNoX2Nt ZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgJGxpYmRpcicKKysgIHNobGlicGF0aF92 YXI9TERfTElCUkFSWV9QQVRICisrICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAv dXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGli IgorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xv Y2FsL2xpYiIKKysgICMgdGhlIGRlZmF1bHQgbGQuc28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3Iv Y29udHJpYi9saWIgYW5kCisrICAjIC91c3IvWDExUjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsg dG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxsb3cKKysgICMgbGlidG9vbCB0byBoYXJkLWNv ZGUgdGhlc2UgaW50byBwcm9ncmFtcworKyAgOzsKKysKKytjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiogfCBjZWdjYyopCisrICB2ZXJzaW9uX3R5cGU9d2luZG93cworKyAgc2hyZXh0X2NtZHM9Ii5k bGwiCisrICBuZWVkX3ZlcnNpb249bm8KKysgIG5lZWRfbGliX3ByZWZpeD1ubworKworKyAgY2Fz ZSAkR0NDLCRob3N0X29zIGluCisrICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHcz MiogfCB5ZXMsY2VnY2MqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRsbC5h JworKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5z dGFsbF9jbWRzCisrICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7 ZmlsZX1gfgorKyAgICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7 YmFzZV9maWxlfSdcJydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+CisrICAgICAgZGxkaXI9JGRlc3Rk aXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAt cCBcJGRsZGlyfgorKyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRs bmFtZX4KKysgICAgICBjaG1vZCBhK3ggXCRkbGRpci8kZGxuYW1lfgorKyAgICAgIGlmIHRlc3Qg LW4gJ1wnJyRzdHJpcG1lJ1wnJyAmJiB0ZXN0IC1uICdcJyckc3RyaXBsaWInXCcnOyB0aGVuCisr ICAgICAgICBldmFsICdcJyckc3RyaXBsaWIgXCRkbGRpci8kZGxuYW1lJ1wnJyB8fCBleGl0IFwk PzsKKysgICAgICBmaScKKysgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+ JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKysgICAgICBkbHBhdGg9JGRp ci9cJGRsZGxsfgorKyAgICAgICAkUk0gXCRkbHBhdGgnCisrICAgIHNobGlicGF0aF9vdmVycmlk ZXNfcnVucGF0aD15ZXMKKysKKysgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBjeWd3aW4qKQor KyAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwor KyAgICAgIHNvbmFtZV9zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvY3ln LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtz aGFyZWRfZXh0fScKKysgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9s aWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCisrICAgICAgOzsKKysgICAgbWluZ3cqIHwg Y2VnY2MqKQorKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4 CisrICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAt ZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworKyAgICAgIHN5c19saWJf c2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFy aWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCisrICAgICAg aWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJztbYy16Qy1aXTov JyA+L2Rldi9udWxsOyB0aGVuCisrICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5k b3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKKysgICAgICAgICMgbWluZ3cgZ2NjLCBidXQgd2Ug YXJlIHJ1bm5pbmcgb24gQ3lnd2luLiBHY2MgcHJpbnRzIGl0cyBzZWFyY2gKKysgICAgICAgICMg cGF0aCB3aXRoIDsgc2VwYXJhdG9ycywgYW5kIHdpdGggZHJpdmUgbGV0dGVycy4gV2UgY2FuIGhh bmRsZSB0aGUKKysgICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRl cnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKKysgICAgICAgICMgZXNwZWNpYWxseSBhcyB3 ZSBtaWdodCBwYXNzIGZpbGVzIGZvdW5kIHRoZXJlIHRvIGEgbWluZ3cgb2JqZHVtcCwKKysgICAg ICAgICMgd2hpY2ggd291bGRuJ3QgdW5kZXJzdGFuZCBhIGN5Z3dpbmlmaWVkIHBhdGguIEFoaC4K KysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisrICAgICAgZWxzZQorKyAgICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl YyIgfCAkU0VEICAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKysgICAgICBmaQorKyAgICAg IDs7CisrICAgIHB3MzIqKQorKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRo ZXIgdGhhbiAnbGliJworKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1l fSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5d Ly0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKysgICAgICA7OworKyAgICBlc2FjCisr ICAgIDs7CisrCisrICAqKQorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNo byAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9l eHR9ICRsaWJuYW1lLmxpYicKKysgICAgOzsKKysgIGVzYWMKKysgIGR5bmFtaWNfbGlua2VyPSdX aW4zMiBsZC5leGUnCisrICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRo ZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KKysgIHNobGlicGF0aF92YXI9UEFUSAor KyAgOzsKKysKKytkYXJ3aW4qIHwgcmhhcHNvZHkqKQorKyAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGR5bGQiCisrICB2ZXJzaW9uX3R5cGU9ZGFyd2luCisrICBuZWVkX2xpYl9wcmVmaXg9bm8K KysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JworKyAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKKysgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKysgIHNobGlicGF0aF92YXI9RFlMRF9MSUJS QVJZX1BBVEgKKysgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAu c28gfHwgZWNobyAuZHlsaWJgJworKworKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91 c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCisrICA7OworKworK2RndXgqKQorKyAgdmVyc2lv bl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubwor KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSRzaGFyZWRfZXh0JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICA7Owor KworK2ZyZWVic2QxKikKKysgIGR5bmFtaWNfbGlua2VyPW5vCisrICA7OworKworK2ZyZWVic2Qq IHwgZHJhZ29uZmx5KikKKysgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4v aWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKKysgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVz dCB0aGlzLgorKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KKysgICAgb2Jq Zm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCisrICBlbHNlCisrICAgIGNhc2UgJGhvc3Rfb3Mg aW4KKysgICAgZnJlZWJzZFsxMjNdKikgb2JqZm9ybWF0PWFvdXQgOzsKKysgICAgKikgb2JqZm9y bWF0PWVsZiA7OworKyAgICBlc2FjCisrICBmaQorKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9i amZvcm1hdAorKyAgY2FzZSAkdmVyc2lvbl90eXBlIGluCisrICAgIGZyZWVic2QtZWxmKikKKysg ICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtz aGFyZWRfZXh0fScKKysgICAgICBuZWVkX3ZlcnNpb249bm8KKysgICAgICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgICAgICA7OworKyAgICBmcmVlYnNkLSopCisrICAgICAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1l JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCisrICAgICAgbmVlZF92ZXJzaW9uPXllcworKyAgICAg IDs7CisrICBlc2FjCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgY2FzZSAk aG9zdF9vcyBpbgorKyAgZnJlZWJzZDIqKQorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCisrICAgIDs7CisrICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQor KyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICAgOzsKKysgIGZyZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTld KiB8IFwKKysgIGZyZWVic2Q0LlswLTVdIHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4x LjEgfCBmcmVlYnNkZWxmNC4xLjEpCisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bworKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIDs7CisrICAqKSAjIGZyb20gNC42 IG9uLCBhbmQgRHJhZ29uRmx5CisrICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMK KysgICAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgICA7OworKyAgZXNhYworKyAgOzsKKysK KytnbnUqKQorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysg IG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK2hw dXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQorKyAgIyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRp bmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhhdCBkbGQuc2wgcmVmdXNlcyB0bworKyAgIyBs aW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCisrICB2ZXJzaW9uX3R5cGU9c3Vub3MKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBjYXNlICRob3N0X2NwdSBp bgorKyAgaWE2NCopCisrICAgIHNocmV4dF9jbWRzPScuc28nCisrICAgIGhhcmRjb2RlX2ludG9f bGlicz15ZXMKKysgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbyIKKysgICAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgorKyAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0 fScKKysgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgICAgaWYgdGVzdCAiWCRIUFVYX0lBNjRfTU9ERSIgPSBYMzI7IHRoZW4KKysgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xp Yi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCisrICAgIGVsc2UKKysgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAvdXNyL2xvY2FsL2xpYi9ocHV4NjQiCisrICAg IGZpCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMKKysgICAgOzsKKysgIGhwcGEqNjQqKQorKyAgICBzaHJleHRfY21kcz0nLnNsJworKyAg ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk bGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3 ZSBoYW5kbGUgU0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVz ICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZpZWQuCisrICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAg ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwor KyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3Mv bGliL3BhMjBfNjQiCisrICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWMKKysgICAgOzsKKysgICopCisrICAgIHNocmV4dF9jbWRzPScuc2wnCisr ICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCisrICAgIHNobGlicGF0aF92YXI9 U0hMSUJfUEFUSAorKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyBy ZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAorKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgICAgc29u YW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgICAg OzsKKysgIGVzYWMKKysgICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJl ZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1 ICRsaWInCisrICA7OworKworK2ludGVyaXhbMy05XSopCisrICB2ZXJzaW9uX3R5cGU9bGludXgK KysgIG5lZWRfbGliX3ByZWZpeD1ubworKyAgbmVlZF92ZXJzaW9uPW5vCisrICBsaWJyYXJ5X25h bWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBF TEYpJworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD1ubworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorKyAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICBu b25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CisrICAgICopCisrCWlmIHRlc3Qg IiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KKysJCXZlcnNpb25fdHlwZT1saW51eAor KwllbHNlCisrCQl2ZXJzaW9uX3R5cGU9aXJpeAorKwlmaSA7OworKyAgZXNhYworKyAgbmVlZF9s aWJfcHJlZml4PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBjYXNlICRob3N0X29zIGluCisrICBpcml4 NSogfCBub25zdG9wdXgqKQorKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9CisrICAgIDs7CisrICAq KQorKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3 aXRjaGVzIHRvIExECisrICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJz bWlwICIpCisrICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7OworKyAg ICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQorKyAg ICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OworKyAgICAqLTY0fCoi LTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKKysgICAgICBsaWJzdWZmPTY0IHNo bGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OworKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9 IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKKysgICAgZXNhYworKyAgICA7OworKyAgZXNhYworKyAg c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKKysgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubworKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp YiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9IgorKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJz dWZmfSIKKysgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKKysgIDs7CisrCisrIyBObyBzaGFyZWQg bGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgorK2xpbnV4Km9sZGxk KiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAg OzsKKysKKysjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCisrbGludXgqIHwgaypic2QqLWdudSkK KysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVkX3Zl cnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6 L3NiaW4iIGxkY29uZmlnIC1uICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAjIFNvbWUgYmludXRp bHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKKysgIHNhdmVfTERGTEFHUz0kTERG TEFHUworKyAgc2F2ZV9saWJkaXI9JGxpYmRpcgorKyAgZXZhbCAibGliZGlyPS9mb287IHdsPVwi JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYXCI7IFwKKysgICAgICAgTERGTEFHUz1cIlwkTERGTEFH UyAkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFhcIiIKKysgIGNhdCA+Y29uZnRlc3QuJGFj X2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVm cy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNf dHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Cisr ICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJc JGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8i KSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9 JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAt ZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAt cyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAm JiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgaWYgICgkT0JKRFVNUCAtcCBj b25mdGVzdCRhY19leGVleHQpIDI+L2Rldi9udWxsIHwgZ3JlcCAiUlVOUEFUSC4qJGxpYmRpciIg Pi9kZXYvbnVsbDsgdGhlbgorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworK2Zp CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworK2ZpCisrCisrcm0g LXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrICBMREZMQUdTPSRzYXZlX0xERkxBR1MKKysgIGxpYmRp cj0kc2F2ZV9saWJkaXIKKysKKysgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hp Y2ggaXMgdW5hY2NlcHRhYmxlLgorKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBh bGxvdyBmb3IgZmFzdF9pbnN0YWxsCisrICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgor KyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKworKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVj dG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgorKyAgc3lzX2xpYl9kbHNlYXJjaF9w YXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCisrCisrICAjIEFwcGVu ZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAorKyAgaWYgdGVzdCAtZiAv ZXRjL2xkLnNvLmNvbmY7IHRoZW4KKysgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8g eyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNr aXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQu c28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9n O3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAorKyAgICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRs dF9sZF9leHRyYSIKKysgIGZpCisrCisrICAjIFdlIHVzZWQgdG8gdGVzdCBmb3IgL2xpYi9sZC5z by4xIGFuZCBkaXNhYmxlIHNoYXJlZCBsaWJyYXJpZXMgb24KKysgICMgcG93ZXJwYywgYmVjYXVz ZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKKysgICMg R05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29t cGlsZXJzLAorKyAgIyBtb3N0IHBvd2VycGMtbGludXggYm94ZXMgc3VwcG9ydCBkeW5hbWljIGxp bmtpbmcgdGhlc2UgZGF5cyBhbmQKKysgICMgcGVvcGxlIGNhbiBhbHdheXMgLS1kaXNhYmxlLXNo YXJlZCwgdGhlIHRlc3Qgd2FzIHJlbW92ZWQsIGFuZCB3ZQorKyAgIyBhc3N1bWUgdGhlIEdOVS9M aW51eCBkeW5hbWljIGxpbmtlciBpcyBpbiB1c2UuCisrICBkeW5hbWljX2xpbmtlcj0nR05VL0xp bnV4IGxkLnNvJworKyAgOzsKKysKKytuZXRic2QqKQorKyAgdmVyc2lvbl90eXBlPXN1bm9zCisr ICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KKysgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgICAgZmluaXNoX2NtZHM9 J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKKysgICAgZHluYW1pY19s aW5rZXI9J05ldEJTRCAoYS5vdXQpIGxkLnNvJworKyAgZWxzZQorKyAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9 JworKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yJworKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNEIGxkLmVsZl9zbycKKysgIGZpCisrICBz aGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5w YXRoPXllcworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgOzsKKysKKytuZXdzb3M2KQor KyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICA7 OworKworKypudG8qIHwgKnFueCopCisrICB2ZXJzaW9uX3R5cGU9cW54CisrICBuZWVkX2xpYl9w cmVmaXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzb25hbWVf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworKyAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKKysgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bworKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworKyAgZHluYW1pY19saW5rZXI9J2xkcW54LnNv JworKyAgOzsKKysKKytvcGVuYnNkKikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIgorKyAgbmVlZF9saWJfcHJlZml4PW5vCisr ICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgT3BlbkJTRCAoMy4zIGF0IGxlYXN0KSAqZG8qIG5l ZWQgdmVyc2lvbmVkIGxpYnMuCisrICBjYXNlICRob3N0X29zIGluCisrICAgIG9wZW5ic2QzLjMg fCBvcGVuYnNkMy4zLiopCW5lZWRfdmVyc2lvbj15ZXMgOzsKKysgICAgKikJCQkJbmVlZF92ZXJz aW9uPW5vICA7OworKyAgZXNhYworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmlnIC1t ICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorKyAgaWYgdGVzdCAt eiAiYGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRo b3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgorKyAgICBjYXNl ICRob3N0X29zIGluCisrICAgICAgb3BlbmJzZDIuWzg5XSB8IG9wZW5ic2QyLls4OV0uKikKKysJ c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisrCTs7CisrICAgICAgKikKKysJc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKwk7OworKyAgICAgIGVzYWMKKysgIGVsc2UKKysg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgZmkKKysgIDs7CisrCisrb3My KikKKysgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCisrICBzaHJleHRfY21kcz0iLmRsbCIKKysgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVk X2V4dH0gJGxpYm5hbWUuYScKKysgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKKysgIHNo bGlicGF0aF92YXI9TElCUEFUSAorKyAgOzsKKysKKytvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisr ICB2ZXJzaW9uX3R5cGU9b3NmCisrICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIG5lZWRfdmVyc2lv bj1ubworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK KysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vz ci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCisrICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKysg IDs7CisrCisrcmRvcyopCisrICBkeW5hbWljX2xpbmtlcj1ubworKyAgOzsKKysKKytzb2xhcmlz KikKKysgIHZlcnNpb25fdHlwZT1saW51eAorKyAgbmVlZF9saWJfcHJlZml4PW5vCisrICBuZWVk X3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCisrICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhl Y3V0YWJsZQorKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKKysgIDs7CisrCisr c3Vub3M0KikKKysgIHZlcnNpb25fdHlwZT1zdW5vcworKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCcKKysgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9l dGMiIGxkY29uZmlnICRsaWJkaXInCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAor KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworKyAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgorKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KKysgIGZpCisrICBuZWVk X3ZlcnNpb249eWVzCisrICA7OworKworK3N5c3Y0IHwgc3lzdjQuMyopCisrICB2ZXJzaW9uX3R5 cGU9bGludXgKKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICisrICBjYXNlICRob3N0X3ZlbmRvciBpbgorKyAgICBzbmkpCisrICAgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPW5vCisrICAgICAgbmVlZF9saWJfcHJlZml4PW5vCisrICAgICAg cnVucGF0aF92YXI9TERfUlVOX1BBVEgKKysgICAgICA7OworKyAgICBzaWVtZW5zKQorKyAgICAg IG5lZWRfbGliX3ByZWZpeD1ubworKyAgICAgIDs7CisrICAgIG1vdG9yb2xhKQorKyAgICAgIG5l ZWRfbGliX3ByZWZpeD1ubworKyAgICAgIG5lZWRfdmVyc2lvbj1ubworKyAgICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubworKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0n L2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCisrICAgICAgOzsKKysgIGVzYWMKKysgIDs7Cisr Cisrc3lzdjQqTVAqKQorKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgorKyAgICB2ZXJzaW9u X3R5cGU9bGludXgKKysgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4 dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKKysgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3In CisrICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisrICBmaQorKyAgOzsKKysKKytz eXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lz djQqdXcyKikKKysgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgorKyAgbmVlZF9saWJfcHJlZml4 PW5vCisrICBuZWVkX3ZlcnNpb249bm8KKysgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JworKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKysgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICisrICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisrICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCisrICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu CisrICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUv bGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJworKyAgZWxzZQorKyAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKKysgICAgY2FzZSAkaG9zdF9v cyBpbgorKyAgICAgIHNjbzMuMnY1KikKKysgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgorKwk7OworKyAgICBlc2FjCisrICBm aQorKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJworKyAgOzsKKysKKyt0 cGYqKQorKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1o b3N0ID0gR05VL0xpbnV4LgorKyAgdmVyc2lvbl90eXBlPWxpbnV4CisrICBuZWVkX2xpYl9wcmVm aXg9bm8KKysgIG5lZWRfdmVyc2lvbj1ubworKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCisrICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAorKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisr ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisrICA7OworKworK3V0czQqKQorKyAgdmVyc2lvbl90 eXBlPWxpbnV4CisrICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKKysgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisrICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAorKyAgOzsKKysKKysqKQorKyAgZHluYW1pY19saW5rZXI9bm8KKysgIDs7CisrZXNhYwor K3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1 CisrJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9CisrdGVzdCAiJGR5bmFtaWNfbGlu a2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KKysKKyt2YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCisraWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KKysgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9Q QVRIIgorK2ZpCisrCisraWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMr c2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKKytmaQorK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCisrZmkKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysK KysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysKKysgICAgeyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBh dGhzIGludG8gcHJvZ3JhbXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJk Y29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KKytoYXJkY29kZV9h Y3Rpb25fQ1hYPQorK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWCIg fHwKKysgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfQ1hYIiB8fAorKyAgIHRlc3QgIlgkaGFyZGNv ZGVfYXV0b21hdGljX0NYWCIgPSAiWHllcyIgOyB0aGVuCisrCisrICAjIFdlIGNhbiBoYXJkY29k ZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCisrICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0 X0NYWCIgIT0gbm8gJiYKKysgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhh cmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKKysgICAgICMgaGF2ZSB0byByZWxpbmssIG90 aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKKysgICAgICMg d2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUK KysgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsIENYWCki ICE9IG5vICYmCisrICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiICE9IG5vOyB0aGVu CisrICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFyeSBk aXJlY3RvcnkuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVsaW5rCisrICBlbHNlCisrICAg ICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2RlIG5v bmV4aXN0aW5nIGRpcnMuCisrICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9aW1tZWRpYXRlCisrICBm aQorK2Vsc2UKKysgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNh biBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCisrICAjIGRpcmVjdG9yaWVzLgorKyAgaGFyZGNvZGVf YWN0aW9uX0NYWD11bnN1cHBvcnRlZAorK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNQorKyRhc19lY2hvICIkaGFyZGNvZGVf YWN0aW9uX0NYWCIgPiY2OyB9CisrCisraWYgdGVzdCAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID0g cmVsaW5rIHx8CisrICAgdGVzdCAiJGluaGVyaXRfcnBhdGhfQ1hYIiA9IHllczsgdGhlbgorKyAg IyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisrICBlbmFibGVfZmFzdF9pbnN0 YWxsPW5vCisrZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8 fAorKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0gbm87IHRoZW4KKysgICMgRmFzdCBpbnN0 YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQorKyAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVz cworK2ZpCisrCisrCisrCisrCisrCisrCisrCisrICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIK KysKKysgIENDPSRsdF9zYXZlX0NDCisrICBMRENYWD0kTEQKKysgIExEPSRsdF9zYXZlX0xECisr ICBHQ0M9JGx0X3NhdmVfR0NDCisrICB3aXRoX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAor KyAgbHRfY3ZfcGF0aF9MRENYWD0kbHRfY3ZfcGF0aF9MRAorKyAgbHRfY3ZfcGF0aF9MRD0kbHRf c2F2ZV9wYXRoX0xECisrICBsdF9jdl9wcm9nX2dudV9sZGN4eD0kbHRfY3ZfcHJvZ19nbnVfbGQK KysgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9zYXZlX3dpdGhfZ251X2xkCisrZmkgIyB0ZXN0ICIk X2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllcworKworK2FjX2V4dD1jCisrYWNfY3BwPSckQ1BQ ICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19j b21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisrCisrCisrCisrCisrCisrCisrCisr CisrCisrCisrCisrCisrCisrICAgICAgICBhY19jb25maWdfY29tbWFuZHM9IiRhY19jb25maWdf Y29tbWFuZHMgbGlidG9vbCIKKysKKysKKysKKysKKysjIE9ubHkgZXhwYW5kIG9uY2U6CisrCisr CisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29y a3MiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MuLi4gIiA+ JjY7IH0KKytMTl9TPSRhc19sbl9zCisraWYgdGVzdCAiJExOX1MiID0gImxuIC1zIjsgdGhlbgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNo byAieWVzIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubywgdXNpbmcgJExOX1MiID4mNQorKyRhc19lY2hvICJubywgdXNpbmcgJExOX1MiID4m NjsgfQorK2ZpCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRo ZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7IH0KKytzZXQgeCAk e01BS0UtbWFrZX0KKythY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdzLysvcC9nOyBzL1te YS16QS1aMC05X10vXy9nJ2AKKytpZiB7IGFzX3Zhcj1hY19jdl9wcm9nX21ha2VfJHthY19tYWtl fV9zZXQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC5tYWtl IDw8XF9BQ0VPRgorK1NIRUxMID0gL2Jpbi9zaAorK2FsbDoKKysJQGVjaG8gJ0BAQCUlJT0kKE1B S0UpPUBAQCUlJScKKytfQUNFT0YKKysjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2Vb MV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KKytjYXNlIGAke01BS0Ut bWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbGAgaW4KKysgICpAQEAlJSU9Pyo9QEBA JSUlKikKKysgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKKysg ICopCisrICAgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PW5vOzsKKytlc2Fj Cisrcm0gLWYgY29uZnRlc3QubWFrZQorK2ZpCisraWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJvZ19t YWtlXyR7YWNfbWFrZX1fc2V0ID0geWVzOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgU0VUX01B S0U9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0i CisrZmkKKysKKysKKysjIFNldCBkZWZhdWx0IGxhbmd1YWdlIHRvIEMrKworK2FjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKworKyMgQ2hlY2sgZm9yIGV4Y2VwdGlvbnMgc3dpdGNoCisrIyBDaGVjayB3aGV0aGVy IC0tZW5hYmxlLWV4Y2VwdGlvbnMgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2V4Y2Vw dGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2V4Y2VwdGlvbnM7 CisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIFNPQ0lfRVhDRVBUSU9OUyAx CisrX0FDRU9GCisrCisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9leGNlcHRpb25zIiAhPSB4bm8g JiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCisrdGVzdCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUi ICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9ucz15ZXMKKysKKysjIENoZWNrIGZvciBpbmZvIHBh Z2VzCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWluZm8tZG9jIHdhcyBnaXZlbi4KKytpZiB0 ZXN0ICIke2VuYWJsZV9pbmZvX2RvYytzZXR9IiA9IHNldDsgdGhlbgorKyAgZW5hYmxldmFsPSRl bmFibGVfaW5mb19kb2M7CisrZmkKKysKKyt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5v ICYmIGVuYWJsZV9pbmZvX2RvYz15ZXMKKysKKysKKysjIENoZWNrIGZvciBodG1sLWRvYyBzd2l0 Y2gKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaHRtbC1kb2Mgd2FzIGdpdmVuLgorK2lmIHRl c3QgIiR7ZW5hYmxlX2h0bWxfZG9jK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9JGVu YWJsZV9odG1sX2RvYzsKKytmaQorKworK3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm8g JiYgZW5hYmxlX2h0bWxfZG9jPXllcworKworKworKyMgUHJvdmlkZSAtLXdpdGgtZG9jZGlyCisr CisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1kb2NkaXIgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7 d2l0aF9kb2NkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdpdGhfZG9jZGlyOyBE T0NfRElSPSIkd2l0aHZhbCIKKytlbHNlCisrICBET0NfRElSPSIiCisrZmkKKysKKytpZiB0ZXN0 ICJ4JERPQ19ESVIiICE9IHg7IHRoZW4KKysgIGRvY2Rpcj0iJERPQ19ESVIiCisrZWxzZQorKyAg ZG9jZGlyPSIke2RhdGFkaXJ9L2RvYy8kUEFDS0FHRS0kVkVSU0lPTiIKKytmaQorKworKworKwor KyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgU09DSSBpdHNlbGYpCisrIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCisraWYgdGVz dCAiJHtlbmFibGVfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2 YWw9JGVuYWJsZV9idXJyaWVkX2hlYWRlcnM7ICBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCisrICAgICAgZW5hYmxlX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysgICAgICBl bmFibGVfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpCisrZWxzZQorKyAgIGVuYWJsZV9idXJy aWVkX2hlYWRlcnM9bm8KKytmaQorKworKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdl cyBnZW5lcmF0aW9uCisrZW5hYmxlX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAieCRl bmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KKysgIFNPQ0lfSEVBREVSU19CVVJJ RURfVFJVRT0KKysgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9JyMnCisrZWxzZQorKyAgU09D SV9IRUFERVJTX0JVUklFRF9UUlVFPScjJworKyAgU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRT0K KytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0 aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkK KysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxlcyAoZm9yIE15U1FMIGNsaWVudCkK KysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbXlzcWwtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZl bi4KKytpZiB0ZXN0ICIke2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7 IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyczsgIGlmIHRl c3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVy cz1ubworKyAgIGVsc2UKKysJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgICBm aQorK2Vsc2UKKysgICBlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrZmkKKysKKysj IFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9teXNx bF9idXJyaWVkX2hlYWRlcnM9eWVzCisrIGlmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRf aGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9 CisrICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJworK2Vsc2UKKysgIFNPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKKysgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURfRkFMU0U9CisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnMiID0geHllczsgdGhlbgorKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgJENQUEZMQUdTIgorK2ZpCisrCisrIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmls ZXMgKGZvciBQb3N0R3JlU1FMIGNsaWVudCkKKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtcG9z dGdyZXNxbC1idXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX3Bv c3RncmVzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuCisrICBlbmFibGV2YWw9 JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVyczsgIGlmIHRlc3QgIiRlbmFibGV2YWwi ID0gbm87IHRoZW4KKysJZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrICAg ZWxzZQorKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkKKytl bHNlCisrICAgZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrZmkKKysKKysj IFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgorK2VuYWJsZV9wb3N0 Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKysgaWYgdGVzdCAieCRlbmFibGVfcG9zdGdyZXNx bF9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgorKyAgU09DSV9QT1NUR1JFU1FMX0hFQURF UlNfQlVSSUVEX1RSVUU9CisrICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9 JyMnCisrZWxzZQorKyAgU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9JyMnCisr ICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9CisrZmkKKysKKysKKytpZiB0 ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisr ICAgQ1BQRkxBR1M9Ii1EU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIK KytmaQorKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysjIEJvb3N0IChTVEwgRXh0ZW5zaW9uczogaHR0cDovL3d3dy5ib29z dC5vcmcpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtYm9vc3Qgd2FzIGdpdmVu LgorK2lmIHRlc3QgIiR7d2l0aF9ib29zdCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0k d2l0aF9ib29zdDsKKysgICAgICAgICAgICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsg dGhlbgorKwkJICAgICAgICAgICAgd2FudF9ib29zdD0ibm8iCisrICAgICAgICAgICAgICAgIGVs aWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIHdh bnRfYm9vc3Q9InllcyIKKysgICAgICAgICAgICAgICAgICAgIGFjX2Jvb3N0X3BhdGg9IiIKKysg ICAgICAgICAgICAgICAgZWxzZQorKwkJCSAgICAgICAgd2FudF9ib29zdD0ieWVzIgorKyAgICAg ICAgICAgIAkJYWNfYm9vc3RfcGF0aD0iJHdpdGh2YWwiCisrCQkgICAgICAgIGZpCisrCisrZWxz ZQorKyAgd2FudF9ib29zdD0ieWVzIgorK2ZpCisrCisrCisrIyAgICBBQ19DQU5PTklDQUxfQlVJ TEQKKytCT09TVF9NRFdfVkVSU0lPTj0iMS0zMy0xIgorK0JPT1NUTElCX01EV19WRVJTSU9OPSIx XzMzXzEiCisrQk9PU1RfdmVyc2lvbl9oZWFkZXI9ImJvb3N0L3ZlcnNpb24uaHBwIgorKworKwlp ZiB0ZXN0ICJ4JHdhbnRfYm9vc3QiID0gInh5ZXMiOyB0aGVuCisrCQlib29zdF9saWJfdmVyc2lv bl9yZXE9MS4zMworKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW49YGV4cHIgJGJvb3N0 X2xpYl92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwuWzAtOV0qXCknYAorKwkJYm9vc3RfbGliX3Zl cnNpb25fcmVxX21ham9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpc KSdgCisrCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJz aW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVx X3N1Yl9taW5vcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1swLTldKlwuWzAtOV0q XC5cKFswLTldKlwpJ2AKKysJCWlmIHRlc3QgIngkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9t aW5vciIgPSAieCIgOyB0aGVuCisrCQkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcj0i MCIKKysgICAgCWZpCisrCQlXQU5UX0JPT1NUX1ZFUlNJT049YGV4cHIgJGJvb3N0X2xpYl92ZXJz aW9uX3JlcV9tYWpvciBcKiAxMDAwMDAgXCsgICRib29zdF9saWJfdmVyc2lvbl9yZXFfbWlub3Ig XCogMTAwIFwrICRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yYAorKwkJeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBib29zdGxpYiA+PSAkYm9vc3RfbGliX3Zl cnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgYm9vc3RsaWIgPj0gJGJv b3N0X2xpYl92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKwkJc3VjY2VlZGVkPW5vCisrCisrCQkJ CQkJCQkJCWlmIHRlc3QgLWQgL2xpYjY0CisrCQl0aGVuCisrCQkJQk9PU1RfTElCRElSVFlQRT0i bGliNjQiCisrCQllbHNlCisrCQkJQk9PU1RfTElCRElSVFlQRT0ibGliIgorKwkJZmkKKysJCWlm IHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIgorKwkJdGhlbgorKwkJCWlmIHRlc3QgIiRCT09T VF9MSUJESVJUWVBFIiA9PSAibGliNjQiCisrCQkJdGhlbgorKwkJCQlpZiB0ZXN0IC1kICIkYWNf Ym9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgv JEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCXRoZW4KKysJICAgICAgICAgICAgICAgIEJPT1NUX0xJ QlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCWVsc2UKKysgICAg ICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvbGliIgorKwkJCQlm aQorKwkJCWVsc2UKKysJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIiCisrCQkJ ZmkKKysJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZSIKKysJCQlCT09T VF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRo L2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQnICcgLWYzIHwgY3V0IC1k XCIgLWYyYAorKwkJZWxzZQorKwkJCWZvciBhY19ib29zdF9wYXRoX3RtcCBpbiAvdXNyIC91c3Iv bG9jYWwgL29wdCAvbmFzdG9vbHMvYm9vc3QKKysJCQlkbworKwkJCQlpZiB0ZXN0IC1kICIkYWNf Ym9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhf dG1wL2luY2x1ZGUvYm9vc3QiCisrCQkJCXRoZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jv b3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRh Y19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgorKwkJCQkJQk9PU1RfVkVSU0lPTj1gZ3JlcCAiZGVm aW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS8ke0JPT1NU X3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQgLWRcIiAtZjJgCisrCQkJCQli cmVhazsKKysJCQkJZmkKKysJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1 ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9vc3Rf cGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vYm9vc3QiCisrCQkJCXRo ZW4KKysJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJU WVBFIgorKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jv b3N0LSRCT09TVF9NRFdfVkVSU0lPTiIKKysJCQkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmlu ZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJP T1NUX01EV19WRVJTSU9OLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8 IGN1dCAtZFwiIC1mMmAKKysKKysJCQkJCQkJCQkJaWYgdGVzdCAtZCAiJGFjX2Jvb3N0X3BhdGhf dG1wL2xpYiIgXAorKwkJCQkJJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIgXAor KwkJCQkJJiYgdGVzdCAhIC1kICIkYWNfYm9vc3RfcGF0aF90bXAvbGliNjQiCisrCQkJCQl0aGVu CisrCQkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvbGliIgorKwkJCQkJCWVj aG8gIkhhY2s6ICRCT09TVF9MSUJTIgorKwkJCQkJZmkKKysJCQkJCWJyZWFrOworKwkJCQlmaQor KwkJCWRvbmUKKysJCWZpCisrCisrCQlDUFBGTEFHU19TQVZFRD0iJENQUEZMQUdTIgorKwkJQ1BQ RkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgorKwkJZXhwb3J0IENQUEZMQUdTCisrCisr CQlMREZMQUdTX1NBVkVEPSIkTERGTEFHUyIKKysJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9M SUJTIgorKwkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAljYXQgPmNvbmZ0ZXN0LiRhY19leHQg PDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+ PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyog ZW5kIGNvbmZkZWZzLmguICAqLworKworKyNpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKysK KytpbnQKKyttYWluICgpCisreworKworKyNpZiBCT09TVF9WRVJTSU9OID49ICRXQU5UX0JPT1NU X1ZFUlNJT04KKysvLyBFdmVyeXRoaW5nIGlzIG9rYXkKKysjZWxzZQorKyMgIGVycm9yIEJvb3N0 IHZlcnNpb24gaXMgdG9vIG9sZAorKyNlbmRpZgorKworKworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrCisrICAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAieWVzIiA+JjY7 IH0KKysJCSBzdWNjZWVkZWQ9eWVzCisrCQkgZm91bmRfc3lzdGVtPXllcworKyAgICAgICAgIDoK KysKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrCisrZmkKKysKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKysKKysJCQkJCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIgIT0gInh5ZXMiOyB0aGVuCisrCQkJ X3ZlcnNpb249MAorKwkJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgorKyAg ICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJU WVBFIgorKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jv b3N0X3BhdGgiOyB0aGVuCisrCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5j bHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KKysJCQkJCQlfdmVyc2lvbl90bXA9YGVjaG8g JGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0v LycgfCBzZWQgJ3MvXy8uLydgCisrCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ ICRfdmVyc2lvbmAKKysJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCisrCQkJ CQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKKysJCQkJCQlmaQorKwkJCQkJCVZFUlNJT05fVU5E RVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAorKwkJCQkJCUJPT1NUX0NG TEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NPUkUi CisrCQkJCQlkb25lCisrCQkJCWZpCisrCQkJZWxzZQorKwkJCQlmb3IgYWNfYm9vc3RfcGF0aCBp biAvdXNyIC91c3IvbG9jYWwgL29wdCA7IGRvCisrCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3Rf cGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCisrCQkJCQkJZm9yIGkgaW4g YGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRvCisr CQkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8 IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKKysJCQkJCQkJVl9D SEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKKysJCQkJCQkJaWYgdGVzdCAi JFZfQ0hFQ0siID0gIjEiIDsgdGhlbgorKwkJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3RtcAor KwkJCQkJCQkJYmVzdF9wYXRoPSRhY19ib29zdF9wYXRoCisrCQkJCQkJCWZpCisrCQkJCQkJZG9u ZQorKwkJCQkJZmkKKysJCQkJZG9uZQorKworKwkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVjaG8g JF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKKysJCQkJQk9PU1RfQ0ZMQUdTPSItSSRiZXN0X3Bh dGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgorKwkJCQlCT09TVF9MSUJTPSIt TCRiZXN0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCisrCisrCSAgICAJCWlmIHRlc3QgIngkQk9P U1RfUk9PVCIgIT0gIngiOyB0aGVuCisrCQkJCQlpZiB0ZXN0IC1kICIkQk9PU1RfUk9PVCIgJiYg dGVzdCAtciAiJEJPT1NUX1JPT1QiOyB0aGVuCisrCQkJCQkJdmVyc2lvbl9kaXI9YGV4cHIgLy8k Qk9PU1RfUk9PVCA6ICcuKi9cKC4qXCknYAorKwkJCQkJCXN0YWdlX3ZlcnNpb249YGVjaG8gJHZl cnNpb25fZGlyIHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNlZCAncy9fLy4vZydgCisrCQkJCQkJc3Rh Z2VfdmVyc2lvbl9zaG9ydGVuPWBleHByICRzdGFnZV92ZXJzaW9uIDogJ1woWzAtOV0qXC5bMC05 XSpcKSdgCisrCQkJCQkJVl9DSEVDSz1gZXhwciAkc3RhZ2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0g JF92ZXJzaW9uYAorKwkJCQkJCWlmIHRlc3QgIiRWX0NIRUNLIiA9ICIxIiA7IHRoZW4KKysJCQkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0 IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV2Ugd2ls bCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSBmcm9tICRCT09TVF9ST09UIiA+JjY7fQorKwkJ CQkJCQlCT09TVF9DRkxBR1M9Ii1JJEJPT1NUX1JPT1QiCisrCQkJCQkJCUJPT1NUX0xJQlM9Ii1M JEJPT1NUX1JPT1Qvc3RhZ2UvJEJPT1NUX0xJQkRJUlRZUEUiCisrCQkJCQkJZmkKKysJCQkJCWZp CisrCSAgICAJCWZpCisrCQkJZmkKKysKKysJCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9D RkxBR1MiCisrCQkJZXhwb3J0IENQUEZMQUdTCisrCQkJTERGTEFHUz0iJExERkxBR1MgJEJPT1NU X0xJQlMiCisrCQkJZXhwb3J0IExERkxBR1MKKysKKysgICAgIAkJY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysjaW5jbHVkZSA8Ym9vc3QvdmVyc2lvbi5ocHA+ CisrCisraW50CisrbWFpbiAoKQorK3sKKysKKysjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9C T09TVF9WRVJTSU9OCisrLy8gRXZlcnl0aGluZyBpcyBva2F5CisrI2Vsc2UKKysjICBlcnJvciBC b29zdCB2ZXJzaW9uIGlzIHRvbyBvbGQKKysjZW5kaWYKKysKKysKKysgIDsKKysgIHJldHVybiAw OworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5 PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owor K2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hv XCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxl IikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29u ZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNv bmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNf Y3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKworKyAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyAoJF92ZXJzaW9uKSIgPiY1CisrJGFz X2VjaG8gInllcyAoJF92ZXJzaW9uKSIgPiY2OyB9CisrCQkgc3VjY2VlZGVkPXllcworKyAgICAg ICAgIDoKKysKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCisrICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8gKCRfdmVyc2lvbikiID4m NQorKyRhc19lY2hvICJubyAoJF92ZXJzaW9uKSIgPiY2OyB9CisrICAgICAgICAgOgorKworK2Zp CisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0CisrCQlmaQorKworKwkJaWYgdGVzdCAiJHN1Y2NlZWRlZCIgIT0gInllcyIgOyB0 aGVuCisrCQkJaWYgdGVzdCAiJF92ZXJzaW9uIiA9ICIwIiA7IHRoZW4KKysJCQkJeyB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFdlIGNvdWxkIG5vdCBkZXRlY3QgdGhlIGJvb3N0 IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4gb3IgaGln aGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3RpbGwgbm90IGluc3Rh bGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52aXJvbm1lbnQgYW5k IGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91IGFyZSBz dXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNpb24gbnVt YmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi4iID4mNQorKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29zdCBsaWJyYXJpZXMgKHZlcnNp b24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhpZ2hlcikuIElmIHlvdSBoYXZl IGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0YWxsZWQpIHBsZWFzZSBzcGVj aWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFuZCBkbyBub3QgZ2l2ZSBhIFBB VEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUgc3VyZSB5b3UgaGF2ZSBib29z dCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51bWJlciBsb29raW5nIGluIDxi b29zdC92ZXJzaW9uLmhwcD4uIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQor KwkJCWVsc2UKKysJCQkJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICdZb3Vy IGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBvbGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5l ZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJzaW9uX3Nob3J0ZW4nIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogJ1lvdXIgYm9vc3QgbGlicmFyaWVzIHNlZW1zIHRvIG9sZCAodmVyc2lv biAkX3ZlcnNpb24pLiAgV2UgbmVlZCBhdCBsZWFzdCAkYm9vc3RfbGliX3ZlcnNpb25fc2hvcnRl biciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCQkJZmkKKysJCWVsc2UK KysKKysKKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09T VCAvKiovCisrX0FDRU9GCisrCisrCisrIworKyMgQm9vc3Q6OkZpbGVzeXN0ZW0KKysjCisrCQkJ eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpG aWxlc3lzdGVtIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyIHRoZSBCb29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAi ID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfZmlsZXN5c3RlbStzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4 dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxib29zdC9maWxlc3lzdGVtL3BhdGguaHBwPgorK2ludAorK21haW4gKCkK Kyt7CisrdXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpmaWxlc3lzdGVtOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGF0aCBteV9wYXRoKCAiZm9vL2Jhci9kYXRhLnR4dCIgKTsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgOworKyAg cmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7 IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisr ICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3Qg LXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisr ICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9i b29zdF9maWxlc3lzdGVtPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysK KysJYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbT1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkgCQkgICAgICAg IAkJCWFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW0iID4mNQorKyRhc19lY2hvICIkYXhfY3Zf Ym9vc3RfZmlsZXN5c3RlbSIgPiY2OyB9CisrCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X2ZpbGVz eXN0ZW0iID0gInllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNk ZWZpbmUgSEFWRV9CT09TVF9GSUxFU1lTVEVNIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9v c3RfZmlsZXN5c3RlbQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQg JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg JEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGli PWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7 IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UK KysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJT IgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLwor K19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50 CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30K KytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAor K2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysg IGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAt eiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysg ICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jv c3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQK KysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFz X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBj b25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisr cm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFj X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwor K2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8g IiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwg J2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlm IHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfRklMRVNZU1RFTV9MSUI9 Ii1sJGF4X2xpYiIgIGxpbmtfZmlsZXN5c3RlbT0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtf ZmlsZXN5c3RlbT0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlu a19maWxlc3lzdGVtIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQor KwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlN5c3RlbQorKyMKKysgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBs aWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0 aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRl c3QgIiR7YXhfY3ZfYm9vc3Rfc3lzdGVtK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysgICAgICAgICAgICBhY19leHQ9Y3BwCisrYWNf Y3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVz dCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0 ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysK KysgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVm cy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpbmNsdWRlIDxib29zdC9zeXN0ZW0vZXJyb3JfY29kZS5ocHA+CisraW50CisrbWFpbiAoKQor K3sKKyt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OnN5c3RlbTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgbXlFcnJvckNvZGUoKTsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19j b21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9zeXN0ZW09eWVz CisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisr c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9zeXN0 ZW09bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRD WFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5r PSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4 X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGF4X2N2X2Jvb3N0X3N5c3RlbSIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9z eXN0ZW0iID4mNjsgfQorKyAgICAgICAgICAgIGlmIHRlc3QgIiRheF9jdl9ib29zdF9zeXN0ZW0i ID0gInllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUg SEFWRV9CT09TVF9TWVNURU0gLyoqLworK19BQ0VPRgorKworKyAgICAgICAgICAgICAgICAgQk49 Ym9vc3Rfc3lzdGVtCisrICAgICAgICAgICAgICAgICBmb3IgYXhfbGliIGluICRCTiAkQk4tJEND ICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10 LXMgbGliJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 ICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIDsgZG8KKysgICAgICAg ICAgICAgICAgICAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21h aW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBm b3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWlu IGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwg InRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwor K0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVz dC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0 YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysg IHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhl ZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVz dF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNf TGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRh c19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5v byBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRh Y19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNf YWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMi ID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19l Y2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisr ICBCT09TVF9TWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX3N5c3RlbT0ieWVzIiBicmVhawor K2Vsc2UKKysgIGxpbmtfc3lzdGVtPSJubyIKKytmaQorKworKyAgICAgICAgICAgICAgICAgZG9u ZQorKyAgICAgICAgICAgICAgICAgaWYgdGVzdCAieCRsaW5rX3N5c3RlbSIgPSAieG5vIjsgdGhl bgorKyAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3Vs ZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291 bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrICAgICAgICAgICAgICAgICBm aQorKyAgICAgICAgICAgIGZpCisrCisrIworKyMgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucworKyMK KysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlByb2dyYW1fT3B0aW9ucyBsaWJyYXJ5IGlz IGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfcHJvZ3JhbV9v cHRpb25zK3NldH0iID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgor K2Vsc2UKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19leHQ9Y3BwCisrYWNfY3Bw PSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQ RkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRh Y19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRM SUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJ CQkgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBwPgorK2ludAorK21haW4gKCkK Kyt7CisrYm9vc3Q6OnByb2dyYW1fb3B0aW9uczo6b3B0aW9uc19kZXNjcmlwdGlvbiBnZW5lcmlj KCJHZW5lcmljIG9wdGlvbnMiKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFj X3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7Owor KyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89Ilwi XCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hv IikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVzCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9 bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorKwkJCSAgICAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3By b2dyYW1fb3B0aW9ucyIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlv bnMiID4mNjsgfQorKwkJCWlmIHRlc3QgIiRheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMiID0g eWVzOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVf Qk9PU1RfUFJPR1JBTV9PUFRJT05TIC8qKi8KKytfQUNFT0YKKysKKysJCQkJQk49Ym9vc3RfcHJv Z3JhbV9vcHRpb25zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAk Qk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT047IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4 X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19M aWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBt YWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEK KysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVz dC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysg ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhp dCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8 fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl c3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8Cisr CSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFs ICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJv Z3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisr CWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9j b25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQK KytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3Zh bD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8g IiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQor KwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVz OyB0aGVuCisrICBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCPSItbCRheF9saWIiICBsaW5rX3By b2dyYW1fb3B0aW9ucz0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfcHJvZ3JhbV9vcHRpb25z PSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3Byb2dyYW1f b3B0aW9ucz0ibm8iIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQor KwkJCWZpCisrCisrIworKyMgQm9vc3Q6OlRocmVhZHMKKysjCisrCQkJeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBp cyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0 OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4 X2N2X2Jvb3N0X3RocmVhZCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQ UEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVz dC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hY RkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBDWFhGTEFHU19T QVZFPSRDWFhGTEFHUworKworKwkJCSBpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9ICJ4c29sYXJpcyIg OyB0aGVuCisrICAJCQkJIENYWEZMQUdTPSItcHRocmVhZHMgJENYWEZMQUdTIgorKwkJCSBlbGlm IHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgorKwkJCQkgQ1hYRkxBR1M9Ii1t dGhyZWFkcyAkQ1hYRkxBR1MiCisrCQkJIGVsc2UKKysJCQkJQ1hYRkxBR1M9Ii1wdGhyZWFkICRD WFhGTEFHUyIKKysJCQkgZmkKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisr LyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVm cy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGhyZWFkL3RocmVhZC5ocHA+CisraW50CisrbWFp biAoKQorK3sKKytib29zdDo6dGhyZWFkX2dyb3VwIHRocmRzOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBp bGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlf ZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZh bCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19l Y2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRl c3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+ Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIg PiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor KyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3RocmVhZD15ZXMKKytl bHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQg J3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3RocmVhZD1u bworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0CisrCQkJIENYWEZMQUdTPSRDWFhGTEFHU19TQVZFCisrCQkJIGFjX2V4 dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDog JGF4X2N2X2Jvb3N0X3RocmVhZCIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF90aHJlYWQi ID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfdGhyZWFkIiA9ICJ4eWVzIjsgdGhl bgorKyAgICAgICAgICAgICAgIGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRo ZW4KKysgCQkJCSAgQk9PU1RfQ0ZMQUdTPSItcHRocmVhZHMgJEJPT1NUX0NGTEFHUyIKKysJCQkg ICBlbGlmIHRlc3QgIngkYnVpbGRfb3MiID0gInhtaW5nMzIiIDsgdGhlbgorKyAJCQkJICBCT09T VF9DRkxBR1M9Ii1tdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgorKwkJCSAgIGVsc2UKKysJCQkJICBC T09TVF9DRkxBR1M9Ii1wdGhyZWFkICRCT09TVF9DRkxBR1MiCisrCQkJICAgZmkKKysKKysKKysK KytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9USFJFQUQg LyoqLworK19BQ0VPRgorKworKwkJCQlCTj1ib29zdF90aHJlYWQKKysJCQkJZm9yIGF4X2xpYiBp biAkQk4gJEJOLW10ICRCTi0kQ0MgJEJOLSRDQy1tdCBcCisrCQkJCQkJICAgCSAgJEJOLSRDQy1t dC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lP TiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicn X21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBt YWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2 YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElC UworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgp OworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNl ICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNf dHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9l Y2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190 cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFj X3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIK KysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNf c3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNf ZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNf dGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNf YWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwg IiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNv cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVz dC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJT PSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyck YXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19y ZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRh c19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVu CisrICBCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVh aworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytmaQorKworKyAgCQkJCWRvbmUKKysJCQkJ aWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgorKwkJCQkJeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30K KysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0OjpJT1N0cmVhbXMKKysjCisrCQkJeyAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpJT1N0 cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X2lvc3RyZWFtcytzZXR9IiA9IHNldDsgdGhlbgor KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAK KythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZM QUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNv bmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRh Y19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2du dQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5o LiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQg Pj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNp bmNsdWRlIDxib29zdC9pb3N0cmVhbXMvZmlsdGVyaW5nX3N0cmVhbS5ocHA+CisrCQkJCQkJCQkJ CQkJICNpbmNsdWRlIDxib29zdC9yYW5nZS9pdGVyYXRvcl9yYW5nZS5ocHA+CisrCisraW50Cisr bWFpbiAoKQorK3sKKytzdGQ6OnN0cmluZyAgaW5wdXQgPSAiSGVsbG8gV29ybGQhIjsKKysJCQkJ CQkJCQkgbmFtZXNwYWNlIGlvID0gYm9vc3Q6Omlvc3RyZWFtczsKKysJCQkJCQkJCQkgaW86OmZp bHRlcmluZ19pc3RyZWFtICBpbihib29zdDo6bWFrZV9pdGVyYXRvcl9yYW5nZShpbnB1dCkpOwor KwkJCQkJCQkJCSByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YK KytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIK KytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hv PVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFj X3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8g IiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5l cjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25m dGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK KysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAo ZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFn IiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29u ZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPXllcworK2Vs c2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAn cy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfaW9zdHJlYW1z PW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA+JjUK KyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2lvc3RyZWFtcyIgPiY2OyB9CisrCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9pb3N0cmVhbXMiID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29uZmRl ZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfSU9TVFJFQU1TIC8qKi8KKytfQUNF T0YKKysKKysJCQkJQk49Ym9vc3RfaW9zdHJlYW1zCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRC Ti0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0k Q0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRC Ti1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1n dy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0k Q0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFz X2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Cisr aWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0g c2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNF T0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21h aW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FD RU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7 IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xp bmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2Nv bXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAg ICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1y ZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVl eHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQor K2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNf dmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf cmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0 ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX0lPU1RSRUFNU19MSUI9Ii1sJGF4 X2xpYiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua190aHJlYWQ9Im5v IgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4 bm8iOyB0aGVuCisrCQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMg Qm9vc3Q6OlNlcmlhbGl6YXRpb24KKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZh aWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2Vy aWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7 YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbitzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRD WFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFH UyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg PiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBj YXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNF T0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxmc3Ry ZWFtPgorKwkJCQkJCQkJCQkJCSAjaW5jbHVkZSA8Ym9vc3QvYXJjaGl2ZS90ZXh0X29hcmNoaXZl LmhwcD4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg I2luY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJjaGl2ZS5ocHA+CisrCisraW50CisrbWFp biAoKQorK3sKKytzdGQ6Om9mc3RyZWFtIG9mcygiZmlsZW5hbWUiKTsKKysJCQkJCQkJCQlib29z dDo6YXJjaGl2ZTo6dGV4dF9vYXJjaGl2ZSBvYShvZnMpOworKwkJCQkJCQkJCSByZXR1cm4gMDsK KysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGlu CisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFj X3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6 JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor KyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPwor KyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNv bmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAm JiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNv bmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhl bgorKyAgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbj15ZXMKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249bm8KKytmaQorKwor K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj X2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn CisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA+JjUKKyskYXNfZWNo byAiJGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhf Y3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVm cy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OIC8qKi8KKytf QUNFT0YKKysKKysJCQkJQk49Ym9vc3Rfc2VyaWFsaXphdGlvbgorKwkJCQlmb3IgYXhfbGliIGlu ICRCTiAkQk4tJENDICRCTi0kQ0MtbXQgJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDLW10LXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0k Q0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19M aWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4m NjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3Nl dH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxz ZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJ QlMiCisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICov CisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29u ZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytp bnQKKyttYWluICgpCisreworK3JldHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0 CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19saW5rIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAn XiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQor KyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0 IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgor KyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRj cm9zc19jb21waWxpbmciID0geWVzIHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAorKyAgICAgICB9OyB0aGVuCisrICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAk YXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8n IGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysK KytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3Qk YWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJT CisrZmkKKythY19yZXM9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNo byAiJGFzX3ZhbCInYAorKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJGFjX3JlcyIgPiY1CisrJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZh bCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAg aWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisrICBCT09TVF9TRVJJQUxJWkFUSU9O X0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5r X3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlkb25lCisrCQkJCUJOPWJvb3N0X3dzZXJpYWxp emF0aW9uCisrCQkJCWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJEND LW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4g bGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJT SU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGli JydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsg ZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRM SUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxf QUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNv bmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5k IGNvbmZkZWZzLmguICAqLworKworKworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4g KCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nh c2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh Y190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5 X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFj X3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAg YWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRh Y19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Cisr CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRh Y19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRh c190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRh c19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZh bCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0 ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJ QlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytmaQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7 JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrCSAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFj X3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkg JGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRo ZW4KKysgIEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQj0iLWwkYXhfbGliIiAgbGlua190aHJlYWQ9 InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKysgIAkJCQlk b25lCisrCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KKysJCQkJCXsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNjt9CisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6U2lnbmFscworKyMK KysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9v c3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTaWduYWxzIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9zaWduYWxzK3NldH0iID0gc2V0OyB0aGVu CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0PWNw cAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZz LmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2Nh dCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisr I2luY2x1ZGUgPGJvb3N0L3NpZ25hbC5ocHA+CisrCisraW50CisrbWFpbiAoKQorK3sKKytib29z dDo6c2lnbmFsPHZvaWQgKCk+IHNpZzsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIDA7CisrCisrICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0g LWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisr ICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3Qu ZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwK KysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0 LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2X2Jvb3N0X3NpZ25hbHM9eWVzCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9zaWduYWxzPW5vCisrZmkK KysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisr YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY1CisrJGFzX2VjaG8g IiRheF9jdl9ib29zdF9zaWduYWxzIiA+JjY7IH0KKysJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0 X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YK KysjZGVmaW5lIEhBVkVfQk9PU1RfU0lHTkFMUyAvKiovCisrX0FDRU9GCisrCisrCQkJCUJOPWJv b3N0X3NpZ25hbHMKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJOLSRDQyAkQk4tJENDLW10ICRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQy1tdC1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJOLW1ndyAkQk4tbWd3LW10IFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LW10LXMgJEJOLW1ndy1zICBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRh eF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNf TGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4g bWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsi CisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIx CisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRl c3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIg fHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAor KwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZh bCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThf Y29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192 YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hv ICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30K KysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInll czsgdGhlbgorKyAgQk9PU1RfU0lHTkFMU19MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfc2lnbmFscz0i eWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfc2lnbmFscz0ibm8iCisrZmkKKysKKysgIAkJCQlk b25lCisrCQkJCWlmIHRlc3QgIngkbGlua19zaWduYWxzIiA9ICJ4bm8iOyB0aGVuCisrCQkJCQl7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhIiA+JjY7fQorKwkJCQlmaQorKwkJCWZpCisrCisrIworKyMgQm9vc3Q6OkRhdGVfVGltZQor KyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAi Y2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJs ZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfZGF0ZV90aW1lK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkg YWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrI2luY2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5 cGVzLmhwcD4KKysKKytpbnQKKyttYWluICgpCisreworK3VzaW5nIG5hbWVzcGFjZSBib29zdDo6 Z3JlZ29yaWFuOyBkYXRlIGQoMjAwMixKYW4sMTApOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGls ZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l Y2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFs IGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2Vj aG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfZGF0ZV90 aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisr YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkKKyt7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZGF0ZV90aW1lIiA+ JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPiY2OyB9CisrCQkJaWYgdGVz dCAieCRheF9jdl9ib29zdF9kYXRlX3RpbWUiID0gInh5ZXMiOyB0aGVuCisrCisrY2F0ID4+Y29u ZmRlZnMuaCA8PFxfQUNFT0YKKysjZGVmaW5lIEhBVkVfQk9PU1RfREFURV9USU1FIC8qKi8KKytf QUNFT0YKKysKKysJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCisrCQkJCWZvciBheF9saWIgaW4gJEJO ICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBsaWIkQk4tJENDLW10IGxpYiRC Ti0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliJEJOLSRDQy1z ICRCTi1tZ3cgJEJOLW1ndy1tdCBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJO LW1ndy1tdC1zICRCTi1tZ3ctcyAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRC Ti0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KKysJCQkJICAgIGFzX2FjX0xpYj1g JGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCisreyAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9 CisraWYgeyBhc192YXI9JGFzX2FjX0xpYjsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwi ID0gc2V0IjsgfTsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr ICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCisrTElCUz0iLWwkYXhfbGliICAkTElCUyIK KytjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytf QUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVz dC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKworK2ludAor K21haW4gKCkKKyt7CisrcmV0dXJuIG1haW4gKCk7CisrICA7CisrICByZXR1cm4gMDsKKyt9Cisr X0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKKytp ZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAq XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFj X3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNf dHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFj X2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVzdCAiJGNyb3Nz X2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNfZXhlZXh0Cisr ICAgICAgIH07IHRoZW4KKysgIGV2YWwgIiRhc19hY19MaWI9eWVzIgorK2Vsc2UKKysgICRhc19l Y2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29u ZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJZXZhbCAiJGFzX2FjX0xpYj1ubyIKKytmaQorKworK3Jt IC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19l eGVleHQgY29uZnRlc3QuJGFjX2V4dAorK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKKytm aQorK2FjX3Jlcz1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19MaWInfQorKwkJICRhc19lY2hvICIk YXNfdmFsIidgCisrCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAk YWNfcmVzIiA+JjUKKyskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisrYXNfdmFsPWBldmFsICdh c192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysgICBpZiB0 ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4KKysgIEJPT1NUX0RBVEVfVElNRV9MSUI9Ii1s JGF4X2xpYiIgIGxpbmtfZGF0ZV90aW1lPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19kYXRl X3RpbWU9Im5vIgorK2ZpCisrCisrICAJCQkJZG9uZQorKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfZGF0 ZV90aW1lIj0ibm8iID0gInhubyI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRh c19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWZpCisr CQkJZmkKKysKKysjCisrIyBCb29zdDo6UmVnZXgKKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlJl Z2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9i b29zdF9yZWdleCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKKytlbHNlCisrCisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+Cisr CisraW50CisrbWFpbiAoKQorK3sKKytib29zdDo6cmVnZXggcigpOyByZXR1cm4gMDsKKysgIDsK KysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Cisr aWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzog JGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwg IiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAt diAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVy MQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0 ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorKyAgYXhf Y3ZfYm9vc3RfcmVnZXg9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHBy b2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKwor KwlheF9jdl9ib29zdF9yZWdleD1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKyth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQor KworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jv b3N0X3JlZ2V4IiA+JjUKKyskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3JlZ2V4IiA+JjY7IH0KKysJ CQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+ PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1JFR0VYIC8qKi8KKytf QUNFT0YKKysKKysJCQkJQk49Ym9vc3RfcmVnZXgKKysJCQkJZm9yIGF4X2xpYiBpbiAkQk4gJEJO LSRDQyAkQk4tJENDLW10ICRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJOLSRD Qy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4tJENDLXMgJEJO LW1ndyAkQk4tbWd3LW10IFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3 LW10LXMgJEJOLW1ndy1zICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEJOLSRD Qy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKwkJCQkgICAgYXNfYWNfTGliPWAkYXNf ZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KKytp ZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBz ZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGFj X2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRMSUJTIgorK2Nh dCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VP RgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisraW50CisrbWFp biAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNF T0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsg KGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCog fCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5 OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlf ZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGlu ayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNv bmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBj b25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFj X2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAg fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29t cGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAg ICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8g IiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVz dC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJm IGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisr YWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192 YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19y ZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3Zh bD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3Qg IngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfUkVHRVhfTElCPSItbCRheF9saWIi ICBsaW5rX3RocmVhZD0ieWVzIiBicmVhaworK2Vsc2UKKysgIGxpbmtfdGhyZWFkPSJubyIKKytm aQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsg dGhlbgorKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IENvdWxkIG5vdCBsaW5rIGFn YWluc3QgJGF4X2xpYiAhIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGluayBh Z2FpbnN0ICRheF9saWIgISIgPiY2O30KKysJCQkJZmkKKysJCQlmaQorKworKyMKKysjIEJvb3N0 OjpBU0lPOiBpdCBuZWVkcyBCb29zdC5TeXN0ZW0sIEJvb3N0LlJlZ2V4LCBCb29zdC5UaHJlYWQg YW5kCisrIyBCb29zdC5EYXRlVGltZSwgYnV0IGRvZXMgbm90IHByb2R1Y2UgYW55IChvdGhlcikg bGlicmFyeS4KKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdo ZXRoZXIgdGhlIEJvb3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNo b19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJs ZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfYXNpbytzZXR9IiA9IHNldDsg dGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrCisrCQkJIGFjX2V4 dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMg JENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hY IC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBp bGVyX2dudQorKworKwkJCSBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25m ZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK KytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAq LworKyNpbmNsdWRlIDxib29zdC9hc2lvLmhwcD4KKytpbnQKKyttYWluICgpCisreworK2Jvb3N0 Ojphc2lvOjppb19zZXJ2aWNlIGlvOworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29zdDo6c3lzdGVtOjplcnJvcl9jb2RlIHRpbWVyX3Jlc3VsdDsKKysJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vc3Q6OmFzaW86OmRlYWRsaW5lX3RpbWVyIHQoaW8pOwor KwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LmNhbmNlbCgpOworKwkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpby5ydW5fb25lKCk7CisrCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQor K19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19j b21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNf dHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYwor K2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKysk YXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNv bmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5l cjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3Qu ZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vy cm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVz dCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9hc2lvPXllcwor K2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorK3Nl ZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysJYXhfY3ZfYm9vc3RfYXNpbz1u bworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj b25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X2FzaW8iID4mNQorKyRhc19l Y2hvICIkYXhfY3ZfYm9vc3RfYXNpbyIgPiY2OyB9CisrCQkJaWYgdGVzdCAieCRheF9jdl9ib29z dF9hc2lvIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisr I2RlZmluZSBIQVZFX0JPT1NUX0FTSU8gLyoqLworK19BQ0VPRgorKworKwkJCSAgIEJPT1NUX0FT SU9fTElCPSIke0JPT1NUX1NZU1RFTV9MSUJ9ICR7Qk9PU1RfVEhSRUFEX0xJQn0iCisrCQkJICAg Qk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfREFURV9USU1FX0xJQn0i CisrCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfUkVHRVhf TElCfSIKKysJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9T RVJJQUxJWkFUSU9OX0xJQn0iCisrCQkJZmkKKysKKysjCisrIyBTdXBwb3J0IGZvciBQeXRob24g YW5kIE1QSSAoTVBJQ0gyLCBCb29zdDo6TVBJLCBCb29zdDo6UHl0aG9uLAorKyMgQm9vc3Q6OlNl cmlhbGl6YXRpb24sIEJvb3N0OjpNUElfUHl0aG9uKQorKyMgTm90ZTogb24gc29tZSBkaXN0cmli dXRpb25zIChlLmcuLCBEZWJpYW4pLCBCb29zdC5NUEkgdXNlcyBPcGVuTVBJIHJhdGhlcgorKyMg ICAgICAgdGhhbiBNUElDSDIKKysjCisrCQkJQ1BQRkxBR1NfT1JJRz0iJHtDUFBGTEFHU30iCisr CQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtNUElHRU5fQ0ZMQUdT fSIKKysjCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtNUElDSDJf Q0ZMQUdTfSIKKysjCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1N9ICR7UFlUSE9OX0NGTEFHU30gJHtP UEVOTVBJX0NGTEFHU30iCisrCQkJTERGTEFHU19PUklHPSIke0xERkxBR1N9IgorKwkJCUxERkxB R1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJR0VO X0xJQlN9IgorKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9O X0FERF9MSUJTfSAke01QSUNIMl9MSUJTfSIKKysjCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZ VEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtPUEVOTVBJX0xJQlN9IgorKworKyMKKysj IEJvb3N0OjpQeXRob24KKysjCisrCQkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBp cyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3B5dGhvbitz ZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisr CisrCQkJYWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2Fj X2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExE RkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19j dl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrCQkgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvcHl0aG9uLmhwcD4KKysJCQljaGFy IGNvbnN0KiBncmVldCgpIHsgcmV0dXJuICJoZWxsbyI7IH0KKysJCQlCT09TVF9QWVRIT05fTU9E VUxFKGhlbGxvX2V4dCkgeyBib29zdDo6cHl0aG9uOjpkZWYoImdyZWV0IiwgZ3JlZXQpO30KKysK KytpbnQKKyttYWluICgpCisreworKworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgor K3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgor K2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAi JGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVy MQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0 ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQor KyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChl eGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWci IHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF9weXRob249eWVzCisrZWxzZQor KyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14v fCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlheF9jdl9ib29zdF9weXRob249bm8KKytm aQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK KythY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9weXRob24iID4mNQorKyRhc19lY2hv ICIkYXhfY3ZfYm9vc3RfcHl0aG9uIiA+JjY7IH0KKysKKysJCQlCT09TVF9QWVRIT05fTElCPSIt bGJvb3N0X3B5dGhvbiAke1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30iCisrCisrCisr IworKyMgQm9vc3Q6Ok1QSQorKyMKKysJCQl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Cisr JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2 YWlsYWJsZS4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YXhfY3ZfYm9vc3RfbXBpK3NldH0iID0g c2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkg YWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFj X2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMu aC4gICovCisrI2luY2x1ZGUgPGJvb3N0L21waS5ocHA+CisraW50CisrbWFpbiAoKQorK3sKKysK KysJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisrCisrICA7Cisr ICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorK2lm IHsgKGFjX3RyeT0iJGFjX2NvbXBpbGUiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRh Y190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIk YWNfY29tcGlsZSIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEK KysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK KysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQ7IHRoZW4KKysgIGF4X2N2 X2Jvb3N0X21waT15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3Jh bSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWF4 X2N2X2Jvb3N0X21waT1ubworK2ZpCisrCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrCQkJIGFjX2V4dD1jcHAKKythY19jcHA9 JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBG TEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ QlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKwor K2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGF4X2N2X2Jvb3N0X21w aSIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF9tcGkiID4mNjsgfQorKwkJCWlmIHRlc3Qg IngkYXhfY3ZfYm9vc3RfbXBpIiA9ICJ4eWVzIjsgdGhlbgorKworK2NhdCA+PmNvbmZkZWZzLmgg PDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX01QSSAvKiovCisrX0FDRU9GCisrCisrCQkJ CUJOPWJvb3N0X21waQorKwkJCQlmb3IgYXhfbGliIGluICRCTiAkQk4tJENDICRCTi0kQ0MtbXQg JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGliJEJOIGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDLW10LXMgXAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4tbWd3ICRCTi1tZ3ctbXQg JEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQk4tbWd3LXMg JEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbworKworKwkJCQkgICAgYXNfYWNf TGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGli IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIuLi4gIiA+ JjY7IH0KKytpZiB7IGFzX3Zhcj0kYXNfYWNfTGliOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zhcitz ZXR9XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vs c2UKKysgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKKytMSUJTPSItbCRheF9saWIgICRM SUJTIgorK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAq LworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNv bmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrCisrCisr aW50CisrbWFpbiAoKQorK3sKKytyZXR1cm4gbWFpbiAoKTsKKysgIDsKKysgIHJldHVybiAwOwor K30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwi KiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNo bz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86 ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFs ICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBhY19zdGF0dXM9JD8KKysgIGdyZXAgLXYg J14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisrICBybSAtZiBjb25mdGVzdC5lcjEK KysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeworKwkgdGVz dCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIK KysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVl eHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFsICIkYXNfYWNfTGliPW5vIgorK2ZpCisr Cisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElC UworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0xpYid9CisrCQkgJGFzX2Vj aG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKythc192YWw9YGV2 YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKyAg IGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbgorKyAgQk9PU1RfTVBJX0xJQj0iLWwk YXhfbGliIiAgbGlua19tcGk9InllcyIgYnJlYWsKKytlbHNlCisrICBsaW5rX21waT0ibm8iCisr ZmkKKysKKysgIAkJCQlkb25lCisrCQkJCWlmIHRlc3QgIngkbGlua19tcGkiID0gInhubyI7IHRo ZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2Fp bnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdh aW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWVsc2UKKysJCQkJCUJPT1NUX01QSV9MSUI9IiR7 Qk9PU1RfTVBJX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJQn0gJHtNUElHRU5fTElCU30i CisrCQkJCWZpCisrCQkJZmkKKysKKysjCisrIyBCb29zdDo6TVBJX1B5dGhvbgorKyMKKysJCQl7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6Ok1w aV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIg PiY2OyB9CisraWYgdGVzdCAiJHtheF9jdl9ib29zdF9tcGlfcHl0aG9uK3NldH0iID0gc2V0OyB0 aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysKKysJCQkgYWNfZXh0 PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAk Q1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFgg LW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRl c3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGls ZXJfZ251CisrCisrCQkJIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZk ZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor K2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICov CisrI2luY2x1ZGUgPGJvb3N0L21waS9weXRob24vc2VyaWFsaXplLmhwcD4KKysKKytpbnQKKytt YWluICgpCisreworKworKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MDsKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfY29tcGlsZSIKKytjYXNlICIoKCRhY190cnki IGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKKysgICop IGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNf bWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4m NQorKyAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcjEKKysgIGFjX3N0YXR1cz0k PworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKysgIHJtIC1m IGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKysgICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICAoZXhpdCAkYWNfc3RhdHVzKTsg fSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAorKwkgdGVzdCAhIC1z IGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsg dGhlbgorKyAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15ZXMKKytlbHNlCisrICAkYXNfZWNobyAi JGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0 LiRhY19leHQgPiY1CisrCisrCWF4X2N2X2Jvb3N0X21waV9weXRob249bm8KKytmaQorKworK3Jt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4 dAorKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisr YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA+JjUKKyskYXNfZWNobyAiJGF4 X2N2X2Jvb3N0X21waV9weXRob24iID4mNjsgfQorKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3Rf bXBpX3B5dGhvbiIgPSAieHllcyI7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VP RgorKyNkZWZpbmUgSEFWRV9CT09TVF9NUElfUFlUSE9OIC8qKi8KKytfQUNFT0YKKysKKysJCQkJ Qk49Ym9vc3RfbXBpX3B5dGhvbgorKyMJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbi1weTI1CisrCQkJ CWZvciBheF9saWIgaW4gJEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRD Qy1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWIkQk4gbGliJEJOLSRDQyBs aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MtbXQtcyBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGliJEJOLSRDQy1zICRCTi1tZ3cgJEJOLW1ndy1tdCAkQk4tbWd3LW10LXMgXAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJ Ql9NRFdfVkVSU0lPTiA7IGRvCisrCQkJCSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9s aWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRh c19hY19MaWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4K KysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3Nh dmVfTElCUz0kTElCUworK0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCisrY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysKKysKKytpbnQKKyttYWluICgpCisreworK3Jl dHVybiBtYWluICgpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNf bGluayIKKytjYXNlICIoKCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry eV9lY2hvPVwkYWNfdHJ5OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytl dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFz X2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVz dC5lcjEKKysgIGFjX3N0YXR1cz0kPworKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5j b25mdGVzdC5lcnIKKysgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorKyAgY2F0IGNvbmZ0ZXN0LmVyciA+ JjUKKysgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Cisr ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7CisrCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9m bGFnIiB8fAorKwkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorKyAgICAgICB9ICYmIHRlc3QgLXMg Y29uZnRlc3QkYWNfZXhlZXh0ICYmIHsKKysJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVz IHx8CisrCSAkYXNfdGVzdF94IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorKyAgICAgICB9OyB0aGVuCisr ICBldmFsICIkYXNfYWNfTGliPXllcyIKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrCWV2YWwgIiRhc19hY19MaWI9bm8iCisrZmkKKysKKytybSAtcmYgY29uZnRlc3QuZFNZ TQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf aXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKytMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCisrZmkKKythY19yZXM9YGV2YWwg J2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAkYXNfZWNobyAiJGFzX3ZhbCInYAorKwkgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX3JlcyIgPiY1CisrJGFz X2VjaG8gIiRhY19yZXMiID4mNjsgfQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19M aWInfQorKwkJICRhc19lY2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0g eCIieWVzOyB0aGVuCisrICBCT09TVF9NUElfUFlUSE9OX0xJQj0iLWwkYXhfbGliIiAgbGlua19t cGlfcHl0aG9uPSJ5ZXMiIGJyZWFrCisrZWxzZQorKyAgbGlua19tcGlfcHl0aG9uPSJubyIKKytm aQorKworKyAgCQkJCWRvbmUKKysJCQkJaWYgdGVzdCAieCRsaW5rX21waV9weXRob24iID0gInhu byI7IHRoZW4KKysJCQkJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9CisrCQkJCWVsc2UKKysJCQkJCUJPT1NUX01QSV9Q WVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05f TElCfSIKKysJCQkJCUJPT1NUX01QSV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElC fSAke0JPT1NUX1BZVEhPTl9MSUJ9IgorKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9P U1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1RfTVBJX0xJQn0iCisrCQkJCQlCT09TVF9NUElfUFlU SE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtNUElHRU5fTElCU30iCisrCQkJCWZp CisrCQkJZmkKKysKKysjCisrIyBFbmQgb2Ygc2VjdGlvbiBvbiBzdXBwb3J0IGZvciBNUEkKKysj CisrCQkJQ1BQRkxBR1M9IiR7Q1BQRkxBR1NfT1JJR30iCisrCQkJTERGTEFHUz0iJHtMREZMQUdT X09SSUd9IgorKworKyMKKysjIEJvb3N0OjpVbml0VGVzdEZyYW1ld29yaworKyMKKysJCQl7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlVuaXRU ZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKKyskYXNfZWNob19uICJjaGVj a2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFp bGFibGUuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcmsrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Cisr ZWxzZQorKworKwkJCSBhY19leHQ9Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKyth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCisrYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKysKKysJCQkgY2F0ID5jb25mdGVzdC4kYWNfZXh0 IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmgg Pj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8Ym9vc3QvdGVzdC91bml0X3Rlc3QuaHBw PgorK2ludAorK21haW4gKCkKKyt7CisrdXNpbmcgYm9vc3Q6OnVuaXRfdGVzdDo6dGVzdF9zdWl0 ZTsKKysJCQkJCSAgICAgICAgICAgICAgICAgdGVzdF9zdWl0ZSogdGVzdD0gQk9PU1RfVEVTVF9T VUlURSggIlVuaXQgdGVzdCBleGFtcGxlIDEiICk7IHJldHVybiAwOworKyAgOworKyAgcmV0dXJu IDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190 cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2Vj aG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBp bGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBj b25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQg Y29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNf c3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRh Y19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAg IH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBheF9jdl9ib29zdF91 bml0X3Rlc3RfZnJhbWV3b3JrPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxl ZCBwcm9ncmFtIHdhczoiID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK KysKKysJYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yaz1ubworK2ZpCisrCisrcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Cisr CQkJIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKythY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQorKworKworK2ZpCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4mNQorKyRhc19lY2hv ICIkYXhfY3ZfYm9vc3RfdW5pdF90ZXN0X2ZyYW1ld29yayIgPiY2OyB9CisrCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrIiA9ICJ4eWVzIjsgdGhlbgorKworK2Nh dCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisrI2RlZmluZSBIQVZFX0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUksgLyoqLworK19BQ0VPRgorKworKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdv cmsKKysgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9IgorKwkJCWZvciBheF9saWIgaW4g JEJOICRCTi0kQ0MgJEJOLSRDQy1tdCAkQk4tJENDLW10LXMgJEJOLSRDQy1zIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYiRCTiBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQgbGliJEJO LSRDQy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYiRCTi0kQ0MtcyAkQk4t bWd3ICRCTi1tZ3ctbXQgJEJOLW1ndy1tdC1zIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICRCTi1tZ3ctcyAkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCisrICAgICAg ICAgICAgICAgIExERkxBR1M9IiR7TERGTEFHU30gLWwkYXhfbGliIgorKyAgICAJCQl7ICRhc19l Y2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0OjpVbml0 VGVzdEZyYW1ld29yayBsaWJyYXJ5IiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyB0aGUgbmFt ZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkuLi4gIiA+JjY7IH0KKytp ZiB0ZXN0ICIke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrc2V0fSIgPSBzZXQ7IHRo ZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKworKwkJCSBhY19leHQ9 Y3BwCisrYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKKythY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCisrYWNfbGluaz0nJENYWCAt byBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVz dC4kYWNfZXh0ICRMSUJTID4mNScKKythY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxl cl9nbnUKKysKKysgICAgICAgICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0 LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZk ZWZzLmguICAqLworKyNpbmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+CisraW50Cisr bWFpbiAoKQorK3sKKyt1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NV SVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7CisrICA7CisrICByZXR1cm4g MDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19l eGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVw IC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3Qu ZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJ IHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3Qu ZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYgeworKwkgdGVz dCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0X3ggY29uZnRlc3QkYWNf ZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysgIGxpbmtfdGhyZWFkPSJ5ZXMiCisrZWxzZQorKyAg JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlsaW5rX3RocmVhZD0ibm8iCisrZmkKKysKKyty bSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbyBcCisrICAgICAgY29uZnRlc3QkYWNf ZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKysJCQkgYWNfZXh0PWNwcAorK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CisrCisrCisrZmkK Kyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfdW5pdF90 ZXN0X2ZyYW1ld29yayIgPiY1CisrJGFzX2VjaG8gIiRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJh bWV3b3JrIiA+JjY7IH0KKysgICAgICAgICAgICAgICAgTERGTEFHUz0iJHtzYXZlZF9sZGZsYWdz fSIKKysJCQkgICAgaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieHllcyI7IHRoZW4KKysgICAg ICAgICAgICAgICAgICAgIEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCPSItbCRheF9saWIi CisrCisrCQkJCQlicmVhaworKwkJCQlmaQorKyAgICAgICAgICAgICAgZG9uZQorKwkJCSAgICBp ZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0aGVuCisrCQkJCSAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Cisr JGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9 CisrCQkJCWZpCisrCQkJZmkKKysKKysKKysJCWZpCisrICAgICAgICBDUFBGTEFHUz0iJENQUEZM QUdTX1NBVkVEIgorKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCisrCisrCWZpCisr CisrCisrCisrCisrCisrCisrCisrCisrCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3Ig TXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKKysjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtbXlzcWwgd2FzIGdp dmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfbXlzcWwrc2V0fSIgPSBzZXQ7IHRoZW4K KysgIGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfbXlzcWw7ICBpZiB0ZXN0ICIkZW5hYmxldmFs IiA9IG5vOyB0aGVuCisrICAgICAgCSBlbmFibGVfYmFja2VuZF9teXNxbD1ubworKyAgICAgIGVs c2UKKysJIGVuYWJsZV9iYWNrZW5kX215c3FsPXllcworKyAgICAgIGZpCisrZWxzZQorKyAgIGVu YWJsZV9iYWNrZW5kX215c3FsPW5vCisrCisrZmkKKysKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9i YWNrZW5kX215c3FsIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE1ZU1FMX0RJUlM9Im15c3FsIgorKyMg ICBNWVNRTF9SRVFfVkVSU0lPTj0iMy4wLjAiCisrCisrCSMKKysJIyBTZXQgdXAgY29uZmlndXJl IHNjcmlwdCBtYWNyb3MKKysJIworKworKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXlzcWwgd2Fz IGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9teXNxbCtzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0 aHZhbD0kd2l0aF9teXNxbDsgTVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbC9saWI2NC9teXNx bCAkd2l0aF9teXNxbC9saWIvbXlzcWwgJHdpdGhfbXlzcWwvbGliNjQgJHdpdGhfbXlzcWwvbGli IgorKwkJTVlTUUxfaW5jX2NoZWNrPSIkd2l0aF9teXNxbC9pbmNsdWRlICR3aXRoX215c3FsL2lu Y2x1ZGUvbXlzcWwiCisrCQlNWVNRTF9iaW5fY2hlY2s9IiR3aXRoX215c3FsL2JpbiIKKytlbHNl CisrICBNWVNRTF9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9saWIgL3Vzci9saWI2NC9teXNx bCAvdXNyL2xpYi9teXNxbCAvdXNyL2xvY2FsL2xpYjY0IC91c3IvbG9jYWwvbGliIC91c3IvbG9j YWwvbGliL215c3FsIC91c3IvbG9jYWwvbXlzcWwvbGliIC91c3IvbG9jYWwvbXlzcWwvbGliL215 c3FsIC9vcHQvbXlzcWwvbGliIC9vcHQvbXlzcWwvbGliL215c3FsIgorKwkJTVlTUUxfaW5jX2No ZWNrPSIvdXNyL2luY2x1ZGUvbXlzcWwgL3Vzci9sb2NhbC9pbmNsdWRlL215c3FsIC91c3IvbG9j YWwvbXlzcWwvaW5jbHVkZSAvdXNyL2xvY2FsL215c3FsL2luY2x1ZGUvbXlzcWwgL29wdC9teXNx bC9pbmNsdWRlL215c3FsIgorKwkJTVlTUUxfYmluX2NoZWNrPSIvdXNyL2JpbiAvdXNyL2xvY2Fs L2JpbiAvdXNyL2xvY2FsL215c3FsL2JpbiIKKytmaQorKworKworKworKyMgQ2hlY2sgd2hldGhl ciAtLXdpdGgtbXlzcWwtbGliIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfbXlzcWxfbGli K3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX215c3FsX2xpYjsgTVlTUUxfbGli X2NoZWNrPSIkd2l0aF9teXNxbF9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0ICR3aXRoX215c3Fs X2xpYi9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0L215c3FsICR3aXRoX215c3FsX2xpYi9saWIv bXlzcWwiCisrZmkKKysKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15c3FsLWluY2x1 ZGUgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9teXNxbF9pbmNsdWRlK3NldH0iID0gc2V0 OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX215c3FsX2luY2x1ZGU7IE1ZU1FMX2luY19jaGVjaz0i JHdpdGhfbXlzcWxfaW5jbHVkZSAkd2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUgJHdpdGhfbXlz cWxfaW5jbHVkZS9pbmNsdWRlL215c3FsIgorK2ZpCisrCisrCisrCisrICAgICMKKysJIyBMb29r IGZvciBNeVNRTCBDb25maWd1cmF0aW9uIFNjcmlwdAorKwkjCisrCXsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBjaGVja2luZyBmb3IgTXlTUUwgY29uZmlndXJhdGlvbiBzY3JpcHQiID4mNQor KyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBjb25maWd1cmF0aW9uIHNjcmlwdC4uLiAi ID4mNjsgfQorKwlNWVNRTF9DT05GSUc9CisrCU1ZU1FMX2JpbmRpcj0KKysJZm9yIG0gaW4gJE1Z U1FMX2Jpbl9jaGVjaworKwkJZG8KKysJCQlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0v bXlzcWxfY29uZmlnIgorKwkJCXRoZW4KKysJCQkJTVlTUUxfQ09ORklHPSRtL215c3FsX2NvbmZp ZworKwkJCQlNWVNRTF9iaW5kaXI9JG0KKysJCQlicmVhaworKwkJZmkKKysJZG9uZQorKworKwlp ZiB0ZXN0IC16ICIkTVlTUUxfYmluZGlyIgorKwl0aGVuCisrCQl7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogRGlkbid0IGZpbmQgJE1ZU1FMX0NPTkZJRyBiaW5hcnkgaW4gJyRN WVNRTF9iaW5fY2hlY2snIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogRGlkbid0IGZp bmQgJE1ZU1FMX0NPTkZJRyBiaW5hcnkgaW4gJyRNWVNRTF9iaW5fY2hlY2snIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwlmaQorKworKwljYXNlICIkTVlTUUxfYmluZGly IiBpbgorKwkJLyogKSA7OworKwkJKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogVGhlIE15U1FMIGJpbmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3QgYmUg YW4gYWJzb2x1dGUgcGF0aC4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBUaGUgTXlT UUwgYmluYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2JpbmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBw YXRoLiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKKysJZXNhYworKwor Kwl7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkTVlTUUxfQ09ORklHIiA+JjUK KyskYXNfZWNobyAiJE1ZU1FMX0NPTkZJRyIgPiY2OyB9CisrCisrIwlBQ19QQVRIX1BST0coTVlT UUxfQ09ORklHLCBteXNxbF9jb25maWcsICRNWVNRTF9iaW5kaXIpCisrCisrCSMKKysJIyBEZWNp ZGUgd2hpY2ggQyBBUEkgbGlicmFyeSB0byB1c2UsIGJhc2VkIG9uIHRocmVhZCBzdXBwb3J0Cisr CSMKKysJaWYgdGVzdCAieCRhY3hfcHRocmVhZF9vayIgPSB4eWVzCisrCXRoZW4KKysJCU1ZU1FM X0NfTElCPW15c3FsY2xpZW50X3IKKysJCU1ZU1FMX0xJQl9PUFRJT049bGlic19yCisrCWVsc2UK KysJCU1ZU1FMX0NfTElCPW15c3FsY2xpZW50CisrCQlNWVNRTF9MSUJfT1BUSU9OPWxpYnMKKysJ ZmkKKysKKysJaWYgdGVzdCAieCR7TVlTUUxfQ09ORklHfTEiID0gIngxIgorKwl0aGVuCisrCQlN WVNRTF9WRVJTSU9OPWAke01ZU1FMX0NPTkZJR30gLS12ZXJzaW9uYAorKwkJTVlTUUxfQ0ZMQUdT PWAke01ZU1FMX0NPTkZJR30gLS1jZmxhZ3NgCisrCQlNWVNRTF9MSUJTPWAke01ZU1FMX0NPTkZJ R30gLS0ke01ZU1FMX0xJQl9PUFRJT059YAorKwllbHNlCisrCQkjCisrCQkjIExvb2sgZm9yIE15 U1FMIEMgQVBJIGxpYnJhcnkKKysJCSMKKysJCXsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3IgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnkiID4mNQorKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeS4uLiAiID4mNjsgfQorKwkJTVlTUUxf bGliZGlyPQorKwkJZm9yIG0gaW4gJE1ZU1FMX2xpYl9jaGVjaworKwkJZG8KKysJCQlpZiB0ZXN0 IC1kICIkbSIgJiYgXAorKwkJCQkodGVzdCAtZiAiJG0vbGliJE1ZU1FMX0NfTElCLnNvIiBcCisr CQkJCXx8IHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5hIikKKysJCQl0aGVuCisrCQkJCU1Z U1FMX2xpYmRpcj0kbQorKwkJCQlicmVhaworKwkJCWZpCisrCQlkb25lCisrCisrCQlpZiB0ZXN0 IC16ICIkTVlTUUxfbGliZGlyIgorKwkJdGhlbgorKwkJCXsgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IGVycm9yOiBEaWRuJ3QgZmluZCAkTVlTUUxfQ19MSUIgbGlicmFyeSBpbiAnJE1ZU1FM X2xpYl9jaGVjayciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBEaWRuJ3QgZmluZCAk TVlTUUxfQ19MSUIgbGlicmFyeSBpbiAnJE1ZU1FMX2xpYl9jaGVjayciID4mMjt9CisrICAgeyAo ZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrCQlmaQorKworKwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIg aW4KKysJCQkvKiApIDs7CisrCQkJKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogVGhlIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5ICgkTVlTUUxfbGliZGlyKSBtdXN0IGJl IGFuIGFic29sdXRlIHBhdGguIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogVGhlIE15 U1FMIGxpYnJhcnkgZGlyZWN0b3J5ICgkTVlTUUxfbGliZGlyKSBtdXN0IGJlIGFuIGFic29sdXRl IHBhdGguIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKwkJZXNhYwor KworKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FMX2xpYmRpciIg PiY1CisrJGFzX2VjaG8gIiRNWVNRTF9saWJkaXIiID4mNjsgfQorKworKyMJCWNhc2UgIiRNWVNR TF9saWJkaXIiIGluCisrIwkJICAvdXNyL2xpYikgOzsKKysjCQkgICopIExERkxBR1M9IiRMREZM QUdTIC1MJHtNWVNRTF9saWJkaXJ9IiA7OworKyMJCWVzYWMKKysKKysJCSMKKysJCSMgTG9vayBm b3IgTXlTUUwgQyBBUEkgaGVhZGVycworKwkJIworKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9f biAiY2hlY2tpbmcgZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5Li4uICIgPiY2OyB9CisrCQlN WVNRTF9pbmNkaXI9CisrCQlmb3IgbSBpbiAkTVlTUUxfaW5jX2NoZWNrCisrCQlkbworKwkJCWlm IHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9teXNxbC5oIgorKwkJCXRoZW4KKysJCQkJTVlT UUxfaW5jZGlyPSRtCisrCQkJCWJyZWFrCisrCQkJZmkKKysJCWRvbmUKKysKKysJCWlmIHRlc3Qg LXogIiRNWVNRTF9pbmNkaXIiCisrCQl0aGVuCisrCQkJeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1ZU1FM X2luY19jaGVjayciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBEaWRuJ3QgZmluZCB0 aGUgTXlTUUwgaW5jbHVkZSBkaXIgaW4gJyRNWVNRTF9pbmNfY2hlY2snIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKwkJZmkKKysKKysJCWNhc2UgIiRNWVNRTF9pbmNkaXIi IGluCisrCQkJIC8qICkgOzsKKysJCQkgKiApICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogVGhlIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0 IGJlIGFuIGFic29sdXRlIHBhdGguIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogVGhl IE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5ICgkTVlTUUxfaW5jZGlyKSBtdXN0IGJlIGFuIGFic29s dXRlIHBhdGguIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworKwkJZXNh YworKworKwkJeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJE1ZU1FMX2luY2Rp ciIgPiY1CisrJGFzX2VjaG8gIiRNWVNRTF9pbmNkaXIiID4mNjsgfQorKworKwkJTVlTUUxfVkVS U0lPTj1gZ3JlcCAiZGVmaW5lIE1ZU1FMX1NFUlZFUl9WRVJTSU9OIiAkTVlTUUxfaW5jZGlyL215 c3FsX3ZlcnNpb24uaCB8IGN1dCAtZFwiIC1mMmAKKysJCU1ZU1FMX0NGTEFHUz0iLUkke01ZU1FM X2luY2Rpcn0iCisrCQlNWVNRTF9MSUJTPSItTCR7TVlTUUxfbGliZGlyfSAtbCR7TVlTUUxfQ19M SUJ9IgorKwlmaQorKworKworKworKworKworKwlzYXZlX0xJQlM9IiRMSUJTIgorKwlMSUJTPSIk TElCUyAkTVlTUUxfTElCUyIKKysKKythc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJE1Z U1FMX0NfTElCJydfbXlzcWxfc3RvcmVfcmVzdWx0IiB8ICRhc190cl9zaGAKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG15c3FsX3N0b3JlX3Jlc3VsdCBpbiAtbCRN WVNRTF9DX0xJQiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG15c3FsX3N0b3JlX3Jl c3VsdCBpbiAtbCRNWVNRTF9DX0xJQi4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19M aWI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgYWNfY2hlY2tfbGliX3NhdmVfTElC Uz0kTElCUworK0xJQlM9Ii1sJE1ZU1FMX0NfTElCICAkTElCUyIKKytjYXQgPmNvbmZ0ZXN0LiRh Y19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKworKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50 IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQworKyAgIGJ1aWx0aW4gYW5kIHRo ZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisrI2lmZGVm IF9fY3BsdXNwbHVzCisrZXh0ZXJuICJDIgorKyNlbmRpZgorK2NoYXIgbXlzcWxfc3RvcmVfcmVz dWx0ICgpOworK2ludAorK21haW4gKCkKKyt7CisrcmV0dXJuIG15c3FsX3N0b3JlX3Jlc3VsdCAo KTsKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytybSAtZiBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAorK2lmIHsgKGFjX3RyeT0iJGFjX2xpbmsiCisrY2Fz ZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIkYWNf dHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXIxCisrICBh Y19zdGF0dXM9JD8KKysgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CisrICBybSAtZiBjb25mdGVzdC5lcjEKKysgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisrICAkYXNf ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYgeworKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKKysJ IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKysgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JGFj X2V4ZWV4dCAmJiB7CisrCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyB8fAorKwkgJGFz X3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKKysgICAgICAgfTsgdGhlbgorKyAgZXZhbCAiJGFz X2FjX0xpYj15ZXMiCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0g d2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlldmFs ICIkYXNfYWNfTGliPW5vIgorK2ZpCisrCisrcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KKytybSAtZiBj b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0X2lwYThfY29uZnRl c3Qub28gXAorKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisrTElC Uz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsn JGFzX2FjX0xpYid9CisrCQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNf cmVzIiA+JjY7IH0KKythc192YWw9YGV2YWwgJ2FzX3ZhbD0keyckYXNfYWNfTGliJ30KKysJCSAk YXNfZWNobyAiJGFzX3ZhbCInYAorKyAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhl bgorKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZF X0xJQiRNWVNRTF9DX0xJQiIgfCAkYXNfdHJfY3BwYCAxCisrX0FDRU9GCisrCisrICBMSUJTPSIt bCRNWVNRTF9DX0xJQiAkTElCUyIKKysKKytlbHNlCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogQ291bGQgbm90IGZpbmQgd29ya2luZyBNeVNRTCBjbGllbnQgbGlicmFy eSEiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBDb3VsZCBub3QgZmluZCB3b3JraW5n IE15U1FMIGNsaWVudCBsaWJyYXJ5ISIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKysKKytmaQorKworKworKwlMSUJTPSIkc2F2ZV9MSUJTIgorKworK2ZpCisrIGlmIHRlc3Qg IngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0geHllczsgdGhlbgorKyAgSEFWRV9NWVNRTF9UUlVF PQorKyAgSEFWRV9NWVNRTF9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX01ZU1FMX1RSVUU9JyMn CisrICBIQVZFX01ZU1FMX0ZBTFNFPQorK2ZpCisrCisrI01ZU1FMX0RJUlM9Im15c3FsIgorKwor KworKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgd2Fz IGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlK3NldH0iID0gc2V0OyB0 aGVuCisrICBlbmFibGV2YWw9JGVuYWJsZV9iYWNrZW5kX29yYWNsZTsgIGlmIHRlc3QgIiRlbmFi bGV2YWwiID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubworKyAg ICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMKKysgICAgICBmaQorK2Vsc2UK KysgICBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysKKytmaQorKworKworK2lmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgorKyAgIE9SQUNMRV9ESVJTPSJv cmFjbGUiCisrICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lPTj0iOS4wIgorKworKworKworKyMgQ2hl Y2sgd2hldGhlciAtLXdpdGgtb3JhY2xlIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhfb3Jh Y2xlK3NldH0iID0gc2V0OyB0aGVuCisrICB3aXRodmFsPSR3aXRoX29yYWNsZTsKKysgICAgICAg IGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCisrICAgICAgICAgICAgaWYgdGVzdCAt biAiJE9SQUNMRV9IT01FIjsgdGhlbgorKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9 IiRPUkFDTEVfSE9NRSIKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgIG9yYWNs ZV9ob21lX2Rpcj0iIgorKyAgICAgICAgICAgIGZpCisrICAgICAgICBmaQorKworK2Vsc2UKKysK KysgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7IHRoZW4KKysgICAgICAgICAgICBv cmFjbGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAg ICBvcmFjbGVfaG9tZV9kaXI9IiIKKysgICAgICAgIGZpCisrCisrCisrZmkKKysKKysKKysKKysj IENoZWNrIHdoZXRoZXIgLS13aXRoLW9yYWNsZS1pbmNsdWRlIHdhcyBnaXZlbi4KKytpZiB0ZXN0 ICIke3dpdGhfb3JhY2xlX2luY2x1ZGUrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIHdpdGh2YWw9JHdp dGhfb3JhY2xlX2luY2x1ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCIKKytl bHNlCisrICBvcmFjbGVfaG9tZV9pbmNsdWRlX2Rpcj0iIgorKworK2ZpCisrCisrCisrIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke3dpdGhf b3JhY2xlX2xpYitzZXR9IiA9IHNldDsgdGhlbgorKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGVfbGli OyBvcmFjbGVfaG9tZV9saWJfZGlyPSIkd2l0aHZhbCIKKytlbHNlCisrICBvcmFjbGVfaG9tZV9s aWJfZGlyPSIiCisrCisrZmkKKysKKysKKysgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiIKKysgICAg T1JBQ0xFX09DSV9MREZMQUdTPSIiCisrICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iIgorKworKyAg ICAgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ibm8iCisrCisrICAgIGlmIHRl c3QgLW4gIiRvcmFjbGVfaG9tZV9kaXIiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0ICIkb3Jh Y2xlX2hvbWVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfZGlyIiAhPSAieWVzIjsgdGhl bgorKworKyAgICAgICAgICAgICAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNs ZV9ob21lX2Rpci9yZGJtcy9wdWJsaWMiCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3Jh Y2xlX2luY2x1ZGVfZGlyMj0iJG9yYWNsZV9ob21lX2Rpci9yZGJtcy9kZW1vIgorKworKyAgICAg ICAgICAgICAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL2xpYiIK KysgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2RpciIgPSAieWVzIjsgdGhlbgorKyAg ICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCisrICAgICAgICBmaQorKwor KyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgLW8gLW4gIiRvcmFj bGVfaG9tZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21l X2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJ5 ZXMiOyB0aGVuCisrICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVf aW5jbHVkZV9kaXIiCisrICAgICAgICBlbGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2Rp ciIgPSAieWVzIjsgdGhlbgorKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5 ZXMiCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9k aXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9saWJfZGlyIiAhPSAieWVzIjsgdGhlbgorKyAg ICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIkb3JhY2xlX2hvbWVfbGliX2RpciIKKysgICAgICAg IGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiID0gInllcyI7IHRoZW4KKysgICAgICAg ICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0aD0ieWVzIgorKyAgICAgICAgZmkKKysgICAgZmkK KysKKysgICAgaWYgdGVzdCAiJHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoIiA9ICJ5ZXMiOyB0aGVu CisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogT3JhY2xlIHN1 cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVk LiBcCisrUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFj bGUgb3IgXAorKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0 aW9ucy4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlz IHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAorK1Bs ZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwK KystLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+ JjI7fQorKyAgICBmaQorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2lu Y2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgorKworKyAgICAgICAgc2F2 ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKKysgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkk b3JhY2xlX2luY2x1ZGVfZGlyIgorKworKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT IC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCisrICAgICAgICBmaQorKworKyAgICAgICAgIyBGaWd1 cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KKysgICAgICAgIGNhc2UgJGhvc3Rf b3MgaW4KKysgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKKysgICAgICAgICAg ICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKKysgICAgICAgICAgICAqKSBXSU4zMj1ubyA7Owor KyAgICAgICAgZXNhYworKworKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKKysgICAg ICAgIHRoZW4KKysgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKKysgICAg ICAgIGVsc2UKKysgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCisrICAgICAgICBmaQorKwor KyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCisrICAgICAgICBzYXZlZF9MSUJTPSIk TElCUyIKKysgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKKysgICAgICAg IExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKKysgICAgICAgIExJQlM9IiRMSUJTICRv Y2lfbGlicyIKKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFj bGVfaW5jbHVkZV9kaXIiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBPcmFjbGUgT0NJ IGhlYWRlcnMgaW4gJG9yYWNsZV9pbmNsdWRlX2Rpci4uLiAiID4mNjsgfQorKworKyAgICAgICAg YWNfZXh0PWNwcAorK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCisrYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCisrYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251CisrCisrICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YK KysKKysgICAgICAgICAgICAvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRl ZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9G CisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxvY2kuaD4KKytpbnQKKyttYWlu ICgpCisreworKworKyNpZiBkZWZpbmVkKE9DSV9NQUpPUl9WRVJTSU9OKQorKyNpZiBPQ0lfTUFK T1JfVkVSU0lPTiA9PSAxMCAmJiBPQ0lfTUlOT1JfVkVSU0lPTiA9PSAyCisrLy8gT3JhY2xlIDEw LjIgZGV0ZWN0ZWQKKysjZW5kaWYKKysjZWxpZiBkZWZpbmVkKE9DSV9WN19TWU5UQVgpCisrLy8g T0ssIG9sZGVyIE9yYWNsZSBkZXRlY3RlZAorKy8vIFRPRE8gLSBtbG9za290OiBmaW5kIGJldHRl ciBtYWNybyB0byBjaGVjayBmb3Igb2xkZXIgdmVyc2lvbnM7CisrI2Vsc2UKKysjICBlcnJvciBP cmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAorKyNlbmRpZgorKworKworKyAgOworKyAgcmV0 dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChh Y190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAq IHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3Ry eTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5 X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2Nv bXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICor JyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBj YXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXog IiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAg ICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrCisrICAgICAgICAg ICAgT1JBQ0xFX09DSV9DRkxBR1M9Ii1JJG9yYWNsZV9pbmNsdWRlX2RpciIKKysKKysgICAgICAg ICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KKysgICAgICAgICAg ICAgICAgT1JBQ0xFX09DSV9DRkxBR1M9IiRPUkFDTEVfT0NJX0NGTEFHUyAtSSRvcmFjbGVfaW5j bHVkZV9kaXIyIgorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgb2NpX2hlYWRlcl9m b3VuZD0ieWVzIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1 bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKyAgJGFzX2Vj aG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Cisrc2VkICdzL14vfCAvJyBjb25m dGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5v IgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vdCBm b3VuZCIgPiY1CisrJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9CisrCisrCisrZmkKKysKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKysgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgdGVzdCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyI7IHRoZW4KKysKKysg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIE9yYWNs ZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2RpciIgPiY1CisrJGFzX2VjaG9fbiAiY2hl Y2tpbmcgZm9yIE9yYWNsZSBPQ0kgbGlicmFyaWVzIGluICRvcmFjbGVfbGliX2Rpci4uLiAiID4m NjsgfQorKworKyAgICAgICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZM QUdTJworK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4k YWNfZXh0ID4mNScKKythY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxB R1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2Nv bXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgICAgIGNhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKworKyAgICAgICAgICAgICAgICAvKiBjb25mZGVm cy5oLiAgKi8KKytfQUNFT0YKKytjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytj YXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLwor KyNpbmNsdWRlIDxvY2kuaD4KKytpbnQKKyttYWluICgpCisreworKworK09DSUVudiogZW52aCA9 IDA7CisrT0NJRW52Q3JlYXRlKCZlbnZoLCBPQ0lfREVGQVVMVCwgMCwgMCwgMCwgMCwgMCwgMCk7 CisraWYgKGVudmgpIE9DSUhhbmRsZUZyZWUoZW52aCwgT0NJX0hUWVBFX0VOVik7CisrCisrCisr ICA7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dCBjb25mdGVzdCRhY19leGVleHQKKytpZiB7IChhY190cnk9IiRhY19saW5rIgorK2Nhc2UgIigo JGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7 OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89 IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9l Y2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3Rh dHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAg cm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0 dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVl eHQgJiYgeworKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKysJICRhc190ZXN0 X3ggY29uZnRlc3QkYWNfZXhlZXh0CisrICAgICAgIH07IHRoZW4KKysKKysgICAgICAgICAgICAg ICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2NpX2xkZmxhZ3MgJG9jaV9saWJzIgorKyAgICAgICAg ICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMiCisrICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9 CisrCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1 Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKworKyAgICAgICAgICAg ICAgICBvY2lfbGliX2ZvdW5kPSJubyIKKysgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKKyskYXNfZWNobyAibm90IGZvdW5k IiA+JjY7IH0KKysKKysKKytmaQorKworK3JtIC1yZiBjb25mdGVzdC5kU1lNCisrcm0gLWYgY29y ZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0 Lm9vIFwKKysgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgICAg ICAgICAgIGFjX2V4dD1jcHAKKythY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworK2FjX2NvbXBp bGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKKyth Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworK2FjX2NvbXBpbGVyX2dudT0kYWNf Y3ZfY3h4X2NvbXBpbGVyX2dudQorKworKyAgICAgICAgZmkKKysKKysgICAgICAgIENQUEZMQUdT PSIkc2F2ZWRfQ1BQRkxBR1MiCisrICAgICAgICBMREZMQUdTPSIkc2F2ZWRfTERGTEFHUyIKKysg ICAgICAgIExJQlM9IiRzYXZlZF9MSUJTIgorKyAgICBmaQorKworKyAgICAgICAgICAgICAgICBv cmFjbGVfdmVyc2lvbl9yZXE9JE9SQUNMRV9PQ0lfUkVRX1ZFUlNJT04KKysKKysgICAgaWYgdGVz dCAiJG9jaV9oZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMi IC1hIFwKKysgICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgorKworKyAgICAg ICAgb3JhY2xlX3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9S X1ZFUlNJT04uKicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3Mv I2RlZmluZSBPQ0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgb3JhY2xl X3ZlcnNpb25fbWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04u KicgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBP Q0lfTUlOT1JfVkVSU0lPTiAgKi8vJyBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAorKworKyAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiRMSU5FTk86IGNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVyc2lvbiBpcyA+PSAkb3JhY2xl X3ZlcnNpb25fcmVxIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBPcmFjbGUgT0NJIHZl cnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcS4uLiAiID4mNjsgfQorKworKyAgICAgICAg aWYgdGVzdCAtbiAiJG9yYWNsZV92ZXJzaW9uX21ham9yIiAtYSAtbiAkIm9yYWNsZV92ZXJzaW9u X21pbm9yIjsgdGhlbgorKworKyAgICAgICAgICAgIE9SQUNMRV9PQ0lfVkVSU0lPTj0iJG9yYWNs ZV92ZXJzaW9uX21ham9yLiRvcmFjbGVfdmVyc2lvbl9taW5vciIKKysKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJG9y YWNsZV92ZXJzaW9uX3JlcSA6ICdcKFswLTldKlwpJ2AKKysgICAgICAgICAgICBvcmFjbGVfdmVy c2lvbl9yZXFfbWlub3I9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAt OV0qXCknYAorKworKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXI9YGV4cHIg JG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEw MDBgCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBl eHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXCsgJG9yYWNsZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCisrCisr ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fY2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251 bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAgICAgICAgICAgIGlmIHRl c3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysgICAgICAgICAgICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKKyskYXNfZWNobyAi eWVzIiA+JjY7IH0KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgSEFW RV9PUkFDTEUgMQorK19BQ0VPRgorKworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrICAgICAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBPcmFjbGUgJE9SQUNMRV9PQ0lfVkVSU0lPTiBmb3VuZCwgYnV0IHJlcXVpcmVk IHZlcnNpb24gaXMgJG9yYWNsZV92ZXJzaW9uX3JlcSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IE9yYWNsZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWlyZWQgdmVy c2lvbiBpcyAkb3JhY2xlX3ZlcnNpb25fcmVxIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorKyAgICAgICAgICAgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgT1JB Q0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgorKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorKyAgICAg ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBPcmFjbGUgdmVyc2lv biB1bmtub3duLCBwcm9iYWJseSBPQ0kgb2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJsZSIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogT3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJv YmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBhdmFpbGFibGUiID4mMjt9CisrICAgICAgICBm aQorKyAgICBmaQorKworKworKworKworKworK2ZpCisrIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tl bmRfb3JhY2xlIiA9IHh5ZXM7IHRoZW4KKysgIEhBVkVfT1JBQ0xFX1RSVUU9CisrICBIQVZFX09S QUNMRV9GQUxTRT0nIycKKytlbHNlCisrICBIQVZFX09SQUNMRV9UUlVFPScjJworKyAgSEFWRV9P UkFDTEVfRkFMU0U9CisrZmkKKysKKysjT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysKKysKKysKKysj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysjIFN1cHBvcnQgZm9yIFBvc3RncmVTUUwgYmFja2VuZAorKyMgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1iYWNrZW5kLXBvc3RncmVzcWwgd2FzIGdp dmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsg dGhlbgorKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsOyAgaWYgdGVzdCAi JGVuYWJsZXZhbCIgPSBubzsgdGhlbgorKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNx bD1ubworKyAgICAgIGVsc2UKKysJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9eWVzCisrICAg ICAgZmkKKytlbHNlCisrICAgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubworKworK2ZpCisr CisrCisraWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9ICJ4eWVzIjsgdGhl bgorKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKKysgICBQT1NUR1JFU1FMX1JFUV9W RVJTSU9OPSI3LjEuNCIKKysKKysKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXBvc3RncmVzcWwg d2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7d2l0aF9wb3N0Z3Jlc3FsK3NldH0iID0gc2V0OyB0aGVu CisrICB3aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7CisrCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIk d2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCisrICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAi bm8iOyB0aGVuCisrICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGVs aWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KKysgICAgICAgICAgICB3YW50X3Bvc3Rn cmVzcWw9InllcyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9 InllcyIKKysgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgorKyAgICAgICAgZmkKKysK KytlbHNlCisrICB3YW50X3Bvc3RncmVzcWw9InllcyIKKysJUE9TVEdSRVNRTF9pbmNfY2hlY2s9 Ii91c3IvaW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCisrCisrZmkKKysKKysKKysgICAgUE9TVEdS RVNRTF9DRkxBR1M9IiIKKysgICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCisrICAgIFBPU1RHUkVT UUxfUE9TVEdSRVNRTD0iIgorKworKworKyAgICBpZiB0ZXN0ICIkd2FudF9wb3N0Z3Jlc3FsIiA9 ICJ5ZXMiOyB0aGVuCisrCisrICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09ORklHIiAtbyB0ZXN0 OyB0aGVuCisrICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwZ19jb25m aWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBw Z19jb25maWc7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEdfQ09ORklHK3NldH0iID0gc2V0 OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhc2UgJFBH X0NPTkZJRyBpbgorKyAgW1xcL10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX1BHX0NPTkZJ Rz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBh dGguCisrICA7OworKyAgKikKKysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisrICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcGF0aF9QR19DT05GSUc9IiRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisrZG9u ZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICA7OworK2VzYWMKKytmaQorK1BHX0NP TkZJRz0kYWNfY3ZfcGF0aF9QR19DT05GSUcKKytpZiB0ZXN0IC1uICIkUEdfQ09ORklHIjsgdGhl bgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFBHX0NPTkZJRyIgPiY1 CisrJGFzX2VjaG8gIiRQR19DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQorK2Zp CisrCisrCisrICAgICAgICBmaQorKworKyAgICAgICAgaWYgdGVzdCAhIC14ICIkUEdfQ09ORklH IjsgdGhlbgorKyAgICAgICAgICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9y OiAkUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZp bGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkUEdfQ09ORklHIGRvZXMgbm90IGV4 aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVhYmxlIGZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrICAgICAgICAgICAgUEdfQ09ORklHPSJubyIKKysgICAgICAgICAg ICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKKysgICAgICAgIGZpCisrCisrICAgICAgICBpZiB0ZXN0 ICIkUEdfQ09ORklHIiAhPSAibm8iOyB0aGVuCisrICAgICAgICAgICAgIworKyAgICAgICAgICAg ICMgTG9vayBmb3IgUG9zdGdyZXNxbCBDIEFQSSBoZWFkZXJzCisrICAgICAgICAgICAgIworKyAg ICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgUG9zdGdy ZXNxbCBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFBv c3RncmVzcWwgaW5jbHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KKysgICAgICAgICAgICBQT1NU R1JFU1FMX2luY2Rpcj0KKysgICAgICAgICAgICBmb3IgcG9zdGdyZXNxbF9pbmNfZGlyIGluICRQ T1NUR1JFU1FMX2luY19jaGVjaworKyAgICAgICAgICAgIGRvCisrICAgICAgICAgICAgICAgIGlm IHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKKysgICAgICAgICAgICAgICAgJiYgdGVz dCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQuaCIKKysgICAgICAgICAgICAg ICAgdGhlbgorKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNRTF9pbmNkaXI9JHBvc3RncmVz cWxfaW5jX2RpcgorKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICAgICAg ZmkKKysgICAgICAgICAgICBkb25lCisrCisrICAgICAgICAgICAgaWYgdGVzdCAteiAiJFBPU1RH UkVTUUxfaW5jZGlyIgorKyAgICAgICAgICAgIHRoZW4KKysgICAgICAgICAgICAgICAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IERpZG4ndCBmaW5kIHRoZSBQb3N0Z3Jlc3Fs IGluY2x1ZGUgZGlyIGluICckUE9TVEdSRVNRTF9pbmNfY2hlY2snIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogRGlkbid0IGZpbmQgdGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXIgaW4g JyRQT1NUR1JFU1FMX2luY19jaGVjayciID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9 OyB9CisrICAgICAgICAgICAgZmkKKysKKysgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9p bmNkaXIiIGluCisrICAgICAgICAgICAgICAgIC8qICkgOzsKKysgICAgICAgICAgICAgICAgKiAp ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogVGhlIFBvc3RncmVzcWwgaW5j bHVkZSBkaXJlY3RvcnkgKCRQT1NUR1JFU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBw YXRoLiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFRoZSBQb3N0Z3Jlc3FsIGluY2x1 ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0 aC4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrICAgICAgICAgICAg ZXNhYworKworKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1CisrJGFzX2VjaG8gIiRQT1NUR1JFU1FMX2luY2RpciIg PiY2OyB9CisrCisrICAgICAgICAgICAgaWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIv dXNyL2luY2x1ZGUiOyB0aGVuCisrICAgICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgor KyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7 UE9TVEdSRVNRTF9pbmNkaXJ9IgorKyAgICAgICAgICAgIGZpCisrCisrICAgICAgICAgICAgUE9T VEdSRVNRTF9MREZMQUdTPSItTGAkUEdfQ09ORklHIC0tbGliZGlyYCAtbHBxIgorKworKyAgICAg ICAgICAgIFBPU1RHUkVTUUxfVkVSU0lPTj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBzZWQgLWUg J3MjUG9zdGdyZVNRTCAjIydgCisrCisrCisrY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKysj ZGVmaW5lIEhBVkVfUE9TVEdSRVNRTCAxCisrX0FDRU9GCisrCisrCisrICAgICAgICAgICAgZm91 bmRfcG9zdGdyZXNxbD0ieWVzIgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGZvdW5kX3Bv c3RncmVzcWw9Im5vIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysgICAgcG9zdGdy ZXNxbF92ZXJzaW9uX3JlcT0kUE9TVEdSRVNRTF9SRVFfVkVSU0lPTgorKworKyAgICBpZiB0ZXN0 ICIkZm91bmRfcG9zdGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9y ZXEiOyB0aGVuCisrCisrICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgaWYgUG9zdGdyZVNRTCB2ZXJzaW9uIGlzID49ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIiA+ JjUKKyskYXNfZWNob19uICJjaGVja2luZyBpZiBQb3N0Z3JlU1FMIHZlcnNpb24gaXMgPj0gJHBv c3RncmVzcWxfdmVyc2lvbl9yZXEuLi4gIiA+JjY7IH0KKysKKysgICAgICAgICAgICAgICAgICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxIDogJ1woWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9t aW5vcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlwoWzAtOV0qXCkn YAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz1gZXhwciAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCisrICAgICAgICBp ZiB0ZXN0ICJ4JHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWljcm8iID0gIngiOyB0aGVuCisrICAg ICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybz0iMCIKKysgICAgICAgIGZpCisr CisrICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkcG9zdGdyZXNx bF92ZXJzaW9uX3JlcV9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEwMDAgXAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWljcm9gCisrCisrICAgICAgICAgICAgICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJz aW9uX21ham9yPWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnXChbMC05XSpcKSdgCisrICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6 ICdbMC05XSpcLlwoWzAtOV0qXCknYAorKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv PWBleHByICRQT1NUR1JFU1FMX1ZFUlNJT04gOiAnWzAtOV0qXC5bMC05XSpcLlwoWzAtOV0qXCkn YAorKyAgICAgICAgaWYgdGVzdCAieCRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm8iID0gIngiOyB0 aGVuCisrICAgICAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvPSIwIgorKyAgICAgICAg ZmkKKysKKysgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXI9YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9tYWpvciBcKiAxMDAwMDAwIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWlub3IgXCogMTAwMCBcCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3Jv YAorKworKyAgICAgICAgcG9zdGdyZXNxbF92ZXJzaW9uX2NoZWNrPWBleHByICRwb3N0Z3Jlc3Fs X3ZlcnNpb25fbnVtYmVyIFw+XD0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyYAorKyAg ICAgICAgaWYgdGVzdCAiJHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjayIgPSAiMSI7IHRoZW4KKysg ICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQor KyRhc19lY2hvICJ5ZXMiID4mNjsgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysKKysKKysKKysKKytmaQorKyBpZiB0ZXN0 ICJ4JGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWwiID0geHllczsgdGhlbgorKyAgSEFWRV9QT1NU R1JFU1FMX1RSVUU9CisrICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9JyMnCisrZWxzZQorKyAgSEFW RV9QT1NUR1JFU1FMX1RSVUU9JyMnCisrICBIQVZFX1BPU1RHUkVTUUxfRkFMU0U9CisrZmkKKysK KysjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKworKworKworKworKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyMgU3VwcG9ydCBmb3IgZG9jdW1lbnRhdGlvbgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2tz IGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrI0FDX0NIRUNLX1BST0coW3RleGluZm9f b2tdLCBbdGV4aW5mb10sIFt5ZXNdLCBbbm9dKQorKyNpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2Rv YyIgIT0geG5vOyB0aGVuCisrIyAgdGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYmIGVuYWJs ZV9pbmZvX2RvYz1ubworKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCisrI2Zp CisrIGlmIHRlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXM7IHRoZW4KKysgIElORk9fRE9D X1RSVUU9CisrICBJTkZPX0RPQ19GQUxTRT0nIycKKytlbHNlCisrICBJTkZPX0RPQ19UUlVFPScj JworKyAgSU5GT19ET0NfRkFMU0U9CisrZmkKKysKKysKKysjIENoZWNrcyBmb3IgZG9jdW1lbnRh dGlvbiBidWlsZCB0b29scworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZG94eWdlbiIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IGRveHln ZW47IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9y ICRhY193b3JkIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+ JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3Byb2dfZG94eWdlbl9vaytzZXR9IiA9IHNldDsgdGhl bgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIk ZG94eWdlbl9vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZG94eWdlbl9vaz0iJGRveHlnZW5fb2si ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJ RlM9JGFzX3NhdmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9y IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7 IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfZG94 eWdlbl9vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUK Kytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfZG94 eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29rPSJubyIKKytmaQorK2ZpCisrZG94eWdl bl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCisraWYgdGVzdCAtbiAiJGRveHlnZW5fb2siOyB0 aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZG94eWdlbl9vayIg PiY1CisrJGFzX2VjaG8gIiRkb3h5Z2VuX29rIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K KytmaQorKworKworKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAibGF0ZXgiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBsYXRleDsgYWNfd29y ZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lm IHRlc3QgIiR7YWNfY3ZfcHJvZ19sYXRleF9vaytzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2Vj aG9fbiAiKGNhY2hlZCkgIiA+JjYKKytlbHNlCisrICBpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0 aGVuCisrICBhY19jdl9wcm9nX2xhdGV4X29rPSIkbGF0ZXhfb2siICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgorK2Vsc2UKKythc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3NhdmVfSUZTCisr ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3Byb2dfbGF0ZXhfb2s9InllcyIKKysgICAg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNf ZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2 ZV9JRlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2xhdGV4X29rIiAmJiBhY19jdl9wcm9n X2xhdGV4X29rPSJubyIKKytmaQorK2ZpCisrbGF0ZXhfb2s9JGFjX2N2X3Byb2dfbGF0ZXhfb2sK KytpZiB0ZXN0IC1uICIkbGF0ZXhfb2siOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogcmVzdWx0OiAkbGF0ZXhfb2siID4mNQorKyRhc19lY2hvICIkbGF0ZXhfb2siID4mNjsg fQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUK KyskYXNfZWNobyAibm8iID4mNjsgfQorK2ZpCisrCisrCisrIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJkdmlwcyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisr c2V0IGR1bW15IGR2aXBzOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wcm9nX2R2aXBzX29rK3NldH0i ID0gc2V0OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGlm IHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfZHZpcHNfb2s9IiRkdmlw c19vayIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisrZWxzZQorK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQQVRICisrZG8K KysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisr ICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysg IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKysgICAgYWNfY3ZfcHJv Z19kdmlwc19vaz0ieWVzIgorKyAgICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2Rv bmUKKytkb25lCisrSUZTPSRhc19zYXZlX0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2df ZHZpcHNfb2siICYmIGFjX2N2X3Byb2dfZHZpcHNfb2s9Im5vIgorK2ZpCisrZmkKKytkdmlwc19v az0kYWNfY3ZfcHJvZ19kdmlwc19vaworK2lmIHRlc3QgLW4gIiRkdmlwc19vayI7IHRoZW4KKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRkdmlwc19vayIgPiY1CisrJGFz X2VjaG8gIiRkdmlwc19vayIgPiY2OyB9CisrZWxzZQorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrZmkKKysKKysK KysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdzIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KKytzZXQgZHVtbXkgZ3M7IGFjX3dvcmQ9JDIKKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyskYXNfZWNob19u ICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3By b2dfZ3Nfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgorKyAgYWNfY3ZfcHJvZ19nc19v az0iJGdzX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNf c2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgK KytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGly PS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19j dl9wcm9nX2dzX29rPSJ5ZXMiCisrICAgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgIGJyZWFrIDIKKysgIGZpCisr ZG9uZQorK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCisrZmkKKytmaQorK2dzX29rPSRhY19j dl9wcm9nX2dzX29rCisraWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGdzX29rIiA+JjUKKyskYXNfZWNobyAiJGdzX29rIiA+ JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2lmIHRlc3QgIngkZW5hYmxl X2h0bWxfZG9jIiAhPSB4bm87IHRoZW4KKysgIHRlc3QgIngkZG94eWdlbl9vayIgIT0geHllcyAm JiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngkbGF0ZXhfb2siICE9IHh5ZXMgJiYgZW5h YmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGR2aXBzX29rIiAhPSB4eWVzICYmIGVuYWJsZV9o dG1sX2RvYz1ubworKyAgdGVzdCAieCRnc19vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9 bm8KKysgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVybCIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHBlcmw7IGFjX3dvcmQ9JDIKKyt7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhlbgorKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKKytlbHNlCisrICBjYXNlICRQRVJMIGluCisrICBbXFwvXSogfCA/OltcXC9dKikK KysgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0IHdpdGggYSBwYXRoLgorKyAgOzsKKysgICopCisrICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9 JFBBVEhfU0VQQVJBVE9SCisrZm9yIGFzX2RpciBpbiAkUEFUSAorK2RvCisrICBJRlM9JGFzX3Nh dmVfSUZTCisrICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorKyAgZm9yIGFjX2V4ZWNf ZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfUEVSTD0iJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKysgICAgYnJlYWsgMgorKyAg ZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKKysKKysgIDs7CisrZXNhYworK2Zp CisrUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCisraWYgdGVzdCAtbiAiJFBFUkwiOyB0aGVuCisrICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUEVSTCIgPiY1CisrJGFzX2VjaG8g IiRQRVJMIiA+JjY7IH0KKytlbHNlCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVz dWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKytmaQorKworKworK2ZpCisrIGlm IHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7IHRoZW4KKysgIEhUTUxfRE9DX1RSVUU9 CisrICBIVE1MX0RPQ19GQUxTRT0nIycKKytlbHNlCisrICBIVE1MX0RPQ19UUlVFPScjJworKyAg SFRNTF9ET0NfRkFMU0U9CisrZmkKKysKKysKKysKKysjIENoZWNrIGZvciBkaWZmIHByb2dyYW0g dXNlZCBmb3IgdGVzdHMKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRpZmYiLCBzbyBp dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorK3NldCBkdW1teSBkaWZmOyBhY193 b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wcm9nX2RpZmZfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19l Y2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJGRpZmZfb2siOyB0 aGVuCisrICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZmX29rIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX2RpZmZfb2s9InllcyIKKysgICAgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiA+JjUKKysgICAgYnJlYWsgMgorKyAgZmkKKytkb25lCisrZG9uZQorK0lGUz0kYXNfc2F2ZV9J RlMKKysKKysgIHRlc3QgLXogIiRhY19jdl9wcm9nX2RpZmZfb2siICYmIGFjX2N2X3Byb2dfZGlm Zl9vaz0ibm8iCisrZmkKKytmaQorK2RpZmZfb2s9JGFjX2N2X3Byb2dfZGlmZl9vaworK2lmIHRl c3QgLW4gIiRkaWZmX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogJGRpZmZfb2siID4mNQorKyRhc19lY2hvICIkZGlmZl9vayIgPiY2OyB9CisrZWxzZQor KyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hv ICJubyIgPiY2OyB9CisrZmkKKysKKysKKysjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInNl ZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15IHNl ZDsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX3dvcmQiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m NjsgfQorK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19zZWRfb2src2V0fSIgPSBzZXQ7IHRoZW4KKysg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgaWYgdGVzdCAtbiAiJHNlZF9v ayI7IHRoZW4KKysgIGFjX2N2X3Byb2dfc2VkX29rPSIkc2VkX29rIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KKytlbHNlCisrYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUwor KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgorKyAgICBhY19jdl9wcm9nX3NlZF9vaz0ieWVzIgorKyAgICAk YXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUKKytkb25lCisrSUZTPSRhc19zYXZl X0lGUworKworKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfc2VkX29rIiAmJiBhY19jdl9wcm9nX3Nl ZF9vaz0ibm8iCisrZmkKKytmaQorK3NlZF9vaz0kYWNfY3ZfcHJvZ19zZWRfb2sKKytpZiB0ZXN0 IC1uICIkc2VkX29rIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogJHNlZF9vayIgPiY1CisrJGFzX2VjaG8gIiRzZWRfb2siID4mNjsgfQorK2Vsc2UKKysgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8i ID4mNjsgfQorK2ZpCisrCisrCisrZW5hYmxlX3Rlc3RzPXllcworK3Rlc3QgIngkZGlmZl9vayIg IT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKyt0ZXN0ICJ4JHNlZF9vayIgIT0geHllcyAmJiBl bmFibGVfdGVzdHM9bm8KKysgaWYgdGVzdCAieCRlbmFibGVfdGVzdHMiID0geHllczsgdGhlbgor KyAgUlVOX1RFU1RTX1RSVUU9CisrICBSVU5fVEVTVFNfRkFMU0U9JyMnCisrZWxzZQorKyAgUlVO X1RFU1RTX1RSVUU9JyMnCisrICBSVU5fVEVTVFNfRkFMU0U9CisrZmkKKysKKysKKysKKysjIENo ZWNrcyBmb3IgaGVhZGVyIGZpbGVzCisrCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKKyskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf aGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CisrZWxzZQorKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRl ZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Cisr Y2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K KysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0ZGFyZy5oPgorKyNpbmNsdWRlIDxz dHJpbmcuaD4KKysjaW5jbHVkZSA8ZmxvYXQuaD4KKysKKytpbnQKKyttYWluICgpCisreworKwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKKytpZiB7IChhY190cnk9IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysg ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5 X2VjaG89JGFjX3RyeTs7CisrZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElO RU5POiAkYWNfdHJ5X2VjaG9cIiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBn cmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRl c3QuZXIxCisrICBjYXQgY29uZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsK KysJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRl c3QuZXJyCisrICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisr ICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 CisrCisrCWFjX2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysKKytpZiB0ZXN0ICRh Y19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9l cyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgorKyAgY2F0ID5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZk ZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VP RgorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrCisrX0FD RU9GCisraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorKyAgJEVH UkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGFjX2N2 X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQorKworK2lmIHRl c3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIElTQyAyLjAuMiBzdGRsaWIu aCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCisrICBjYXQgPmNvbmZ0 ZXN0LiRhY19leHQgPDxfQUNFT0YKKysvKiBjb25mZGVmcy5oLiAgKi8KKytfQUNFT0YKKytjYXQg Y29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKKytjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisrLyogZW5kIGNvbmZkZWZzLmguICAqLworKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysK KytfQUNFT0YKKytpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Cisr ICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgorKyAgOgorK2Vsc2UKKysgIGFj X2N2X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtZiBjb25mdGVzdCoKKysKKytmaQorKworK2lm IHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisrICAjIC9iaW4vY2MgaW4gSXJp eC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCisr ICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorKyAgOgorK2Vsc2UKKysg IGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19B Q0VPRgorK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0 LiRhY19leHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPGN0 eXBlLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAy MCkKKysjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCisrIyBk ZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQor KyNlbHNlCisrIyBkZWZpbmUgSVNMT1dFUihjKSBcCisrCQkgICAoKCdhJyA8PSAoYykgJiYgKGMp IDw9ICdpJykgXAorKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCisrCQkg ICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQorKyMgZGVmaW5lIFRPVVBQRVIoYykg KElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCisrI2VuZGlmCisrCisrI2RlZmluZSBY T1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKKytpbnQKKyttYWluICgp CisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisrICAgIGlmIChY T1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKysJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBF UiAoaSkpCisrICAgICAgcmV0dXJuIDI7CisrICByZXR1cm4gMDsKKyt9CisrX0FDRU9GCisrcm0g LWYgY29uZnRlc3QkYWNfZXhlZXh0CisraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKKytjYXNlICIo KCRhY190cnkiIGluCisrICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5 OzsKKysgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworK2VzYWMKKytldmFsIGFjX3RyeV9lY2hv PSJcIlwkYXNfbWU6JExJTkVOTzogJGFjX3RyeV9lY2hvXCIiCisrJGFzX2VjaG8gIiRhY190cnlf ZWNobyIpID4mNQorKyAgKGV2YWwgIiRhY19saW5rIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/Cisr ICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JworKyAg eyAoY2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNo bz1cJGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBh Y190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hv ICIkYWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfdHJ5IikgMj4mNQorKyAgYWNfc3Rh dHVzPSQ/CisrICAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m NQorKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysgIDoKKytlbHNlCisrICAkYXNf ZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKytzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrKCBleGl0ICRhY19zdGF0dXMgKQorK2FjX2N2 X2hlYWRlcl9zdGRjPW5vCisrZmkKKytybSAtcmYgY29uZnRlc3QuZFNZTQorK3JtIC1mIGNvcmUg Ki5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK2ZpCisrCisrCisrZmkKKytm aQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3Rk YyIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9CisraWYgdGVzdCAk YWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKysKKytjYXQgPj5jb25mZGVmcy5oIDw8XF9B Q0VPRgorKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKytfQUNFT0YKKysKKytmaQorKworK3sgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3Rp bWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQuLi4gIiA+JjY7 IH0KKytpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl90aW1lK3NldH0iID0gc2V0OyB0aGVuCisrICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhdCA+Y29uZnRlc3QuJGFjX2V4 dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgorK2NhdCBjb25mZGVmcy5o ID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKysv KiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKyNpbmNsdWRl IDxzeXMvdGltZS5oPgorKyNpbmNsdWRlIDx0aW1lLmg+CisrCisraW50CisrbWFpbiAoKQorK3sK KytpZiAoKHN0cnVjdCB0bSAqKSAwKQorK3JldHVybiAwOworKyAgOworKyAgcmV0dXJuIDA7Cisr fQorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9IiRh Y19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxcKikg YWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CisrZXNh YworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9cIiIK KyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19jeHhf d2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0gJiYg dGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19jdl9oZWFkZXJfdGltZT15 ZXMKKytlbHNlCisrICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK KytzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisrCisrCWFjX2N2X2hlYWRlcl90 aW1lPW5vCisrZmkKKysKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytmaQorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19jdl9oZWFkZXJfdGltZSIgPiY1CisrJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJf dGltZSIgPiY2OyB9CisraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3RpbWUgPSB5ZXM7IHRoZW4KKysK KytjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorKyNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDEKKytfQUNFT0YKKysKKytmaQorKworKworKworKworKworKworKworKworKworKworKworKwor KworKworKworK2ZvciBhY19oZWFkZXIgaW4gY21hdGggXAorKyAgZGVxdWUgXAorKyAgZnN0cmVh bSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNzdHJlYW0gXAorKyAgbGltaXRz IFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisrICBtYXAgXAorKyAgcXVldWUg XAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZworK2RvCisrYXNfYWNfSGVhZGVyPWAkYXNfZWNo byAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorK2lmIHsgYXNfdmFyPSRh c19hY19IZWFkZXI7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRo ZW4KKysgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRl ciIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gIiA+JjY7IH0K KytpZiB7IGFzX3Zhcj0kYXNfYWNfSGVhZGVyOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9 XCIgPSBzZXQiOyB9OyB0aGVuCisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorK2ZpCisr YWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9CisrCQkgJGFzX2VjaG8gIiRh c192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRh Y19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKytlbHNlCisrICAjIElzIHRo ZSBoZWFkZXIgY29tcGlsYWJsZT8KKyt7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tp bmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nICRhY19o ZWFkZXIgdXNhYmlsaXR5Li4uICIgPiY2OyB9CisrY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCisrLyogY29uZmRlZnMuaC4gICovCisrX0FDRU9GCisrY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0CisrY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KKyskYWNfaW5jbHVkZXNfZGVmYXVsdAorKyNpbmNsdWRlIDwkYWNfaGVh ZGVyPgorK19BQ0VPRgorK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKKytpZiB7IChhY190cnk9 IiRhY19jb21waWxlIgorK2Nhc2UgIigoJGFjX3RyeSIgaW4KKysgICpcIiogfCAqXGAqIHwgKlxc KikgYWNfdHJ5X2VjaG89XCRhY190cnk7OworKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Cisr ZXNhYworK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTokTElORU5POiAkYWNfdHJ5X2VjaG9c IiIKKyskYXNfZWNobyAiJGFjX3RyeV9lY2hvIikgPiY1CisrICAoZXZhbCAiJGFjX2NvbXBpbGUi KSAyPmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25m dGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29u ZnRlc3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKysJIHRlc3QgLXogIiRhY19j eHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH0g JiYgdGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0OyB0aGVuCisrICBhY19oZWFkZXJfY29tcGls ZXI9eWVzCisrZWxzZQorKyAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Cisrc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorKworKwlhY19oZWFkZXJf Y29tcGlsZXI9bm8KKytmaQorKworK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBy ZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQorKyRhc19lY2hvICIkYWNfaGVhZGVyX2Nv bXBpbGVyIiA+JjY7IH0KKysKKysjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KKyt7ICRhc19lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1CisrJGFz X2VjaG9fbiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAiID4mNjsgfQorK2NhdCA+ Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKy8qIGNvbmZkZWZzLmguICAqLworK19BQ0VPRgor K2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorK2NhdCA+PmNvbmZ0ZXN0LiRhY19l eHQgPDxfQUNFT0YKKysvKiBlbmQgY29uZmRlZnMuaC4gICovCisrI2luY2x1ZGUgPCRhY19oZWFk ZXI+CisrX0FDRU9GCisraWYgeyAoYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCisr Y2FzZSAiKCgkYWNfdHJ5IiBpbgorKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c JGFjX3RyeTs7CisrICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKKytlc2FjCisrZXZhbCBhY190 cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgorKyRhc19lY2hvICIk YWNfdHJ5X2VjaG8iKSA+JjUKKysgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAy PmNvbmZ0ZXN0LmVyMQorKyAgYWNfc3RhdHVzPSQ/CisrICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcjEgPmNvbmZ0ZXN0LmVycgorKyAgcm0gLWYgY29uZnRlc3QuZXIxCisrICBjYXQgY29uZnRl c3QuZXJyID4mNQorKyAgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKKysgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGwgJiYgeworKwkgdGVzdCAt eiAiJGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyRhY19jeHhfd2Vycm9yX2ZsYWciIHx8CisrCSB0 ZXN0ICEgLXMgY29uZnRlc3QuZXJyCisrICAgICAgIH07IHRoZW4KKysgIGFjX2hlYWRlcl9wcmVw cm9jPXllcworK2Vsc2UKKysgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoi ID4mNQorK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKysKKysgIGFjX2hlYWRl cl9wcmVwcm9jPW5vCisrZmkKKysKKytybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4 dAorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJv YyIgPiY1CisrJGFzX2VjaG8gIiRhY19oZWFkZXJfcHJlcHJvYyIgPiY2OyB9CisrCisrIyBTbz8g IFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CisrY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19o ZWFkZXJfcHJlcHJvYzokYWNfY3h4X3ByZXByb2Nfd2Fybl9mbGFnIGluCisrICB5ZXM6bm86ICkK KysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFj Y2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRo ZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CisrICAgIHsg JGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5n IHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+ JjI7fQorKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKysgICAgOzsKKysgIG5vOnllczoqICkK KysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHBy ZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FS TklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQor KyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAg IGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CisrJGFzX2VjaG8g IiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJl cXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29u ZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUg Q29tcGlsZWRcIiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjog ICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KKysg ICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2Nl ZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3Nv cidzIHJlc3VsdCIgPiYyO30KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5J Tkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJl Y2VkZW5jZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogaW4g dGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQorKyAg ICAoIGNhdCA8PFxfQVNCT1gKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKKysjIyBSZXBvcnQgdGhpcyB0byBtc29iY3pha0B1c2Vycy5zb3VyY2Vm b3JnZS5uZXQgIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gIyMKKytfQVNCT1gKKysgICAgICkgfCBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAg ICAvIiA+JjIKKysgICAgOzsKKytlc2FjCisreyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGNo ZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKKyskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X2hlYWRlci4uLiAiID4mNjsgfQorK2lmIHsgYXNfdmFyPSRhc19hY19IZWFkZXI7IGV2YWwgInRl c3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4KKysgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2CisrZWxzZQorKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9w cmVwcm9jIgorK2ZpCisrYWNfcmVzPWBldmFsICdhc192YWw9JHsnJGFzX2FjX0hlYWRlcid9Cisr CQkgJGFzX2VjaG8gIiRhc192YWwiJ2AKKysJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTokTElO RU5POiByZXN1bHQ6ICRhY19yZXMiID4mNQorKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KKysK KytmaQorK2FzX3ZhbD1gZXZhbCAnYXNfdmFsPSR7JyRhc19hY19IZWFkZXInfQorKwkJICRhc19l Y2hvICIkYXNfdmFsIidgCisrICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuCisr ICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisrI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFj X2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCisrX0FDRU9GCisrCisrZmkKKysKKytkb25lCisrCisr CisrCisrIyBEZWZpbmUgY29uZmlndXJlZCBmaWxlcworK2FjX2NvbmZpZ19maWxlcz0iJGFjX2Nv bmZpZ19maWxlcyBNYWtlZmlsZSBzb2NpLWNvbmZpZyBzb2NpLnBjIHNvY2kuc3BlYyBzb2NpL01h a2VmaWxlIHNvY2kvY29yZS9NYWtlZmlsZSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSBzb2NpL2Jh Y2tlbmRzL01ha2VmaWxlIHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlIHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSBz b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIG1hbi9NYWtlZmls ZSBkb2MvTWFrZWZpbGUgZG9jL2JhY2tlbmRzL01ha2VmaWxlIGJ1aWxkL01ha2VmaWxlIGJ1aWxk L3VuaXgvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9kbGwvTWFr ZWZpbGUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIKKysKKysKKytjYXQgPmNvbmZjYWNoZSA8 PFxfQUNFT0YKKysjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUg cmVzdWx0cyBvZiBjb25maWd1cmUKKysjIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5 IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBjb25maWd1cmUKKysjIHNjcmlwdHMgYW5kIGNvbmZpZ3Vy ZSBydW5zLCBzZWUgY29uZmlndXJlJ3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgorKyMgSXQgaXMg bm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3Ug ZG9uJ3QKKysjIHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KKysjCisr IyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYg eW91IGdpdmUgaXQKKysjIHRoZSAtLXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4K KysjCisrIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUg b3ZlcnJpZGRlbiB3aGVuCisrIyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNf Y3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQorKyMgZm9sbG93aW5nIHZhbHVlcy4KKysKKytf QUNFT0YKKysKKysjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hh bmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorKyMgYnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3Vu ZCB0aGF0IGlzIHNpbXBsZSwgcG9ydGFibGUsIGFuZCBlZmZpY2llbnQuCisrIyBTbywgd2Uga2ls bCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KKysjIFVsdHJpeCBzaCBzZXQgd3JpdGVz IHRvIHN0ZGVyciBhbmQgY2FuJ3QgYmUgcmVkaXJlY3RlZCBkaXJlY3RseSwKKysjIGFuZCBzZXRz IHRoZSBoaWdoIGJpdCBpbiB0aGUgY2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2 YXJzLgorKygKKysgIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ3MvXlwoW2Et ekEtWl9dW2EtekEtWjAtOV9dKlwpPS4qL1wxL3AnYDsgZG8KKysgICAgZXZhbCBhY192YWw9XCQk YWNfdmFyCisrICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAorKyAgICAqJHthc19ubH0qKQorKyAgICAg IGNhc2UgJGFjX3ZhciBpbiAjKAorKyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5l IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFy IGNvbnRhaW5zIGEgbmV3bGluZSIgPiYyO30gOzsKKysgICAgICBlc2FjCisrICAgICAgY2FzZSAk YWNfdmFyIGluICMoCisrICAgICAgXyB8IElGUyB8IGFzX25sKSA7OyAjKAorKyAgICAgIEJBU0hf QVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCisrICAgICAgKikgJGFzX3Vu c2V0ICRhY192YXIgOzsKKysgICAgICBlc2FjIDs7CisrICAgIGVzYWMKKysgIGRvbmUKKysKKysg IChzZXQpIDI+JjEgfAorKyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9JyAnOyBzZXQpIDI+JjFg IGluICMoCisrICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKKysgICAgICAjIGBzZXQnIGRvZXMg bm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCisrICAgICAg IyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8g XCkuCisrICAgICAgc2VkIC1uIFwKKysJInMvJy8nXFxcXCcnL2c7CisrCSAgcy9eXFwoW18kYXNf Y3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwyJy9wIgor KyAgICAgIDs7ICMoCisrICAgICopCisrICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFz IHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KKysgICAgICBzZWQgLW4g Ii9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgorKyAgICAgIDs7Cisr ICAgIGVzYWMgfAorKyAgICBzb3J0CisrKSB8CisrICBzZWQgJworKyAgICAgL15hY19jdl9lbnZf L2IgZW5kCisrICAgICB0IGNsZWFyCisrICAgICA6Y2xlYXIKKysgICAgIHMvXlwoW149XSpcKT1c KC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KKysgICAgIHQgZW5kCisr ICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8KKysgICAgIDplbmQnID4+Y29u ZmNhY2hlCisraWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNoZSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4gOjsgZWxzZQorKyAgaWYgdGVzdCAtdyAiJGNhY2hlX2ZpbGUiOyB0aGVuCisrICAgIHRl c3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmCisrICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiRMSU5FTk86IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKysgICAgY2F0IGNv bmZjYWNoZSA+JGNhY2hlX2ZpbGUKKysgIGVsc2UKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiRM SU5FTk86IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmls ZSIgPiY2O30KKysgIGZpCisrZmkKKytybSAtZiBjb25mY2FjaGUKKysKKyt0ZXN0ICJ4JHByZWZp eCIgPSB4Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4CisrIyBMZXQgbWFrZSBleHBh bmQgZXhlY19wcmVmaXguCisrdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3By ZWZpeD0nJHtwcmVmaXh9JworKworK0RFRlM9LURIQVZFX0NPTkZJR19ICisrCisrYWNfbGlib2Jq cz0KKythY19sdGxpYm9ianM9CisrZm9yIGFjX2kgaW4gOiAkTElCT0JKUzsgZG8gdGVzdCAieCRh Y19pIiA9IHg6ICYmIGNvbnRpbnVlCisrICAjIDEuIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLCBhbmQg JFUgaWYgYWxyZWFkeSBpbnN0YWxsZWQuCisrICBhY19zY3JpcHQ9J3MvXCRVXC4vLi87cy9cLm8k Ly87cy9cLm9iaiQvLycKKysgIGFjX2k9YCRhc19lY2hvICIkYWNfaSIgfCBzZWQgIiRhY19zY3Jp cHQiYAorKyAgIyAyLiBQcmVwZW5kIExJQk9CSkRJUi4gIFdoZW4gdXNlZCB3aXRoIGF1dG9tYWtl Pj0xLjEwIExJQk9CSkRJUgorKyAgIyAgICB3aWxsIGJlIHNldCB0byB0aGUgZGlyZWN0b3J5IHdo ZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUgYnVpbHQuCisrICBhY19saWJvYmpzPSIkYWNfbGlib2Jq cyBcJHtMSUJPQkpESVJ9JGFjX2lcJFUuJGFjX29iamV4dCIKKysgIGFjX2x0bGlib2Jqcz0iJGFj X2x0bGlib2JqcyBcJHtMSUJPQkpESVJ9JGFjX2kiJyRVLmxvJworK2RvbmUKKytMSUJPQkpTPSRh Y19saWJvYmpzCisrCisrTFRMSUJPQkpTPSRhY19sdGxpYm9ianMKKysKKysKKysgaWYgdGVzdCAt biAiJEVYRUVYVCI7IHRoZW4KKysgIGFtX19FWEVFWFRfVFJVRT0KKysgIGFtX19FWEVFWFRfRkFM U0U9JyMnCisrZWxzZQorKyAgYW1fX0VYRUVYVF9UUlVFPScjJworKyAgYW1fX0VYRUVYVF9GQUxT RT0KKytmaQorKworK2lmIHRlc3QgLXogIiR7SEFWRV9DUFBVTklUX1RSVUV9IiAmJiB0ZXN0IC16 ICIke0hBVkVfQ1BQVU5JVF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTok TElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX0NQUFVOSVRcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBc IkhBVkVfQ1BQVU5JVFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0 aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChl eGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7QU1ERVBfVFJVRX0iICYm IHRlc3QgLXogIiR7QU1ERVBfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiQU1ERVBcIiB3YXMgbmV2ZXIgZGVmaW5lZC4K KytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9u YWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkFNREVQ XCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMg b25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQg MTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENYWF9UUlVFfSIgJiYgdGVz dCAteiAiJHthbV9fZmFzdGRlcENYWF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRh c19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBu ZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52 b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRp dGlvbmFsIFwiYW1fX2Zhc3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRo aXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9 CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke2FtX19m YXN0ZGVwQ0NfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19GQUxTRX0iOyB0aGVu CisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJh bV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRo ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAi JGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRl ZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv bmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisr aWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENYWF9UUlVFfSIgJiYgdGVzdCAteiAiJHthbV9fZmFz dGRlcENYWF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBl cnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBuZXZlciBkZWZpbmVkLgor K1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25h bGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiYW1fX2Zh c3RkZXBDWFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1h Y3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke1NPQ0lfSEVBREVSU19CVVJJRURf VFJVRX0iICYmIHRlc3QgLXogIiR7U09DSV9IRUFERVJTX0JVUklFRF9GQUxTRX0iOyB0aGVuCisr ICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJ X0hFQURFUlNfQlVSSUVEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5z IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJTT0NJX0hFQURFUlNfQlVSSUVEXCIgd2Fz IG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp bnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsg fQorK2ZpCisraWYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAm JiB0ZXN0IC16ICIke1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgorKyAg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBt ZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFz X2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8g d2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7U09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjog Y29uZGl0aW9uYWwgXCJTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURcIiB3YXMgbmV2ZXIg ZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg Y29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25h bCBcIlNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgor K1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25h bGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3Qg LXogIiR7SEFWRV9NWVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX01ZU1FMX0ZBTFNFfSI7 IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25h bCBcIkhBVkVfTVlTUUxcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMg dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkhBVkVfTVlTUUxcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytp ZiB0ZXN0IC16ICIke0hBVkVfT1JBQ0xFX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfT1JBQ0xF X0ZBTFNFfSI7IHRoZW4KKysgIHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBj b25kaXRpb25hbCBcIkhBVkVfT1JBQ0xFXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0 aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX09SQUNMRVwiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07 IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SEFWRV9QT1NUR1JFU1FMX1RSVUV9IiAmJiB0ZXN0IC16 ICIke0hBVkVfUE9TVEdSRVNRTF9GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFzX2VjaG8gIiRhc19t ZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIQVZFX1BPU1RHUkVTUUxcIiB3YXMgbmV2 ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r ZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRp b25hbCBcIkhBVkVfUE9TVEdSRVNRTFwiIHdhcyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30K KysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKytmaQorK2lmIHRlc3QgLXogIiR7SU5GT19E T0NfVFJVRX0iICYmIHRlc3QgLXogIiR7SU5GT19ET0NfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSU5GT19ET0NcIiB3 YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5 IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBj b25kaXRpb25hbCBcIklORk9fRE9DXCIgd2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpCisraWYgdGVzdCAteiAiJHtIVE1MX0RP Q19UUlVFfSIgJiYgdGVzdCAteiAiJHtIVE1MX0RPQ19GQUxTRX0iOyB0aGVuCisrICB7IHsgJGFz X2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJIVE1MX0RPQ1wiIHdh cyBuZXZlciBkZWZpbmVkLgorK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNv bmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9Cisr ICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKytpZiB0ZXN0IC16ICIke1JVTl9URVNU U19UUlVFfSIgJiYgdGVzdCAteiAiJHtSVU5fVEVTVFNfRkFMU0V9IjsgdGhlbgorKyAgeyB7ICRh c19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiUlVOX1RFU1RTXCIg d2FzIG5ldmVyIGRlZmluZWQuCisrVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25s eSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y29uZGl0aW9uYWwgXCJSVU5fVEVTVFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKytVc3VhbGx5IHRo aXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9 CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrZmkKKysKKys6ICR7Q09ORklHX1NUQVRV Uz0uL2NvbmZpZy5zdGF0dXN9CisrYWNfd3JpdGVfZmFpbD0wCisrYWNfY2xlYW5fZmlsZXNfc2F2 ZT0kYWNfY2xlYW5fZmlsZXMKKythY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRDT05G SUdfU1RBVFVTIgorK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09ORklH X1NUQVRVUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMi ID4mNjt9CisrY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEK KysjISAkU0hFTEwKKysjIEdlbmVyYXRlZCBieSAkYXNfbWUuCisrIyBSdW4gdGhpcyBmaWxlIHRv IHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisrIyBDb21waWxlciBvdXRwdXQg cHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRlYnVnZ2luZworKyMgY29uZmlndXJl LCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KKysKKytkZWJ1Zz1mYWxzZQorK2FjX2Nz X3JlY2hlY2s9ZmFsc2UKKythY19jc19zaWxlbnQ9ZmFsc2UKKytTSEVMTD1cJHtDT05GSUdfU0hF TEwtJFNIRUxMfQorK19BQ0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8 fCBhY193cml0ZV9mYWlsPTEKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysjIyBNNHNo IEluaXRpYWxpemF0aW9uLiAgIyMKKysjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKysKKysj IEJlIG1vcmUgQm91cm5lIGNvbXBhdGlibGUKKytEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0Ug IyBmb3IgTUtTIHNoCisraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0 ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBlbXVsYXRlIHNoCisrICBOVUxMQ01EPToK KysgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIk QCJ9LCB3aGljaAorKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMg ZmVhdHVyZS4KKysgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworKyAgc2V0b3B0IE5PX0dM T0JfU1VCU1QKKytlbHNlCisrICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4KKysgICpw b3NpeCopIHNldCAtbyBwb3NpeCA7OworK2VzYWMKKysKKytmaQorKworKworKworKworKyMgUEFU SCBuZWVkcyBDUgorKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KKyth c19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKKythc19jcl9MRVRURVJT PSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKKythc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0 ZXJzJGFzX2NyX0xFVFRFUlMKKythc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCisrYXNfY3JfYWxu dW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCisrCisrYXNfbmw9JworKycKKytleHBvcnQg YXNfbmwKKysjIFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9i aW4vcHJpbnRmLgorK2FzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFwnCisrYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRh c19lY2hvCisrYXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hv JGFzX2VjaG8KKytpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8i KSAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCisrICBhc19lY2hv X249J3ByaW50ZiAlcycKKytlbHNlCisrICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1u ICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KKysgICAgYXNf ZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25sIicKKysgICAgYXNfZWNo b19uPScvdXNyL3VjYi9lY2hvIC1uJworKyAgZWxzZQorKyAgICBhc19lY2hvX2JvZHk9J2V2YWwg ZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJworKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAorKyAg ICAgIGFyZz0kMTsKKysgICAgICBjYXNlICRhcmcgaW4KKysgICAgICAqIiRhc19ubCIqKQorKwll eHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKKysJYXJnPWBleHByICJYJGFyZyIgOiAi LiokYXNfbmxcXCguKlxcKSJgOzsKKysgICAgICBlc2FjOworKyAgICAgIGV4cHIgIlgkYXJnIiA6 ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKKysgICAgJworKyAgICBleHBvcnQgYXNfZWNo b19uX2JvZHkKKysgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycK KysgIGZpCisrICBleHBvcnQgYXNfZWNob19ib2R5CisrICBhc19lY2hvPSdzaCAtYyAkYXNfZWNo b19ib2R5IGFzX2VjaG8nCisrZmkKKysKKysjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KKytp ZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorKyAgUEFUSF9TRVBB UkFUT1I9OgorKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rl di9udWxsIDI+JjEgJiYgeworKyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNo IC1jIDopID4vZGV2L251bGwgMj4mMSB8fAorKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JworKyAg fQorK2ZpCisrCisrIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCisraWYgKCAoTUFJTD02 MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisrICBhc191bnNl dD11bnNldAorK2Vsc2UKKysgIGFzX3Vuc2V0PWZhbHNlCisrZmkKKysKKysKKysjIElGUworKyMg V2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIu ICBRdW90aW5nIGlzCisrIyB0aGVyZSB0byBwcmV2ZW50IGVkaXRvcnMgZnJvbSBjb21wbGFpbmlu ZyBhYm91dCBzcGFjZS10YWIuCisrIyAoSWYgX0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRo IElGUyB1bnNldCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCisrIyBzcGxpdHRpbmcgYnkgc2V0dGlu ZyBJRlMgdG8gZW1wdHkgdmFsdWUuKQorK0lGUz0iICIiCSRhc19ubCIKKysKKysjIEZpbmQgd2hv IHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2Vw YXJhdG9yLgorK2Nhc2UgJDAgaW4KKysgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKysgICop IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGluICRQ QVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCisrICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAm JiBicmVhaworK2RvbmUKKytJRlM9JGFzX3NhdmVfSUZTCisrCisrICAgICA7OworK2VzYWMKKysj IFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMg YHNoIENPTU1BTkQnCisrIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4g dGhlIHBhdGguCisraWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgorKyAgYXNfbXlzZWxm PSQwCisrZmkKKytpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCisrICAkYXNfZWNobyAi JGFzX215c2VsZjogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNv bHV0ZSBmaWxlIG5hbWUiID4mMgorKyAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisrZmkKKysKKysj IFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KKytmb3IgYXNfdmFyIGluIEVO ViBNQUlMIE1BSUxQQVRICisrZG8gKCRhc191bnNldCAkYXNfdmFyKSA+L2Rldi9udWxsIDI+JjEg JiYgJGFzX3Vuc2V0ICRhc192YXIKKytkb25lCisrUFMxPSckICcKKytQUzI9Jz4gJworK1BTND0n KyAnCisrCisrIyBOTFMgbnVpc2FuY2VzLgorK0xDX0FMTD1DCisrZXhwb3J0IExDX0FMTAorK0xB TkdVQUdFPUMKKytleHBvcnQgTEFOR1VBR0UKKysKKysjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFt ZS4KKytpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgorKyAgIHRlc3QgIlhg ZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAxOyB0aGVuCisrICBhc19leHByPWV4cHIK KytlbHNlCisrICBhc19leHByPWZhbHNlCisrZmkKKysKKytpZiAoYmFzZW5hbWUgLS0gLykgPi9k ZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIgPSAiWC8iOyB0aGVu CisrICBhc19iYXNlbmFtZT1iYXNlbmFtZQorK2Vsc2UKKysgIGFzX2Jhc2VuYW1lPWZhbHNlCisr ZmkKKysKKysKKysjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCisrYXNfbWU9YCRhc19iYXNlbmFt ZSAtLSAiJDAiIHx8CisrJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8 IFwKKysJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiQwIiA6ICdYXCgvXCknIFx8IC4g Mj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYLyIkMCIgfAorKyAgICBzZWQgJy9eLipcL1woW14v XVteL10qXClcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcL1wo XC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXC9cKFwvXCku Ki97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgCisrCisr IyBDRFBBVEguCisrJGFzX3Vuc2V0IENEUEFUSAorKworKworKworKyAgYXNfbGluZW5vXzE9JExJ TkVOTworKyAgYXNfbGluZW5vXzI9JExJTkVOTworKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0g IngkYXNfbGluZW5vXzIiICYmCisrICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xICsgMWAiID0g IngkYXNfbGluZW5vXzIiIHx8IHsKKysKKysgICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBj b3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KKysgICMgdW5pZm9ybWx5IHJlcGxh Y2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKKysgICMg bGluZS1udW1iZXIgbGluZSBhZnRlciBlYWNoIGxpbmUgdXNpbmcgJExJTkVOTzsgdGhlIHNlY29u ZCAnc2VkJworKyAgIyBkb2VzIHRoZSByZWFsIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2Vz ICdOJyB0byBwYWlyIGVhY2gKKysgICMgbGluZS1udW1iZXIgbGluZSB3aXRoIHRoZSBsaW5lIGNv bnRhaW5pbmcgJExJTkVOTywgYW5kIGFwcGVuZHMKKysgICMgdHJhaWxpbmcgJy0nIGR1cmluZyBz dWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwKKysgICMgY2FzZSBh dCBsaW5lIGVuZC4KKysgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5k IFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQorKyAgIyBzY3JpcHRzIHdpdGggb3B0aW1pemF0aW9uIGhl bHAgZnJvbSBQYW9sbyBCb256aW5pLiAgQmxhbWUgTGVlCisrICAjIEUuIE1jTWFob24gKDE5MzEt MTk4OSkgZm9yIHNlZCdzIHN5bnRheC4gIDotKQorKyAgc2VkIC1uICcKKysgICAgcAorKyAgICAv WyRdTElORU5PLz0KKysgICcgPCRhc19teXNlbGYgfAorKyAgICBzZWQgJworKyAgICAgIHMvWyRd TElORU5PLiovJi0vCisrICAgICAgdCBsaW5lbm8KKysgICAgICBiCisrICAgICAgOmxpbmVubwor KyAgICAgIE4KKysgICAgICA6bG9vcAorKyAgICAgIHMvWyRdTElORU5PXChbXickYXNfY3JfYWxu dW0nX10uKlxuXClcKC4qXCkvXDJcMVwyLworKyAgICAgIHQgbG9vcAorKyAgICAgIHMvLVxuLiov LworKyAgICAnID4kYXNfbWUubGluZW5vICYmCisrICBjaG1vZCAreCAiJGFzX21lLmxpbmVubyIg fHwKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUu bGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfQorKworKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0s IGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKysgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0g aXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQorKyAgIyBvcmlnaW5hbCBh bmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KKysg IC4gIi4vJGFzX21lLmxpbmVubyIKKysgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFz dCBjb21tYW5kLgorKyAgZXhpdAorK30KKysKKysKKytpZiAoYXNfZGlyPWBkaXJuYW1lIC0tIC9g ICYmIHRlc3QgIlgkYXNfZGlyIiA9IFgvKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX2Rp cm5hbWU9ZGlybmFtZQorK2Vsc2UKKysgIGFzX2Rpcm5hbWU9ZmFsc2UKKytmaQorKworK0VDSE9f Qz0gRUNIT19OPSBFQ0hPX1Q9CisrY2FzZSBgZWNobyAtbiB4YCBpbgorKy1uKikKKysgIGNhc2Ug YGVjaG8gJ3hcYydgIGluCisrICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUg dGFiIGNoYXJhY3Rlci4KKysgICopICAgRUNIT19DPSdcYyc7OworKyAgZXNhYzs7CisrKikKKysg IEVDSE9fTj0nLW4nOzsKKytlc2FjCisraWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+ JjEgJiYKKysgICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhl bgorKyAgYXNfZXhwcj1leHByCisrZWxzZQorKyAgYXNfZXhwcj1mYWxzZQorK2ZpCisrCisrcm0g LWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKKytpZiB0ZXN0IC1kIGNvbmYkJC5kaXI7 IHRoZW4KKysgIHJtIC1mIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUKKytlbHNlCisrICBybSAtZiBj b25mJCQuZGlyCisrICBta2RpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCisrZmkKKytpZiAoZWNo byA+Y29uZiQkLmZpbGUpIDI+L2Rldi9udWxsOyB0aGVuCisrICBpZiBsbiAtcyBjb25mJCQuZmls ZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKysgICAgYXNfbG5fcz0nbG4gLXMnCisrICAgICMg Li4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6CisrICAgICMgMSkgT24gTVNZUywgYm90aCBg bG4gLXMgZmlsZSBkaXInIGFuZCBgbG4gZmlsZSBkaXInIGZhaWwuCisrICAgICMgMikgREpHUFAg PCAyLjA0IGhhcyBubyBzeW1saW5rczsgYGxuIC1zJyBjcmVhdGVzIGEgd3JhcHBlciBleGVjdXRh YmxlLgorKyAgICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVsdCB0byBgY3AgLXAn LgorKyAgICBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQuZGlyIDI+L2Rldi9udWxsICYmIHRlc3Qg ISAtZiBjb25mJCQuZXhlIHx8CisrICAgICAgYXNfbG5fcz0nY3AgLXAnCisrICBlbGlmIGxuIGNv bmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorKyAgICBhc19sbl9zPWxuCisrICBl bHNlCisrICAgIGFzX2xuX3M9J2NwIC1wJworKyAgZmkKKytlbHNlCisrICBhc19sbl9zPSdjcCAt cCcKKytmaQorK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5kaXIvY29uZiQkLmZpbGUg Y29uZiQkLmZpbGUKKytybWRpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCisrCisraWYgbWtkaXIg LXAgLiAyPi9kZXYvbnVsbDsgdGhlbgorKyAgYXNfbWtkaXJfcD06CisrZWxzZQorKyAgdGVzdCAt ZCAuLy1wICYmIHJtZGlyIC4vLXAKKysgIGFzX21rZGlyX3A9ZmFsc2UKKytmaQorKworK2lmIHRl c3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgIGFzX3Rlc3RfeD0ndGVzdCAteCcKKytl bHNlCisrICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgYXNfbHNfTF9v cHRpb249TAorKyAgZWxzZQorKyAgICBhc19sc19MX29wdGlvbj0KKysgIGZpCisrICBhc190ZXN0 X3g9JworKyAgICBldmFsIHNoIC1jICdcJycKKysgICAgICBpZiB0ZXN0IC1kICIkMSI7IHRoZW4K KysJdGVzdCAtZCAiJDEvLiI7CisrICAgICAgZWxzZQorKwljYXNlICQxIGluCisrCS0qKXNldCAi Li8kMSI7OworKwllc2FjOworKwljYXNlIGBscyAtbGQnJGFzX2xzX0xfb3B0aW9uJyAiJDEiIDI+ L2Rldi9udWxsYCBpbgorKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCisrICAgICdcJycg c2gKKysgICcKKytmaQorK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94CisrCisrIyBTZWQgZXhw cmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorK2FzX3RyX2Nw cD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNf Y3JfYWxudW1dJV8lZyciCisrCisrIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250 byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCisrYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtz JVteXyRhc19jcl9hbG51bV0lXyVnJyIKKysKKysKKytleGVjIDY+JjEKKysKKysjIFNhdmUgdGhl IGxvZyBtZXNzYWdlLCB0byBrZWVwICRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwor KyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVh ZCBvZiB0aGVpcgorKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuCisrYWNfbG9nPSIK KytUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21lIDMuMC4wLCB3aGljaCB3YXMK KytnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjMuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGlu ZSB3YXMKKysKKysgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKKysgIENPTkZJR19I RUFERVJTICA9ICRDT05GSUdfSEVBREVSUworKyAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19M SU5LUworKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01NQU5EUworKyAgJCAkMCAkQAor KworK29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAorKyIK KysKKytfQUNFT0YKKysKKytjYXNlICRhY19jb25maWdfZmlsZXMgaW4gKiIKKysiKikgc2V0IHgg JGFjX2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxlcz0kKjs7CisrZXNhYworKwor K2Nhc2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCisrIiopIHNldCB4ICRhY19jb25maWdfaGVh ZGVyczsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKKytlc2FjCisrCisrCisrY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrIyBGaWxlcyB0aGF0 IGNvbmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgorK2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19m aWxlcyIKKytjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIgorK2NvbmZpZ19jb21t YW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKKysKKytfQUNFT0YKKysKKytjYXQgPj4kQ09ORklH X1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrYWNfY3NfdXNhZ2U9IlwKKytc YCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0 aGUKKytjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisrCisrVXNhZ2U6ICQwIFtPUFRJT05dLi4uIFtG SUxFXS4uLgorKworKyAgLWgsIC0taGVscCAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhp dAorKyAgLVYsIC0tdmVyc2lvbiAgICBwcmludCB2ZXJzaW9uIG51bWJlciBhbmQgY29uZmlndXJh dGlvbiBzZXR0aW5ncywgdGhlbiBleGl0CisrICAtcSwgLS1xdWlldCwgLS1zaWxlbnQKKysgICAg ICAgICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2VzCisrICAtZCwgLS1k ZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKKysgICAgICAtLXJlY2hlY2sg ICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRoZSBzYW1lIGNvbmRpdGlvbnMK KysgICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCisrICAgICAgICAgICAgICAgICAgIGluc3Rh bnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQorKyAgICAgIC0taGVhZGVyPUZJTEVb OlRFTVBMQVRFXQorKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJh dGlvbiBoZWFkZXIgRklMRQorKworK0NvbmZpZ3VyYXRpb24gZmlsZXM6CisrJGNvbmZpZ19maWxl cworKworK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKKyskY29uZmlnX2hlYWRlcnMKKysKKytDb25m aWd1cmF0aW9uIGNvbW1hbmRzOgorKyRjb25maWdfY29tbWFuZHMKKysKKytSZXBvcnQgYnVncyB0 byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKKysKKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NU QVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19jc192ZXJzaW9uPSJcXAorK1NP Q0kgY29uZmlnLnN0YXR1cyAzLjAuMAorK2NvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBH TlUgQXV0b2NvbmYgMi42MywKKysgIHdpdGggb3B0aW9ucyBcXCJgJGFzX2VjaG8gIiRhY19jb25m aWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgorKwor K0NvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKytUaGlz IGNvbmZpZy5zdGF0dXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KKytnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmli dXRlIGFuZCBtb2RpZnkgaXQuIgorKworK2FjX3B3ZD0nJGFjX3B3ZCcKKytzcmNkaXI9JyRzcmNk aXInCisrSU5TVEFMTD0nJElOU1RBTEwnCisrTUtESVJfUD0nJE1LRElSX1AnCisrQVdLPSckQVdL JworK3Rlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCisrX0FDRU9GCisrCisrY2F0ID4+JENPTkZJ R19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorKyMgVGhlIGRlZmF1bHQgbGlz dHMgYXBwbHkgaWYgdGhlIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgZmlsZS4KKythY19uZWVk X2RlZmF1bHRzPToKKyt3aGlsZSB0ZXN0ICQjICE9IDAKKytkbworKyAgY2FzZSAkMSBpbgorKyAg LS0qPSopCisrICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCisrICAg IGFjX29wdGFyZz1gZXhwciAiWCQxIiA6ICdYW149XSo9XCguKlwpJ2AKKysgICAgYWNfc2hpZnQ9 OgorKyAgICA7OworKyAgKikKKysgICAgYWNfb3B0aW9uPSQxCisrICAgIGFjX29wdGFyZz0kMgor KyAgICBhY19zaGlmdD1zaGlmdAorKyAgICA7OworKyAgZXNhYworKworKyAgY2FzZSAkYWNfb3B0 aW9uIGluCisrICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgorKyAgLXJlY2hlY2sgfCAtLXJl Y2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIp CisrICAgIGFjX2NzX3JlY2hlY2s9OiA7OworKyAgLS12ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZl cnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12IHwgLVYgKQorKyAgICAkYXNfZWNobyAi JGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7CisrICAtLWRlYnVnIHwgLS1kZWJ1IHwgLS1kZWIgfCAt LWRlIHwgLS1kIHwgLWQgKQorKyAgICBkZWJ1Zz06IDs7CisrICAtLWZpbGUgfCAtLWZpbCB8IC0t ZmkgfCAtLWYgKQorKyAgICAkYWNfc2hpZnQKKysgICAgY2FzZSAkYWNfb3B0YXJnIGluCisrICAg ICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxc XFxcJycvZyJgIDs7CisrICAgIGVzYWMKKysgICAgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT ICckYWNfb3B0YXJnJyIKKysgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisrICAtLWhlYWRl ciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCisrICAgICRhY19zaGlmdAorKyAgICBjYXNl ICRhY19vcHRhcmcgaW4KKysgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29wdGFy ZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKysgICAgZXNhYworKyAgICBDT05GSUdf SEVBREVSUz0iJENPTkZJR19IRUFERVJTICckYWNfb3B0YXJnJyIKKysgICAgYWNfbmVlZF9kZWZh dWx0cz1mYWxzZTs7CisrICAtLWhlIHwgLS1oKQorKyAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1o ZWxwIGFuZCAtLWhlYWRlcgorKyAgICB7ICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3Vv dXMgb3B0aW9uOiAkMQorK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+ JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworKyAgLS1oZWxwIHwgLS1oZWwgfCAt aCApCisrICAgICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDs7CisrICAtcSB8IC1xdWll dCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorKyAgfCAtc2lsZW50 IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQorKyAg ICBhY19jc19zaWxlbnQ9OiA7OworKworKyAgIyBUaGlzIGlzIGFuIGVycm9yLgorKyAgLSopIHsg JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCisrVHJ5IFxg JDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMgorKyAgIHsgKGV4aXQgMSk7IGV4 aXQgMTsgfTsgfSA7OworKworKyAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFy Z2V0cyAkMSIKKysgICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2UgOzsKKysKKysgIGVzYWMKKysg IHNoaWZ0CisrZG9uZQorKworK2FjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQorKworK2lmICRhY19j c19zaWxlbnQ7IHRoZW4KKysgIGV4ZWMgNj4vZGV2L251bGwKKysgIGFjX2NvbmZpZ3VyZV9leHRy YV9hcmdzPSIkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1zaWxlbnQiCisrZmkKKysKKytfQUNF T0YKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKytp ZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4KKysgIHNldCBYICckU0hFTEwnICckMCcgJGFjX2NvbmZp Z3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1yZWN1 cnNpb24KKysgIHNoaWZ0CisrICBcJGFzX2VjaG8gInJ1bm5pbmcgQ09ORklHX1NIRUxMPSRTSEVM TCBcJCoiID4mNgorKyAgQ09ORklHX1NIRUxMPSckU0hFTEwnCisrICBleHBvcnQgQ09ORklHX1NI RUxMCisrICBleGVjICJcJEAiCisrZmkKKysKKytfQUNFT0YKKytjYXQgPj4kQ09ORklHX1NUQVRV UyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrZXhlYyA1Pj5jb25maWcubG9nCisrewor KyAgZWNobworKyAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4O3A7 eCcgPDxfQVNCT1gKKysjIyBSdW5uaW5nICRhc19tZS4gIyMKKytfQVNCT1gKKysgICRhc19lY2hv ICIkYWNfbG9nIgorK30gPiY1CisrCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxf QUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrIworKyMgSU5JVC1DT01NQU5EUworKyMKKytBTURF UF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiCisrCisrCisrIyBU aGUgSFAtVVgga3NoIGFuZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0 byBzdGRvdXQKKysjIGlmIENEUEFUSCBpcyBzZXQuCisrKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVs bCAyPiYxICYmIHVuc2V0IENEUEFUSAorKworK3NlZF9xdW90ZV9zdWJzdD0nJHNlZF9xdW90ZV9z dWJzdCcKKytkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCisrZGVsYXlf dmFyaWFibGVfc3Vic3Q9JyRkZWxheV92YXJpYWJsZV9zdWJzdCcKKytlbmFibGVfc2hhcmVkPSdg JEVDSE8gIlgkZW5hYmxlX3NoYXJlZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2VuYWJsZV9zdGF0aWM9J2AkRUNITyAiWCRlbmFibGVfc3RhdGljIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbWFjcm9fdmVyc2lvbj0nYCRFQ0hP ICJYJG1hY3JvX3ZlcnNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKyttYWNyb19yZXZpc2lvbj0nYCRFQ0hPICJYJG1hY3JvX3JldmlzaW9uIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcGljX21vZGU9J2AkRUNITyAiWCRwaWNf bW9kZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJsZV9m YXN0X2luc3RhbGw9J2AkRUNITyAiWCRlbmFibGVfZmFzdF9pbnN0YWxsIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraG9zdF9hbGlhcz0nYCRFQ0hPICJYJGhvc3Rf YWxpYXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytob3N0PSdg JEVDSE8gIlgkaG9zdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2hvc3Rfb3M9J2AkRUNITyAiWCRob3N0X29zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrYnVpbGRfYWxpYXM9J2AkRUNITyAiWCRidWlsZF9hbGlhcyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2J1aWxkPSdgJEVDSE8gIlgkYnVp bGQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytidWlsZF9vcz0n YCRFQ0hPICJYJGJ1aWxkX29zIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrU0VEPSdgJEVDSE8gIlgkU0VEIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrWHNlZD0nYCRFQ0hPICJYJFhzZWQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKytHUkVQPSdgJEVDSE8gIlgkR1JFUCIgfCAkWHNlZCAtZSAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0VHUkVQPSdgJEVDSE8gIlgkRUdSRVAiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytGR1JFUD0nYCRFQ0hPICJYJEZH UkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTEQ9J2AkRUNI TyAiWCRMRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK05NPSdg JEVDSE8gIlgkTk0iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytM Tl9TPSdgJEVDSE8gIlgkTE5fUyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK21heF9jbWRfbGVuPSdgJEVDSE8gIlgkbWF4X2NtZF9sZW4iIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythY19vYmpleHQ9J2AkRUNITyAiWCRhY19vYmpl eHQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleGVleHQ9J2Ak RUNITyAiWCRleGVleHQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytsdF91bnNldD0nYCRFQ0hPICJYJGx0X3Vuc2V0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrbHRfU1AyTkw9J2AkRUNITyAiWCRsdF9TUDJOTCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X05MMlNQPSdgJEVDSE8gIlgkbHRf TkwyU1AiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytyZWxvYWRf ZmxhZz0nYCRFQ0hPICJYJHJlbG9hZF9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrcmVsb2FkX2NtZHM9J2AkRUNITyAiWCRyZWxvYWRfY21kcyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK09CSkRVTVA9J2AkRUNITyAiWCRP QkpEVU1QIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZGVwbGli c19jaGVja19tZXRob2Q9J2AkRUNITyAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpbGVfbWFnaWNfY21kPSdgJEVDSE8g IlgkZmlsZV9tYWdpY19jbWQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytBUj0nYCRFQ0hPICJYJEFSIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrQVJfRkxBR1M9J2AkRUNITyAiWCRBUl9GTEFHUyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK1NUUklQPSdgJEVDSE8gIlgkU1RSSVAiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytSQU5MSUI9J2AkRUNITyAiWCRSQU5M SUIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfcG9zdGlu c3RhbGxfY21kcz0nYCRFQ0hPICJYJG9sZF9wb3N0aW5zdGFsbF9jbWRzIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0nYCRF Q0hPICJYJG9sZF9wb3N0dW5pbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVf Y21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0NDPSdgJEVD SE8gIlgkQ0MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytDRkxB R1M9J2AkRUNITyAiWCRDRkxBR1MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytjb21waWxlcj0nYCRFQ0hPICJYJGNvbXBpbGVyIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrR0NDPSdgJEVDSE8gIlgkR0NDIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlw ZT0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19j ZGVjbD0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3M9J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jX25hbWVfYWRkcmVzcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JworK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9 J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJf cHJlZml4IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrb2JqZGly PSdgJEVDSE8gIlgkb2JqZGlyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCisrU0hFTEw9J2AkRUNITyAiWCRTSEVMTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK0VDSE89J2AkRUNITyAiWCRFQ0hPIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTUFHSUNfQ01EPSdgJEVDSE8gIlgkTUFHSUNfQ01EIiB8 ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWc9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2df Y29tcGlsZXJfd2w9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3dsIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbHRfcHJvZ19jb21waWxlcl9waWM9J2AkRUNI TyAiWCRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPSdgJEVDSE8gIlgkbHRfcHJvZ19j b21waWxlcl9zdGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz0nYCRFQ0hPICJYJGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrbmVlZF9sb2Nr cz0nYCRFQ0hPICJYJG5lZWRfbG9ja3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytEU1lNVVRJTD0nYCRFQ0hPICJYJERTWU1VVElMIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTk1FRElUPSdgJEVDSE8gIlgkTk1FRElUIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrTElQTz0nYCRFQ0hPICJYJExJ UE8iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytPVE9PTD0nYCRF Q0hPICJYJE9UT09MIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr T1RPT0w2ND0nYCRFQ0hPICJYJE9UT09MNjQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytsaWJleHQ9J2AkRUNITyAiWCRsaWJleHQiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytzaHJleHRfY21kcz0nYCRFQ0hPICJYJHNocmV4dF9j bWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXh0cmFjdF9l eHBzeW1zX2NtZHM9J2AkRUNITyAiWCRleHRyYWN0X2V4cHN5bXNfY21kcyIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hpdmVfY21kc19uZWVkX2xjPSdgJEVD SE8gIlgkYXJjaGl2ZV9jbWRzX25lZWRfbGMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPSdgJEVDSE8g IlgkZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nYCRFQ0hP ICJYJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSdgJEVDSE8gIlgkd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytjb21waWxlcl9uZWVkc19vYmplY3Q9J2AkRUNITyAiWCRjb21waWxlcl9uZWVkc19vYmpl Y3QiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgfCAk WHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKythcmNoaXZlX2NtZHM9J2Ak RUNITyAiWCRhcmNoaXZlX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKythcmNoaXZlX2V4cHN5bV9jbWRzPSdgJEVDSE8gIlgkYXJjaGl2ZV9leHBzeW1fY21k cyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK21vZHVsZV9jbWRz PSdgJEVDSE8gIlgkbW9kdWxlX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKyttb2R1bGVfZXhwc3ltX2NtZHM9J2AkRUNITyAiWCRtb2R1bGVfZXhwc3ltX2Nt ZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyt3aXRoX2dudV9s ZD0nYCRFQ0hPICJYJHdpdGhfZ251X2xkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAiWCRhbGxvd191bmRlZmlu ZWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK25vX3Vu ZGVmaW5lZF9mbGFnPSdgJEVDSE8gIlgkbm9fdW5kZWZpbmVkX2ZsYWciIHwgJFhzZWQgLWUgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSdg JEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9J2AkRUNI TyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nYCRFQ0hPICJY JGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJlY3Q9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3Qi IHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9kaXJl Y3RfYWJzb2x1dGU9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJkY29kZV9taW51c19MPSdgJEVD SE8gIlgkaGFyZGNvZGVfbWludXNfTCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK2hhcmRjb2RlX3NobGlicGF0aF92YXI9J2AkRUNITyAiWCRoYXJkY29kZV9zaGxp YnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFy ZGNvZGVfYXV0b21hdGljPSdgJEVDSE8gIlgkaGFyZGNvZGVfYXV0b21hdGljIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraW5oZXJpdF9ycGF0aD0nYCRFQ0hPICJY JGluaGVyaXRfcnBhdGgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytsaW5rX2FsbF9kZXBsaWJzPSdgJEVDSE8gIlgkbGlua19hbGxfZGVwbGlicyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2ZpeF9zcmNmaWxlX3BhdGg9J2AkRUNI TyAiWCRmaXhfc3JjZmlsZV9wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSdgJEVDSE8gIlgkYWx3YXlzX2V4cG9ydF9z eW1ib2xzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZXhwb3J0 X3N5bWJvbHNfY21kcz0nYCRFQ0hPICJYJGV4cG9ydF9zeW1ib2xzX2NtZHMiIHwgJFhzZWQgLWUg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytleGNsdWRlX2V4cHN5bXM9J2AkRUNITyAi WCRleGNsdWRlX2V4cHN5bXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKKytpbmNsdWRlX2V4cHN5bXM9J2AkRUNITyAiWCRpbmNsdWRlX2V4cHN5bXMiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytwcmVsaW5rX2NtZHM9J2AkRUNITyAi WCRwcmVsaW5rX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytmaWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICJYJGZpbGVfbGlzdF9zcGVjIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9 J2AkRUNITyAiWCR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluayIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK25lZWRfbGliX3ByZWZpeD0nYCRFQ0hPICJYJG5lZWRf bGliX3ByZWZpeCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK25l ZWRfdmVyc2lvbj0nYCRFQ0hPICJYJG5lZWRfdmVyc2lvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK3ZlcnNpb25fdHlwZT0nYCRFQ0hPICJYJHZlcnNpb25fdHlw ZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3J1bnBhdGhfdmFy PSdgJEVDSE8gIlgkcnVucGF0aF92YXIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytzaGxpYnBhdGhfdmFyPSdgJEVDSE8gIlgkc2hsaWJwYXRoX3ZhciIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3NobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aD0nYCRFQ0hPICJYJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpYm5hbWVfc3BlYz0nYCRFQ0hPICJY JGxpYm5hbWVfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K2xpYnJhcnlfbmFtZXNfc3BlYz0nYCRFQ0hPICJYJGxpYnJhcnlfbmFtZXNfc3BlYyIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3NvbmFtZV9zcGVjPSdgJEVDSE8g Ilgkc29uYW1lX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK Kytwb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkcG9zdGluc3RhbGxfY21kcyIgfCAkWHNlZCAt ZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3R1bmluc3RhbGxfY21kcz0nYCRF Q0hPICJYJHBvc3R1bmluc3RhbGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJworK2ZpbmlzaF9jbWRzPSdgJEVDSE8gIlgkZmluaXNoX2NtZHMiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaW5pc2hfZXZhbD0nYCRFQ0hPICJY JGZpbmlzaF9ldmFsIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr aGFyZGNvZGVfaW50b19saWJzPSdgJEVDSE8gIlgkaGFyZGNvZGVfaW50b19saWJzIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSdgJEVDSE8gIlgkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9J2Ak RUNITyAiWCRzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2FjdGlvbj0nYCRFQ0hPICJYJGhhcmRjb2Rl X2FjdGlvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2VuYWJs ZV9kbG9wZW49J2AkRUNITyAiWCRlbmFibGVfZGxvcGVuIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrZW5hYmxlX2Rsb3Blbl9zZWxmPSdgJEVDSE8gIlgkZW5hYmxl X2Rsb3Blbl9zZWxmIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr ZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW5fc2VsZl9z dGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytvbGRfc3Ry aXBsaWI9J2AkRUNITyAiWCRvbGRfc3RyaXBsaWIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytzdHJpcGxpYj0nYCRFQ0hPICJYJHN0cmlwbGliIiB8ICRYc2VkIC1l ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrY29tcGlsZXJfbGliX3NlYXJjaF9kaXJz PSdgJEVDSE8gIlgkY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzIiB8ICRYc2VkIC1lICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwX29iamVjdHM9J2AkRUNITyAiWCRwcmVkZXBf b2JqZWN0cyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3Rk ZXBfb2JqZWN0cz0nYCRFQ0hPICJYJHBvc3RkZXBfb2JqZWN0cyIgfCAkWHNlZCAtZSAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3ByZWRlcHM9J2AkRUNITyAiWCRwcmVkZXBzIiB8ICRY c2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcG9zdGRlcHM9J2AkRUNITyAi WCRwb3N0ZGVwcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2Nv bXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0nYCRFQ0hPICJYJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0 aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK0xEX0NYWD0nYCRF Q0hPICJYJExEX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K29sZF9hcmNoaXZlX2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfY21kc19DWFgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytjb21waWxlcl9DWFg9J2Ak RUNITyAiWCRjb21waWxlcl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytHQ0NfQ1hYPSdgJEVDSE8gIlgkR0NDX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NY WD0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NYWCIgfCAkWHNl ZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2x0X3Byb2dfY29tcGlsZXJfd2xf Q1hYPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl93bF9DWFgiIHwgJFhzZWQgLWUgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9J2AkRUNI TyAiWCRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9J2AkRUNITyAiWCRs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKytsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFg9J2AkRUNITyAiWCRsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKythcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9J2AkRUNITyAiWCRhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK KytlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD0nYCRFQ0hPICJYJGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nYCRFQ0hP ICJYJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAi WCR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKKytjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPSdgJEVDSE8gIlgkY29t cGlsZXJfbmVlZHNfb2JqZWN0X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHNfQ1hYPSdgJEVDSE8gIlgkb2xkX2Fy Y2hpdmVfZnJvbV9uZXdfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFg9J2AkRUNITyAiWCRv bGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5n bGVfcXVvdGVfc3Vic3QiYCcKKythcmNoaXZlX2NtZHNfQ1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9j bWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSdgJEVDSE8gIlgkYXJjaGl2ZV9leHBzeW1fY21kc19DWFgiIHwg JFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyttb2R1bGVfY21kc19DWFg9 J2AkRUNITyAiWCRtb2R1bGVfY21kc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVv dGVfc3Vic3QiYCcKKyttb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSdgJEVDSE8gIlgkbW9kdWxlX2V4 cHN5bV9jbWRzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwor K3dpdGhfZ251X2xkX0NYWD0nYCRFQ0hPICJYJHdpdGhfZ251X2xkX0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2FsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0n YCRFQ0hPICJYJGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJworK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0nYCRFQ0hPICJYJG5v X3VuZGVmaW5lZF9mbGFnX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJworK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSdgJEVDSE8gIlgkaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlY19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkX0NYWD0nYCRFQ0hPICJYJGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9J2AkRUNITyAiWCRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2RpcmVjdF9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9k aXJlY3RfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFy ZGNvZGVfZGlyZWN0X2Fic29sdXRlX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZV9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytoYXJk Y29kZV9taW51c19MX0NYWD0nYCRFQ0hPICJYJGhhcmRjb2RlX21pbnVzX0xfQ1hYIiB8ICRYc2Vk IC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfc2hsaWJwYXRoX3Zh cl9DWFg9J2AkRUNITyAiWCRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWCIgfCAkWHNlZCAtZSAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2hhcmRjb2RlX2F1dG9tYXRpY19DWFg9J2Ak RUNITyAiWCRoYXJkY29kZV9hdXRvbWF0aWNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisraW5oZXJpdF9ycGF0aF9DWFg9J2AkRUNITyAiWCRpbmhlcml0X3Jw YXRoX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK2xpbmtf YWxsX2RlcGxpYnNfQ1hYPSdgJEVDSE8gIlgkbGlua19hbGxfZGVwbGlic19DWFgiIHwgJFhzZWQg LWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytmaXhfc3JjZmlsZV9wYXRoX0NYWD0n YCRFQ0hPICJYJGZpeF9zcmNmaWxlX3BhdGhfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD0nYCRFQ0hPICJYJGFs d2F5c19leHBvcnRfc3ltYm9sc19DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nYCRFQ0hPICJYJGV4cG9ydF9zeW1i b2xzX2NtZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisr ZXhjbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICJYJGV4Y2x1ZGVfZXhwc3ltc19DWFgiIHwgJFhz ZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKytpbmNsdWRlX2V4cHN5bXNfQ1hY PSdgJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJworK3ByZWxpbmtfY21kc19DWFg9J2AkRUNITyAiWCRwcmVsaW5rX2Nt ZHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrZmlsZV9s aXN0X3NwZWNfQ1hYPSdgJEVDSE8gIlgkZmlsZV9saXN0X3NwZWNfQ1hYIiB8ICRYc2VkIC1lICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisraGFyZGNvZGVfYWN0aW9uX0NYWD0nYCRFQ0hP ICJYJGhhcmRjb2RlX2FjdGlvbl9DWFgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYPSdgJEVDSE8gIlgkY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJworK3ByZWRlcF9vYmplY3RzX0NYWD0nYCRFQ0hPICJYJHByZWRlcF9vYmplY3RzX0NY WCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3RkZXBfb2Jq ZWN0c19DWFg9J2AkRUNITyAiWCRwb3N0ZGVwX29iamVjdHNfQ1hYIiB8ICRYc2VkIC1lICIkZGVs YXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCisrcHJlZGVwc19DWFg9J2AkRUNITyAiWCRwcmVkZXBz X0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworK3Bvc3RkZXBz X0NYWD0nYCRFQ0hPICJYJHBvc3RkZXBzX0NYWCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJworK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9J2AkRUNITyAiWCRj b21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCisrCisrTFRDQz0nJExUQ0MnCisrTFRDRkxBR1M9JyRMVENGTEFHUycKKytj b21waWxlcj0nJGNvbXBpbGVyX0RFRkFVTFQnCisrCisrIyBRdW90ZSBldmFsZWQgc3RyaW5ncy4K Kytmb3IgdmFyIGluIFNFRCBcCisrR1JFUCBcCisrRUdSRVAgXAorK0ZHUkVQIFwKKytMRCBcCisr Tk0gXAorK0xOX1MgXAorK2x0X1NQMk5MIFwKKytsdF9OTDJTUCBcCisrcmVsb2FkX2ZsYWcgXAor K09CSkRVTVAgXAorK2RlcGxpYnNfY2hlY2tfbWV0aG9kIFwKKytmaWxlX21hZ2ljX2NtZCBcCisr QVIgXAorK0FSX0ZMQUdTIFwKKytTVFJJUCBcCisrUkFOTElCIFwKKytDQyBcCisrQ0ZMQUdTIFwK Kytjb21waWxlciBcCisrbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcCisrbHRfY3Zfc3lz X2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wgXAorK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2Nf bmFtZV9hZGRyZXNzIFwKKytsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz c19saWJfcHJlZml4IFwKKytTSEVMTCBcCisrRUNITyBcCisrbHRfcHJvZ19jb21waWxlcl9ub19i dWlsdGluX2ZsYWcgXAorK2x0X3Byb2dfY29tcGlsZXJfd2wgXAorK2x0X3Byb2dfY29tcGlsZXJf cGljIFwKKytsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyBcCisrbHRfY3ZfcHJvZ19jb21waWxlcl9j X28gXAorK25lZWRfbG9ja3MgXAorK0RTWU1VVElMIFwKKytOTUVESVQgXAorK0xJUE8gXAorK09U T09MIFwKKytPVE9PTDY0IFwKKytzaHJleHRfY21kcyBcCisrZXhwb3J0X2R5bmFtaWNfZmxhZ19z cGVjIFwKKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBcCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0 IFwKKyt3aXRoX2dudV9sZCBcCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWcgXAorK25vX3VuZGVmaW5l ZF9mbGFnIFwKKytoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIFwKKytoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkIFwKKytoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIFwKKytmaXhfc3JjZmls ZV9wYXRoIFwKKytleGNsdWRlX2V4cHN5bXMgXAorK2luY2x1ZGVfZXhwc3ltcyBcCisrZmlsZV9s aXN0X3NwZWMgXAorK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIFwKKytsaWJuYW1lX3NwZWMg XAorK2xpYnJhcnlfbmFtZXNfc3BlYyBcCisrc29uYW1lX3NwZWMgXAorK2ZpbmlzaF9ldmFsIFwK KytvbGRfc3RyaXBsaWIgXAorK3N0cmlwbGliIFwKKytjb21waWxlcl9saWJfc2VhcmNoX2RpcnMg XAorK3ByZWRlcF9vYmplY3RzIFwKKytwb3N0ZGVwX29iamVjdHMgXAorK3ByZWRlcHMgXAorK3Bv c3RkZXBzIFwKKytjb21waWxlcl9saWJfc2VhcmNoX3BhdGggXAorK0xEX0NYWCBcCisrY29tcGls ZXJfQ1hYIFwKKytsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFggXAorK2x0X3By b2dfY29tcGlsZXJfd2xfQ1hYIFwKKytsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFggXAorK2x0X3By b2dfY29tcGlsZXJfc3RhdGljX0NYWCBcCisrbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIFwK KytleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYIFwKKyt3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19DWFggXAorK2NvbXBpbGVyX25lZWRzX29iamVjdF9DWFggXAorK3dpdGhfZ251X2xkX0NYWCBc CisrYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYIFwKKytub191bmRlZmluZWRfZmxhZ19DWFggXAor K2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYIFwKKytoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX2xkX0NYWCBcCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFggXAorK2ZpeF9zcmNm aWxlX3BhdGhfQ1hYIFwKKytleGNsdWRlX2V4cHN5bXNfQ1hYIFwKKytpbmNsdWRlX2V4cHN5bXNf Q1hYIFwKKytmaWxlX2xpc3Rfc3BlY19DWFggXAorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19D WFggXAorK3ByZWRlcF9vYmplY3RzX0NYWCBcCisrcG9zdGRlcF9vYmplY3RzX0NYWCBcCisrcHJl ZGVwc19DWFggXAorK3Bvc3RkZXBzX0NYWCBcCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoX0NY WDsgZG8KKysgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisr ICAgICpbXFxcXFxcXGBcXCJcXFwkXSopCisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxc XGBcXFwkRUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJHNlZF9xdW90 ZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZhbCAi bHRfXCR2YXI9XFxcXFxcIlxcXCRcJHZhclxcXFxcXCIiCisrICAgICAgOzsKKysgICAgZXNhYwor K2RvbmUKKysKKysjIERvdWJsZS1xdW90ZSBkb3VibGUtZXZhbGVkIHN0cmluZ3MuCisrZm9yIHZh ciBpbiByZWxvYWRfY21kcyBcCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHMgXAorK29sZF9wb3N0dW5p bnN0YWxsX2NtZHMgXAorK29sZF9hcmNoaXZlX2NtZHMgXAorK2V4dHJhY3RfZXhwc3ltc19jbWRz IFwKKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzIFwKKytvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcyBcCisrYXJjaGl2ZV9jbWRzIFwKKythcmNoaXZlX2V4cHN5bV9jbWRzIFwKKyttb2R1 bGVfY21kcyBcCisrbW9kdWxlX2V4cHN5bV9jbWRzIFwKKytleHBvcnRfc3ltYm9sc19jbWRzIFwK KytwcmVsaW5rX2NtZHMgXAorK3Bvc3RpbnN0YWxsX2NtZHMgXAorK3Bvc3R1bmluc3RhbGxfY21k cyBcCisrZmluaXNoX2NtZHMgXAorK3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYyBcCisrc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWMgXAorK29sZF9hcmNoaXZlX2NtZHNfQ1hYIFwKKytvbGRfYXJj aGl2ZV9mcm9tX25ld19jbWRzX0NYWCBcCisrb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNf Q1hYIFwKKythcmNoaXZlX2NtZHNfQ1hYIFwKKythcmNoaXZlX2V4cHN5bV9jbWRzX0NYWCBcCisr bW9kdWxlX2NtZHNfQ1hYIFwKKyttb2R1bGVfZXhwc3ltX2NtZHNfQ1hYIFwKKytleHBvcnRfc3lt Ym9sc19jbWRzX0NYWCBcCisrcHJlbGlua19jbWRzX0NYWDsgZG8KKysgICAgY2FzZSBcYGV2YWwg XFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisrICAgICpbXFxcXFxcXGBcXCJcXFwkXSop CisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwkdmFy XFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwk c2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJpYWJsZV9zdWJzdFxcIlxcXGBc XFxcXFwiIgorKyAgICAgIDs7CisrICAgICopCisrICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxc IlxcXCRcJHZhclxcXFxcXCIiCisrICAgICAgOzsKKysgICAgZXNhYworK2RvbmUKKysKKysjIEZp eC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5IHRoZSBhYm92ZSBxdW90aW5n IHJ1bGVzLgorK2Nhc2UgXCRsdF9FQ0hPIGluCisrKidcXFwkMCAtLWZhbGxiYWNrLWVjaG8iJykg IGx0X0VDSE89XGBcJEVDSE8gIlhcJGx0X0VDSE8iIHwgXCRYc2VkIC1lICdzL1xcXFxcXFxcXFxc XFxcXCQwIC0tZmFsbGJhY2stZWNobyJcJC9cJDAgLS1mYWxsYmFjay1lY2hvIi8nXGAKKysgIDs7 CisrZXNhYworKworK2FjX2F1eF9kaXI9JyRhY19hdXhfZGlyJworK3hzaV9zaGVsbD0nJHhzaV9z aGVsbCcKKytsdF9zaGVsbF9hcHBlbmQ9JyRsdF9zaGVsbF9hcHBlbmQnCisrCisrIyBTZWUgaWYg d2UgYXJlIHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91 cgorKyMgY29tbWFuZHMgdGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElOSVQu CisraWYgdGVzdCAtbiAiXCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCisrICAgc2V0b3B0IE5P X0dMT0JfU1VCU1QKKytmaQorKworKworKyAgICBQQUNLQUdFPSckUEFDS0FHRScKKysgICAgVkVS U0lPTj0nJFZFUlNJT04nCisrICAgIFRJTUVTVEFNUD0nJFRJTUVTVEFNUCcKKysgICAgUk09JyRS TScKKysgICAgb2ZpbGU9JyRvZmlsZScKKysKKysKKysKKysKKysKKysKKytfQUNFT0YKKysKKytj YXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrCisrIyBI YW5kbGluZyBvZiBhcmd1bWVudHMuCisrZm9yIGFjX2NvbmZpZ190YXJnZXQgaW4gJGFjX2NvbmZp Z190YXJnZXRzCisrZG8KKysgIGNhc2UgJGFjX2NvbmZpZ190YXJnZXQgaW4KKysgICAgInNvY2kv Y29uZmlnLmgiKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIHNvY2kvY29uZmlnLmgi IDs7CisrICAgICJkZXBmaWxlcyIpIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBk ZXBmaWxlcyIgOzsKKysgICAgImxpYnRvb2wiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09N TUFORFMgbGlidG9vbCIgOzsKKysgICAgIk1ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIE1ha2VmaWxlIiA7OworKyAgICAic29jaS1jb25maWciKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgc29jaS1jb25maWciIDs7CisrICAgICJzb2NpLnBjIikgQ09ORklHX0ZJTEVT PSIkQ09ORklHX0ZJTEVTIHNvY2kucGMiIDs7CisrICAgICJzb2NpLnNwZWMiKSBDT05GSUdfRklM RVM9IiRDT05GSUdfRklMRVMgc29jaS5zcGVjIiA7OworKyAgICAic29jaS9NYWtlZmlsZSIpIENP TkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL01ha2VmaWxlIiA7OworKyAgICAic29jaS9j b3JlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29yZS9NYWtl ZmlsZSIgOzsKKysgICAgInNvY2kvY29yZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIHNvY2kvY29yZS90ZXN0L01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNr ZW5kcy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRz L01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIpIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIiA7Owor KyAgICAic29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIgOzsKKysgICAg InNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUiIDs7CisrICAgICJzb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIgOzsKKysgICAg InNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ TEVTIHNvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlIiA7OworKyAgICAic29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2Np L2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIiA7OworKyAgICAibWFuL01ha2VmaWxlIikg Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1hbi9NYWtlZmlsZSIgOzsKKysgICAgImRvYy9N YWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBkb2MvTWFrZWZpbGUiIDs7Cisr ICAgICJkb2MvYmFja2VuZHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg ZG9jL2JhY2tlbmRzL01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQvTWFrZWZpbGUiKSBDT05GSUdf RklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvTWFrZWZpbGUiIDs7CisrICAgICJidWlsZC91bml4 L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL3VuaXgvTWFrZWZp bGUiIDs7CisrICAgICJidWlsZC9tc3ZjODAvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgYnVpbGQvbXN2YzgwL01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQvbXN2YzgwL2Rs bC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvZGxs L01ha2VmaWxlIiA7OworKyAgICAiYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvbGliL01ha2VmaWxlIiA7OworKworKyAg KikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6 ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxp ZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhp dCAxOyB9OyB9OzsKKysgIGVzYWMKKytkb25lCisrCisrCisrIyBJZiB0aGUgdXNlciBkaWQgbm90 IHVzZSB0aGUgYXJndW1lbnRzIHRvIHNwZWNpZnkgdGhlIGl0ZW1zIHRvIGluc3RhbnRpYXRlLAor KyMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhh dCBhcmUgbm90LgorKyMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2ln bm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKKysjIGJpemFycmUgYnVnIG9uIFN1bk9TIDQu MS4zLgorK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisrICB0ZXN0ICIke0NPTkZJR19GSUxF UytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxlcworKyAgdGVzdCAiJHtD T05GSUdfSEVBREVSUytzZXR9IiA9IHNldCB8fCBDT05GSUdfSEVBREVSUz0kY29uZmlnX2hlYWRl cnMKKysgIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0IHx8IENPTkZJR19DT01N QU5EUz0kY29uZmlnX2NvbW1hbmRzCisrZmkKKysKKysjIEhhdmUgYSB0ZW1wb3JhcnkgZGlyZWN0 b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKKysjIHNpbXBs eSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiBhZ2FpbnN0IGhhdmluZyBpdCBoZXJlLCBhbmQg aW4gYWRkaXRpb24sCisrIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4g c29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgorKyMgSG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNz IGRlYnVnZ2luZy4KKysjIE5vdGUgdGhhdCB0aGVyZSBpcyBhIHNtYWxsIHdpbmRvdyBpbiB3aGlj aCB0aGUgZGlyZWN0b3J5IHdpbGwgbm90IGJlIGNsZWFuZWQ6CisrIyBhZnRlciBpdHMgY3JlYXRp b24gYnV0IGJlZm9yZSBpdHMgbmFtZSBoYXMgYmVlbiBhc3NpZ25lZCB0byBgJHRtcCcuCisrJGRl YnVnIHx8CisreworKyAgdG1wPQorKyAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KKysgIHsgdGVzdCAt eiAiJHRtcCIgfHwgdGVzdCAhIC1kICIkdG1wIiB8fCBybSAtZnIgIiR0bXAiOyB9ICYmIGV4aXQg JGV4aXRfc3RhdHVzCisrJyAwCisrICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAx MyAxNQorK30KKysjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxl cy4KKysKKyt7CisrICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIuL2NvbmZYWFhYWFgi KSAyPi9kZXYvbnVsbGAgJiYKKysgIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCisr fSAgfHwKKyt7CisrICB0bXA9Li9jb25mJCQtJFJBTkRPTQorKyAgKHVtYXNrIDA3NyAmJiBta2Rp ciAiJHRtcCIpCisrfSB8fAorK3sKKysgICAkYXNfZWNobyAiJGFzX21lOiBjYW5ub3QgY3JlYXRl IGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKKysgICB7IChleGl0IDEpOyBleGl0IDE7 IH0KKyt9CisrCisrIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENPTkZJR19GSUxFUyBzZWN0aW9u LgorKyMgTm8gbmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfRklM RVMuCisrIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBj b25maWcuaCcuCisraWYgdGVzdCAtbiAiJENPTkZJR19GSUxFUyI7IHRoZW4KKysKKysKKythY19j cj0nDScKKythY19jc19hd2tfY3I9YCRBV0sgJ0JFR0lOIHsgcHJpbnQgImFccmIiIH0nIDwvZGV2 L251bGwgMj4vZGV2L251bGxgCisraWYgdGVzdCAiJGFjX2NzX2F3a19jciIgPSAiYSR7YWNfY3J9 YiI7IHRoZW4KKysgIGFjX2NzX2F3a19jcj0nXFxyJworK2Vsc2UKKysgIGFjX2NzX2F3a19jcj0k YWNfY3IKKytmaQorKworK2VjaG8gJ0JFR0lOIHsnID4iJHRtcC9zdWJzMS5hd2siICYmCisrX0FD RU9GCisrCisrCisreworKyAgZWNobyAiY2F0ID5jb25mJCRzdWJzLmF3ayA8PF9BQ0VPRiIgJiYK KysgIGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IHNlZCAncy8uKi8mISQmJGFjX2RlbGltLycgJiYK KysgIGVjaG8gIl9BQ0VPRiIKKyt9ID5jb25mJCRzdWJzLnNoIHx8CisrICB7IHsgJGFzX2VjaG8g IiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4m NQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRV UyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKythY19kZWxpbV9udW09YGVj aG8gIiRhY19zdWJzdF92YXJzIiB8IGdyZXAgLWMgJyQnYAorK2FjX2RlbGltPSclIV8hIyAnCisr Zm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNlIDo7IGRvCisr ICAuIC4vY29uZiQkc3Vicy5zaCB8fAorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIk YXNfbWU6IGVycm9yOiBjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgPiYyO30KKysgICB7 IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysKKysgIGFjX2RlbGltX249YHNlZCAtbiAicy8uKiRh Y19kZWxpbVwkL1gvcCIgY29uZiQkc3Vicy5hd2sgfCBncmVwIC1jIFhgCisrICBpZiB0ZXN0ICRh Y19kZWxpbV9uID0gJGFjX2RlbGltX251bTsgdGhlbgorKyAgICBicmVhaworKyAgZWxpZiAkYWNf bGFzdF90cnk7IHRoZW4KKysgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6 IGNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBl cnJvcjogY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiID4mMjt9CisrICAgeyAoZXhpdCAx KTsgZXhpdCAxOyB9OyB9CisrICBlbHNlCisrICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2Rl bGltIF8kYWNfZGVsaW0hISAiCisrICBmaQorK2RvbmUKKytybSAtZiBjb25mJCRzdWJzLnNoCisr CisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrY2F0 ID4+IlwkdG1wL3N1YnMxLmF3ayIgPDxcXF9BQ0FXSyAmJgorK19BQ0VPRgorK3NlZCAtbiAnCisr aAorK3MvXi9TWyIvOyBzLyEuKi8iXT0vCisrcAorK2cKKytzL15bXiFdKiEvLworKzpyZXBsCisr dCByZXBsCisrcy8nIiRhY19kZWxpbSInJC8vCisrdCBkZWxpbQorKzpubAorK2gKKytzL1woLlx7 MTQ4XH1cKS4qL1wxLworK3QgbW9yZTEKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC9cXG4i XFwvCisrcAorK24KKytiIHJlcGwKKys6bW9yZTEKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMv JC8iXFwvCisrcAorK2cKKytzLy5cezE0OFx9Ly8KKyt0IG5sCisrOmRlbGltCisraAorK3MvXCgu XHsxNDhcfVwpLiovXDEvCisrdCBtb3JlMgorK3MvWyJcXF0vXFwmL2c7IHMvXi8iLzsgcy8kLyIv CisrcAorK2IKKys6bW9yZTIKKytzL1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCisrcAor K2cKKytzLy5cezE0OFx9Ly8KKyt0IGRlbGltCisrJyA8Y29uZiQkc3Vicy5hd2sgfCBzZWQgJwor Ky9eW14iIl0veworKyAgTgorKyAgcy9cbi8vCisrfQorKycgPj4kQ09ORklHX1NUQVRVUyB8fCBh Y193cml0ZV9mYWlsPTEKKytybSAtZiBjb25mJCRzdWJzLmF3aworK2NhdCA+PiRDT05GSUdfU1RB VFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK19BQ0FXSworK2NhdCA+PiJcJHRtcC9z dWJzMS5hd2siIDw8X0FDQVdLICYmCisrICBmb3IgKGtleSBpbiBTKSBTX2lzX3NldFtrZXldID0g MQorKyAgRlMgPSAiByIKKysKKyt9CisreworKyAgbGluZSA9ICQgMAorKyAgbmZpZWxkcyA9IHNw bGl0KGxpbmUsIGZpZWxkLCAiQCIpCisrICBzdWJzdGVkID0gMAorKyAgbGVuID0gbGVuZ3RoKGZp ZWxkWzFdKQorKyAgZm9yIChpID0gMjsgaSA8IG5maWVsZHM7IGkrKykgeworKyAgICBrZXkgPSBm aWVsZFtpXQorKyAgICBrZXlsZW4gPSBsZW5ndGgoa2V5KQorKyAgICBpZiAoU19pc19zZXRba2V5 XSkgeworKyAgICAgIHZhbHVlID0gU1trZXldCisrICAgICAgbGluZSA9IHN1YnN0cihsaW5lLCAx LCBsZW4pICIiIHZhbHVlICIiIHN1YnN0cihsaW5lLCBsZW4gKyBrZXlsZW4gKyAzKQorKyAgICAg IGxlbiArPSBsZW5ndGgodmFsdWUpICsgbGVuZ3RoKGZpZWxkWysraV0pCisrICAgICAgc3Vic3Rl ZCA9IDEKKysgICAgfSBlbHNlCisrICAgICAgbGVuICs9IDEgKyBrZXlsZW4KKysgIH0KKysKKysg IHByaW50IGxpbmUKKyt9CisrCisrX0FDQVdLCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFU VVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQorK2lmIHNlZCAicy8kYWNfY3IvLyIgPCAv ZGV2L251bGwgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorKyAgc2VkICJzLyRhY19jclwkLy87IHMv JGFjX2NyLyRhY19jc19hd2tfY3IvZyIKKytlbHNlCisrICBjYXQKKytmaSA8ICIkdG1wL3N1YnMx LmF3ayIgPiAiJHRtcC9zdWJzLmF3ayIgXAorKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogZXJyb3I6IGNvdWxkIG5vdCBzZXR1cCBjb25maWcgZmlsZXMgbWFjaGluZXJ5IiA+JjUK KyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBt YWNoaW5lcnkiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrX0FDRU9GCisr CisrIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92 ZSAkKHNyY2RpciksCisrIyAke3NyY2Rpcn0gYW5kIEBzcmNkaXJAIGZyb20gVlBBVEggaWYgc3Jj ZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKKysjIHRyYWlsaW5nIGNvbG9ucyBhbmQgdGhl biByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQorKyMgKGFjdHVh bGx5IHdlIGxlYXZlIGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJzKS4KKytp ZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgorKyAgYWNfdnBzdWI9Jy9eWwkgXSpWUEFUSFsJ IF0qPS97Cisrcy86KlwkKHNyY2Rpcik6Ki86LworK3MvOipcJHtzcmNkaXJ9OiovOi8KKytzLzoq QHNyY2RpckA6Ki86LworK3MvXlwoW149XSo9WwkgXSpcKToqL1wxLworK3MvOiokLy8KKytzL15b Xj1dKj1bCSBdKiQvLworK30nCisrZmkKKysKKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNF T0YgfHwgYWNfd3JpdGVfZmFpbD0xCisrZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgorKwor KyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgorKyMgTm8g bmVlZCB0byBnZW5lcmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVSUy4KKysj IFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1ha2VmaWxl Jy4KKytpZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVuCisrY2F0ID4iJHRtcC9kZWZp bmVzLmF3ayIgPDxcX0FDQVdLIHx8CisrQkVHSU4geworK19BQ0VPRgorKworKyMgVHJhbnNmb3Jt IGNvbmZkZWZzLmggaW50byBhbiBhd2sgc2NyaXB0IGBkZWZpbmVzLmF3aycsIGVtYmVkZGVkIGFz CisrIyBoZXJlLWRvY3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3RpdHV0ZXMgdGhl IHByb3BlciB2YWx1ZXMgaW50bworKyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBjb25maWcuaC4K KysKKysjIENyZWF0ZSBhIGRlbGltaXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBj b25mZGVmcy5oLCB0byBlYXNlCisrIyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgorK2FjX2RlbGlt PSclIV8hIyAnCisrZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRvCisrICBhY190 PWBzZWQgLW4gIi8kYWNfZGVsaW0vcCIgY29uZmRlZnMuaGAKKysgIGlmIHRlc3QgLXogIiRhY190 IjsgdGhlbgorKyAgICBicmVhaworKyAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KKysgICAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRDT05GSUdf SEVBREVSUyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBtYWtlICRD T05GSUdfSEVBREVSUyIgPiYyO30KKysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGVs c2UKKysgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKKysg IGZpCisrZG9uZQorKworKyMgRm9yIHRoZSBhd2sgc2NyaXB0LCBEIGlzIGFuIGFycmF5IG9mIG1h Y3JvIHZhbHVlcyBrZXllZCBieSBuYW1lLAorKyMgbGlrZXdpc2UgUCBjb250YWlucyBtYWNybyBw YXJhbWV0ZXJzIGlmIGFueS4gIFByZXNlcnZlIGJhY2tzbGFzaAorKyMgbmV3bGluZSBzZXF1ZW5j ZXMuCisrCisrYWNfd29yZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtfJGFzX2NyX2FsbnVtXSoKKytz ZWQgLW4gJworK3MvLlx7MTQ4XH0vJiciJGFjX2RlbGltIicvZworK3QgcnNldAorKzpyc2V0Cisr cy9eWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSovIC8KKyt0IGRlZgorK2QKKys6ZGVmCisrcy9c XCQvLworK3QgYnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVwo KFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDMiL3AKKytz L14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMiIvcAorK2QKKys6 YnNubAorK3MvWyJcXF0vXFwmL2cKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCldKilc KVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKKytEWyJcMSJdPSIgXDNcXFxcXFxuIlxcL3AKKyt0 IGNvbnQKKytzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0qXCguKlwpL0RbIlwxIl09IiBcMlxc XFxcXG4iXFwvcAorK3QgY29udAorK2QKKys6Y29udAorK24KKytzLy5cezE0OFx9LyYnIiRhY19k ZWxpbSInL2cKKyt0IGNsZWFyCisrOmNsZWFyCisrcy9cXCQvLworK3QgYnNubGMKKytzL1siXFxd L1xcJi9nOyBzL14vIi87IHMvJC8iL3AKKytkCisrOmJzbmxjCisrcy9bIlxcXS9cXCYvZzsgcy9e LyIvOyBzLyQvXFxcXFxcbiJcXC9wCisrYiBjb250CisrJyA8Y29uZmRlZnMuaCB8IHNlZCAnCisr cy8nIiRhY19kZWxpbSInLyJcXFwKKysiL2cnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVf ZmFpbD0xCisrCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFp bD0xCisrICBmb3IgKGtleSBpbiBEKSBEX2lzX3NldFtrZXldID0gMQorKyAgRlMgPSAiByIKKyt9 CisrL15bXHQgXSojW1x0IF0qKGRlZmluZXx1bmRlZilbXHQgXSskYWNfd29yZF9yZShbXHQgKF18 XCQpLyB7CisrICBsaW5lID0gXCQgMAorKyAgc3BsaXQobGluZSwgYXJnLCAiICIpCisrICBpZiAo YXJnWzFdID09ICIjIikgeworKyAgICBkZWZ1bmRlZiA9IGFyZ1syXQorKyAgICBtYWMxID0gYXJn WzNdCisrICB9IGVsc2UgeworKyAgICBkZWZ1bmRlZiA9IHN1YnN0cihhcmdbMV0sIDIpCisrICAg IG1hYzEgPSBhcmdbMl0KKysgIH0KKysgIHNwbGl0KG1hYzEsIG1hYzIsICIoIikgIykKKysgIG1h Y3JvID0gbWFjMlsxXQorKyAgcHJlZml4ID0gc3Vic3RyKGxpbmUsIDEsIGluZGV4KGxpbmUsIGRl ZnVuZGVmKSAtIDEpCisrICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7CisrICAgICMgUHJlc2VydmUg dGhlIHdoaXRlIHNwYWNlIHN1cnJvdW5kaW5nIHRoZSAiIyIuCisrICAgIHByaW50IHByZWZpeCAi ZGVmaW5lIiwgbWFjcm8gUFttYWNyb10gRFttYWNyb10KKysgICAgbmV4dAorKyAgfSBlbHNlIHsK KysgICAgIyBSZXBsYWNlICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBpcyBuZWNlc3Nhcnks IGZvciBleGFtcGxlLAorKyAgICAjIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNo IGlzIHByZWRlZmluZWQgYW5kIHJlcXVpcmVkCisrICAgICMgb24gc29tZSBzeXN0ZW1zIHdoZXJl IGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0LgorKyAgICBpZiAoZGVmdW5k ZWYgPT0gInVuZGVmIikgeworKyAgICAgIHByaW50ICIvKiIsIHByZWZpeCBkZWZ1bmRlZiwgbWFj cm8sICIqLyIKKysgICAgICBuZXh0CisrICAgIH0KKysgIH0KKyt9CisreyBwcmludCB9CisrX0FD QVdLCisrX0FDRU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRl X2ZhaWw9MQorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5v dCBzZXR1cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiBjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5IiA+JjI7fQor KyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorK2ZpICMgdGVzdCAtbiAiJENPTkZJR19IRUFE RVJTIgorKworKworK2V2YWwgc2V0IFggIiAgOkYgJENPTkZJR19GSUxFUyAgOkggJENPTkZJR19I RUFERVJTICAgIDpDICRDT05GSUdfQ09NTUFORFMiCisrc2hpZnQKKytmb3IgYWNfdGFnCisrZG8K KysgIGNhc2UgJGFjX3RhZyBpbgorKyAgOltGSExDXSkgYWNfbW9kZT0kYWNfdGFnOyBjb250aW51 ZTs7CisrICBlc2FjCisrICBjYXNlICRhY19tb2RlJGFjX3RhZyBpbgorKyAgOltGSExdKjoqKTs7 CisrICA6TCogfCA6Qyo6KikgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGlu dmFsaWQgdGFnICRhY190YWciID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlk IHRhZyAkYWNfdGFnIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrICA6 W0ZIXS0pIGFjX3RhZz0tOi07OworKyAgOltGSF0qKSBhY190YWc9JGFjX3RhZzokYWNfdGFnLmlu OzsKKysgIGVzYWMKKysgIGFjX3NhdmVfSUZTPSRJRlMKKysgIElGUz06CisrICBzZXQgeCAkYWNf dGFnCisrICBJRlM9JGFjX3NhdmVfSUZTCisrICBzaGlmdAorKyAgYWNfZmlsZT0kMQorKyAgc2hp ZnQKKysKKysgIGNhc2UgJGFjX21vZGUgaW4KKysgIDpMKSBhY19zb3VyY2U9JDE7OworKyAgOltG SF0pCisrICAgIGFjX2ZpbGVfaW5wdXRzPQorKyAgICBmb3IgYWNfZgorKyAgICBkbworKyAgICAg IGNhc2UgJGFjX2YgaW4KKysgICAgICAtKSBhY19mPSIkdG1wL3N0ZGluIjs7CisrICAgICAgKikg IyBMb29rIGZvciB0aGUgZmlsZSBmaXJzdCBpbiB0aGUgYnVpbGQgdHJlZSwgdGhlbiBpbiB0aGUg c291cmNlIHRyZWUKKysJICMgKGlmIHRoZSBwYXRoIGlzIG5vdCBhYnNvbHV0ZSkuICBUaGUgYWJz b2x1dGUgcGF0aCBjYW5ub3QgYmUgRE9TLXN0eWxlLAorKwkgIyBiZWNhdXNlICRhY19mIGNhbm5v dCBjb250YWluIGA6Jy4KKysJIHRlc3QgLWYgIiRhY19mIiB8fAorKwkgICBjYXNlICRhY19mIGlu CisrCSAgIFtcXC8kXSopIGZhbHNlOzsKKysJICAgKikgdGVzdCAtZiAiJHNyY2Rpci8kYWNfZiIg JiYgYWNfZj0iJHNyY2Rpci8kYWNfZiI7OworKwkgICBlc2FjIHx8CisrCSAgIHsgeyAkYXNfZWNo byAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkYWNfZiIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRh Y19mIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisrICAgICAgZXNhYwor KyAgICAgIGNhc2UgJGFjX2YgaW4gKlwnKikgYWNfZj1gJGFzX2VjaG8gIiRhY19mIiB8IHNlZCAi cy8nLydcXFxcXFxcXCcnL2ciYDs7IGVzYWMKKysgICAgICBhY19maWxlX2lucHV0cz0iJGFjX2Zp bGVfaW5wdXRzICckYWNfZiciCisrICAgIGRvbmUKKysKKysgICAgIyBMZXQncyBzdGlsbCBwcmV0 ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKKysg ICAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgorKyAg ICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLworKyAg ICBjb25maWd1cmVfaW5wdXQ9J0dlbmVyYXRlZCBmcm9tICdgCisrCSAgJGFzX2VjaG8gIiQqIiB8 IHNlZCAnc3xeW146XSovfHw7c3w6W146XSovfCwgfGcnCisrCWAnIGJ5IGNvbmZpZ3VyZS4nCisr ICAgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysgICAgICBjb25maWd1cmVfaW5w dXQ9IiRhY19maWxlLiAgJGNvbmZpZ3VyZV9pbnB1dCIKKysgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGNy ZWF0aW5nICRhY19maWxlIiA+JjY7fQorKyAgICBmaQorKyAgICAjIE5ldXRyYWxpemUgc3BlY2lh bCBjaGFyYWN0ZXJzIGludGVycHJldGVkIGJ5IHNlZCBpbiByZXBsYWNlbWVudCBzdHJpbmdzLgor KyAgICBjYXNlICRjb25maWd1cmVfaW5wdXQgaW4gIygKKysgICAgKlwmKiB8ICpcfCogfCAqXFwq ICkKKysgICAgICAgYWNfc2VkX2NvbmZfaW5wdXQ9YCRhc19lY2hvICIkY29uZmlndXJlX2lucHV0 IiB8CisrICAgICAgIHNlZCAncy9bXFxcXCZ8XS9cXFxcJi9nJ2A7OyAjKAorKyAgICAqKSBhY19z ZWRfY29uZl9pbnB1dD0kY29uZmlndXJlX2lucHV0OzsKKysgICAgZXNhYworKworKyAgICBjYXNl ICRhY190YWcgaW4KKysgICAgKjotOiogfCAqOi0pIGNhdCA+IiR0bXAvc3RkaW4iIFwKKysgICAg ICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0 ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVh dGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisrICAg IGVzYWMKKysgICAgOzsKKysgIGVzYWMKKysKKysgIGFjX2Rpcj1gJGFzX2Rpcm5hbWUgLS0gIiRh Y19maWxlIiB8fAorKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVte L10qLyokJyBcfCBcCisrCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIk YWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwg LiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFjX2ZpbGUiIHwKKysgICAgc2VkICcvXlhc KC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkg IH0KKysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9 CisrCSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAv XlhcKFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsg cSdgCisrICB7IGFzX2Rpcj0iJGFjX2RpciIKKysgIGNhc2UgJGFzX2RpciBpbiAjKAorKyAgLSop IGFzX2Rpcj0uLyRhc19kaXI7OworKyAgZXNhYworKyAgdGVzdCAtZCAiJGFzX2RpciIgfHwgeyAk YXNfbWtkaXJfcCAmJiBta2RpciAtcCAiJGFzX2RpciI7IH0gfHwgeworKyAgICBhc19kaXJzPQor KyAgICB3aGlsZSA6OyBkbworKyAgICAgIGNhc2UgJGFzX2RpciBpbiAjKAorKyAgICAgICpcJyop IGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7 ICMnKAorKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7CisrICAgICAgZXNhYworKyAgICAgIGFz X2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCisrICAgICAgYXNfZGlyPWAkYXNfZGlybmFtZSAt LSAiJGFzX2RpciIgfHwKKyskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14v XVteL10qLyokJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisrCSBY IiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwg LiAyPi9kZXYvbnVsbCB8fAorKyRhc19lY2hvIFgiJGFzX2RpciIgfAorKyAgICBzZWQgJy9eWFwo LipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAg fQorKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9e WFwoXC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBx J2AKKysgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhaworKyAgICBkb25lCisrICAgIHRl c3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGlycyIKKysgIH0gfHwgdGVzdCAt ZCAiJGFzX2RpciIgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5v dCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9y OiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjI7fQorKyAgIHsgKGV4aXQgMSk7 IGV4aXQgMTsgfTsgfTsgfQorKyAgYWNfYnVpbGRkaXI9LgorKworK2Nhc2UgIiRhY19kaXIiIGlu CisrLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9w cmVmaXg9IDs7CisrKikKKysgIGFjX2Rpcl9zdWZmaXg9L2AkYXNfZWNobyAiJGFjX2RpciIgfCBz ZWQgJ3N8XlwuW1xcL118fCdgCisrICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFj X2Rpcl9zdWZmaXguCisrICBhY190b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNobyAiJGFjX2Rpcl9z dWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AKKysgIGNhc2UgJGFjX3RvcF9i dWlsZGRpcl9zdWIgaW4KKysgICIiKSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxk X3ByZWZpeD0gOzsKKysgICopICBhY190b3BfYnVpbGRfcHJlZml4PSRhY190b3BfYnVpbGRkaXJf c3ViLyA7OworKyAgZXNhYyA7OworK2VzYWMKKythY19hYnNfdG9wX2J1aWxkZGlyPSRhY19wd2QK KythY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4CisrIyBmb3IgYmFja3dhcmQg Y29tcGF0aWJpbGl0eToKKythY190b3BfYnVpbGRkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgKKysK KytjYXNlICRzcmNkaXIgaW4KKysgIC4pICAjIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KKysg ICAgYWNfc3JjZGlyPS4KKysgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyX3N1Ygor KyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7CisrICBbXFwvXSogfCA/OltcXC9dKiAp ICAjIEFic29sdXRlIG5hbWUuCisrICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7 CisrICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgorKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kc3Jj ZGlyIDs7CisrICAqKSAjIFJlbGF0aXZlIG5hbWUuCisrICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1 aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorKyAgICBhY190b3Bfc3JjZGlyPSRhY190 b3BfYnVpbGRfcHJlZml4JHNyY2RpcgorKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkLyRz cmNkaXIgOzsKKytlc2FjCisrYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9zcmNkaXIkYWNfZGly X3N1ZmZpeAorKworKworKyAgY2FzZSAkYWNfbW9kZSBpbgorKyAgOkYpCisrICAjCisrICAjIENP TkZJR19GSUxFCisrICAjCisrCisrICBjYXNlICRJTlNUQUxMIGluCisrICBbXFwvJF0qIHwgPzpb XFwvXSogKSBhY19JTlNUQUxMPSRJTlNUQUxMIDs7CisrICAqKSBhY19JTlNUQUxMPSRhY190b3Bf YnVpbGRfcHJlZml4JElOU1RBTEwgOzsKKysgIGVzYWMKKysgIGFjX01LRElSX1A9JE1LRElSX1AK KysgIGNhc2UgJE1LRElSX1AgaW4KKysgIFtcXC8kXSogfCA/OltcXC9dKiApIDs7CisrICAqLyop IGFjX01LRElSX1A9JGFjX3RvcF9idWlsZF9wcmVmaXgkTUtESVJfUCA7OworKyAgZXNhYworK19B Q0VPRgorKworK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKKysjIElmIHRoZSB0ZW1wbGF0ZSBkb2VzIG5vdCBrbm93IGFib3V0IGRhdGFyb290ZGlyLCBl eHBhbmQgaXQuCisrIyBGSVhNRTogVGhpcyBoYWNrIHNob3VsZCBiZSByZW1vdmVkIGEgZmV3IHll YXJzIGFmdGVyIDIuNjAuCisrYWNfZGF0YXJvb3RkaXJfaGFjaz07IGFjX2RhdGFyb290ZGlyX3Nl ZW49CisrCisrYWNfc2VkX2RhdGFyb290PScKKysvZGF0YXJvb3RkaXIvIHsKKysgIHAKKysgIHEK Kyt9CisrL0BkYXRhZGlyQC9wCisrL0Bkb2NkaXJAL3AKKysvQGluZm9kaXJAL3AKKysvQGxvY2Fs ZWRpckAvcAorKy9AbWFuZGlyQC9wCisrJworK2Nhc2UgYGV2YWwgInNlZCAtbiBcIlwkYWNfc2Vk X2RhdGFyb290XCIgJGFjX2ZpbGVfaW5wdXRzImAgaW4KKysqZGF0YXJvb3RkaXIqKSBhY19kYXRh cm9vdGRpcl9zZWVuPXllczs7CisrKkBkYXRhZGlyQCp8KkBkb2NkaXJAKnwqQGluZm9kaXJAKnwq QGxvY2FsZWRpckAqfCpAbWFuZGlyQCopCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzog V0FSTklORzogJGFjX2ZpbGVfaW5wdXRzIHNlZW1zIHRvIGlnbm9yZSB0aGUgLS1kYXRhcm9vdGRp ciBzZXR0aW5nIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmlsZV9pbnB1 dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mMjt9CisrX0FD RU9GCisrY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCisr ICBhY19kYXRhcm9vdGRpcl9oYWNrPScKKysgIHMmQGRhdGFkaXJAJiRkYXRhZGlyJmcKKysgIHMm QGRvY2RpckAmJGRvY2RpciZnCisrICBzJkBpbmZvZGlyQCYkaW5mb2RpciZnCisrICBzJkBsb2Nh bGVkaXJAJiRsb2NhbGVkaXImZworKyAgcyZAbWFuZGlyQCYkbWFuZGlyJmcKKysgICAgcyZcXFwk e2RhdGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsKKytlc2FjCisrX0FDRU9GCisrCisrIyBO ZXV0cmFsaXplIFZQQVRIIHdoZW4gYCRzcmNkaXInID0gYC4nLgorKyMgU2hlbGwgY29kZSBpbiBj b25maWd1cmUuYWMgbWlnaHQgc2V0IGV4dHJhc3ViLgorKyMgRklYTUU6IGRvIHdlIHJlYWxseSB3 YW50IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KKytjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9B Q0VPRiB8fCBhY193cml0ZV9mYWlsPTEKKythY19zZWRfZXh0cmE9IiRhY192cHN1YgorKyRleHRy YXN1YgorK19BQ0VPRgorK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0 ZV9mYWlsPTEKKys6dAorKy9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKKytzfEBjb25maWd1 cmVfaW5wdXRAfCRhY19zZWRfY29uZl9pbnB1dHw7dCB0CisrcyZAdG9wX2J1aWxkZGlyQCYkYWNf dG9wX2J1aWxkZGlyX3N1YiY7dCB0CisrcyZAdG9wX2J1aWxkX3ByZWZpeEAmJGFjX3RvcF9idWls ZF9wcmVmaXgmO3QgdAorK3MmQHNyY2RpckAmJGFjX3NyY2RpciY7dCB0CisrcyZAYWJzX3NyY2Rp ckAmJGFjX2Fic19zcmNkaXImO3QgdAorK3MmQHRvcF9zcmNkaXJAJiRhY190b3Bfc3JjZGlyJjt0 IHQKKytzJkBhYnNfdG9wX3NyY2RpckAmJGFjX2Fic190b3Bfc3JjZGlyJjt0IHQKKytzJkBidWls ZGRpckAmJGFjX2J1aWxkZGlyJjt0IHQKKytzJkBhYnNfYnVpbGRkaXJAJiRhY19hYnNfYnVpbGRk aXImO3QgdAorK3MmQGFic190b3BfYnVpbGRkaXJAJiRhY19hYnNfdG9wX2J1aWxkZGlyJjt0IHQK KytzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0CisrcyZATUtESVJfUEAmJGFjX01LRElSX1Am O3QgdAorKyRhY19kYXRhcm9vdGRpcl9oYWNrCisrIgorK2V2YWwgc2VkIFwiXCRhY19zZWRfZXh0 cmFcIiAiJGFjX2ZpbGVfaW5wdXRzIiB8ICRBV0sgLWYgIiR0bXAvc3Vicy5hd2siID4kdG1wL291 dCBcCisrICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90 IGNyZWF0ZSAkYWNfZmlsZSIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5v dCBjcmVhdGUgJGFjX2ZpbGUiID4mMjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Cisr CisrdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hhY2skYWNfZGF0YXJvb3RkaXJfc2VlbiIgJiYK KysgIHsgYWNfb3V0PWBzZWQgLW4gJy9cJHtkYXRhcm9vdGRpcn0vcCcgIiR0bXAvb3V0ImA7IHRl c3QgLW4gIiRhY19vdXQiOyB9ICYmCisrICB7IGFjX291dD1gc2VkIC1uICcvXlsJIF0qZGF0YXJv b3RkaXJbCSBdKjoqPS9wJyAiJHRtcC9vdXQiYDsgdGVzdCAteiAiJGFjX291dCI7IH0gJiYKKysg IHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBh IHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKKyt3aGljaCBzZWVtcyB0 byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+JjUKKysk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0 byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKKyt3aGljaCBzZWVtcyB0byBiZSB1bmRlZmlu ZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+JjI7fQorKworKyAgcm0gLWYg IiR0bXAvc3RkaW4iCisrICBjYXNlICRhY19maWxlIGluCisrICAtKSBjYXQgIiR0bXAvb3V0IiAm JiBybSAtZiAiJHRtcC9vdXQiOzsKKysgICopIHJtIC1mICIkYWNfZmlsZSIgJiYgbXYgIiR0bXAv b3V0IiAiJGFjX2ZpbGUiOzsKKysgIGVzYWMgXAorKyAgfHwgeyB7ICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4mNQorKyRhc19lY2hv ICIkYXNfbWU6IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjI7fQorKyAgIHsg KGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKyA7OworKyAgOkgpCisrICAjCisrICAjIENPTkZJR19I RUFERVIKKysgICMKKysgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKysgICAgewor KyAgICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAorKyAgICAgICYmIGV2 YWwgJyRBV0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIgorKyAgICB9 ID4iJHRtcC9jb25maWcuaCIgXAorKyAgICAgIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5F Tk86IGVycm9yOiBjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiA+JjUKKyskYXNfZWNobyAiJGFz X21lOiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiYyO30KKysgICB7IChleGl0 IDEpOyBleGl0IDE7IH07IH0KKysgICAgaWYgZGlmZiAiJGFjX2ZpbGUiICIkdG1wL2NvbmZpZy5o IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVO TzogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiAkYWNfZmls ZSBpcyB1bmNoYW5nZWQiID4mNjt9CisrICAgIGVsc2UKKysgICAgICBybSAtZiAiJGFjX2ZpbGUi CisrICAgICAgbXYgIiR0bXAvY29uZmlnLmgiICIkYWNfZmlsZSIgXAorKwl8fCB7IHsgJGFzX2Vj aG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgPiY1 CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiID4m Mjt9CisrICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisrICAgIGZpCisrICBlbHNlCisrICAg ICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAorKyAgICAgICYmIGV2YWwgJyRB V0sgLWYgIiR0bXAvZGVmaW5lcy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIiBcCisrICAgICAgfHwg eyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgLSIg PiY1CisrJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNvdWxkIG5vdCBjcmVhdGUgLSIgPiYyO30K KysgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysgIGZpCisrIyBDb21wdXRlICIkYWNfZmls ZSIncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCisrX2FtX2FyZz0iJGFjX2ZpbGUiCisrX2Ft X3N0YW1wX2NvdW50PTEKKytmb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8K KysgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKysgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKKysg ICAgICBicmVhayA7OworKyAgICAqICkKKysgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9h bV9zdGFtcF9jb3VudCArIDFgIDs7CisrICBlc2FjCisrZG9uZQorK2VjaG8gInRpbWVzdGFtcCBm b3IgJF9hbV9hcmciID5gJGFzX2Rpcm5hbWUgLS0gIiRfYW1fYXJnIiB8fAorKyRhc19leHByIFgi JF9hbV9hcmciIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisrCSBYIiRfYW1f YXJnIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKSQnIFx8 IFwKKysJIFgiJF9hbV9hcmciIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAorKyRhc19l Y2hvIFgiJF9hbV9hcmciIHwKKysgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpc LyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXC9cKVteL10u Ki97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wvXCkkL3sKKysJ ICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhcKFwvXCkuKi97CisrCSAgICBzLy9c MS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdgL3N0YW1wLWgkX2FtX3N0YW1wX2Nv dW50CisrIDs7CisrCisrICA6QykgIHsgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiBleGVjdXRp bmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGV4ZWN1dGluZyAk YWNfZmlsZSBjb21tYW5kcyIgPiY2O30KKysgOzsKKysgIGVzYWMKKysKKysKKysgIGNhc2UgJGFj X2ZpbGUkYWNfbW9kZSBpbgorKyAgICAiZGVwZmlsZXMiOkMpIHRlc3QgeCIkQU1ERVBfVFJVRSIg IT0geCIiIHx8IHsKKysgICMgQXV0b2NvbmYgMi42MiBxdW90ZXMgLS1maWxlIGFyZ3VtZW50cyBm b3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCisrICAjIGFyZSBsaXN0ZWQgd2l0aG91dCAtLWZp bGUuICBMZXQncyBwbGF5IHNhZmUgYW5kIG9ubHkgZW5hYmxlIHRoZSBldmFsCisrICAjIGlmIHdl IGRldGVjdCB0aGUgcXVvdGluZy4KKysgIGNhc2UgJENPTkZJR19GSUxFUyBpbgorKyAgKlwnKikg ZXZhbCBzZXQgeCAiJENPTkZJR19GSUxFUyIgOzsKKysgICopICAgc2V0IHggJENPTkZJR19GSUxF UyA7OworKyAgZXNhYworKyAgc2hpZnQKKysgIGZvciBtZgorKyAgZG8KKysgICAgIyBTdHJpcCBN RiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKysgICAgbWY9YGVjaG8g IiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKKysgICAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMg YW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KKysgICAgIyBXZSB1c2VkIHRv IG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAorKyAgICAjIHNv bWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29u dGVudC4KKysgICAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21l IHBlb3BsZSBwb3N0LXByb2Nlc3MKKysgICAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBu ZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KKysgICAgIyBHcmVwJ2luZyB0 aGUgd2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJWCBncmVwIGhhcyBhIGxpbmUKKysg ICAgIyBsaW1pdCBvZiAyMDQ4LCBidXQgYWxsIHNlZCdzIHdlIGtub3cgaGF2ZSB1bmRlcnN0YW5k IGF0IGxlYXN0IDQwMDAuCisrICAgIGlmIHNlZCAtbiAncyxeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9t YWtlLiosWCxwJyAiJG1mIiB8IGdyZXAgWCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKysgICAgICBk aXJwYXJ0PWAkYXNfZGlybmFtZSAtLSAiJG1mIiB8fAorKyRhc19leHByIFgiJG1mIiA6ICdYXCgu KlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorKwkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBc fCBcCisrCSBYIiRtZiIgOiAnWFwoLy9cKSQnIFx8IFwKKysJIFgiJG1mIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRtZiIgfAorKyAgICBzZWQgJy9eWFwoLipb Xi9dXClcL1wvKlteL11bXi9dKlwvKiQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQor KwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJ ICAvXlhcKFwvXC9cKSQveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwo XC9cKS4qL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICBzLy4qLy4vOyBxJ2AK KysgICAgZWxzZQorKyAgICAgIGNvbnRpbnVlCisrICAgIGZpCisrICAgICMgRXh0cmFjdCB0aGUg ZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCisrICAgICMg ZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtlJy4KKysgICAgREVQRElSPWBz ZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcgPCAiJG1mImAKKysgICAgdGVzdCAteiAiJERFUERJUiIg JiYgY29udGludWUKKysgICAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAv L3AnIDwgIiRtZiJgCisrICAgIHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQorKyAg ICBhbV9fcXVvdGU9YHNlZCAtbiAncy9eYW1fX3F1b3RlID0gLy9wJyA8ICIkbWYiYAorKyAgICAj IFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2NvcmU7IGV4 cGFuZCBpdAorKyAgICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3AnIDwgIiRtZiJgCisrICAgICMgRmlu ZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMsIHRoZXkgYXJlIGluY2x1ZGVkIGZpbGVzIHdp dGgKKysgICAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNl IGJlY2F1c2UgaXQgaXMgdGhlCisrICAgICMgc2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcg JChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCisrICAgICMgZXhwYW5zaW9uLgor KyAgICBmb3IgZmlsZSBpbiBgc2VkIC1uICIKKysgICAgICBzL14kYW1fX2luY2x1ZGUgJGFtX19x dW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8IFwKKysJIHNl ZCAtZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBk bworKyAgICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgorKyAgICAgIHRlc3Qg LWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQorKyAgICAgIGZkaXI9YCRhc19kaXJuYW1l IC0tICIkZmlsZSIgfHwKKyskYXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlteL11cKS8vKlteL11b Xi9dKi8qJCcgXHwgXAorKwkgWCIkZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKKysJIFgiJGZp bGUiIDogJ1hcKC8vXCkkJyBcfCBcCisrCSBYIiRmaWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2 L251bGwgfHwKKyskYXNfZWNobyBYIiRmaWxlIiB8CisrICAgIHNlZCAnL15YXCguKlteL11cKVwv XC8qW14vXVteL10qXC8qJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15Y XChcL1wvXClbXi9dLioveworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIC9eWFwo XC9cL1wpJC97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgL15YXChcL1wpLiov eworKwkgICAgcy8vXDEvCisrCSAgICBxCisrCSAgfQorKwkgIHMvLiovLi87IHEnYAorKyAgICAg IHsgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyCisrICBjYXNlICRhc19kaXIgaW4gIygKKysgIC0qKSBh c19kaXI9Li8kYXNfZGlyOzsKKysgIGVzYWMKKysgIHRlc3QgLWQgIiRhc19kaXIiIHx8IHsgJGFz X21rZGlyX3AgJiYgbWtkaXIgLXAgIiRhc19kaXIiOyB9IHx8IHsKKysgICAgYXNfZGlycz0KKysg ICAgd2hpbGUgOjsgZG8KKysgICAgICBjYXNlICRhc19kaXIgaW4gIygKKysgICAgICAqXCcqKSBh c19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7OyAj JygKKysgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OworKyAgICAgIGVzYWMKKysgICAgICBhc19k aXJzPSInJGFzX3FkaXInICRhc19kaXJzIgorKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUgLS0g IiRhc19kaXIiIHx8CisrJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11b Xi9dKi8qJCcgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAorKwkgWCIk YXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IC4g Mj4vZGV2L251bGwgfHwKKyskYXNfZWNobyBYIiRhc19kaXIiIHwKKysgICAgc2VkICcvXlhcKC4q W14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0K KysJICAvXlhcKFwvXC9cKVteL10uKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9Cisr CSAgL15YXChcL1wvXCkkL3sKKysJICAgIHMvL1wxLworKwkgICAgcQorKwkgIH0KKysJICAvXlhc KFwvXCkuKi97CisrCSAgICBzLy9cMS8KKysJICAgIHEKKysJICB9CisrCSAgcy8uKi8uLzsgcSdg CisrICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKKysgICAgZG9uZQorKyAgICB0ZXN0 IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCisrICB9IHx8IHRlc3QgLWQg IiRhc19kaXIiIHx8IHsgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3Qg Y3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIiA+JjUKKyskYXNfZWNobyAiJGFzX21lOiBlcnJvcjog Y2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIgPiYyO30KKysgICB7IChleGl0IDEpOyBl eGl0IDE7IH07IH07IH0KKysgICAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgor KyAgICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorKyAgICBkb25lCisrICBk b25lCisrfQorKyA7OworKyAgICAibGlidG9vbCI6QykKKysKKysgICAgIyBTZWUgaWYgd2UgYXJl IHJ1bm5pbmcgb24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgorKyAg ICAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcy4KKysgICAg aWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KKysgICAgICBzZXRvcHQgTk9f R0xPQl9TVUJTVAorKyAgICBmaQorKworKyAgICBjZmdmaWxlPSIke29maWxlfVQiCisrICAgIHRy YXAgIiRSTSBcIiRjZmdmaWxlXCI7IGV4aXQgMSIgMSAyIDE1CisrICAgICRSTSAiJGNmZ2ZpbGUi CisrCisrICAgIGNhdCA8PF9MVF9FT0YgPj4gIiRjZmdmaWxlIgorKyMhICRTSEVMTAorKworKyMg YCRFQ0hPICIkb2ZpbGUiIHwgc2VkICdzJV4uKi8lJSdgIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBs aWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCisrIyBHZW5lcmF0ZWQgYXV0b21hdGlj YWxseSBieSAkYXNfbWUgKCRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KKysjIExpYnRvb2wg d2FzIGNvbmZpZ3VyZWQgb24gaG9zdCBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVs bCB8IHNlZCAxcWA6CisrIyBOT1RFOiBDaGFuZ2VzIG1hZGUgdG8gdGhpcyBmaWxlIHdpbGwgYmUg bG9zdDogbG9vayBhdCBsdG1haW4uc2guCisrIworKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCisrIyAgICAgICAg ICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgorKyMKKysjICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCisrIworKyMgR05VIExpYnRvb2wgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworKyMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YKKysjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyMKKysjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLAorKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBw cm9ncmFtIG9yIGxpYnJhcnkgdGhhdAorKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlv dSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCisrIyBzYW1lIGRpc3RyaWJ1dGlvbiB0 ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKysjCisrIyBH TlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggR05VIExpYnRv b2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKKysjIGNhbiBiZSBkb3du bG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgorKyMg b2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu LAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxLCBVU0EuCisrCisrCisrIyBUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9u cyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQuCisrYXZhaWxhYmxlX3RhZ3M9IkNYWCAiCisrCisr IyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKKysKKysjIFdoZXRoZXIgb3Igbm90IHRvIGJ1aWxk IHNoYXJlZCBsaWJyYXJpZXMuCisrYnVpbGRfbGlidG9vbF9saWJzPSRlbmFibGVfc2hhcmVkCisr CisrIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLgorK2J1aWxkX29s ZF9saWJzPSRlbmFibGVfc3RhdGljCisrCisrIyBXaGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQg d2FzIHVzZWQ/CisrbWFjcm9fdmVyc2lvbj0kbWFjcm9fdmVyc2lvbgorK21hY3JvX3JldmlzaW9u PSRtYWNyb19yZXZpc2lvbgorKworKyMgV2hhdCB0eXBlIG9mIG9iamVjdHMgdG8gYnVpbGQuCisr cGljX21vZGU9JHBpY19tb2RlCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3Ig ZmFzdCBpbnN0YWxsYXRpb24uCisrZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFzdF9pbnN0YWxsCisr CisrIyBUaGUgaG9zdCBzeXN0ZW0uCisraG9zdF9hbGlhcz0kaG9zdF9hbGlhcworK2hvc3Q9JGhv c3QKKytob3N0X29zPSRob3N0X29zCisrCisrIyBUaGUgYnVpbGQgc3lzdGVtLgorK2J1aWxkX2Fs aWFzPSRidWlsZF9hbGlhcworK2J1aWxkPSRidWlsZAorK2J1aWxkX29zPSRidWlsZF9vcworKwor KyMgQSBzZWQgcHJvZ3JhbSB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dC4KKytTRUQ9JGx0 X1NFRAorKworKyMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNjaWRlbnRhbGx5IHRyaWdnZXJp bmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCisrWHNlZD0iXCRTRUQgLWUgMXMvXlgvLyIKKysK KysjIEEgZ3JlcCBwcm9ncmFtIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzLgorK0dSRVA9JGx0X0dS RVAKKysKKysjIEFuIEVSRSBtYXRjaGVyLgorK0VHUkVQPSRsdF9FR1JFUAorKworKyMgQSBsaXRl cmFsIHN0cmluZyBtYXRjaGVyLgorK0ZHUkVQPSRsdF9GR1JFUAorKworKyMgQSBCU0QtIG9yIE1T LWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIuCisrTk09JGx0X05NCisrCisrIyBXaGV0aGVyIHdlIG5l ZWQgc29mdCBvciBoYXJkIGxpbmtzLgorK0xOX1M9JGx0X0xOX1MKKysKKysjIFdoYXQgaXMgdGhl IG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD8KKyttYXhfY21kX2xlbj0kbWF4X2NtZF9sZW4K KysKKysjIE9iamVjdCBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIm8iKS4KKytvYmpleHQ9JGFjX29i amV4dAorKworKyMgRXhlY3V0YWJsZSBmaWxlIHN1ZmZpeCAobm9ybWFsbHkgIiIpLgorK2V4ZWV4 dD0kZXhlZXh0CisrCisrIyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAidW5zZXQiLgor K2x0X3Vuc2V0PSRsdF91bnNldAorKworKyMgdHVybiBzcGFjZXMgaW50byBuZXdsaW5lcy4KKytT UDJOTD0kbHRfbHRfU1AyTkwKKysKKysjIHR1cm4gbmV3bGluZXMgaW50byBzcGFjZXMuCisrTkwy U1A9JGx0X2x0X05MMlNQCisrCisrIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZp bGVzLgorK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZworK3JlbG9hZF9jbWRzPSRsdF9yZWxv YWRfY21kcworKworKyMgQW4gb2JqZWN0IHN5bWJvbCBkdW1wZXIuCisrT0JKRFVNUD0kbHRfT0JK RFVNUAorKworKyMgTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBh cmUgc2hhcmVkIG9iamVjdHMuCisrZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hl Y2tfbWV0aG9kCisrCisrIyBDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9k ID09ICJmaWxlX21hZ2ljIi4KKytmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdpY19jbWQKKysK KysjIFRoZSBhcmNoaXZlci4KKytBUj0kbHRfQVIKKytBUl9GTEFHUz0kbHRfQVJfRkxBR1MKKysK KysjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtLgorK1NUUklQPSRsdF9TVFJJUAorKworKyMg Q29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgorK1JBTkxJQj0k bHRfUkFOTElCCisrb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0X29sZF9wb3N0aW5zdGFsbF9jbWRz Cisrb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcworKwor KyMgQSBDIGNvbXBpbGVyLgorK0xUQ0M9JGx0X0NDCisrCisrIyBMVENDIGNvbXBpbGVyIGZsYWdz LgorK0xUQ0ZMQUdTPSRsdF9DRkxBR1MKKysKKysjIFRha2UgdGhlIG91dHB1dCBvZiBubSBhbmQg cHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXMuCisrZ2xvYmFsX3N5 bWJvbF9waXBlPSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlCisrCisrIyBUcmFuc2Zv cm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgorK2dsb2JhbF9z eW1ib2xfdG9fY2RlY2w9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsCisrCisr IyBUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFtZSBhZGRyZXNzIHBhaXIuCisr Z2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0kbHRfbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfdG9fY19uYW1lX2FkZHJlc3MKKysKKysjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGlu IGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkLgorK2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeD0kbHRfbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeAorKworKyMgVGhlIG5hbWUgb2Yg dGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgorK29i amRpcj0kb2JqZGlyCisrCisrIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3Jp cHRzLgorK1NIRUxMPSRsdF9TSEVMTAorKworKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBu b3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgorK0VDSE89JGx0X0VDSE8KKysKKysjIFVzZWQgdG8g ZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgd2l0aCAiZmlsZSIu CisrTUFHSUNfQ01EPSRNQUdJQ19DTUQKKysKKysjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRv aW5nIGNvbXBpbGF0aW9uPworK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKKysKKysjIFRvb2wg dG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9T IFguCisrRFNZTVVUSUw9JGx0X0RTWU1VVElMCisrCisrIyBUb29sIHRvIGNoYW5nZSBnbG9iYWwg dG8gbG9jYWwgc3ltYm9scyBvbiBNYWMgT1MgWC4KKytOTUVESVQ9JGx0X05NRURJVAorKworKyMg VG9vbCB0byBtYW5pcHVsYXRlIGZhdCBvYmplY3RzIGFuZCBhcmNoaXZlcyBvbiBNYWMgT1MgWC4K KytMSVBPPSRsdF9MSVBPCisrCisrIyBsZGQvcmVhZGVsZiBsaWtlIHRvb2wgZm9yIE1hY2gtTyBi aW5hcmllcyBvbiBNYWMgT1MgWC4KKytPVE9PTD0kbHRfT1RPT0wKKysKKysjIGxkZC9yZWFkZWxm IGxpa2UgdG9vbCBmb3IgNjQgYml0IE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWCAxMC40Lgor K09UT09MNjQ9JGx0X09UT09MNjQKKysKKysjIE9sZCBhcmNoaXZlIHN1ZmZpeCAobm9ybWFsbHkg ImEiKS4KKytsaWJleHQ9JGxpYmV4dAorKworKyMgU2hhcmVkIGxpYnJhcnkgc3VmZml4IChub3Jt YWxseSAiLnNvIikuCisrc2hyZXh0X2NtZHM9JGx0X3NocmV4dF9jbWRzCisrCisrIyBUaGUgY29t bWFuZHMgdG8gZXh0cmFjdCB0aGUgZXhwb3J0ZWQgc3ltYm9sIGxpc3QgZnJvbSBhIHNoYXJlZCBh cmNoaXZlLgorK2V4dHJhY3RfZXhwc3ltc19jbWRzPSRsdF9leHRyYWN0X2V4cHN5bXNfY21kcwor KworKyMgVmFyaWFibGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3 cmFwcGVyIHNjcmlwdHMgYW5kCisrIyByZXN0b3JlZCBhdCBsaW5rIHRpbWUuCisrdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbms9JGx0X3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rCisrCisrIyBE byB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9yIG1vZHVsZXM/CisrbmVlZF9saWJfcHJlZml4 PSRuZWVkX2xpYl9wcmVmaXgKKysKKysjIERvIHdlIG5lZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJp ZXM/CisrbmVlZF92ZXJzaW9uPSRuZWVkX3ZlcnNpb24KKysKKysjIExpYnJhcnkgdmVyc2lvbmlu ZyB0eXBlLgorK3ZlcnNpb25fdHlwZT0kdmVyc2lvbl90eXBlCisrCisrIyBTaGFyZWQgbGlicmFy eSBydW50aW1lIHBhdGggdmFyaWFibGUuCisrcnVucGF0aF92YXI9JHJ1bnBhdGhfdmFyCisrCisr IyBTaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlLgorK3NobGlicGF0aF92YXI9JHNobGlicGF0 aF92YXIKKysKKysjIElzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQg bGlicmFyeSBzZWFyY2ggcGF0aD8KKytzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9JHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aAorKworKyMgRm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVm aXguCisrbGlibmFtZV9zcGVjPSRsdF9saWJuYW1lX3NwZWMKKysKKysjIExpc3Qgb2YgYXJjaGl2 ZSBuYW1lcy4gIEZpcnN0IG5hbWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3Mu CisrIyBUaGUgbGFzdCBuYW1lIGlzIHRoZSBvbmUgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdpdGgg LWxOQU1FCisrbGlicmFyeV9uYW1lc19zcGVjPSRsdF9saWJyYXJ5X25hbWVzX3NwZWMKKysKKysj IFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVh bCBuYW1lLgorK3NvbmFtZV9zcGVjPSRsdF9zb25hbWVfc3BlYworKworKyMgQ29tbWFuZCB0byB1 c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCisrcG9zdGluc3RhbGxf Y21kcz0kbHRfcG9zdGluc3RhbGxfY21kcworKworKyMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgdW5p bnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KKytwb3N0dW5pbnN0YWxsX2NtZHM9JGx0 X3Bvc3R1bmluc3RhbGxfY21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0 b29sIGxpYnJhcnkgaW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5LgorK2ZpbmlzaF9jbWRzPSRs dF9maW5pc2hfY21kcworKworKyMgQXMgImZpbmlzaF9jbWRzIiwgZXhjZXB0IGEgc2luZ2xlIHNj cmlwdCBmcmFnbWVudCB0byBiZSBldmFsZWQgYnV0CisrIyBub3Qgc2hvd24uCisrZmluaXNoX2V2 YWw9JGx0X2ZpbmlzaF9ldmFsCisrCisrIyBXaGV0aGVyIHdlIHNob3VsZCBoYXJkY29kZSBsaWJy YXJ5IHBhdGhzIGludG8gbGlicmFyaWVzLgorK2hhcmRjb2RlX2ludG9fbGlicz0kaGFyZGNvZGVf aW50b19saWJzCisrCisrIyBDb21waWxlLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJy YXJpZXMuCisrc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX3NlYXJjaF9wYXRo X3NwZWMKKysKKysjIFJ1bi10aW1lIHN5c3RlbSBzZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzLgor K3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSRsdF9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YworKworKyMgV2hldGhlciBkbG9wZW4gaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9zdXBwb3J0PSRl bmFibGVfZGxvcGVuCisrCisrIyBXaGV0aGVyIGRsb3BlbiBvZiBwcm9ncmFtcyBpcyBzdXBwb3J0 ZWQuCisrZGxvcGVuX3NlbGY9JGVuYWJsZV9kbG9wZW5fc2VsZgorKworKyMgV2hldGhlciBkbG9w ZW4gb2Ygc3RhdGljYWxseSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkLgorK2Rsb3Blbl9z ZWxmX3N0YXRpYz0kZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYworKworKyMgQ29tbWFuZHMgdG8g c3RyaXAgbGlicmFyaWVzLgorK29sZF9zdHJpcGxpYj0kbHRfb2xkX3N0cmlwbGliCisrc3RyaXBs aWI9JGx0X3N0cmlwbGliCisrCisrCisrIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFy aWVzLgorK0xEPSRsdF9MRAorKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5 bGUgYXJjaGl2ZS4KKytvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCisrCisr IyBBIGxhbmd1YWdlIHNwZWNpZmljIGNvbXBpbGVyLgorK0NDPSRsdF9jb21waWxlcgorKworKyMg SXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQworKworKyMg Q29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KKytub19idWlsdGlu X2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCisrCisrIyBIb3cgdG8g cGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgorK3dsPSRsdF9sdF9wcm9n X2NvbXBpbGVyX3dsCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGlu ZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfcGljCisr CisrIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgorK2xpbmtfc3Rh dGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCisrCisrIyBEb2VzIGNvbXBpbGVy IHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/CisrY29tcGlsZXJfY19v PSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2NfbworKworKyMgV2hldGhlciBvciBub3QgdG8gYWRk IC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KKytidWlsZF9saWJ0b29sX25lZWRf bGM9JGFyY2hpdmVfY21kc19uZWVkX2xjCisrCisrIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxv dyBzaGFyZWQgbGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgorK2FsbG93X2xpYnRv b2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19y dW50aW1lcworKworKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4K KytleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYwor KworKyMgQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBm cm9tIGFyY2hpdmVzLgorK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZl X2ZsYWdfc3BlYworKworKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5n IG5vIG9iamVjdHMgZGlyZWN0bHkuCisrY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxl cl9uZWVkc19vYmplY3QKKysKKysjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEg c2hhcmVkIGFyY2hpdmUuCisrb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hp dmVfZnJvbV9uZXdfY21kcworKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNo aXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zy b21fZXhwc3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcworKworKyMg Q29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgorK2FyY2hpdmVfY21kcz0k bHRfYXJjaGl2ZV9jbWRzCisrYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1f Y21kcworKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBk aWZmZXJlbnQgZnJvbSBidWlsZGluZworKyMgYSBzaGFyZWQgYXJjaGl2ZS4KKyttb2R1bGVfY21k cz0kbHRfbW9kdWxlX2NtZHMKKyttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1f Y21kcworKworKyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90Lgor K3dpdGhfZ251X2xkPSRsdF93aXRoX2dudV9sZAorKworKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFy ZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCisrYWxsb3df dW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRoYXQg ZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMuCisrbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25v X3VuZGVmaW5lZF9mbGFnCisrCisrIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBi aW5hcnkgZHVyaW5nIGxpbmtpbmcuCisrIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGly IGRvZXMgbm90IGV4aXN0CisraGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYworKworKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcg dG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQorKyMgZHVyaW5nIGxpbmtpbmcuICBU aGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgorK2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQKKysK KysjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0 ZWQgYXJndW1lbnQuCisraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcgorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7 c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVz dWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdAorKworKyMg U2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxp bmtpbmcgaGFyZGNvZGVzCisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhl IHJlc3VsdGluZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKKysjICJhYnNvbHV0ZSIsaS5lIGltcG9z c2libGUgdG8gY2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCisrIyBs aWJyYXJ5IGlzIHJlbG9jYXRlZC4KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2Rl X2RpcmVjdF9hYnNvbHV0ZQorKworKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBm bGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKKysjIGludG8gdGhlIHJlc3VsdGluZyBi aW5hcnkuCisraGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAorKworKyMgU2V0IHRv ICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2Rl cyBESVIKKysjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCisraGFyZGNvZGVfc2hsaWJwYXRo X3Zhcj0kaGFyZGNvZGVfc2hsaWJwYXRoX3ZhcgorKworKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxk aW5nIGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisrIyBpbnRv IHRoZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVz IGxpbmtlZAorKyMgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1 dG9tYXRpYworKworKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9m IGRlcGVuZGVudCBsaWJyYXJpZXMKKysjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0LgorK2luaGVyaXRf cnBhdGg9JGluaGVyaXRfcnBhdGgKKysKKysjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBw cm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KKytsaW5rX2FsbF9k ZXBsaWJzPSRsaW5rX2FsbF9kZXBsaWJzCisrCisrIyBGaXggdGhlIHNoZWxsIHZhcmlhYmxlIFwk c3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0X2ZpeF9zcmNm aWxlX3BhdGgKKysKKysjIFNldCB0byAieWVzIiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1 aXJlZC4KKythbHdheXNfZXhwb3J0X3N5bWJvbHM9JGFsd2F5c19leHBvcnRfc3ltYm9scworKwor KyMgVGhlIGNvbW1hbmRzIHRvIGxpc3QgZXhwb3J0ZWQgc3ltYm9scy4KKytleHBvcnRfc3ltYm9s c19jbWRzPSRsdF9leHBvcnRfc3ltYm9sc19jbWRzCisrCisrIyBTeW1ib2xzIHRoYXQgc2hvdWxk IG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1ib2xzLgorK2V4Y2x1ZGVfZXhwc3lt cz0kbHRfZXhjbHVkZV9leHBzeW1zCisrCisrIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUg ZXhwb3J0ZWQuCisraW5jbHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXMKKysKKysjIENv bW1hbmRzIG5lY2Vzc2FyeSBmb3IgbGlua2luZyBwcm9ncmFtcyAoYWdhaW5zdCBsaWJyYXJpZXMp IHdpdGggdGVtcGxhdGVzLgorK3ByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzCisrCisrIyBT cGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCisrZmlsZV9saXN0X3NwZWM9 JGx0X2ZpbGVfbGlzdF9zcGVjCisrCisrIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFy eSBwYXRoIGludG8gYW4gZXhlY3V0YWJsZS4KKytoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2Fj dGlvbgorKworKyMgVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hl biBjcmVhdGluZyBhIHNoYXJlZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0k bHRfY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2Ug YmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KKysjIGNyZWF0ZSBh IHNoYXJlZCBsaWJyYXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cworK3Bv c3RkZXBfb2JqZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzCisrcHJlZGVwcz0kbHRfcHJlZGVwcwor K3Bvc3RkZXBzPSRsdF9wb3N0ZGVwcworKworKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNl ZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKKysjIGEgc2hhcmVkIGxp YnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNo X3BhdGgKKysKKysjICMjIyBFTkQgTElCVE9PTCBDT05GSUcKKysKKytfTFRfRU9GCisrCisrICBj YXNlICRob3N0X29zIGluCisrICBhaXgzKikKKysgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdm aWxlIgorKyMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3Qy IHByb2dyYW0uICBGb3Igc29tZQorKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFN RVMgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBwcm9ibGVtcworKyMgdmFuaXNoIGluIGEgcHVm ZiBvZiBzbW9rZS4KKytpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRo ZW4KKysgIENPTExFQ1RfTkFNRVM9CisrICBleHBvcnQgQ09MTEVDVF9OQU1FUworK2ZpCisrX0xU X0VPRgorKyAgICA7OworKyAgZXNhYworKworKworK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWlu LnNoIgorKworKworKyAgIyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBv biBESkdQUCBnZXRzIGNvbmZ1c2VkIGlmCisrICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBM Ri1vbmx5IGxpbmVzLiAgU2luY2Ugc2VkIG9wZXJhdGVzIGluCisrICAjIHRleHQgbW9kZSwgaXQg cHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQorKyAg IyBpcyByZXBvcnRlZGx5IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRv bz8KKysgIHNlZCAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS9x JyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCisrICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBl eGl0IDEpCisrCisrICBjYXNlICR4c2lfc2hlbGwgaW4KKysgIHllcykKKysgICAgY2F0IDw8IFxf TFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25k aXJfcmVwbGFjZW1lbnQKKysjIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVt cHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0 byBOT05ESVJfUkVQTEFDRU1FTlQuCisrZnVuY19kaXJuYW1lICgpCisreworKyAgY2FzZSAkezF9 IGluCisrICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAg ICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKysgIGVzYWMKKyt9CisrCisrIyBm dW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAgZnVuY19iYXNlbmFt ZV9yZXN1bHQ9IiR7MSMjKi99IgorK30KKysKKysjIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUg ZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50CisrIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUg YW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgorKyMgY2FsbDoKKysjICAgZGly bmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAorKyMgICAg ICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAor KyMgICAgICAgICAgICAgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorKyMgICAgICAgICAgICAgdmFs dWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorKyMgICBiYXNlbmFtZTogQ29t cHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgorKyMgICAgICAgICAgICAgdmFsdWUgcmV0dW5lZCBpbiAi JGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorKyMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5 bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQorKyMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBl ZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KKysjIHRob3NlIGZ1bmN0aW9ucyBidXQg aW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KKytmdW5jX2Rpcm5hbWVf YW5kX2Jhc2VuYW1lICgpCisreworKyAgY2FzZSAkezF9IGluCisrICAgICovKikgZnVuY19kaXJu YW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7CisrICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3Vs dD0iJHszfSIgOzsKKysgIGVzYWMKKysgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIK Kyt9CisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0cmlwIFBS RUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVggbXVzdCBu b3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJzLCBoYXNo ZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisrIyBk b3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorK2Z1bmNfc3RyaXBu YW1lICgpCisreworKyAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0 bHkgaWYgYm90aCBYIGFuZCBZIGFyZQorKyAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFz c2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgorKyAgZnVuY19zdHJpcG5hbWVf cmVzdWx0PSR7M30KKysgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jl c3VsdCMiJHsxfSJ9CisrICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9y ZXN1bHQlIiR7Mn0ifQorK30KKysKKysjIGZ1bmNfb3B0X3NwbGl0CisrZnVuY19vcHRfc3BsaXQg KCkKKyt7CisrICBmdW5jX29wdF9zcGxpdF9vcHQ9JHsxJSU9Kn0KKysgIGZ1bmNfb3B0X3NwbGl0 X2FyZz0kezEjKj19CisrfQorKworKyMgZnVuY19sbzJvIG9iamVjdAorK2Z1bmNfbG8ybyAoKQor K3sKKysgIGNhc2UgJHsxfSBpbgorKyAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99 LiR7b2JqZXh0fSA7OworKyAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKKysgIGVz YWMKKyt9CisrCisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgp CisreworKyAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbworK30KKysKKysjIGZ1bmNfYXJp dGggYXJpdGhtZXRpYy10ZXJtLi4uCisrZnVuY19hcml0aCAoKQorK3sKKysgIGZ1bmNfYXJpdGhf cmVzdWx0PSQoKCAkKiApKQorK30KKysKKysjIGZ1bmNfbGVuIHN0cmluZworKyMgU1RSSU5HIG1h eSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KKytmdW5jX2xlbiAoKQorK3sKKysgIGZ1bmNfbGVu X3Jlc3VsdD0keyMxfQorK30KKysKKytfTFRfRU9GCisrICAgIDs7CisrICAqKSAjIEJvdXJuZSBj b21wYXRpYmxlIGZ1bmN0aW9ucy4KKysgICAgY2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIK KysKKysjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKysjIENv bXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRo ZSByZXN1bHQsCisrIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQu CisrZnVuY19kaXJuYW1lICgpCisreworKyAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRo ZSBhcmd1bWVudC4KKysgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNl ZCAtZSAiJGRpcm5hbWUiYAorKyAgaWYgdGVzdCAiWCRmdW5jX2Rpcm5hbWVfcmVzdWx0IiA9ICJY JHsxfSI7IHRoZW4KKysgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKKysgIGVsc2UKKysg ICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJGZ1bmNfZGlybmFtZV9yZXN1bHQkezJ9IgorKyAgZmkK Kyt9CisrCisrIyBmdW5jX2Jhc2VuYW1lIGZpbGUKKytmdW5jX2Jhc2VuYW1lICgpCisreworKyAg ZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1l ImAKKyt9CisrCisrCisrIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKKysjIHN0 cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorKyMgUFJFRklYIGFuZCBTVUZGSVgg bXVzdCBub3QgY29udGFpbiBnbG9iYmluZyBvciByZWdleCBzcGVjaWFsCisrIyBjaGFyYWN0ZXJz LCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5n CisrIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorKyMgZnVu Y19zdHJpcF9zdWZmaXggcHJlZml4IG5hbWUKKytmdW5jX3N0cmlwbmFtZSAoKQorK3sKKysgIGNh c2UgJHsyfSBpbgorKyAgICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30i IFwKKysgICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1cJCUl ImA7OworKyAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiWCR7M30iIFwKKysg ICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlJHsyfVwkJSUiYDs7CisrICBl c2FjCisrfQorKworKyMgc2VkIHNjcmlwdHM6CisrbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgtW149 XSpcKT0uKi9cMS87cScKKytteV9zZWRfbG9uZ19hcmc9JzFzL14tW149XSo9Ly8nCisrCisrIyBm dW5jX29wdF9zcGxpdAorK2Z1bmNfb3B0X3NwbGl0ICgpCisreworKyAgZnVuY19vcHRfc3BsaXRf b3B0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19vcHQiYAorKyAgZnVu Y19vcHRfc3BsaXRfYXJnPWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19h cmciYAorK30KKysKKysjIGZ1bmNfbG8ybyBvYmplY3QKKytmdW5jX2xvMm8gKCkKKyt7CisrICBm dW5jX2xvMm9fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRsbzJvImAKKyt9Cisr CisrIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKKytmdW5jX3hmb3JtICgpCisreworKyAg ZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAncy9cLlteLl0qJC8u bG8vJ2AKKyt9CisrCisrIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorK2Z1bmNfYXJp dGggKCkKKyt7CisrICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJEAiYAorK30KKysKKysjIGZ1 bmNfbGVuIHN0cmluZworKyMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KKytm dW5jX2xlbiAoKQorK3sKKysgIGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJDEiIDogIi4qIiAyPi9k ZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKKyt9CisrCisrX0xUX0VPRgorK2VzYWMKKysK KytjYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4KKysgIHllcykKKysgICAgY2F0IDw8IFxfTFRfRU9G ID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQorKyMgQXBwZW5kIFZB TFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgorK2Z1bmNfYXBwZW5kICgpCisr eworKyAgZXZhbCAiJDErPVwkMiIKKyt9CisrX0xUX0VPRgorKyAgICA7OworKyAgKikKKysgICAg Y2F0IDw8IFxfTFRfRU9GID4+ICIkY2ZnZmlsZSIKKysKKysjIGZ1bmNfYXBwZW5kIHZhciB2YWx1 ZQorKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgorK2Z1 bmNfYXBwZW5kICgpCisreworKyAgZXZhbCAiJDE9XCQkMVwkMiIKKyt9CisrCisrX0xUX0VPRgor KyAgICA7OworKyAgZXNhYworKworKworKyAgc2VkIC1uICcvXiMgR2VuZXJhdGVkIHNoZWxsIGZ1 bmN0aW9ucyBpbnNlcnRlZCBoZXJlLywkcCcgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAorKyAg ICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQorKworKyAgbXYgLWYgIiRjZmdmaWxlIiAi JG9maWxlIiB8fAorKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxl IiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQorKyAgY2htb2QgK3ggIiRvZmlsZSIKKysKKysKKysgICAg Y2F0IDw8X0xUX0VPRiA+PiAiJG9maWxlIgorKworKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENP TkZJRzogQ1hYCisrCisrIyBUaGUgbGlua2VyIHVzZWQgdG8gYnVpbGQgbGlicmFyaWVzLgorK0xE PSRsdF9MRF9DWFgKKysKKysjIENvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFy Y2hpdmUuCisrb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kc19DWFgKKysKKysj IEEgbGFuZ3VhZ2Ugc3BlY2lmaWMgY29tcGlsZXIuCisrQ0M9JGx0X2NvbXBpbGVyX0NYWAorKwor KyMgSXMgdGhlIGNvbXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Cisrd2l0aF9nY2M9JEdDQ19DWFgK KysKKysjIENvbXBpbGVyIGZsYWcgdG8gdHVybiBvZmYgYnVpbHRpbiBmdW5jdGlvbnMuCisrbm9f YnVpbHRpbl9mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZ19DWFgKKysK KysjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCisrd2w9 JGx0X2x0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCisrCisrIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZs YWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCisrcGljX2ZsYWc9JGx0X2x0X3Byb2df Y29tcGlsZXJfcGljX0NYWAorKworKyMgQ29tcGlsZXIgZmxhZyB0byBwcmV2ZW50IGR5bmFtaWMg bGlua2luZy4KKytsaW5rX3N0YXRpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19D WFgKKysKKysjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8g b3B0aW9ucz8KKytjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWAor KworKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJh cmllcy4KKytidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWAor KworKyMgV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBydW50aW1l IGxpYnMgYXJlIHN0YXRpYy4KKythbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGlt ZXM9JGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXNfQ1hYCisrCisrIyBDb21waWxl ciBmbGFnIHRvIGFsbG93IHJlZmxleGl2ZSBkbG9wZW5zLgorK2V4cG9ydF9keW5hbWljX2ZsYWdf c3BlYz0kbHRfZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWAorKworKyMgQ29tcGlsZXIgZmxh ZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hpdmVzLgorK3do b2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFgKKysK KysjIFdoZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2luZyBubyBvYmplY3RzIGRp cmVjdGx5LgorK2NvbXBpbGVyX25lZWRzX29iamVjdD0kbHRfY29tcGlsZXJfbmVlZHNfb2JqZWN0 X0NYWAorKworKyMgQ3JlYXRlIGFuIG9sZC1zdHlsZSBhcmNoaXZlIGZyb20gYSBzaGFyZWQgYXJj aGl2ZS4KKytvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX25l d19jbWRzX0NYWAorKworKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRv IGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgorK29sZF9hcmNoaXZlX2Zyb21fZXhw c3ltc19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kc19DWFgKKysKKysjIENv bW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFyZWQgYXJjaGl2ZS4KKythcmNoaXZlX2NtZHM9JGx0 X2FyY2hpdmVfY21kc19DWFgKKythcmNoaXZlX2V4cHN5bV9jbWRzPSRsdF9hcmNoaXZlX2V4cHN5 bV9jbWRzX0NYWAorKworKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVs ZSBpZiBkaWZmZXJlbnQgZnJvbSBidWlsZGluZworKyMgYSBzaGFyZWQgYXJjaGl2ZS4KKyttb2R1 bGVfY21kcz0kbHRfbW9kdWxlX2NtZHNfQ1hYCisrbW9kdWxlX2V4cHN5bV9jbWRzPSRsdF9tb2R1 bGVfZXhwc3ltX2NtZHNfQ1hYCisrCisrIyBXaGV0aGVyIHdlIGFyZSBidWlsZGluZyB3aXRoIEdO VSBsZCBvciBub3QuCisrd2l0aF9nbnVfbGQ9JGx0X3dpdGhfZ251X2xkX0NYWAorKworKyMgRmxh ZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8g YmUgYnVpbHQuCisrYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFn X0NYWAorKworKyMgRmxhZyB0aGF0IGVuZm9yY2VzIG5vIHVuZGVmaW5lZCBzeW1ib2xzLgorK25v X3VuZGVmaW5lZF9mbGFnPSRsdF9ub191bmRlZmluZWRfZmxhZ19DWFgKKysKKysjIEZsYWcgdG8g aGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKysjIFRoaXMg bXVzdCB3b3JrIGV2ZW4gaWYgXCRsaWJkaXIgZG9lcyBub3QgZXhpc3QKKytoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjPSRsdF9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWAorKworKyMgSWYg bGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBh IGJpbmFyeQorKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGli ZGlyIGRvZXMgbm90IGV4aXN0LgorK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9JGx0X2hh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYCisrCisrIyBXaGV0aGVyIHdlIG5lZWQgYSBz aW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50LgorK2hhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9JGx0X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYCisrCisr IyBTZXQgdG8gInllcyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMKKysjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hh cmRjb2RlX2RpcmVjdD0kaGFyZGNvZGVfZGlyZWN0X0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVz CisrIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGluZyBsaWJy YXJ5IGRlcGVuZGVuY3kgaXMKKysjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8gY2hhbmdl IGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCisrIyBsaWJyYXJ5IGlzIHJlbG9j YXRlZC4KKytoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0 ZV9DWFgKKysKKysjIFNldCB0byAieWVzIiBpZiB1c2luZyB0aGUgLUxESVIgZmxhZyBkdXJpbmcg bGlua2luZyBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgorK2hh cmRjb2RlX21pbnVzX0w9JGhhcmRjb2RlX21pbnVzX0xfQ1hYCisrCisrIyBTZXQgdG8gInllcyIg aWYgdXNpbmcgU0hMSUJQQVRIX1ZBUj1ESVIgZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzIERJUgor KyMgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeS4KKytoYXJkY29kZV9zaGxpYnBhdGhfdmFyPSRo YXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWAorKworKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5n IGEgc2hhcmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCisrIyBpbnRvIHRo ZSBsaWJyYXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxp bmtlZAorKyMgYWdhaW5zdCBpdC4KKytoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9t YXRpY19DWFgKKysKKysjIFNldCB0byB5ZXMgaWYgbGlua2VyIGFkZHMgcnVudGltZSBwYXRocyBv ZiBkZXBlbmRlbnQgbGlicmFyaWVzCisrIyB0byBydW50aW1lIHBhdGggbGlzdC4KKytpbmhlcml0 X3JwYXRoPSRpbmhlcml0X3JwYXRoX0NYWAorKworKyMgV2hldGhlciBsaWJ0b29sIG11c3QgbGlu ayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgorK2xpbmtf YWxsX2RlcGxpYnM9JGxpbmtfYWxsX2RlcGxpYnNfQ1hYCisrCisrIyBGaXggdGhlIHNoZWxsIHZh cmlhYmxlIFwkc3JjZmlsZSBmb3IgdGhlIGNvbXBpbGVyLgorK2ZpeF9zcmNmaWxlX3BhdGg9JGx0 X2ZpeF9zcmNmaWxlX3BhdGhfQ1hYCisrCisrIyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3lt Ym9scyBhcmUgcmVxdWlyZWQuCisrYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0 X3N5bWJvbHNfQ1hYCisrCisrIyBUaGUgY29tbWFuZHMgdG8gbGlzdCBleHBvcnRlZCBzeW1ib2xz LgorK2V4cG9ydF9zeW1ib2xzX2NtZHM9JGx0X2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYCisrCisr IyBTeW1ib2xzIHRoYXQgc2hvdWxkIG5vdCBiZSBsaXN0ZWQgaW4gdGhlIHByZWxvYWRlZCBzeW1i b2xzLgorK2V4Y2x1ZGVfZXhwc3ltcz0kbHRfZXhjbHVkZV9leHBzeW1zX0NYWAorKworKyMgU3lt Ym9scyB0aGF0IG11c3QgYWx3YXlzIGJlIGV4cG9ydGVkLgorK2luY2x1ZGVfZXhwc3ltcz0kbHRf aW5jbHVkZV9leHBzeW1zX0NYWAorKworKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5n IHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXMuCisrcHJlbGlua19j bWRzPSRsdF9wcmVsaW5rX2NtZHNfQ1hYCisrCisrIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5p bmcgaW5wdXQgZmlsZXMuCisrZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9zcGVjX0NYWAor KworKyMgSG93IHRvIGhhcmRjb2RlIGEgc2hhcmVkIGxpYnJhcnkgcGF0aCBpbnRvIGFuIGV4ZWN1 dGFibGUuCisraGFyZGNvZGVfYWN0aW9uPSRoYXJkY29kZV9hY3Rpb25fQ1hYCisrCisrIyBUaGUg ZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNyZWF0aW5nIGEgc2hh cmVkIGxpYnJhcnkuCisrY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzPSRsdF9jb21waWxlcl9saWJf c2VhcmNoX2RpcnNfQ1hYCisrCisrIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBh ZnRlciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KKysjIGNyZWF0ZSBhIHNoYXJlZCBsaWJy YXJ5LgorK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0c19DWFgKKytwb3N0ZGVwX29i amVjdHM9JGx0X3Bvc3RkZXBfb2JqZWN0c19DWFgKKytwcmVkZXBzPSRsdF9wcmVkZXBzX0NYWAor K3Bvc3RkZXBzPSRsdF9wb3N0ZGVwc19DWFgKKysKKysjIFRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRo IHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY29tcGlsZXIgd2hlbiBsaW5raW5nCisrIyBhIHNoYXJl ZCBsaWJyYXJ5LgorK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aD0kbHRfY29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoX0NYWAorKworKyMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6IENYWAorK19M VF9FT0YKKysKKysgOzsKKysKKysgIGVzYWMKKytkb25lICMgZm9yIGFjX3RhZworKworKworK3sg KGV4aXQgMCk7IGV4aXQgMDsgfQorK19BQ0VPRgorK2NobW9kICt4ICRDT05GSUdfU1RBVFVTCisr YWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKKysKKyt0ZXN0ICRhY193cml0ZV9m YWlsID0gMCB8fAorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHdyaXRl IGZhaWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6 IGVycm9yOiB3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjI7fQorKyAg IHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorKworKworKyMgY29uZmlndXJlIGlzIHdyaXRpbmcg dG8gY29uZmlnLmxvZywgYW5kIHRoZW4gY2FsbHMgY29uZmlnLnN0YXR1cy4KKysjIGNvbmZpZy5z dGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4K KysjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0 aWxsIGtlcHQgb3BlbgorKyMgYnkgY29uZmlndXJlLCBzbyBjb25maWcuc3RhdHVzIHdvbid0IGJl IGFibGUgdG8gd3JpdGUgdG8gaXQ7IGl0cworKyMgb3V0cHV0IGlzIHNpbXBseSBkaXNjYXJkZWQu ICBTbyB3ZSBleGVjIHRoZSBGRCB0byAvZGV2L251bGwsCisrIyBlZmZlY3RpdmVseSBjbG9zaW5n IGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAorKyMgYXBw ZW5kZWQgdG8gYnkgY29uZmlnLnN0YXR1cy4gIFdoZW4gY29taW5nIGJhY2sgdG8gY29uZmlndXJl LCB3ZQorKyMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCisraWYgdGVzdCAi JG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisrICBhY19jc19zdWNjZXNzPToKKysgIGFjX2NvbmZp Z19zdGF0dXNfYXJncz0KKysgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCisrICAgIGFjX2NvbmZp Z19zdGF0dXNfYXJncz0iJGFjX2NvbmZpZ19zdGF0dXNfYXJncyAtLXF1aWV0IgorKyAgZXhlYyA1 Pi9kZXYvbnVsbAorKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2Fy Z3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorKyAgZXhlYyA1Pj5jb25maWcubG9nCisrICAjIFVz ZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3 aGljaAorKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3Qg aW5zdHJ1Y3Rpb24uCisrICAkYWNfY3Nfc3VjY2VzcyB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0K KytmaQorK2lmIHRlc3QgLW4gIiRhY191bnJlY29nbml6ZWRfb3B0cyIgJiYgdGVzdCAiJGVuYWJs ZV9vcHRpb25fY2hlY2tpbmciICE9IG5vOyB0aGVuCisrICB7ICRhc19lY2hvICIkYXNfbWU6JExJ TkVOTzogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0 cyIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6 ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KKytmaQorKworKworK2VjaG8gIgorKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkgY29uZmlndXJhdGlv bjoKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytEaXJlY3RvcmllczoKKysgIC0gcHJlZml4 IC4uLi4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQorKyAgLSBleGVjX3ByZWZpeCAuLi4uLi4uLi4u IDogJHtleGVjX3ByZWZpeH0KKysgIC0gaW5jbHVkZWRpciAuLi4uLi4uLi4uLiA6ICR7aW5jbHVk ZWRpcn0KKysgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4uLiA6ICR7bGliZGlyfQorKyAgLSBkb2Nk aXIgLi4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9CisrICAtIG1hbmRpciAuLi4uLi4uLi4uLi4u Li4gOiAke21hbmRpcn0KKysgIC0gaW5mb2RpciAuLi4uLi4uLi4uLi4uLiA6ICR7aW5mb2Rpcn0K KysKKytTd2l0Y2hlczoKKysgIC0gZXhjZXB0aW9ucyAuLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2V4 Y2VwdGlvbnN9CisrICAtIGluZm8tZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9pbmZvX2Rv Y30KKysgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX2h0bWxfZG9jfQorKyAg LSBzaGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc2hhcmVkfQorKyAgLSBzdGF0aWMg Li4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGljfQorKworK0RvY3VtZW50YXRpb24gdG9v bHM6CisrICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4gOiAke3RleGluZm9fb2t9CisrICAtIGRv eHlnZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5fb2t9CisrICAtIGxhdGV4IC4uLi4uLi4u Li4uLi4uLi4gOiAke2xhdGV4X29rfQorKyAgLSBkdmlwcyAuLi4uLi4uLi4uLi4uLi4uIDogJHtk dmlwc19va30KKysgIC0gZ2hvc3RzY3JpcHQgLi4uLi4uLi4uLiA6ICR7Z3Nfb2t9CisrCisrVGVz dGluZyB0b29sczoKKysgIC0gZGlmZiAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZGlmZl9va30KKysg IC0gc2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2VkX29rfQorKworK0NvbXBpbGVyL2xpbmtl ciBmbGFncy9saWJzL2RlZnM6CisrICAtIENYWCAuLi4uLi4uLi4uLi4uLi4uLi4gOiAke0NYWH0K KysgIC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1hYRkxBR1N9CisrICAtIENQUEZMQUdT IC4uLi4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQorKyAgLSBMREZMQUdTIC4uLi4uLi4uLi4uLi4u IDogJHtMREZMQUdTfQorKyAgLSBMSUJTIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtMSUJTfQorKwor K0J1cnJpZWQgaGVhZGVyIGZpbGVzOgorKyAgLSBTT0NJX0hFQURFUlNfQlVSSUVEIC4uLi4uLi4g OiAke2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9CisrICAtIE1ZU1FMX0hFQURFUlNfQlVSSUVEIC4u Li4uLiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyc30KKysgIC0gUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnN9Cisr CisrRXh0ZXJuYWwgbGlicmFyaWVzOgorKyAgLSBCb29zdCAuLi4uLi4uLi4uLi4uLi4uIDoKKysg ICAgbyBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9PU1RfVkVSU0lPTn0KKysgICAgbyBCT09T VF9DRkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdTfQorKyAgICBvIEJPT1NUX0xJQlMgLi4u Li4uLi4uIDogJHtCT09TVF9MSUJTfQorKyAgICBvIEJPT1NUX0RUX0xJQiAuLi4uLi4uIDogJHtC T09TVF9EQVRFX1RJTUVfTElCfQorKyAgICBvIEJPT1NUX1BPX0xJQiAuLi4uLi4uIDogJHtCT09T VF9QUk9HUkFNX09QVElPTlNfTElCfQorKworKyAgLSBNeVNRTCBzdXBwb3J0IC4uLi4uLi4uIDog JHtlbmFibGVfYmFja2VuZF9teXNxbH0KKysgICAgbyBNWVNRTF9WRVJTSU9OIC4uLi4uLiA6ICR7 TVlTUUxfVkVSU0lPTn0KKysgICAgbyBNWVNRTF9DRkxBR1MgLi4uLi4uLiA6ICR7TVlTUUxfQ0ZM QUdTfQorKyAgICBvIE1ZU1FMX0xJQlMgLi4uLi4uLi4uIDogJHtNWVNRTF9MSUJTfQorKworKyAg LSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsfQor KyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQT1NUR1JFU1FMX1ZFUlNJT059CisrICAg IG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RHUkVTUUxfQ0ZMQUdTfQorKyAgICBvIFBP U1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FMX0xERkxBR1N9CisrCisrICAtIE9yYWNs ZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0KKysgICAgbyBPUkFD TEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQorKyAgICBvIE9SQUNMRV9D RkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KKysgICAgbyBPUkFDTEVfTERGTEFH UyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQorKworKyAgLSBDUFBVbml0IC4uLi4uLi4u Li4uLi4uIDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9O fQorKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KKysgICAg byBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQorIAorLWVjaG8gJycKKy1j ZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgcGFyc2UtcGFyYW1ldGVycy50Y2wKKy0KKy1l Y2hvICcnCistZWNobyAnQ29uZmlndXJlIGRvbmUuJworLWVjaG8gJ1llcywgaXQgd2FzIHNob3J0 LicKKy1lY2hvICcnCistZWNobyAnWW91IGNhbiBub3cgcnVuIG1ha2UuJworKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5k IGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyIKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUuYWMgc29jaS0zLjAu MF90cmVwMzAwL2NvbmZpZ3VyZS5hYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZ3VyZS5h YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9jb25maWd1cmUuYWMJMjAxMC0wMS0yMyAxNDo0Mjo0Mi4wMDAwMDAwMDAgKzAxMDAKK0BA IC0wLDAgKzEsNDAyIEBACisrIyBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHBy b2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0CisrIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19QUkVSRVEoMi41OSkK KytBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAwNC0yMDA5IE1hY2llaiBTb2JjemFrIDxt c29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkKKytBQ19JTklUKFtTT0NJXSxbMy4wLjBd LFttc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRdLFtzb2NpXSkKKytBQ19DT05GSUdfSEVB REVSKFtzb2NpL2NvbmZpZy5oXSkKKytBQ19DT05GSUdfU1JDRElSKFtzb2NpL2NvcmUvZXJyb3Iu Y3BwXSkKKytBQ19DT05GSUdfQVVYX0RJUihbY29uZmlnXSkKKytBTV9JTklUX0FVVE9NQUtFCisr QU1fUEFUSF9DUFBVTklUKDEuMTApCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfQ1BQVU5JVF0sIFt0 ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCisrCisrIyBSUE0gcmVsZWFzZSBudW1iZXIKKytS UE1fUkVMRUFTRT0iMTYiCisrQUNfU1VCU1QoUlBNX1JFTEVBU0UpCisrCisrIyBTaGFyZWQgbGli cmFyeSB2ZXJzaW9uaW5nCisrR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6MDowIgorKyMgICAg ICAgICAgICAgICAgICAgICAgICB8IHwgfAorKyMgICAgICAgICAgICAgICAgICstLS0tLS0rIHwg Ky0tLSsKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8CisrIyAgICAgICAgICAg ICAgY3VycmVudDpyZXZpc2lvbjphZ2UKKysjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICB8CisrIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5jcmVtZW50IGlmIGlu dGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOworKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwg ICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIAorKyMgICAgICAgICAg ICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAorKyMgICAgICAgICAg ICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBoYXMgY2hhbmdlZDsK KysjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBpZiBjdXJyZW50IGlz IGluY3JlbWVudGVkCisrIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50IGlmIGludGVyZmFj ZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCisrIyAgICAgICAgICAgICAgICAgICAgb3IgY2hh bmdlZAorK0FDX1NVQlNUKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworKyMgVXBsb2FkIGNv bW1hbmQgZm9yIFNvdXJjZUZvcmdlCisrVVBMT0FEX0NPTU1BTkQ9Im5jZnRwcHV0IC12IHVwbG9h ZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgorK0FDX1NVQlNUKFVQTE9BRF9DT01NQU5EKQor KworKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFy eSBpbiBXaW5kb3dzCisrQUNfQ0FOT05JQ0FMX0hPU1QKKytjYXNlICRob3N0IGluCisrICAqLSot bXNkb3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0qLWN5Z3dpbiogfCAqLSotd2lu ZG93cyopIAorKyAgICBBQ19ESVNBQkxFX1NIQVJFRAorKyAgICBBQ19FTkFCTEVfU1RBVElDCisr ICAgIDs7CisrICAqKSAgCisrICAgIEFDX0VOQUJMRV9TSEFSRUQKKysgICAgQUNfRElTQUJMRV9T VEFUSUMKKysgICAgOzsKKytlc2FjCisrCisrIyBDaGVja3MgZm9yIHByb2dyYW1zCisrc2F2ZV9D WFhGTEFHUz0iJENYWEZMQUdTIgorK0FDX1BST0dfQ1hYCisrQUNfUFJPR19DWFhDUFAKKytDWFhG TEFHUz0iJHNhdmVfQ1hYRkxBR1MiCisrQUNfUFJPR19JTlNUQUxMCisrQUNfUFJPR19MSUJUT09M CisrQUNfUFJPR19MTl9TCisrQUNfUFJPR19NQUtFX1NFVAorKworKyMgU2V0IGRlZmF1bHQgbGFu Z3VhZ2UgdG8gQysrCisrQUNfTEFORyhbQysrXSkKKysKKysjIENoZWNrIGZvciBleGNlcHRpb25z IHN3aXRjaAorK0FDX0FSR19FTkFCTEUoZXhjZXB0aW9ucywKKysgICAgICAgICAgICAgIFtBU19I RUxQX1NUUklORyhbLS1lbmFibGUtZXhjZXB0aW9uc10sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2VuYWJsZSBleGNlcHRpb25zIGhhbmRsaW5nIG1lY2hhbmlzbV0pXSwKKysgICAg ICAgICAgICAgIFtBQ19ERUZJTkUoW1NPQ0lfRVhDRVBUSU9OU10sIFsxXSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgW0RlZmluZSBpZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nXSld KQorK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9u cz15ZXMKKyt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0geG5vICYmIGVuYWJsZV9l eGNlcHRpb25zPXllcworKworKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMKKytBQ19BUkdfRU5BQkxF KGluZm8tZG9jLCAKKysgICAgICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS1kaXNhYmxlLWlu Zm8tZG9jXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZG8gbm90IGdlbmVyYXRl IEluZm8gZG9jdW1lbnRhdGlvbl0pXSkKKyt0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5v ICYmIGVuYWJsZV9pbmZvX2RvYz15ZXMKKysKKysKKysjIENoZWNrIGZvciBodG1sLWRvYyBzd2l0 Y2gKKytBQ19BUkdfRU5BQkxFKGh0bWwtZG9jLCAKKysgICAgICAgICAgICAgIFtBU19IRUxQX1NU UklORyhbLS1kaXNhYmxlLWh0bWwtZG9jXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbZG8gbm90IGdlbmVyYXRlIEhUTUwgZG9jdW1lbnRhdGlvbl0pXSkKKyt0ZXN0ICJ4JGVuYWJs ZV9odG1sX2RvYyIgIT0geG5vICYmIGVuYWJsZV9odG1sX2RvYz15ZXMKKysKKysKKysjIFByb3Zp ZGUgLS13aXRoLWRvY2RpcgorK0FDX0FSR19XSVRIKGRvY2RpciwKKysgICAgICAgICAgICBbQVNf SEVMUF9TVFJJTkcoWy0td2l0aC1kb2NkaXI9RElSXSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgW3NldCBkb2N1bWVudGF0aW9uIGRpcmVjdG9yeSB0byBESVJdKV0sCisrICAgICAgICAg ICAgW0RPQ19ESVI9IiR3aXRodmFsIl0sCisrICAgICAgICAgICAgW0RPQ19ESVI9IiJdKQorK2lm IHRlc3QgIngkRE9DX0RJUiIgIT0geDsgdGhlbgorKyAgZG9jZGlyPSIkRE9DX0RJUiIKKytlbHNl CisrICBkb2NkaXI9IiR7ZGF0YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgorK2ZpCisrQUNf U1VCU1QoZG9jZGlyKQorKworKworKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChm b3IgU09DSSBpdHNlbGYpCisrQUNfQVJHX0VOQUJMRShidXJyaWVkLWhlYWRlcnMsIAorKyBBU19I RUxQX1NUUklORyhbLS1lbmFibGUtYnVycmllZC1oZWFkZXJzXSwKKysJCVtpbmNsdWRlIGhlYWRl ciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAorKyBbIGlmIHRlc3QgIiRlbmFi bGV2YWwiID0gbm87IHRoZW4KKysgICAgICBlbmFibGVfYnVycmllZF9oZWFkZXJzPW5vCisrICAg ZWxzZQorKyAgICAgIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCisrICAgZmkgXSwKKysgWyBl bmFibGVfYnVycmllZF9oZWFkZXJzPW5vIF0pCisrIyBUZW1wb3JhcnksIGZvciB0aGUgUlBNIHBh Y2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfYnVycmllZF9oZWFkZXJzPXllcworK0FNX0NPTkRJ VElPTkFMKFtTT0NJX0hFQURFUlNfQlVSSUVEXSwgW3Rlc3QgIngkZW5hYmxlX2J1cnJpZWRfaGVh ZGVycyIgPSB4eWVzXSkKKytBQ19TVUJTVChTT0NJX0hFQURFUlNfQlVSSUVEKQorK2lmIHRlc3Qg IngkZW5hYmxlX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1E U09DSV9IRUFERVJTX0JVUklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBidXJy aWVkIGhlYWRlciBmaWxlcyAoZm9yIE15U1FMIGNsaWVudCkKKytBQ19BUkdfRU5BQkxFKG15c3Fs LWJ1cnJpZWQtaGVhZGVycywgCisrIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1teXNxbC1idXJy aWVkLWhlYWRlcnNdLAorKwkJW2luY2x1ZGUgTXlTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJl Y3Rvcnkgc3RydWN0dXJlXSksCisrIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgor KwllbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCisrICAgZWxzZQorKwllbmFibGVfbXlz cWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsgZW5hYmxlX215c3FsX2J1cnJp ZWRfaGVhZGVycz1ubyBdKQorKyMgVGVtcG9yYXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5l cmF0aW9uCisrZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKKytBTV9DT05ESVRJT05B TChbU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF0sCisrICAgICAgICAgICAgICAgW3Rlc3QgIngk ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVzXSkKKytBQ19TVUJTVChTT0NJX01Z U1FMX0hFQURFUlNfQlVSSUVEKQorK2lmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVh ZGVycyIgPSB4eWVzOyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRCAkQ1BQRkxBR1MiCisrZmkKKysKKysjIENoZWNrIGZvciBidXJyaWVkIGhlYWRlciBmaWxl cyAoZm9yIFBvc3RHcmVTUUwgY2xpZW50KQorK0FDX0FSR19FTkFCTEUocG9zdGdyZXNxbC1idXJy aWVkLWhlYWRlcnMsIAorKyBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcG9zdGdyZXNxbC1idXJy aWVkLWhlYWRlcnNdLAorKwkJW2luY2x1ZGUgUG9zdEdyZVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBh IGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKKysgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0 aGVuCisrCWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz1ubworKyAgIGVsc2UKKysJ ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPXllcworKyAgIGZpIF0sCisrIFsgZW5h YmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzPW5vIF0pCisrIyBUZW1wb3JhcnksIGZvciB0 aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KKytlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hl YWRlcnM9eWVzCisrQU1fQ09ORElUSU9OQUwoW1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RF0sCisrICAgICAgICAgICAgICAgW3Rlc3QgIngkZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9o ZWFkZXJzIiA9IHh5ZXNdKQorK0FDX1NVQlNUKFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCkKKytpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycyIgPSB4eWVz OyB0aGVuCisrICAgQ1BQRkxBR1M9Ii1EU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEICRD UFBGTEFHUyIKKytmaQorKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjIEJvb3N0IChTVEwgRXh0ZW5zaW9uczogaHR0cDov L3d3dy5ib29zdC5vcmcpCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorK0FYX0JPT1NUKFsxLjMzXSkKKytBQ19TVUJTVChCT09TVF9W RVJTSU9OKQorK0FDX1NVQlNUKEJPT1NUX0NGTEFHUykKKytBQ19TVUJTVChCT09TVF9MSUJTKQor K0FDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpCisrQUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQikKKytBQ19TVUJTVChCT09TVF9GSUxFU1lTVEVNX0xJQikKKytBQ19TVUJTVChC T09TVF9USFJFQURfTElCKQorK0FDX1NVQlNUKEJPT1NUX1BZVEhPTl9MSUIpCisrCisrIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyMgU3VwcG9ydCBmb3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0 cDovL3d3dy5teXNxbC5vcmcKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShbYmFja2Vu ZC1teXNxbF0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5kLW15c3FsXSwK KysgICAgICAgIFtidWlsZC1pbiBNeVNRTCBiYWNrZW5kIHN1cHBvcnQgQDw6QGRlZmF1bHQ9bm9A Oj5AXQorKyAgICApLAorKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KKysg ICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCisrICAgICAgZWxzZQorKwkgZW5hYmxlX2Jh Y2tlbmRfbXlzcWw9eWVzCisrICAgICAgZmkgXSwKKysgICAgWyBlbmFibGVfYmFja2VuZF9teXNx bD1ubyBdCisrKQorKworK2lmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlzcWwiID0gInh5ZXMi OyB0aGVuCisrICAgTVlTUUxfRElSUz0ibXlzcWwiCisrIyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIz LjAuMCIKKysgICBBWF9NWVNRTAorK2ZpCisrQU1fQ09ORElUSU9OQUwoW0hBVkVfTVlTUUxdLCBb dGVzdCAieCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSB4eWVzXSkKKysjTVlTUUxfRElSUz0ibXlz cWwiCisrCisrQUNfU1VCU1QoW01ZU1FMX0RJUlNdKQorKworKworKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMg U3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytBQ19BUkdfRU5BQkxF KFtiYWNrZW5kLW9yYWNsZV0sCisrICAgIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1iYWNrZW5k LW9yYWNsZV0sCisrCQkgICBbYnVpbGQtaW4gT1JBQ0xFIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVm YXVsdD1ub0A6PkBdKSwKKysgICAgWyBpZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCisr ICAgICAgCSBlbmFibGVfYmFja2VuZF9vcmFjbGU9bm8KKysgICAgICBlbHNlCisrCSBlbmFibGVf YmFja2VuZF9vcmFjbGU9eWVzCisrICAgICAgZmkgXSwKKysgICAgWyBlbmFibGVfYmFja2VuZF9v cmFjbGU9bm8gXQorKykKKysKKytpZiB0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX29yYWNsZSIgPSAi eHllcyI7IHRoZW4KKysgICBPUkFDTEVfRElSUz0ib3JhY2xlIgorKyAgIE9SQUNMRV9PQ0lfUkVR X1ZFUlNJT049IjkuMCIKKysgICBBWF9MSUJfT1JBQ0xFX09DSSgkT1JBQ0xFX09DSV9SRVFfVkVS U0lPTikKKytmaQorK0FNX0NPTkRJVElPTkFMKFtIQVZFX09SQUNMRV0sIFt0ZXN0ICJ4JGVuYWJs ZV9iYWNrZW5kX29yYWNsZSIgPSB4eWVzXSkKKysjT1JBQ0xFX0RJUlM9Im9yYWNsZSIKKysKKytB Q19TVUJTVChbT1JBQ0xFX0RJUlNdKQorKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9ydCBmb3Ig UG9zdGdyZVNRTCBiYWNrZW5kCisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfQVJHX0VOQUJMRShbYmFja2Vu ZC1wb3N0Z3Jlc3FsXSwKKysgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtcG9z dGdyZXNxbF0sCisrICAgICAgICBbYnVpbGQtaW4gUG9zdGdyZVNRTCBiYWNrZW5kIHN1cHBvcnQg QDw6QGRlZmF1bHQ9bm9AOj5AXQorKyAgICApLAorKyAgICBbIGlmIHRlc3QgIiRlbmFibGV2YWwi ID0gbm87IHRoZW4KKysgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KKysgICAg ICBlbHNlCisrCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcworKyAgICAgIGZpIF0sCisr ICAgIFsgZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubyBdCisrKQorKworK2lmIHRlc3QgIngk ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KKysgICBQT1NUR1JFU1FM X0RJUlM9InBvc3RncmVzcWwiCisrICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0iNy4xLjQiCisr ICAgQVhfTElCX1BPU1RHUkVTUUwoJFBPU1RHUkVTUUxfUkVRX1ZFUlNJT04pCisrZmkKKytBTV9D T05ESVRJT05BTChbSEFWRV9QT1NUR1JFU1FMXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9z dGdyZXNxbCIgPSB4eWVzXSkKKysjUE9TVEdSRVNRTF9ESVJTPSJwb3N0Z3Jlc3FsIgorKworK0FD X1NVQlNUKFtQT1NUR1JFU1FMX0RJUlNdKQorKworKworKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgU3VwcG9y dCBmb3IgZG9jdW1lbnRhdGlvbgorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgQ2hlY2tzIGZvciBkb2N1bWVu dGF0aW9uIGJ1aWxkIHRvb2xzCisrI0FDX0NIRUNLX1BST0coW3RleGluZm9fb2tdLCBbdGV4aW5m b10sIFt5ZXNdLCBbbm9dKQorKyNpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgIT0geG5vOyB0 aGVuCisrIyAgdGVzdCAieCR0ZXhpbmZvX29rIiAhPSB4eWVzICYmIGVuYWJsZV9pbmZvX2RvYz1u bworKyMgIEFDX1BBVEhfUFJPRyhbUEVSTF0sIFtwZXJsXSwgW10pCisrI2ZpCisrQU1fQ09ORElU SU9OQUwoW0lORk9fRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiA9IHh5ZXNdKQorKwor KyMgQ2hlY2tzIGZvciBkb2N1bWVudGF0aW9uIGJ1aWxkIHRvb2xzCisrQUNfQ0hFQ0tfUFJPRyhb ZG94eWdlbl9va10sIFtkb3h5Z2VuXSwgW3llc10sIFtub10pCisrQUNfQ0hFQ0tfUFJPRyhbbGF0 ZXhfb2tdLCBbbGF0ZXhdLCBbeWVzXSwgW25vXSkKKytBQ19DSEVDS19QUk9HKFtkdmlwc19va10s IFtkdmlwc10sIFt5ZXNdLCBbbm9dKQorK0FDX0NIRUNLX1BST0coW2dzX29rXSwgW2dzXSwgW3ll c10sIFtub10pCisraWYgdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubzsgdGhlbgorKyAg dGVzdCAieCRkb3h5Z2VuX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgdGVz dCAieCRsYXRleF9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KKysgIHRlc3QgIngk ZHZpcHNfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCisrICB0ZXN0ICJ4JGdzX29r IiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubworKyAgQUNfUEFUSF9QUk9HKFtQRVJMXSwg W3BlcmxdLCBbXSkKKytmaQorK0FNX0NPTkRJVElPTkFMKFtIVE1MX0RPQ10sIFt0ZXN0ICJ4JGVu YWJsZV9odG1sX2RvYyIgPSB4eWVzXSkKKysKKysKKysjIENoZWNrIGZvciBkaWZmIHByb2dyYW0g dXNlZCBmb3IgdGVzdHMKKytBQ19DSEVDS19QUk9HKFtkaWZmX29rXSwgW2RpZmZdLCBbeWVzXSwg W25vXSkKKytBQ19DSEVDS19QUk9HKFtzZWRfb2tdLCBbc2VkXSwgW3llc10sIFtub10pCisrZW5h YmxlX3Rlc3RzPXllcworK3Rlc3QgIngkZGlmZl9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9 bm8KKyt0ZXN0ICJ4JHNlZF9vayIgIT0geHllcyAmJiBlbmFibGVfdGVzdHM9bm8KKytBTV9DT05E SVRJT05BTChbUlVOX1RFU1RTXSwgW3Rlc3QgIngkZW5hYmxlX3Rlc3RzIiA9IHh5ZXNdKQorKwor KworKyMgQ2hlY2tzIGZvciBoZWFkZXIgZmlsZXMKKytBQ19IRUFERVJfU1REQworK0FDX0hFQURF Ul9USU1FCisrQUNfQ0hFQ0tfSEVBREVSUyhbY21hdGggXAorKyAgZGVxdWUgXAorKyAgZnN0cmVh bSBcCisrICBpb21hbmlwIFwKKysgIGlvc3RyZWFtIFwKKysgIHNzdHJlYW0gXAorKyAgbGltaXRz IFwKKysgIGxpc3QgXAorKyAgc2V0IFwKKysgIHZlY3RvciBcCisrICBtYXAgXAorKyAgcXVldWUg XAorKyAgc3RkZXhjZXB0IFwKKysgIHN0cmluZ10pCisrCisrCisrIyBEZWZpbmUgY29uZmlndXJl ZCBmaWxlcworK0FDX0NPTkZJR19GSUxFUygKKysJTWFrZWZpbGUKKysJc29jaS1jb25maWcKKysJ c29jaS5wYworKwlzb2NpLnNwZWMKKysJc29jaS9NYWtlZmlsZQorKwlzb2NpL2NvcmUvTWFrZWZp bGUKKysJc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9NYWtlZmlsZQor Kwlzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlCisrCXNvY2kvYmFja2VuZHMvbXlzcWwvdGVz dC9NYWtlZmlsZQorKwlzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUKKysJc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUKKysJc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKwltYW4vTWFr ZWZpbGUKKysgICAgICAgIGRvYy9NYWtlZmlsZQorKyAgICAgICAgZG9jL2JhY2tlbmRzL01ha2Vm aWxlCisrCWJ1aWxkL01ha2VmaWxlCisrCWJ1aWxkL3VuaXgvTWFrZWZpbGUKKysJYnVpbGQvbXN2 YzgwL01ha2VmaWxlCisrCWJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKKysJYnVpbGQvbXN2Yzgw L2xpYi9NYWtlZmlsZSkKKysKKytBQ19PVVRQVVQKKysKKytlY2hvICIKKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyskUEFDS0FHRS0kVkVSU0lPTiBsaWJyYXJ5IGNvbmZpZ3VyYXRpb246CisrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrCisrRGlyZWN0b3JpZXM6CisrICAtIHByZWZpeCAuLi4uLi4u Li4uLi4uLi4gOiAke3ByZWZpeH0KKysgIC0gZXhlY19wcmVmaXggLi4uLi4uLi4uLiA6ICR7ZXhl Y19wcmVmaXh9CisrICAtIGluY2x1ZGVkaXIgLi4uLi4uLi4uLi4gOiAke2luY2x1ZGVkaXJ9Cisr ICAtIGxpYmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke2xpYmRpcn0KKysgIC0gZG9jZGlyIC4uLi4u Li4uLi4uLi4uLiA6ICR7ZG9jZGlyfQorKyAgLSBtYW5kaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtt YW5kaXJ9CisrICAtIGluZm9kaXIgLi4uLi4uLi4uLi4uLi4gOiAke2luZm9kaXJ9CisrCisrU3dp dGNoZXM6CisrICAtIGV4Y2VwdGlvbnMgLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9leGNlcHRpb25z fQorKyAgLSBpbmZvLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaW5mb19kb2N9CisrICAt IGh0bWwtZG9jIC4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9odG1sX2RvY30KKysgIC0gc2hhcmVk IC4uLi4uLi4uLi4uLi4uLiA6ICR7ZW5hYmxlX3NoYXJlZH0KKysgIC0gc3RhdGljIC4uLi4uLi4u Li4uLi4uLiA6ICR7ZW5hYmxlX3N0YXRpY30KKysKKytEb2N1bWVudGF0aW9uIHRvb2xzOgorKyAg LSB0ZXhpbmZvIC4uLi4uLi4uLi4uLi4uIDogJHt0ZXhpbmZvX29rfQorKyAgLSBkb3h5Z2VuIC4u Li4uLi4uLi4uLi4uIDogJHtkb3h5Z2VuX29rfQorKyAgLSBsYXRleCAuLi4uLi4uLi4uLi4uLi4u IDogJHtsYXRleF9va30KKysgIC0gZHZpcHMgLi4uLi4uLi4uLi4uLi4uLiA6ICR7ZHZpcHNfb2t9 CisrICAtIGdob3N0c2NyaXB0IC4uLi4uLi4uLi4gOiAke2dzX29rfQorKworK1Rlc3RpbmcgdG9v bHM6CisrICAtIGRpZmYgLi4uLi4uLi4uLi4uLi4uLi4gOiAke2RpZmZfb2t9CisrICAtIHNlZCAu Li4uLi4uLi4uLi4uLi4uLi4gOiAke3NlZF9va30KKysKKytDb21waWxlci9saW5rZXIgZmxhZ3Mv bGlicy9kZWZzOgorKyAgLSBDWFggLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtDWFh9CisrICAtIENY WEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NYWEZMQUdTfQorKyAgLSBDUFBGTEFHUyAuLi4uLi4u Li4uLi4uIDogJHtDUFBGTEFHU30KKysgIC0gTERGTEFHUyAuLi4uLi4uLi4uLi4uLiA6ICR7TERG TEFHU30KKysgIC0gTElCUyAuLi4uLi4uLi4uLi4uLi4uLiA6ICR7TElCU30KKysKKytCdXJyaWVk IGhlYWRlciBmaWxlczoKKysgIC0gU09DSV9IRUFERVJTX0JVUklFRCAuLi4uLi4uIDogJHtlbmFi bGVfYnVycmllZF9oZWFkZXJzfQorKyAgLSBNWVNRTF9IRUFERVJTX0JVUklFRCAuLi4uLi4gOiAk e2VuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnN9CisrICAtIFBPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQgLiA6ICR7ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzfQorKworK0V4dGVy bmFsIGxpYnJhcmllczoKKysgIC0gQm9vc3QgLi4uLi4uLi4uLi4uLi4uLiA6CisrICAgIG8gQk9P U1RfVkVSU0lPTiAuLi4uLi4gOiAke0JPT1NUX1ZFUlNJT059CisrICAgIG8gQk9PU1RfQ0ZMQUdT IC4uLi4uLi4gOiAke0JPT1NUX0NGTEFHU30KKysgICAgbyBCT09TVF9MSUJTIC4uLi4uLi4uLiA6 ICR7Qk9PU1RfTElCU30KKysgICAgbyBCT09TVF9EVF9MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfREFU RV9USU1FX0xJQn0KKysgICAgbyBCT09TVF9QT19MSUIgLi4uLi4uLiA6ICR7Qk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQn0KKysKKysgIC0gTXlTUUwgc3VwcG9ydCAuLi4uLi4uLiA6ICR7ZW5hYmxl X2JhY2tlbmRfbXlzcWx9CisrICAgIG8gTVlTUUxfVkVSU0lPTiAuLi4uLi4gOiAke01ZU1FMX1ZF UlNJT059CisrICAgIG8gTVlTUUxfQ0ZMQUdTIC4uLi4uLi4gOiAke01ZU1FMX0NGTEFHU30KKysg ICAgbyBNWVNRTF9MSUJTIC4uLi4uLi4uLiA6ICR7TVlTUUxfTElCU30KKysKKysgIC0gUG9zdEdy ZVNRTCBzdXBwb3J0IC4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbH0KKysgICAgbyBQ T1NUR1JFU1FMX1ZFUlNJT04gLiA6ICR7UE9TVEdSRVNRTF9WRVJTSU9OfQorKyAgICBvIFBPU1RH UkVTUUxfQ0ZMQUdTIC4uIDogJHtQT1NUR1JFU1FMX0NGTEFHU30KKysgICAgbyBQT1NUR1JFU1FM X0xERkxBR1MgLiA6ICR7UE9TVEdSRVNRTF9MREZMQUdTfSAKKysKKysgIC0gT3JhY2xlIHN1cHBv cnQgLi4uLi4uLiA6ICR7ZW5hYmxlX2JhY2tlbmRfb3JhY2xlfQorKyAgICBvIE9SQUNMRV9WRVJT SU9OIC4uLi4uIDogJHtPUkFDTEVfT0NJX1ZFUlNJT059CisrICAgIG8gT1JBQ0xFX0NGTEFHUyAu Li4uLi4gOiAke09SQUNMRV9PQ0lfQ0ZMQUdTfQorKyAgICBvIE9SQUNMRV9MREZMQUdTIC4uLi4u IDogJHtPUkFDTEVfT0NJX0xERkxBR1N9IAorKworKyAgLSBDUFBVbml0IC4uLi4uLi4uLi4uLi4u IDoKKysgICAgbyBDUFBVTklUX1ZFUlNJT04gLi4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9OfQorKyAg ICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDogJHtDUFBVTklUX0NGTEFHU30KKysgICAgbyBDUFBV TklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5JVF9MSUJTfQorKworKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorK05vdyB0eXBlICdtYWtlICYmIG1ha2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5kIGluc3Rh bGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeQorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyIK K2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9DT1BZSU5HIHNvY2ktMy4wLjBfdHJlcDMwMC9D T1BZSU5HCistLS0gc29jaS0zLjAuMF80LXBhY2svQ09QWUlORwkyMDEwLTAxLTIzIDE0OjQ1OjQ0 LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9DT1BZSU5HCTIwMDktMDQt MTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMjEsMyArMjEsNCBAQAorIEZPUiBBTlkg REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLAorIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FS RS4KKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUu YW0gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQorLS0tIHNvY2kt My4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFr ZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTo1MDozOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs MTYgQEAKKysjIyBkb2MvYmFja2VuZHMgc3ViLWRpcmVjdG9yeQorK2luY2x1ZGUgJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KKytpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCisrCisr IyMgU291cmNlIGRpcmVjdG9yeQorKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytTVUJESVJTID0KKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PSAkKGh0bWxfYmNrX3NvdXJjZXMpCisrI2ZpcmViaXJkLmh0bWwgaW5kZXguaHRtbCBteXNxbC5o dG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0bWwgc3FsaXRlMy5odG1sCisr CisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorKwor KyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2Jh Y2tlbmRzL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tlbmRzL01h a2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0z LjAuMF90cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUx LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MjkgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVy YXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVf aW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisrIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlz IE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB CisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisrCisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2Rp ckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0g JChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VA CisrcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwor K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9JTlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgor K1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxfVU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwg PSA6CisrUE9TVF9VTklOU1RBTEwgPSA6CisrYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0 X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkkKHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgorK3N1YmRpciA9IGRvYy9iYWNrZW5kcworK0FDTE9DQUxfTTQg PSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9t eXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwK KysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQo Q09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3Nv Y2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9G SUxFUyA9CisrU09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9 IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJl Y3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFs bC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwt cmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNp dmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hl Y2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMt cmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJl Y3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRT ID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVB Tl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGly CisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJ UlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5G T1MpICQoRVhUUkFfRElTVCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwK KysgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3Ms XlteL10qLyosLCc7IFwKKysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisr ICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGly MSI7IGRvIFwKKysgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0 ImA7IFwKKysgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0 ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIw IiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hv ICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysg ICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAor KyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAg ICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAg ICBlbHNlIFwKKysgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwK KysgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAg Zmk7IFwKKysgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBc CisrICBkb25lOyBcCisrICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisr QU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVU T0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBB V0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElC ID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1Rf RklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNf TElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NU X01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJA CisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElC QAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9M SUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NU X1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNf TElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJF QURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19M SUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBC T09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFM SVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxB R1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQ VU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5J VF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJ T04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAK KytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lH UEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAK KytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0g QEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAg PSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklD X0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdS RVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFA CisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9 IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJ UF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0g QExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0g QExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlO Rk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBN WVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9 IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9O ID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpE VU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFD TEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFD TEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lP TiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBP VE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNL QUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0Vf U1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RB Uk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFS QVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBH X0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NU R1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQ T1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVS U0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAor K1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisr U09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RH UkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAor K1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZF UlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19z cmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRk aXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNf Y3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0 X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90 ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIg PSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJA CisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRf Y3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3Ig PSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0 YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tA CisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGly ID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVj X3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9 IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9v c0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisr aW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxs X3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxp YmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRp ckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hP QAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVm aXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAor K3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29r QAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJA Cisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZM QUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisraHRtbF9iY2tfc291cmNl cyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNk aXIpL2RvYy9iYWNrZW5kcy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFj a2VuZHMvbXlzcWwuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29kYmMuaHRt bCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwKKysJJCh0b3Bf c3JjZGlyKS9kb2MvYmFja2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvc3FsaXRlMy5odG1sCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtl ZmlsZS5pbgorK1NVQkRJUlMgPSAKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PSAkKGh0bWxfYmNrX3NvdXJjZXMpCisrI2ZpcmViaXJkLmh0bWwgaW5kZXguaHRtbCBteXNxbC5o dG1sIG9kYmMuaHRtbCBvcmFjbGUuaHRtbCBwb3N0Z3Jlc3FsLmh0bWwgc3FsaXRlMy5odG1sCisr RVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKQorK2FsbDog YWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNk aXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBk byBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAq KSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBl eGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2Fj OyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkg LS1nbnUgZG9jL2JhY2tlbmRzL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgZG9jL2JhY2tlbmRzL01ha2VmaWxlCisrLlBS RUNJT1VTOiBNYWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5z dGF0dXMqKSBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VG TEFHUykgYW0tLXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJ ZXNhYzsKKysKKyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3Jj ZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000 KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToK KysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRv b2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGly ZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVt IGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMg VG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0 aW5nIE1ha2VmaWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcu c3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0 aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMg KDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21t YW5kIGxpbmUuCisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0 IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBc CisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMn OzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9 YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAk JHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAg ZG90X3NlZW49eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkg IGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkg ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90 YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3Qg IiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg IiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKysk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwK KysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAg ICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisr CSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBc CisrCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJE SVJTKScgOzsgXAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwly ZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJ ICBmaTsgXAorKwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRA IHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisr CSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsg XAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsg XAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRs b2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3Qg LXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9f Y2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUK KytjdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAk KEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09V UkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQg LWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxF UykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAt LWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGlu Y2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVs c2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwK KysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc CisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3Qg ISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0 aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlz dD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVu aXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVu IGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAor KwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAg RU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBc CisrCXNoaWZ0OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRo ZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2Zp eDsgXAorKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRB R1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIg JCR1bmlxdWU7IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChB TV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBm aTsgXAorKwlmaQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFE RVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK KysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkg IHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1Mp IFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3Bf YnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJ ICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6 CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlz dGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQo dG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSck KERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBl Y2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIg XAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJg OyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8g IiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtz LC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3Ig ZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0 IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVz dCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQg LWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmls ZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1w ZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBp ZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVu IFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1w ZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBj cCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxz ZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAg JCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwK KysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJf UCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBc CisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAg IGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFt X19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRp cjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRp dml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAi IChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRu ZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNo byAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9f c2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAm JiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlz dGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0 ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hl Y2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisr CSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFt CisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGly czogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5z dGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytp bnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFs bC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6 IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAor KwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxM X1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNo byAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKytt b3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdl bmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09O RklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9G SUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1h bmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0 ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwkt dGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNM RUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3Rj bGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1h bSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2 ZQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2h0bWwtYW06Cisr CisraW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1h bToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktcmVjdXJzaXZlCisrCisraW5zdGFsbC1k dmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1o dG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWluZm86IGlu c3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1t YW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwt cGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFs bC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFp bnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1j bGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3Rs eWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVhbi1hbTogbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZl CisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmlu c3RhbGwtYW06CisrCisrLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJT SVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJp cCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykg JChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNo ZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBcCisrCWN0YWdzIGN0YWdz LXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tbGli dG9vbCBkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBcCisrCWh0bWwtYW0g aW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgXAorKwlpbnN0YWxs LWRhdGEtYW0gaW5zdGFsbC1kdmkgaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIFwKKysJaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIFwK KysJaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFt IFwKKysJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNr IFwKKysJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIGluc3RhbGxkaXJzLWFtIG1haW50YWlu ZXItY2xlYW4gXAorKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1h bSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKKysJdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BT RVRfTUFLRUAKKysKKysjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tfc291cmNlcykKKysKKysjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9kb2MvYmFja2VuZHMvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL2JhY2tlbmRz L3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvc291cmNlcy5t awkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9kb2MvYmFja2VuZHMvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjQ3OjUzLjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSw3IEBACisraHRtbF9iY2tfc291cmNlcyA9ICQodG9wX3NyY2Rp cikvZG9jL2JhY2tlbmRzL2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5k cy9maXJlYmlyZC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvbXlzcWwuaHRt bCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL29kYmMuaHRtbCBcCisrCSQodG9wX3Ny Y2RpcikvZG9jL2JhY2tlbmRzL29yYWNsZS5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFj a2VuZHMvcG9zdGdyZXNxbC5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvc3Fs aXRlMy5odG1sCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9k b2MvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmFtCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAw MDAwMDAwICswMTAwCitAQCAtMCwwICsxLDggQEAKKytpbmNsdWRlICQodG9wX3NyY2RpcikvZG9j L3NvdXJjZXMubWsKKysKKytTVUJESVJTID0gYmFja2VuZHMKKysKKytFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNlcykgXAorKwkkKGNzc19sb2Nh bF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJB X0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9kb2MvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgorLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuaW4JMjAx MC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNjMyIEBACisrIyBN YWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0u CisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwg MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAor KyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5 IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMs IGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsg d2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAK KytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisr cGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChs aWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdF QAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIg JiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3Rh bGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQo aW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5z Zm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQ UkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoK KytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQg PSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2Mvc291cmNlcy5taworK3N1YmRpciA9IGRvYworK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9z aCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytD T05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrU09VUkNF UyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUg Y2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJl Y3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVjdXJzaXZl IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3Rh bGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1y ZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGlu c3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZlIHVuaW5z dGFsbC1yZWN1cnNpdmUKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJl Y3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFp bmVyLWNsZWFuLXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVf VEFSR0VUUzotcmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1 cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFn cworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKKythbV9fcmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0n cyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwK KysgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0n cywvKlteL10qJCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAg Zmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYg dGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9 ICIuLiI7IHRoZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRz ZWRfbGFzdCJgLyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2Vk IC1lICIkJHNlZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1g ZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVz dCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAi JCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAg ICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9 IiQkZGlyMCIvIiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGly MT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisr ICByZWxkaXI9IiQkZGlyMiIKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJA CisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRP SEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZM QUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVf VElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJA CisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJ QlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9P U1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JB TV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhP Tl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVH RVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05f TElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZ U1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NU X1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAor K0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisr Q0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAor K0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBA Q1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQ VU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9W RVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0g QENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BB VEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBE U1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hP X04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhF RVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lP TiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9 IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9H UkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQ VEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xE ID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElC UyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9 IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9A CisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisr TVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAor K01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJ T05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBA CisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFD TEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1Mg PSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJ X1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tB R0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAK KytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tB R0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FH RV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NF UEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NU R1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBA UE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxB R1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIg PSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisr U0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JV UklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQ QAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lP TkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3Ny Y2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9z cmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3Rf Q1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1f X2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5n X2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKyth bV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVp bGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2Nw dUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9y QAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9v dGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRv Y2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytk dmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19v ayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAor K2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRv ciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBp bmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxf c2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVj ZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRl ZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBt YW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVk ZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGly QAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRl ZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9 IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxk X3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRk aXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK2h0bWxfbG9jYWxfc291cmNlcyA9ICQo dG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNp Y3MuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKKysJJCh0b3Bfc3Jj ZGlyKS9kb2MvYm9vc3QuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwK KysJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L2luZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAorKwkk KHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9k b2MvcmF0aW9uYWxlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBc CisrCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCisrCSQodG9wX3NyY2Rpcikv ZG9jL3N0cnVjdHVyZS5odG1sCisrCisrY3NzX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIp L2RvYy9zdHlsZS5jc3MKKytpbWdfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0 cnVjdHVyZS5wbmcKKytTVUJESVJTID0gYmFja2VuZHMKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxfc291cmNlcykgXAorKwkkKGNzc19sb2NhbF9zb3Vy Y2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1Rf Rk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklY RVM6CisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9w X3NyY2RpcikvZG9jL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVw IGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAg ICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAk QDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwK KysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChB VVRPTUFLRSkgLS1nbnUgZG9jL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgZG9jL01ha2VmaWxlCisrLlBSRUNJT1VTOiBN YWtlZmlsZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIp L2NvbmZpZy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBc CisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21h eWJlKSc7IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysK KyskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUg JChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1f X2FjbG9jYWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKyttb3N0 bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYgKi5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1y bSAtcmYgLmxpYnMgX2xpYnMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMg YXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4g YG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdl IHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2Vm aWxlcywKKysjICgxKSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywg ZWRpdCBgY29uZmlnLnN0YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZp bGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVy d2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUu CisrJChSRUNVUlNJVkVfVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisr CWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAq PSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkg IGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAg fCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49 eWVzOyBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAor KwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19j ZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwK KysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3Nl ZW4iID0gIm5vIjsgdGhlbiBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0 LWFtIiB8fCBleGl0IDE7IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYg aW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0t WyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsg XAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlz dGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsg XAorKwkgICopIGxpc3Q9JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZv ciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIDo7IGVsc2UgXAorKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAor Kwlkb25lOyBcCisrCXJldj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMv LXJlY3Vyc2l2ZS8vYDsgXAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAi TWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 ICIuIjsgdGhlbiBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVs c2UgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJn ZXQpIFwKKysJICB8fCBldmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFp bCIKKyt0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1y ZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMp ICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChI RUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRs aXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVj aG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxl c1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5 KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVu aXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQ KQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWlu Y2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0 aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkg IGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwK KysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1 YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVy ZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0 OyBcCisrCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxz ZSBcCisrCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkg IGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7 IFwKKysJICBlbHNlIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlm aQorK2N0YWdzOiBDVEFHUworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNP VVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkK KysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBc CisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGki OyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25l IHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJ ICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsg fSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RB R1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAg ICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIp ICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFn cyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAt ZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChE SVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rp cikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxF UyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmls ZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAg ICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNh c2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9m aWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQk LCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAk JGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmls ZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQv JCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1te L10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4g XAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAg LWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1k ICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAg ICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsg XAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAg LWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQk ZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAg ICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmls ZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisr CWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRl c3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlz dGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUK KysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRz dWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2 aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJk aXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwK KysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rp c3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBh bV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2Rl X2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAg ICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRu ZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisr CQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisr CQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8 IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6 IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUKKytpbnN0YWxsZGlyczogaW5zdGFs bGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFsbDogaW5zdGFsbC1yZWN1 cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRh dGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNp dmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGlu c3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxj aGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3Rh bGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZM QUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFM TF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVh bi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6Cisr CS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFO X0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xF QU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysK KyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50 ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMg dGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorK2NsZWFuOiBjbGVh bi1yZWN1cnNpdmUKKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1v c3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAt ZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlz dGNsZWFuLXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRt bDogaHRtbC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tcmVjdXJzaXZl CisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06CisrCisraW5zdGFsbC1kdmk6IGlu c3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhl Yy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCisr CisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5zdGFsbGNo ZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl CisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVj dXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytwczog cHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKworKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysu UEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENU QUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYnRvb2wgXAorKwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRp c3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCisrCWluc3RhbGwtcHMgaW5zdGFs bC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCisrCWluc3RhbGxjaGVjay1hbSBp bnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0 bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBc CisrCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KKysKKysKKysjIFRlbGwgdmVyc2lvbnMgWzMuNTks My42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3 aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgor Ky5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tayBz b2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9k b2Mvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9kb2Mvc291cmNlcy5tawkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAw MDAwMCArMDEwMAorQEAgLTAsMCArMSwxOCBAQAorK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9w X3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3Mu aHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2JleW9uZC5odG1sIFwKKysJJCh0b3Bfc3JjZGly KS9kb2MvYm9vc3QuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKKysJ JCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2UuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9jL2lu ZGV4Lmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAorKwkkKHRv cF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGluZy5odG1sIFwKKysJJCh0b3Bfc3JjZGlyKS9kb2Mv cmF0aW9uYWxlLmh0bWwgXAorKwkkKHRvcF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCisr CSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVudHMuaHRtbCBcCisrCSQodG9wX3NyY2RpcikvZG9j L3N0cnVjdHVyZS5odG1sCisrCisrY3NzX2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2Rv Yy9zdHlsZS5jc3MKKysKKytpbWdfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0 cnVjdHVyZS5wbmcKKysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9JTlNUQUxMIHNvY2kt My4wLjBfdHJlcDMwMC9JTlNUQUxMCistLS0gc29jaS0zLjAuMF80LXBhY2svSU5TVEFMTAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9J TlNUQUxMCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDM2 NSBAQAorK0luc3RhbGxhdGlvbiBJbnN0cnVjdGlvbnMKKysqKioqKioqKioqKioqKioqKioqKioq KioqCisrCisrQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLCAyMDA0LCAyMDA1LAorKzIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRo aXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKythcmUgcGVybWl0dGVkIGlu IGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKKytub3Rp Y2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgb2ZmZXJlZCBh cy1pcywKKyt3aXRob3V0IHdhcnJhbnR5IG9mIGFueSBraW5kLgorKworK0Jhc2ljIEluc3RhbGxh dGlvbgorKz09PT09PT09PT09PT09PT09PQorKworKyAgIEJyaWVmbHksIHRoZSBzaGVsbCBjb21t YW5kcyBgLi9jb25maWd1cmU7IG1ha2U7IG1ha2UgaW5zdGFsbCcgc2hvdWxkCisrY29uZmlndXJl LCBidWlsZCwgYW5kIGluc3RhbGwgdGhpcyBwYWNrYWdlLiAgVGhlIGZvbGxvd2luZworK21vcmUt ZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmljOyBzZWUgdGhlIGBSRUFETUUnIGZpbGUg Zm9yCisraW5zdHJ1Y3Rpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZS4gIFNvbWUgcGFja2Fn ZXMgcHJvdmlkZSB0aGlzCisrYElOU1RBTEwnIGZpbGUgYnV0IGRvIG5vdCBpbXBsZW1lbnQgYWxs IG9mIHRoZSBmZWF0dXJlcyBkb2N1bWVudGVkCisrYmVsb3cuICBUaGUgbGFjayBvZiBhbiBvcHRp b25hbCBmZWF0dXJlIGluIGEgZ2l2ZW4gcGFja2FnZSBpcyBub3QKKytuZWNlc3NhcmlseSBhIGJ1 Zy4gIE1vcmUgcmVjb21tZW5kYXRpb25zIGZvciBHTlUgcGFja2FnZXMgY2FuIGJlIGZvdW5kCisr aW4gKm5vdGUgTWFrZWZpbGUgQ29udmVudGlvbnM6IChzdGFuZGFyZHMpTWFrZWZpbGUgQ29udmVu dGlvbnMuCisrCisrICAgVGhlIGBjb25maWd1cmUnIHNoZWxsIHNjcmlwdCBhdHRlbXB0cyB0byBn dWVzcyBjb3JyZWN0IHZhbHVlcyBmb3IKKyt2YXJpb3VzIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFi bGVzIHVzZWQgZHVyaW5nIGNvbXBpbGF0aW9uLiAgSXQgdXNlcworK3Rob3NlIHZhbHVlcyB0byBj cmVhdGUgYSBgTWFrZWZpbGUnIGluIGVhY2ggZGlyZWN0b3J5IG9mIHRoZSBwYWNrYWdlLgorK0l0 IG1heSBhbHNvIGNyZWF0ZSBvbmUgb3IgbW9yZSBgLmgnIGZpbGVzIGNvbnRhaW5pbmcgc3lzdGVt LWRlcGVuZGVudAorK2RlZmluaXRpb25zLiAgRmluYWxseSwgaXQgY3JlYXRlcyBhIHNoZWxsIHNj cmlwdCBgY29uZmlnLnN0YXR1cycgdGhhdAorK3lvdSBjYW4gcnVuIGluIHRoZSBmdXR1cmUgdG8g cmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiwgYW5kIGEKKytmaWxlIGBjb25maWcu bG9nJyBjb250YWluaW5nIGNvbXBpbGVyIG91dHB1dCAodXNlZnVsIG1haW5seSBmb3IKKytkZWJ1 Z2dpbmcgYGNvbmZpZ3VyZScpLgorKworKyAgIEl0IGNhbiBhbHNvIHVzZSBhbiBvcHRpb25hbCBm aWxlICh0eXBpY2FsbHkgY2FsbGVkIGBjb25maWcuY2FjaGUnCisrYW5kIGVuYWJsZWQgd2l0aCBg LS1jYWNoZS1maWxlPWNvbmZpZy5jYWNoZScgb3Igc2ltcGx5IGAtQycpIHRoYXQgc2F2ZXMKKyt0 aGUgcmVzdWx0cyBvZiBpdHMgdGVzdHMgdG8gc3BlZWQgdXAgcmVjb25maWd1cmluZy4gIENhY2hp bmcgaXMKKytkaXNhYmxlZCBieSBkZWZhdWx0IHRvIHByZXZlbnQgcHJvYmxlbXMgd2l0aCBhY2Np ZGVudGFsIHVzZSBvZiBzdGFsZQorK2NhY2hlIGZpbGVzLgorKworKyAgIElmIHlvdSBuZWVkIHRv IGRvIHVudXN1YWwgdGhpbmdzIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UsIHBsZWFzZSB0cnkKKyt0 byBmaWd1cmUgb3V0IGhvdyBgY29uZmlndXJlJyBjb3VsZCBjaGVjayB3aGV0aGVyIHRvIGRvIHRo ZW0sIGFuZCBtYWlsCisrZGlmZnMgb3IgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBhZGRyZXNzIGdpdmVu IGluIHRoZSBgUkVBRE1FJyBzbyB0aGV5IGNhbgorK2JlIGNvbnNpZGVyZWQgZm9yIHRoZSBuZXh0 IHJlbGVhc2UuICBJZiB5b3UgYXJlIHVzaW5nIHRoZSBjYWNoZSwgYW5kIGF0Cisrc29tZSBwb2lu dCBgY29uZmlnLmNhY2hlJyBjb250YWlucyByZXN1bHRzIHlvdSBkb24ndCB3YW50IHRvIGtlZXAs IHlvdQorK21heSByZW1vdmUgb3IgZWRpdCBpdC4KKysKKysgICBUaGUgZmlsZSBgY29uZmlndXJl LmFjJyAob3IgYGNvbmZpZ3VyZS5pbicpIGlzIHVzZWQgdG8gY3JlYXRlCisrYGNvbmZpZ3VyZScg YnkgYSBwcm9ncmFtIGNhbGxlZCBgYXV0b2NvbmYnLiAgWW91IG5lZWQgYGNvbmZpZ3VyZS5hYycg aWYKKyt5b3Ugd2FudCB0byBjaGFuZ2UgaXQgb3IgcmVnZW5lcmF0ZSBgY29uZmlndXJlJyB1c2lu ZyBhIG5ld2VyIHZlcnNpb24KKytvZiBgYXV0b2NvbmYnLgorKworKyAgIFRoZSBzaW1wbGVzdCB3 YXkgdG8gY29tcGlsZSB0aGlzIHBhY2thZ2UgaXM6CisrCisrICAxLiBgY2QnIHRvIHRoZSBkaXJl Y3RvcnkgY29udGFpbmluZyB0aGUgcGFja2FnZSdzIHNvdXJjZSBjb2RlIGFuZCB0eXBlCisrICAg ICBgLi9jb25maWd1cmUnIHRvIGNvbmZpZ3VyZSB0aGUgcGFja2FnZSBmb3IgeW91ciBzeXN0ZW0u CisrCisrICAgICBSdW5uaW5nIGBjb25maWd1cmUnIG1pZ2h0IHRha2UgYSB3aGlsZS4gIFdoaWxl IHJ1bm5pbmcsIGl0IHByaW50cworKyAgICAgc29tZSBtZXNzYWdlcyB0ZWxsaW5nIHdoaWNoIGZl YXR1cmVzIGl0IGlzIGNoZWNraW5nIGZvci4KKysKKysgIDIuIFR5cGUgYG1ha2UnIHRvIGNvbXBp bGUgdGhlIHBhY2thZ2UuCisrCisrICAzLiBPcHRpb25hbGx5LCB0eXBlIGBtYWtlIGNoZWNrJyB0 byBydW4gYW55IHNlbGYtdGVzdHMgdGhhdCBjb21lIHdpdGgKKysgICAgIHRoZSBwYWNrYWdlLCBn ZW5lcmFsbHkgdXNpbmcgdGhlIGp1c3QtYnVpbHQgdW5pbnN0YWxsZWQgYmluYXJpZXMuCisrCisr ICA0LiBUeXBlIGBtYWtlIGluc3RhbGwnIHRvIGluc3RhbGwgdGhlIHByb2dyYW1zIGFuZCBhbnkg ZGF0YSBmaWxlcyBhbmQKKysgICAgIGRvY3VtZW50YXRpb24uICBXaGVuIGluc3RhbGxpbmcgaW50 byBhIHByZWZpeCBvd25lZCBieSByb290LCBpdCBpcworKyAgICAgcmVjb21tZW5kZWQgdGhhdCB0 aGUgcGFja2FnZSBiZSBjb25maWd1cmVkIGFuZCBidWlsdCBhcyBhIHJlZ3VsYXIKKysgICAgIHVz ZXIsIGFuZCBvbmx5IHRoZSBgbWFrZSBpbnN0YWxsJyBwaGFzZSBleGVjdXRlZCB3aXRoIHJvb3QK KysgICAgIHByaXZpbGVnZXMuCisrCisrICA1LiBPcHRpb25hbGx5LCB0eXBlIGBtYWtlIGluc3Rh bGxjaGVjaycgdG8gcmVwZWF0IGFueSBzZWxmLXRlc3RzLCBidXQKKysgICAgIHRoaXMgdGltZSB1 c2luZyB0aGUgYmluYXJpZXMgaW4gdGhlaXIgZmluYWwgaW5zdGFsbGVkIGxvY2F0aW9uLgorKyAg ICAgVGhpcyB0YXJnZXQgZG9lcyBub3QgaW5zdGFsbCBhbnl0aGluZy4gIFJ1bm5pbmcgdGhpcyB0 YXJnZXQgYXMgYQorKyAgICAgcmVndWxhciB1c2VyLCBwYXJ0aWN1bGFybHkgaWYgdGhlIHByaW9y IGBtYWtlIGluc3RhbGwnIHJlcXVpcmVkCisrICAgICByb290IHByaXZpbGVnZXMsIHZlcmlmaWVz IHRoYXQgdGhlIGluc3RhbGxhdGlvbiBjb21wbGV0ZWQKKysgICAgIGNvcnJlY3RseS4KKysKKysg IDYuIFlvdSBjYW4gcmVtb3ZlIHRoZSBwcm9ncmFtIGJpbmFyaWVzIGFuZCBvYmplY3QgZmlsZXMg ZnJvbSB0aGUKKysgICAgIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSBieSB0eXBpbmcgYG1ha2UgY2xl YW4nLiAgVG8gYWxzbyByZW1vdmUgdGhlCisrICAgICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNy ZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IKKysgICAgIGEgZGlmZmVy ZW50IGtpbmQgb2YgY29tcHV0ZXIpLCB0eXBlIGBtYWtlIGRpc3RjbGVhbicuICBUaGVyZSBpcwor KyAgICAgYWxzbyBhIGBtYWtlIG1haW50YWluZXItY2xlYW4nIHRhcmdldCwgYnV0IHRoYXQgaXMg aW50ZW5kZWQgbWFpbmx5CisrICAgICBmb3IgdGhlIHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYg eW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAorKyAgICAgYWxsIHNvcnRzIG9mIG90aGVy IHByb2dyYW1zIGluIG9yZGVyIHRvIHJlZ2VuZXJhdGUgZmlsZXMgdGhhdCBjYW1lCisrICAgICB3 aXRoIHRoZSBkaXN0cmlidXRpb24uCisrCisrICA3LiBPZnRlbiwgeW91IGNhbiBhbHNvIHR5cGUg YG1ha2UgdW5pbnN0YWxsJyB0byByZW1vdmUgdGhlIGluc3RhbGxlZAorKyAgICAgZmlsZXMgYWdh aW4uICBJbiBwcmFjdGljZSwgbm90IGFsbCBwYWNrYWdlcyBoYXZlIHRlc3RlZCB0aGF0CisrICAg ICB1bmluc3RhbGxhdGlvbiB3b3JrcyBjb3JyZWN0bHksIGV2ZW4gdGhvdWdoIGl0IGlzIHJlcXVp cmVkIGJ5IHRoZQorKyAgICAgR05VIENvZGluZyBTdGFuZGFyZHMuCisrCisrICA4LiBTb21lIHBh Y2thZ2VzLCBwYXJ0aWN1bGFybHkgdGhvc2UgdGhhdCB1c2UgQXV0b21ha2UsIHByb3ZpZGUgYG1h a2UKKysgICAgIGRpc3RjaGVjaycsIHdoaWNoIGNhbiBieSB1c2VkIGJ5IGRldmVsb3BlcnMgdG8g dGVzdCB0aGF0IGFsbCBvdGhlcgorKyAgICAgdGFyZ2V0cyBsaWtlIGBtYWtlIGluc3RhbGwnIGFu ZCBgbWFrZSB1bmluc3RhbGwnIHdvcmsgY29ycmVjdGx5LgorKyAgICAgVGhpcyB0YXJnZXQgaXMg Z2VuZXJhbGx5IG5vdCBydW4gYnkgZW5kIHVzZXJzLgorKworK0NvbXBpbGVycyBhbmQgT3B0aW9u cworKz09PT09PT09PT09PT09PT09PT09PQorKworKyAgIFNvbWUgc3lzdGVtcyByZXF1aXJlIHVu dXN1YWwgb3B0aW9ucyBmb3IgY29tcGlsYXRpb24gb3IgbGlua2luZyB0aGF0CisrdGhlIGBjb25m aWd1cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgUnVuIGAuL2NvbmZpZ3VyZSAtLWhl bHAnCisrZm9yIGRldGFpbHMgb24gc29tZSBvZiB0aGUgcGVydGluZW50IGVudmlyb25tZW50IHZh cmlhYmxlcy4KKysKKysgICBZb3UgY2FuIGdpdmUgYGNvbmZpZ3VyZScgaW5pdGlhbCB2YWx1ZXMg Zm9yIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycworK2J5IHNldHRpbmcgdmFyaWFibGVzIGluIHRo ZSBjb21tYW5kIGxpbmUgb3IgaW4gdGhlIGVudmlyb25tZW50LiAgSGVyZQorK2lzIGFuIGV4YW1w bGU6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz1jOTkgQ0ZMQUdTPS1nIExJQlM9LWxwb3NpeAor KworKyAgICpOb3RlIERlZmluaW5nIFZhcmlhYmxlczo6LCBmb3IgbW9yZSBkZXRhaWxzLgorKwor K0NvbXBpbGluZyBGb3IgTXVsdGlwbGUgQXJjaGl0ZWN0dXJlcworKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKworKyAgIFlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBm b3IgbW9yZSB0aGFuIG9uZSBraW5kIG9mIGNvbXB1dGVyIGF0IHRoZQorK3NhbWUgdGltZSwgYnkg cGxhY2luZyB0aGUgb2JqZWN0IGZpbGVzIGZvciBlYWNoIGFyY2hpdGVjdHVyZSBpbiB0aGVpcgor K293biBkaXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgY2FuIHVzZSBHTlUgYG1ha2UnLiAgYGNk JyB0byB0aGUKKytkaXJlY3Rvcnkgd2hlcmUgeW91IHdhbnQgdGhlIG9iamVjdCBmaWxlcyBhbmQg ZXhlY3V0YWJsZXMgdG8gZ28gYW5kIHJ1bgorK3RoZSBgY29uZmlndXJlJyBzY3JpcHQuICBgY29u ZmlndXJlJyBhdXRvbWF0aWNhbGx5IGNoZWNrcyBmb3IgdGhlCisrc291cmNlIGNvZGUgaW4gdGhl IGRpcmVjdG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLiAgVGhpcworK2lz IGtub3duIGFzIGEgIlZQQVRIIiBidWlsZC4KKysKKysgICBXaXRoIGEgbm9uLUdOVSBgbWFrZScs IGl0IGlzIHNhZmVyIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG9uZQorK2FyY2hpdGVjdHVy ZSBhdCBhIHRpbWUgaW4gdGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9yeS4gIEFmdGVyIHlvdSBoYXZl CisraW5zdGFsbGVkIHRoZSBwYWNrYWdlIGZvciBvbmUgYXJjaGl0ZWN0dXJlLCB1c2UgYG1ha2Ug ZGlzdGNsZWFuJyBiZWZvcmUKKytyZWNvbmZpZ3VyaW5nIGZvciBhbm90aGVyIGFyY2hpdGVjdHVy ZS4KKysKKysgICBPbiBNYWNPUyBYIDEwLjUgYW5kIGxhdGVyIHN5c3RlbXMsIHlvdSBjYW4gY3Jl YXRlIGxpYnJhcmllcyBhbmQKKytleGVjdXRhYmxlcyB0aGF0IHdvcmsgb24gbXVsdGlwbGUgc3lz dGVtIHR5cGVzLS1rbm93biBhcyAiZmF0IiBvcgorKyJ1bml2ZXJzYWwiIGJpbmFyaWVzLS1ieSBz cGVjaWZ5aW5nIG11bHRpcGxlIGAtYXJjaCcgb3B0aW9ucyB0byB0aGUKKytjb21waWxlciBidXQg b25seSBhIHNpbmdsZSBgLWFyY2gnIG9wdGlvbiB0byB0aGUgcHJlcHJvY2Vzc29yLiAgTGlrZQor K3RoaXM6CisrCisrICAgICAuL2NvbmZpZ3VyZSBDQz0iZ2NjIC1hcmNoIGkzODYgLWFyY2ggeDg2 XzY0IC1hcmNoIHBwYyAtYXJjaCBwcGM2NCIgXAorKyAgICAgICAgICAgICAgICAgQ1hYPSJnKysg LWFyY2ggaTM4NiAtYXJjaCB4ODZfNjQgLWFyY2ggcHBjIC1hcmNoIHBwYzY0IiBcCisrICAgICAg ICAgICAgICAgICBDUFA9ImdjYyAtRSIgQ1hYQ1BQPSJnKysgLUUiCisrCisrICAgVGhpcyBpcyBu b3QgZ3VhcmFudGVlZCB0byBwcm9kdWNlIHdvcmtpbmcgb3V0cHV0IGluIGFsbCBjYXNlcywgeW91 CisrbWF5IGhhdmUgdG8gYnVpbGQgb25lIGFyY2hpdGVjdHVyZSBhdCBhIHRpbWUgYW5kIGNvbWJp bmUgdGhlIHJlc3VsdHMKKyt1c2luZyB0aGUgYGxpcG8nIHRvb2wgaWYgeW91IGhhdmUgcHJvYmxl bXMuCisrCisrSW5zdGFsbGF0aW9uIE5hbWVzCisrPT09PT09PT09PT09PT09PT09CisrCisrICAg QnkgZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgaW5zdGFsbHMgdGhlIHBhY2thZ2UncyBjb21tYW5k cyB1bmRlcgorK2AvdXNyL2xvY2FsL2JpbicsIGluY2x1ZGUgZmlsZXMgdW5kZXIgYC91c3IvbG9j YWwvaW5jbHVkZScsIGV0Yy4gIFlvdQorK2NhbiBzcGVjaWZ5IGFuIGluc3RhbGxhdGlvbiBwcmVm aXggb3RoZXIgdGhhbiBgL3Vzci9sb2NhbCcgYnkgZ2l2aW5nCisrYGNvbmZpZ3VyZScgdGhlIG9w dGlvbiBgLS1wcmVmaXg9UFJFRklYJywgd2hlcmUgUFJFRklYIG11c3QgYmUgYW4KKythYnNvbHV0 ZSBmaWxlIG5hbWUuCisrCisrICAgWW91IGNhbiBzcGVjaWZ5IHNlcGFyYXRlIGluc3RhbGxhdGlv biBwcmVmaXhlcyBmb3IKKythcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmlsZXMgYW5kIGFyY2hpdGVj dHVyZS1pbmRlcGVuZGVudCBmaWxlcy4gIElmIHlvdQorK3Bhc3MgdGhlIG9wdGlvbiBgLS1leGVj LXByZWZpeD1QUkVGSVgnIHRvIGBjb25maWd1cmUnLCB0aGUgcGFja2FnZSB1c2VzCisrUFJFRklY IGFzIHRoZSBwcmVmaXggZm9yIGluc3RhbGxpbmcgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcy4KKytE b2N1bWVudGF0aW9uIGFuZCBvdGhlciBkYXRhIGZpbGVzIHN0aWxsIHVzZSB0aGUgcmVndWxhciBw cmVmaXguCisrCisrICAgSW4gYWRkaXRpb24sIGlmIHlvdSB1c2UgYW4gdW51c3VhbCBkaXJlY3Rv cnkgbGF5b3V0IHlvdSBjYW4gZ2l2ZQorK29wdGlvbnMgbGlrZSBgLS1iaW5kaXI9RElSJyB0byBz cGVjaWZ5IGRpZmZlcmVudCB2YWx1ZXMgZm9yIHBhcnRpY3VsYXIKKytraW5kcyBvZiBmaWxlcy4g IFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKKyt5 b3UgY2FuIHNldCBhbmQgd2hhdCBraW5kcyBvZiBmaWxlcyBnbyBpbiB0aGVtLiAgSW4gZ2VuZXJh bCwgdGhlCisrZGVmYXVsdCBmb3IgdGhlc2Ugb3B0aW9ucyBpcyBleHByZXNzZWQgaW4gdGVybXMg b2YgYCR7cHJlZml4fScsIHNvIHRoYXQKKytzcGVjaWZ5aW5nIGp1c3QgYC0tcHJlZml4JyB3aWxs IGFmZmVjdCBhbGwgb2YgdGhlIG90aGVyIGRpcmVjdG9yeQorK3NwZWNpZmljYXRpb25zIHRoYXQg d2VyZSBub3QgZXhwbGljaXRseSBwcm92aWRlZC4KKysKKysgICBUaGUgbW9zdCBwb3J0YWJsZSB3 YXkgdG8gYWZmZWN0IGluc3RhbGxhdGlvbiBsb2NhdGlvbnMgaXMgdG8gcGFzcyB0aGUKKytjb3Jy ZWN0IGxvY2F0aW9ucyB0byBgY29uZmlndXJlJzsgaG93ZXZlciwgbWFueSBwYWNrYWdlcyBwcm92 aWRlIG9uZSBvcgorK2JvdGggb2YgdGhlIGZvbGxvd2luZyBzaG9ydGN1dHMgb2YgcGFzc2luZyB2 YXJpYWJsZSBhc3NpZ25tZW50cyB0byB0aGUKKytgbWFrZSBpbnN0YWxsJyBjb21tYW5kIGxpbmUg dG8gY2hhbmdlIGluc3RhbGxhdGlvbiBsb2NhdGlvbnMgd2l0aG91dAorK2hhdmluZyB0byByZWNv bmZpZ3VyZSBvciByZWNvbXBpbGUuCisrCisrICAgVGhlIGZpcnN0IG1ldGhvZCBpbnZvbHZlcyBw cm92aWRpbmcgYW4gb3ZlcnJpZGUgdmFyaWFibGUgZm9yIGVhY2gKKythZmZlY3RlZCBkaXJlY3Rv cnkuICBGb3IgZXhhbXBsZSwgYG1ha2UgaW5zdGFsbAorK3ByZWZpeD0vYWx0ZXJuYXRlL2RpcmVj dG9yeScgd2lsbCBjaG9vc2UgYW4gYWx0ZXJuYXRlIGxvY2F0aW9uIGZvciBhbGwKKytkaXJlY3Rv cnkgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGV4cHJlc3NlZCBpbiB0ZXJtcyBv ZgorK2Ake3ByZWZpeH0nLiAgQW55IGRpcmVjdG9yaWVzIHRoYXQgd2VyZSBzcGVjaWZpZWQgZHVy aW5nIGBjb25maWd1cmUnLAorK2J1dCBub3QgaW4gdGVybXMgb2YgYCR7cHJlZml4fScsIG11c3Qg ZWFjaCBiZSBvdmVycmlkZGVuIGF0IGluc3RhbGwKKyt0aW1lIGZvciB0aGUgZW50aXJlIGluc3Rh bGxhdGlvbiB0byBiZSByZWxvY2F0ZWQuICBUaGUgYXBwcm9hY2ggb2YKKyttYWtlZmlsZSB2YXJp YWJsZSBvdmVycmlkZXMgZm9yIGVhY2ggZGlyZWN0b3J5IHZhcmlhYmxlIGlzIHJlcXVpcmVkIGJ5 CisrdGhlIEdOVSBDb2RpbmcgU3RhbmRhcmRzLCBhbmQgaWRlYWxseSBjYXVzZXMgbm8gcmVjb21w aWxhdGlvbi4KKytIb3dldmVyLCBzb21lIHBsYXRmb3JtcyBoYXZlIGtub3duIGxpbWl0YXRpb25z IHdpdGggdGhlIHNlbWFudGljcyBvZgorK3NoYXJlZCBsaWJyYXJpZXMgdGhhdCBlbmQgdXAgcmVx dWlyaW5nIHJlY29tcGlsYXRpb24gd2hlbiB1c2luZyB0aGlzCisrbWV0aG9kLCBwYXJ0aWN1bGFy bHkgbm90aWNlYWJsZSBpbiBwYWNrYWdlcyB0aGF0IHVzZSBHTlUgTGlidG9vbC4KKysKKysgICBU aGUgc2Vjb25kIG1ldGhvZCBpbnZvbHZlcyBwcm92aWRpbmcgdGhlIGBERVNURElSJyB2YXJpYWJs ZS4gIEZvcgorK2V4YW1wbGUsIGBtYWtlIGluc3RhbGwgREVTVERJUj0vYWx0ZXJuYXRlL2RpcmVj dG9yeScgd2lsbCBwcmVwZW5kCisrYC9hbHRlcm5hdGUvZGlyZWN0b3J5JyBiZWZvcmUgYWxsIGlu c3RhbGxhdGlvbiBuYW1lcy4gIFRoZSBhcHByb2FjaCBvZgorK2BERVNURElSJyBvdmVycmlkZXMg aXMgbm90IHJlcXVpcmVkIGJ5IHRoZSBHTlUgQ29kaW5nIFN0YW5kYXJkcywgYW5kCisrZG9lcyBu b3Qgd29yayBvbiBwbGF0Zm9ybXMgdGhhdCBoYXZlIGRyaXZlIGxldHRlcnMuICBPbiB0aGUgb3Ro ZXIgaGFuZCwKKytpdCBkb2VzIGJldHRlciBhdCBhdm9pZGluZyByZWNvbXBpbGF0aW9uIGlzc3Vl cywgYW5kIHdvcmtzIHdlbGwgZXZlbgorK3doZW4gc29tZSBkaXJlY3Rvcnkgb3B0aW9ucyB3ZXJl IG5vdCBzcGVjaWZpZWQgaW4gdGVybXMgb2YgYCR7cHJlZml4fScKKythdCBgY29uZmlndXJlJyB0 aW1lLgorKworK09wdGlvbmFsIEZlYXR1cmVzCisrPT09PT09PT09PT09PT09PT0KKysKKysgICBJ ZiB0aGUgcGFja2FnZSBzdXBwb3J0cyBpdCwgeW91IGNhbiBjYXVzZSBwcm9ncmFtcyB0byBiZSBp bnN0YWxsZWQKKyt3aXRoIGFuIGV4dHJhIHByZWZpeCBvciBzdWZmaXggb24gdGhlaXIgbmFtZXMg YnkgZ2l2aW5nIGBjb25maWd1cmUnIHRoZQorK29wdGlvbiBgLS1wcm9ncmFtLXByZWZpeD1QUkVG SVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCisrCisrICAgU29tZSBwYWNrYWdlcyBw YXkgYXR0ZW50aW9uIHRvIGAtLWVuYWJsZS1GRUFUVVJFJyBvcHRpb25zIHRvCisrYGNvbmZpZ3Vy ZScsIHdoZXJlIEZFQVRVUkUgaW5kaWNhdGVzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHBhY2th Z2UuCisrVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScgb3B0 aW9ucywgd2hlcmUgUEFDS0FHRQorK2lzIHNvbWV0aGluZyBsaWtlIGBnbnUtYXMnIG9yIGB4JyAo Zm9yIHRoZSBYIFdpbmRvdyBTeXN0ZW0pLiAgVGhlCisrYFJFQURNRScgc2hvdWxkIG1lbnRpb24g YW55IGAtLWVuYWJsZS0nIGFuZCBgLS13aXRoLScgb3B0aW9ucyB0aGF0IHRoZQorK3BhY2thZ2Ug cmVjb2duaXplcy4KKysKKysgICBGb3IgcGFja2FnZXMgdGhhdCB1c2UgdGhlIFggV2luZG93IFN5 c3RlbSwgYGNvbmZpZ3VyZScgY2FuIHVzdWFsbHkKKytmaW5kIHRoZSBYIGluY2x1ZGUgYW5kIGxp YnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNuJ3QsCisreW91IGNhbiB1 c2UgdGhlIGBjb25maWd1cmUnIG9wdGlvbnMgYC0teC1pbmNsdWRlcz1ESVInIGFuZAorK2AtLXgt bGlicmFyaWVzPURJUicgdG8gc3BlY2lmeSB0aGVpciBsb2NhdGlvbnMuCisrCisrICAgU29tZSBw YWNrYWdlcyBvZmZlciB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgaG93IHZlcmJvc2UgdGhlCisr ZXhlY3V0aW9uIG9mIGBtYWtlJyB3aWxsIGJlLiAgRm9yIHRoZXNlIHBhY2thZ2VzLCBydW5uaW5n IGAuL2NvbmZpZ3VyZQorKy0tZW5hYmxlLXNpbGVudC1ydWxlcycgc2V0cyB0aGUgZGVmYXVsdCB0 byBtaW5pbWFsIG91dHB1dCwgd2hpY2ggY2FuIGJlCisrb3ZlcnJpZGRlbiB3aXRoIGBtYWtlIFY9 MSc7IHdoaWxlIHJ1bm5pbmcgYC4vY29uZmlndXJlCisrLS1kaXNhYmxlLXNpbGVudC1ydWxlcycg c2V0cyB0aGUgZGVmYXVsdCB0byB2ZXJib3NlLCB3aGljaCBjYW4gYmUKKytvdmVycmlkZGVuIHdp dGggYG1ha2UgVj0wJy4KKysKKytQYXJ0aWN1bGFyIHN5c3RlbXMKKys9PT09PT09PT09PT09PT09 PT0KKysKKysgICBPbiBIUC1VWCwgdGhlIGRlZmF1bHQgQyBjb21waWxlciBpcyBub3QgQU5TSSBD IGNvbXBhdGlibGUuICBJZiBHTlUKKytDQyBpcyBub3QgaW5zdGFsbGVkLCBpdCBpcyByZWNvbW1l bmRlZCB0byB1c2UgdGhlIGZvbGxvd2luZyBvcHRpb25zIGluCisrb3JkZXIgdG8gdXNlIGFuIEFO U0kgQyBjb21waWxlcjoKKysKKysgICAgIC4vY29uZmlndXJlIENDPSJjYyAtQWUgLURfWE9QRU5f U09VUkNFPTUwMCIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIGluc3RhbGwgcHJlLWJ1 aWx0IGJpbmFyaWVzIG9mIEdDQyBmb3IgSFAtVVguCisrCisrICAgT24gT1NGLzEgYS5rLmEuIFRy dTY0LCBzb21lIHZlcnNpb25zIG9mIHRoZSBkZWZhdWx0IEMgY29tcGlsZXIgY2Fubm90CisrcGFy c2UgaXRzIGA8d2NoYXIuaD4nIGhlYWRlciBmaWxlLiAgVGhlIG9wdGlvbiBgLW5vZHRrJyBjYW4g YmUgdXNlZCBhcworK2Egd29ya2Fyb3VuZC4gIElmIEdOVSBDQyBpcyBub3QgaW5zdGFsbGVkLCBp dCBpcyB0aGVyZWZvcmUgcmVjb21tZW5kZWQKKyt0byB0cnkKKysKKysgICAgIC4vY29uZmlndXJl IENDPSJjYyIKKysKKythbmQgaWYgdGhhdCBkb2Vzbid0IHdvcmssIHRyeQorKworKyAgICAgLi9j b25maWd1cmUgQ0M9ImNjIC1ub2R0ayIKKysKKysgICBPbiBTb2xhcmlzLCBkb24ndCBwdXQgYC91 c3IvdWNiJyBlYXJseSBpbiB5b3VyIGBQQVRIJy4gIFRoaXMKKytkaXJlY3RvcnkgY29udGFpbnMg c2V2ZXJhbCBkeXNmdW5jdGlvbmFsIHByb2dyYW1zOyB3b3JraW5nIHZhcmlhbnRzIG9mCisrdGhl c2UgcHJvZ3JhbXMgYXJlIGF2YWlsYWJsZSBpbiBgL3Vzci9iaW4nLiAgU28sIGlmIHlvdSBuZWVk IGAvdXNyL3VjYicKKytpbiB5b3VyIGBQQVRIJywgcHV0IGl0IF9hZnRlcl8gYC91c3IvYmluJy4K KysKKysgICBPbiBIYWlrdSwgc29mdHdhcmUgaW5zdGFsbGVkIGZvciBhbGwgdXNlcnMgZ29lcyBp biBgL2Jvb3QvY29tbW9uJywKKytub3QgYC91c3IvbG9jYWwnLiAgSXQgaXMgcmVjb21tZW5kZWQg dG8gdXNlIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKysKKysgICAgIC4vY29uZmlndXJlIC0tcHJl Zml4PS9ib290L2NvbW1vbgorKworK1NwZWNpZnlpbmcgdGhlIFN5c3RlbSBUeXBlCisrPT09PT09 PT09PT09PT09PT09PT09PT09PT0KKysKKysgICBUaGVyZSBtYXkgYmUgc29tZSBmZWF0dXJlcyBg Y29uZmlndXJlJyBjYW5ub3QgZmlndXJlIG91dAorK2F1dG9tYXRpY2FsbHksIGJ1dCBuZWVkcyB0 byBkZXRlcm1pbmUgYnkgdGhlIHR5cGUgb2YgbWFjaGluZSB0aGUgcGFja2FnZQorK3dpbGwgcnVu IG9uLiAgVXN1YWxseSwgYXNzdW1pbmcgdGhlIHBhY2thZ2UgaXMgYnVpbHQgdG8gYmUgcnVuIG9u IHRoZQorK19zYW1lXyBhcmNoaXRlY3R1cmVzLCBgY29uZmlndXJlJyBjYW4gZmlndXJlIHRoYXQg b3V0LCBidXQgaWYgaXQgcHJpbnRzCisrYSBtZXNzYWdlIHNheWluZyBpdCBjYW5ub3QgZ3Vlc3Mg dGhlIG1hY2hpbmUgdHlwZSwgZ2l2ZSBpdCB0aGUKKytgLS1idWlsZD1UWVBFJyBvcHRpb24uICBU WVBFIGNhbiBlaXRoZXIgYmUgYSBzaG9ydCBuYW1lIGZvciB0aGUgc3lzdGVtCisrdHlwZSwgc3Vj aCBhcyBgc3VuNCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2hpY2ggaGFzIHRoZSBmb3JtOgorKwor KyAgICAgQ1BVLUNPTVBBTlktU1lTVEVNCisrCisrd2hlcmUgU1lTVEVNIGNhbiBoYXZlIG9uZSBv ZiB0aGVzZSBmb3JtczoKKysKKysgICAgIE9TCisrICAgICBLRVJORUwtT1MKKysKKysgICBTZWUg dGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUgdmFsdWVzIG9mIGVhY2ggZmll bGQuICBJZgorK2Bjb25maWcuc3ViJyBpc24ndCBpbmNsdWRlZCBpbiB0aGlzIHBhY2thZ2UsIHRo ZW4gdGhpcyBwYWNrYWdlIGRvZXNuJ3QKKytuZWVkIHRvIGtub3cgdGhlIG1hY2hpbmUgdHlwZS4K KysKKysgICBJZiB5b3UgYXJlIF9idWlsZGluZ18gY29tcGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNv bXBpbGluZywgeW91IHNob3VsZAorK3VzZSB0aGUgb3B0aW9uIGAtLXRhcmdldD1UWVBFJyB0byBz ZWxlY3QgdGhlIHR5cGUgb2Ygc3lzdGVtIHRoZXkgd2lsbAorK3Byb2R1Y2UgY29kZSBmb3IuCisr CisrICAgSWYgeW91IHdhbnQgdG8gX3VzZV8gYSBjcm9zcyBjb21waWxlciwgdGhhdCBnZW5lcmF0 ZXMgY29kZSBmb3IgYQorK3BsYXRmb3JtIGRpZmZlcmVudCBmcm9tIHRoZSBidWlsZCBwbGF0Zm9y bSwgeW91IHNob3VsZCBzcGVjaWZ5IHRoZQorKyJob3N0IiBwbGF0Zm9ybSAoaS5lLiwgdGhhdCBv biB3aGljaCB0aGUgZ2VuZXJhdGVkIHByb2dyYW1zIHdpbGwKKytldmVudHVhbGx5IGJlIHJ1bikg d2l0aCBgLS1ob3N0PVRZUEUnLgorKworK1NoYXJpbmcgRGVmYXVsdHMKKys9PT09PT09PT09PT09 PT09CisrCisrICAgSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBgY29uZmln dXJlJyBzY3JpcHRzIHRvIHNoYXJlLAorK3lvdSBjYW4gY3JlYXRlIGEgc2l0ZSBzaGVsbCBzY3Jp cHQgY2FsbGVkIGBjb25maWcuc2l0ZScgdGhhdCBnaXZlcworK2RlZmF1bHQgdmFsdWVzIGZvciB2 YXJpYWJsZXMgbGlrZSBgQ0MnLCBgY2FjaGVfZmlsZScsIGFuZCBgcHJlZml4Jy4KKytgY29uZmln dXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0 aGVuCisrYFBSRUZJWC9ldGMvY29uZmlnLnNpdGUnIGlmIGl0IGV4aXN0cy4gIE9yLCB5b3UgY2Fu IHNldCB0aGUKKytgQ09ORklHX1NJVEUnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoZSBsb2Nh dGlvbiBvZiB0aGUgc2l0ZSBzY3JpcHQuCisrQSB3YXJuaW5nOiBub3QgYWxsIGBjb25maWd1cmUn IHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKysKKytEZWZpbmluZyBWYXJpYWJsZXMK Kys9PT09PT09PT09PT09PT09PT0KKysKKysgICBWYXJpYWJsZXMgbm90IGRlZmluZWQgaW4gYSBz aXRlIHNoZWxsIHNjcmlwdCBjYW4gYmUgc2V0IGluIHRoZQorK2Vudmlyb25tZW50IHBhc3NlZCB0 byBgY29uZmlndXJlJy4gIEhvd2V2ZXIsIHNvbWUgcGFja2FnZXMgbWF5IHJ1bgorK2NvbmZpZ3Vy ZSBhZ2FpbiBkdXJpbmcgdGhlIGJ1aWxkLCBhbmQgdGhlIGN1c3RvbWl6ZWQgdmFsdWVzIG9mIHRo ZXNlCisrdmFyaWFibGVzIG1heSBiZSBsb3N0LiAgSW4gb3JkZXIgdG8gYXZvaWQgdGhpcyBwcm9i bGVtLCB5b3Ugc2hvdWxkIHNldAorK3RoZW0gaW4gdGhlIGBjb25maWd1cmUnIGNvbW1hbmQgbGlu ZSwgdXNpbmcgYFZBUj12YWx1ZScuICBGb3IgZXhhbXBsZToKKysKKysgICAgIC4vY29uZmlndXJl IENDPS91c3IvbG9jYWwyL2Jpbi9nY2MKKysKKytjYXVzZXMgdGhlIHNwZWNpZmllZCBgZ2NjJyB0 byBiZSB1c2VkIGFzIHRoZSBDIGNvbXBpbGVyICh1bmxlc3MgaXQgaXMKKytvdmVycmlkZGVuIGlu IHRoZSBzaXRlIHNoZWxsIHNjcmlwdCkuCisrCisrVW5mb3J0dW5hdGVseSwgdGhpcyB0ZWNobmlx dWUgZG9lcyBub3Qgd29yayBmb3IgYENPTkZJR19TSEVMTCcgZHVlIHRvCisrYW4gQXV0b2NvbmYg YnVnLiAgVW50aWwgdGhlIGJ1ZyBpcyBmaXhlZCB5b3UgY2FuIHVzZSB0aGlzIHdvcmthcm91bmQ6 CisrCisrICAgICBDT05GSUdfU0hFTEw9L2Jpbi9iYXNoIC9iaW4vYmFzaCAuL2NvbmZpZ3VyZSBD T05GSUdfU0hFTEw9L2Jpbi9iYXNoCisrCisrYGNvbmZpZ3VyZScgSW52b2NhdGlvbgorKz09PT09 PT09PT09PT09PT09PT09PT0KKysKKysgICBgY29uZmlndXJlJyByZWNvZ25pemVzIHRoZSBmb2xs b3dpbmcgb3B0aW9ucyB0byBjb250cm9sIGhvdyBpdAorK29wZXJhdGVzLgorKworK2AtLWhlbHAn CisrYC1oJworKyAgICAgUHJpbnQgYSBzdW1tYXJ5IG9mIGFsbCBvZiB0aGUgb3B0aW9ucyB0byBg Y29uZmlndXJlJywgYW5kIGV4aXQuCisrCisrYC0taGVscD1zaG9ydCcKKytgLS1oZWxwPXJlY3Vy c2l2ZScKKysgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB1bmlxdWUgdG8gdGhp cyBwYWNrYWdlJ3MKKysgICAgIGBjb25maWd1cmUnLCBhbmQgZXhpdC4gIFRoZSBgc2hvcnQnIHZh cmlhbnQgbGlzdHMgb3B0aW9ucyB1c2VkCisrICAgICBvbmx5IGluIHRoZSB0b3AgbGV2ZWwsIHdo aWxlIHRoZSBgcmVjdXJzaXZlJyB2YXJpYW50IGxpc3RzIG9wdGlvbnMKKysgICAgIGFsc28gcHJl c2VudCBpbiBhbnkgbmVzdGVkIHBhY2thZ2VzLgorKworK2AtLXZlcnNpb24nCisrYC1WJworKyAg ICAgUHJpbnQgdGhlIHZlcnNpb24gb2YgQXV0b2NvbmYgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYGNv bmZpZ3VyZScKKysgICAgIHNjcmlwdCwgYW5kIGV4aXQuCisrCisrYC0tY2FjaGUtZmlsZT1GSUxF JworKyAgICAgRW5hYmxlIHRoZSBjYWNoZTogdXNlIGFuZCBzYXZlIHRoZSByZXN1bHRzIG9mIHRo ZSB0ZXN0cyBpbiBGSUxFLAorKyAgICAgdHJhZGl0aW9uYWxseSBgY29uZmlnLmNhY2hlJy4gIEZJ TEUgZGVmYXVsdHMgdG8gYC9kZXYvbnVsbCcgdG8KKysgICAgIGRpc2FibGUgY2FjaGluZy4KKysK KytgLS1jb25maWctY2FjaGUnCisrYC1DJworKyAgICAgQWxpYXMgZm9yIGAtLWNhY2hlLWZpbGU9 Y29uZmlnLmNhY2hlJy4KKysKKytgLS1xdWlldCcKKytgLS1zaWxlbnQnCisrYC1xJworKyAgICAg RG8gbm90IHByaW50IG1lc3NhZ2VzIHNheWluZyB3aGljaCBjaGVja3MgYXJlIGJlaW5nIG1hZGUu ICBUbworKyAgICAgc3VwcHJlc3MgYWxsIG5vcm1hbCBvdXRwdXQsIHJlZGlyZWN0IGl0IHRvIGAv ZGV2L251bGwnIChhbnkgZXJyb3IKKysgICAgIG1lc3NhZ2VzIHdpbGwgc3RpbGwgYmUgc2hvd24p LgorKworK2AtLXNyY2Rpcj1ESVInCisrICAgICBMb29rIGZvciB0aGUgcGFja2FnZSdzIHNvdXJj ZSBjb2RlIGluIGRpcmVjdG9yeSBESVIuICBVc3VhbGx5CisrICAgICBgY29uZmlndXJlJyBjYW4g ZGV0ZXJtaW5lIHRoYXQgZGlyZWN0b3J5IGF1dG9tYXRpY2FsbHkuCisrCisrYC0tcHJlZml4PURJ UicKKysgICAgIFVzZSBESVIgYXMgdGhlIGluc3RhbGxhdGlvbiBwcmVmaXguICAqbm90ZSBJbnN0 YWxsYXRpb24gTmFtZXM6OgorKyAgICAgZm9yIG1vcmUgZGV0YWlscywgaW5jbHVkaW5nIG90aGVy IG9wdGlvbnMgYXZhaWxhYmxlIGZvciBmaW5lLXR1bmluZworKyAgICAgdGhlIGluc3RhbGxhdGlv biBsb2NhdGlvbnMuCisrCisrYC0tbm8tY3JlYXRlJworK2AtbicKKysgICAgIFJ1biB0aGUgY29u ZmlndXJlIGNoZWNrcywgYnV0IHN0b3AgYmVmb3JlIGNyZWF0aW5nIGFueSBvdXRwdXQKKysgICAg IGZpbGVzLgorKworK2Bjb25maWd1cmUnIGFsc28gYWNjZXB0cyBzb21lIG90aGVyLCBub3Qgd2lk ZWx5IHVzZWZ1bCwgb3B0aW9ucy4gIFJ1bgorK2Bjb25maWd1cmUgLS1oZWxwJyBmb3IgbW9yZSBk ZXRhaWxzLgorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlIHNvY2ktMy4w LjBfdHJlcDMwMC9NYWtlZmlsZQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlCTIwMTAt MDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL01h a2VmaWxlCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSwyMCArMCww IEBACistYnVpbGRfbGlicyA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBidWls ZC50Y2wgY29yZSBjb3JlLXNvIG15c3FsIG15c3FsLXNvIHBvc3RncmVzcWwgcG9zdGdyZXNxbC1z byBvcmFjbGUgb3JhY2xlLXNvCistCistdGVzdHMgOgorLQljZCBidWlsZC91bml4OyBgY2F0IGxv Y2FsL3RjbGAgYnVpbGQudGNsIG15c3FsLXRlc3Qgb3JhY2xlLXRlc3QgcG9zdGdyZXNxbC10ZXN0 CistCistaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXg7IGBjYXQgbG9jYWwvdGNsYCBpbnN0YWxs LnRjbAorLQorLXVuaW5zdGFsbCA6CistCWNkIGJ1aWxkL3VuaXgvbG9jYWw7IC9iaW4vc2ggdW5p bnN0YWxsLnNoCistCistY2xlYW4gOgorLQlmaW5kIC4gLW5hbWUgJyoubycgfCB4YXJncyBybQor LQlmaW5kIC4gLW5hbWUgJyouYScgfCB4YXJncyBybQorLQlmaW5kIC4gLW5hbWUgJyouc28nIHwg eGFyZ3Mgcm0KKy0Jcm0gLWYgc3JjL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbAorLQly bSAtZiBzcmMvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUKKy0Jcm0gLWYgc3JjL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwKKy0Jcm0gLXJmIGJ1aWxkL3Vu aXgvaW5jbHVkZSBidWlsZC91bml4L2xpYiBidWlsZC91bml4L3Rlc3RzCitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmFt CistLS0gc29jaS0zLjAuMF80LXBhY2svTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUuYW0JMjAwOS0w NS0wMyAwMDoxOTo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNjIgQEAKKysjIyB0b3Ag ZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorKworK0FD TE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZworKworK0FVVE9NQUtFX09QVElPTlMgPSBkaXN0LWJ6 aXAyCisrCisraWYgUlVOX1RFU1RTCisrIyAgVEVTVF9ESVIgPSB0ZXN0CisrZW5kaWYKKysKKytN QU5fRE9DX0RJUiA9IG1hbgorKworKyMgTWFpbnRhaW5hbmNlIGZpbGVzCisrTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbiBhY2xvY2FsLm00IGNvbmZpZ3VyZSBcCisrCQkJY29uZmln LWguaW4gc2ljL3N0YW1wLWguaW4gYXV0b2dlbi5zaCBib290c3RyYXAKKysKKysjRVhUUkFfRElT VF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gLl9jb25maWd1cmUgLl9NYWtlZmlsZSBjb250cmli CisrRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gY29udHJpYgorKworK0VYVFJB X0RJU1QgPSBNYWtlZmlsZS5jb21tb24gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpIEBQQUNLQUdFQC5tNAorKworKyMgQnVpbGQgaW4gdGhlc2UgZGlyZWN0b3JpZXM6CisrU1VC RElSUyA9IGJ1aWxkIEBQQUNLQUdFQCAkKE1BTl9ET0NfRElSKSBkb2MgJChURVNUX0RJUikKKysK KysKKysjIENvbmZpZ3VyYXRpb24gaGVscGVycworK2Jpbl9TQ1JJUFRTID0gQFBBQ0tBR0VALWNv bmZpZworKworK3BrZ2NvbmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKKytwa2djb25maWdf REFUQSA9IEBQQUNLQUdFQC5wYworKworK200ZGF0YWRpciA9ICQoZGF0YWRpcikvYWNsb2NhbAor K200ZGF0YV9EQVRBID0gQFBBQ0tBR0VALm00CisrCisrIyBUYXJnZXRzCisrdW5pbnN0YWxsLWxv Y2FsOgorKwlybSAtcmYgJChERVNURElSKSQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisrCisrZGlz dC1odG1sOgorKwkkKE1BS0UpIC1DIGRvYyBkaXN0LWh0bWwKKysKKysKKytzbmFwc2hvdDogc25h cHNob3Qtc3JjIHNuYXBzaG90LWh0bWwKKysKKysKKytzbmFwc2hvdC1zcmM6CisrICAgICAgICAk KE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9UQVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCisr Cisrc25hcHNob3QtaHRtbDoKKysJJChNQUtFKSAtQyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFt ZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1gZGF0ZSArIiVZJW0lZCJgCisrCisrdXBsb2Fk OiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCisrCisrdXBsb2FkLXNyYzogZGlzdAorKwlAVVBMT0FE X0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FH RV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6MgorKworK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwK KysJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAu dGFyLmd6IFwKKysJQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIK KysKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZS5jb21tb24gc29jaS0zLjAu MF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxl LmNvbW1vbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24JMjAwOS0wNC0xOCAxNzoyMDozMi4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMiBAQAorK0BTRVRfTUFLRUAKKytBTV9DUFBGTEFHUyA9IC1JJCh0 b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIu MDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDkyNCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJh dGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9p bnB1dEAKKysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwg MTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMg TWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgorKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKKysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK KysjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEggPSBA c3JjZGlyQAorK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVk aXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFD S0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwg PSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5T VEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAor K2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gUkVBRE1FICQoYW1fX2NvbmZp Z3VyZV9kZXBzKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAorKwkkKHNyY2RpcikvTWFrZWZpbGUu aW4gJChzcmNkaXIpL3NvY2ktY29uZmlnLmluIFwKKysJJChzcmNkaXIpL3NvY2kucGMuaW4gJChz cmNkaXIpL3NvY2kuc3BlYy5pbiBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQo dG9wX3NyY2RpcikvY29uZmlndXJlIEFVVEhPUlMgXAorKwlDT1BZSU5HIENoYW5nZUxvZyBJTlNU QUxMIE5FV1MgY29uZmlnL2NvbmZpZy5ndWVzcyBcCisrCWNvbmZpZy9jb25maWcuc3ViIGNvbmZp Zy9kZXBjb21wIGNvbmZpZy9pbnN0YWxsLXNoIFwKKysJY29uZmlnL2x0bWFpbi5zaCBjb25maWcv bWlzc2luZworK3N1YmRpciA9IC4KKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2Fs Lm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0 Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf cG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3Vy ZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMp IFwKKysJJChBQ0xPQ0FMX000KQorK2FtX19DT05GSUdfRElTVENMRUFOX0ZJTEVTID0gY29uZmln LnN0YXR1cyBjb25maWcuY2FjaGUgY29uZmlnLmxvZyBcCisrIGNvbmZpZ3VyZS5saW5lbm8gY29u ZmlnLnN0YXR1cy5saW5lbm8KKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NP TkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVB Tl9GSUxFUyA9IHNvY2ktY29uZmlnIHNvY2kucGMgc29jaS5zcGVjCisrQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4g XAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJp cC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9 IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsX21heCA9IDQw CisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9fbm9iYXNlX3N0cmlw ID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJz fCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlw X3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8 IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMs XCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9 ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisrICAgIGlmICgrK25b JCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50ICQkMiwgZmlsZXNb JCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAgIEVORCB7IGZvciAo ZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9fYmFzZV9saXN0ID0g XAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8 IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKythbV9faW5zdGFsbGRp cnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKG00ZGF0YWRpcikiIFwKKysJ IiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCisrU0NSSVBUUyA9ICQoYmluX1NDUklQVFMpCisr U09VUkNFUyA9CisrRElTVF9TT1VSQ0VTID0KKytSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1 cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAorKwlodG1sLXJlY3Vyc2l2ZSBp bmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1kdmktcmVj dXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZl IGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFs bC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAorKwlpbnN0YWxsY2hlY2stcmVjdXJz aXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKKysJcHMtcmVjdXJzaXZl IHVuaW5zdGFsbC1yZWN1cnNpdmUKKytEQVRBID0gJChtNGRhdGFfREFUQSkgJChwa2djb25maWdf REFUQSkKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBj bGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFu LXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzot cmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0 YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyIGRpc3QgZGlzdC1hbGwgZGlzdGNoZWNr CisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJ UlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5G T1MpICQoRVhUUkFfRElTVCkKKytkaXN0ZGlyID0gJChQQUNLQUdFKS0kKFZFUlNJT04pCisrdG9w X2Rpc3RkaXIgPSAkKGRpc3RkaXIpCisrYW1fX3JlbW92ZV9kaXN0ZGlyID0gXAorKyAgeyB0ZXN0 ICEgLWQgIiQoZGlzdGRpcikiIFwKKysgICAgfHwgeyBmaW5kICIkKGRpc3RkaXIpIiAtdHlwZSBk ICEgLXBlcm0gLTIwMCAtZXhlYyBjaG1vZCB1K3cge30gJzsnIFwKKysgICAgICAgICAmJiBybSAt ZnIgIiQoZGlzdGRpcikiOyB9OyB9CisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2Rg OyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0 PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsg XAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIk JGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9m aXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAg aWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQk ZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1g ZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBc CisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7 IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAg ICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAg ICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZp OyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisr ICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3Qi YDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrRElTVF9BUkNISVZFUyA9ICQo ZGlzdGRpcikudGFyLmd6ICQoZGlzdGRpcikudGFyLmJ6MgorK0daSVBfRU5WID0gLS1iZXN0Cisr ZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcyA9IGZpbmQgLiAtdHlwZSBmIC1wcmludAorK2Rp c3RjbGVhbmNoZWNrX2xpc3RmaWxlcyA9IGZpbmQgLiAtdHlwZSBmIC1wcmludAorK0FDTE9DQUwg PSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBB VVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01B S0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01Q SV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9N UElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAor K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElC QAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBD UFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAor K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhD UFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBD WFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBE SVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJ TkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVD SE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZH UkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdT QAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJU T09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElC T0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlT UUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAK KytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAor K01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBA Tk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAK KytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVH UkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05B TUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1F ID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9O QAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQ R19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxf Q0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNR TF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBA UE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBA UlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVM TCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURA CisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE QAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FE X0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVp bGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBA YWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKyth Y19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RV TVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKyth bV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVv dGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmlu ZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9h bGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAor K2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisr ZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZf b2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdl bl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNf cHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAK Kytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9z dF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIg PSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZv ZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AK KytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVk aXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9F Q0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BA Cisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisr cHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJh bnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3Nl ZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3Jj ZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFz ID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhA CisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNk aXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytB Q0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25maWcKKytBVVRPTUFLRV9PUFRJT05TID0gZGlzdC1iemlw MgorKworKyMgIFRFU1RfRElSID0gdGVzdAorK01BTl9ET0NfRElSID0gbWFuCisrCisrIyBNYWlu dGFpbmFuY2UgZmlsZXMKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluIGFjbG9j YWwubTQgY29uZmlndXJlIFwKKysJCQljb25maWctaC5pbiBzaWMvc3RhbXAtaC5pbiBhdXRvZ2Vu LnNoIGJvb3RzdHJhcAorKworKworKyNFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PSAuX2NvbmZpZ3VyZSAuX01ha2VmaWxlIGNvbnRyaWIKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkgPSBjb250cmliCisrRVhUUkFfRElTVCA9IE1ha2VmaWxlLmNvbW1vbiAkKEVY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkgQFBBQ0tBR0VALm00CisrCisrIyBCdWls ZCBpbiB0aGVzZSBkaXJlY3RvcmllczoKKytTVUJESVJTID0gYnVpbGQgQFBBQ0tBR0VAICQoTUFO X0RPQ19ESVIpIGRvYyAkKFRFU1RfRElSKQorKworKyMgQ29uZmlndXJhdGlvbiBoZWxwZXJzCisr YmluX1NDUklQVFMgPSBAUEFDS0FHRUAtY29uZmlnCisrcGtnY29uZmlnZGlyID0gJChsaWJkaXIp L3BrZ2NvbmZpZworK3BrZ2NvbmZpZ19EQVRBID0gQFBBQ0tBR0VALnBjCisrbTRkYXRhZGlyID0g JChkYXRhZGlyKS9hY2xvY2FsCisrbTRkYXRhX0RBVEEgPSBAUEFDS0FHRUAubTQKKythbGw6IGFs bC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrYW0tLXJlZnJlc2g6CisrCUA6CisrJChzcmNk aXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8g XAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikg XAorKwkgICAgICBlY2hvICcgY2QgJChzcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251JzsgXAor KwkgICAgICAkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IFwKKysJCSYm IGV4aXQgMDsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IE1ha2VmaWxlJzsg XAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUg TWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtl ZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwK KysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMnOyBcCisrCSAgICAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXM7OyBcCisrCSAgKikgXAor KwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0 dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBc CisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2Rp cikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCSQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQo YW1fX2NvbmZpZ3VyZV9kZXBzKQorKwkkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQVVUT0NPTkYp CisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKKysJJChhbV9fY2QpICQo c3JjZGlyKSAmJiAkKEFDTE9DQUwpICQoQUNMT0NBTF9BTUZMQUdTKQorKyQoYW1fX2FjbG9jYWxf bTRfZGVwcyk6Cisrc29jaS1jb25maWc6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQo c3JjZGlyKS9zb2NpLWNvbmZpZy5pbgorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICRACisrc29jaS5wYzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMgJChzcmNkaXIpL3NvY2kucGMuaW4KKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkQAorK3NvY2kuc3BlYzogJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXMgJChzcmNkaXIpL3NvY2kuc3BlYy5pbgorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICRACisraW5zdGFsbC1iaW5TQ1JJUFRTOiAkKGJpbl9TQ1JJ UFRTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChiaW5kaXIpIiB8fCAkKE1L RElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgorKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyB0 ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8gXAor KwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBc CisrCSAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlY2hvICIkJHAi OyBlbHNlIDo7IGZpOyBcCisrCWRvbmUgfCBcCisrCXNlZCAtZSAncDtzLC4qLywsO24nIFwKKysJ ICAgIC1lICdoO3N8Lip8LnwnIFwKKysJICAgIC1lICdwO3g7cywuKi8sLDskKHRyYW5zZm9ybSkn IHwgc2VkICdOO047TjtzLFxuLCAsZycgfCBcCisrCSQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJd ID0gIiI7IGRpcnNbIi4iXSA9IDE7IH0gXAorKwkgIHsgZD0kJDM7IGlmIChkaXJzW2RdICE9IDEp IHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKKysJICAgIGlmICgkJDIgPT0gJCQ0KSB7 IGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAorKwkgICAgICBpZiAoKytuW2RdID09ICQo YW1fX2luc3RhbGxfbWF4KSkgeyBcCisrCQlwcmludCAiZiIsIGQsIGZpbGVzW2RdOyBuW2RdID0g MDsgZmlsZXNbZF0gPSAiIiB9IH0gXAorKwkgICAgZWxzZSB7IHByaW50ICJmIiwgZCAiLyIgJCQ0 LCAkJDEgfSB9IFwKKysJICBFTkQgeyBmb3IgKGQgaW4gZmlsZXMpIHByaW50ICJmIiwgZCwgZmls ZXNbZF0gfScgfCBcCisrCXdoaWxlIHJlYWQgdHlwZSBkaXIgZmlsZXM7IGRvIFwKKysJICAgICBp ZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2UgZGlyPS8kJGRpcjsgZmk7IFwKKysJ ICAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKysJICAgICAgIGVjaG8gIiAkKElOU1RBTExf U0NSSVBUKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIpJCRkaXInIjsgXAorKwkgICAgICAg JChJTlNUQUxMX1NDUklQVCkgJCRmaWxlcyAiJChERVNURElSKSQoYmluZGlyKSQkZGlyIiB8fCBl eGl0ICQkPzsgXAorKwkgICAgIH0gXAorKwk7IGRvbmUKKysKKyt1bmluc3RhbGwtYmluU0NSSVBU UzoKKysJQCQoTk9STUFMX1VOSU5TVEFMTCkKKysJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgdGVz dCAtbiAiJChiaW5kaXIpIiB8fCBleGl0IDA7IFwKKysJZmlsZXM9YGZvciBwIGluICQkbGlzdDsg ZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKKysJICAgICAgIHNlZCAtZSAncywuKi8sLDskKHRyYW5z Zm9ybSknYDsgXAorKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgKCBj ZCAnJChERVNURElSKSQoYmluZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisrCWNkICIk KERFU1RESVIpJChiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrbW9zdGx5Y2xlYW4tbGli dG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJz IF9saWJzCisrCisrZGlzdGNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiBsaWJ0b29sIGNvbmZpZy5s dAorK2luc3RhbGwtbTRkYXRhREFUQTogJChtNGRhdGFfREFUQSkKKysJQCQoTk9STUFMX0lOU1RB TEwpCisrCXRlc3QgLXogIiQobTRkYXRhZGlyKSIgfHwgJChNS0RJUl9QKSAiJChERVNURElSKSQo bTRkYXRhZGlyKSIKKysJQGxpc3Q9JyQobTRkYXRhX0RBVEEpJzsgdGVzdCAtbiAiJChtNGRhdGFk aXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVjaG8gIiQk ZCQkcCI7IFwKKysJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmls ZXM7IGRvIFwKKysJICBlY2hvICIgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgJyQoREVTVERJUikk KG00ZGF0YWRpciknIjsgXAorKwkgICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICIkKERFU1RESVIp JChtNGRhdGFkaXIpIiB8fCBleGl0ICQkPzsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLW00ZGF0 YURBVEE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKG00ZGF0YV9EQVRBKSc7 IHRlc3QgLW4gIiQobTRkYXRhZGlyKSIgfHwgbGlzdD07IFwKKysJZmlsZXM9YGZvciBwIGluICQk bGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKysJdGVzdCAt biAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChtNGRh dGFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2QgIiQoREVTVERJUikkKG00ZGF0 YWRpcikiICYmIHJtIC1mICQkZmlsZXMKKytpbnN0YWxsLXBrZ2NvbmZpZ0RBVEE6ICQocGtnY29u ZmlnX0RBVEEpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2NvbmZpZ2Rp cikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiCisrCUBsaXN0PSck KHBrZ2NvbmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29uZmlnZGlyKSIgfHwgbGlzdD07IFwK KysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsg ZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKKysJICBlY2hvICIkJGQkJHAiOyBcCisrCWRvbmUg fCAkKGFtX19iYXNlX2xpc3QpIHwgXAorKwl3aGlsZSByZWFkIGZpbGVzOyBkbyBcCisrCSAgZWNo byAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RESVIpJChwa2djb25maWdkaXIpJyI7 IFwKKysJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChERVNURElSKSQocGtnY29uZmlnZGly KSIgfHwgZXhpdCAkJD87IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1wa2djb25maWdEQVRBOgor KwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0 IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCisrCWZpbGVzPWBmb3IgcCBpbiAkJGxp c3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCisrCXRlc3QgLW4g IiQkZmlsZXMiIHx8IGV4aXQgMDsgXAorKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnY29u ZmlnZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisrCWNkICIkKERFU1RESVIpJChwa2dj b25maWdkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRp cmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhl bSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysj IFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRp dGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmln LnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2Ug dGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysj ICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29t bWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhp dCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4g XAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVz Jzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0 PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4g JCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAg IGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJ ICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJ ICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxf dGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0 ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisr JChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBc CisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAg ICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAor KwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4g XAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VC RElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJ cmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGly IiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisr CSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAor KwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7 IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0 IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25l CisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAk JGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDog JChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lk IC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChI RUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklM RVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykg LS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBp bmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwll bHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBc CisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0 ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29w dGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwK KysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0 aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9m aXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAi ICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAg Zmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJ ICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdT KSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9w X2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisr CSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdz OgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQorKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKysJdGVzdCAtZCAi JChkaXN0ZGlyKSIgfHwgbWtkaXIgIiQoZGlzdGRpcikiCisrCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJ ZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAg IGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAg IGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhp dCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAor KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8 IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJ ICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQg MTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIi OyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxk aXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkg ICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsg XAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxc IjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5n dGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJ ICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0 ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9f c2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAg ICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJ LXRlc3QgLW4gIiQoYW1fX3NraXBfbW9kZV9maXgpIiBcCisrCXx8IGZpbmQgIiQoZGlzdGRpciki IC10eXBlIGQgISAtcGVybSAtNzU1IFwKKysJCS1leGVjIGNobW9kIHUrcnd4LGdvK3J4IHt9IFw7 IC1vIFwKKysJICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1saW5rcyAxIC1leGVjIGNobW9kIGEr ciB7fSBcOyAtbyBcCisrCSAgISAtdHlwZSBkICEgLXBlcm0gLTQwMCAtZXhlYyBjaG1vZCBhK3Ig e30gXDsgLW8gXAorKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWV4ZWMgJChpbnN0YWxsX3No KSAtYyAtbSBhK3Ige30ge30gXDsgXAorKwl8fCBjaG1vZCAtUiBhK3IgIiQoZGlzdGRpcikiCisr ZGlzdC1nemlwOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBH WklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6CisrCSQoYW1fX3JlbW92 ZV9kaXN0ZGlyKQorK2Rpc3QtYnppcDI6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYg JChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKysJJChhbV9fcmVt b3ZlX2Rpc3RkaXIpCisrCisrZGlzdC1sem1hOiBkaXN0ZGlyCisrCXRhcmRpcj0kKGRpc3RkaXIp ICYmICQoYW1fX3RhcikgfCBsem1hIC05IC1jID4kKGRpc3RkaXIpLnRhci5sem1hCisrCSQoYW1f X3JlbW92ZV9kaXN0ZGlyKQorKworK2Rpc3QteHo6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRp cikgJiYgJChhbV9fdGFyKSB8IHh6IC1jID4kKGRpc3RkaXIpLnRhci54egorKwkkKGFtX19yZW1v dmVfZGlzdGRpcikKKysKKytkaXN0LXRhclo6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRpcikg JiYgJChhbV9fdGFyKSB8IGNvbXByZXNzIC1jID4kKGRpc3RkaXIpLnRhci5aCisrCSQoYW1fX3Jl bW92ZV9kaXN0ZGlyKQorKworK2Rpc3Qtc2hhcjogZGlzdGRpcgorKwlzaGFyICQoZGlzdGRpcikg fCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikuc2hhci5negorKwkkKGFtX19y ZW1vdmVfZGlzdGRpcikKKysKKytkaXN0LXppcDogZGlzdGRpcgorKwktcm0gLWYgJChkaXN0ZGly KS56aXAKKysJemlwIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRpc3RkaXIpCisrCSQoYW1fX3JlbW92 ZV9kaXN0ZGlyKQorKworK2Rpc3QgZGlzdC1hbGw6IGRpc3RkaXIKKysJdGFyZGlyPSQoZGlzdGRp cikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS50 YXIuZ3oKKysJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4k KGRpc3RkaXIpLnRhci5iejIKKysJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisrCisrIyBUaGlzIHRh cmdldCB1bnRhcnMgdGhlIGRpc3QgZmlsZSBhbmQgdHJpZXMgYSBWUEFUSCBjb25maWd1cmF0aW9u LiAgVGhlbgorKyMgaXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBkaXN0cmlidXRpb24gaXMgc2VsZi1j b250YWluZWQgYnkgbWFraW5nIGFub3RoZXIKKysjIHRhcmZpbGUuCisrZGlzdGNoZWNrOiBkaXN0 CisrCWNhc2UgJyQoRElTVF9BUkNISVZFUyknIGluIFwKKysJKi50YXIuZ3oqKSBcCisrCSAgR1pJ UD0kKEdaSVBfRU5WKSBnemlwIC1kYyAkKGRpc3RkaXIpLnRhci5neiB8ICQoYW1fX3VudGFyKSA7 O1wKKysJKi50YXIuYnoyKikgXAorKwkgIGJ6aXAyIC1kYyAkKGRpc3RkaXIpLnRhci5iejIgfCAk KGFtX191bnRhcikgOztcCisrCSoudGFyLmx6bWEqKSBcCisrCSAgbHptYSAtZGMgJChkaXN0ZGly KS50YXIubHptYSB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi50YXIueHoqKSBcCisrCSAgeHogLWRj ICQoZGlzdGRpcikudGFyLnh6IHwgJChhbV9fdW50YXIpIDs7XAorKwkqLnRhci5aKikgXAorKwkg IHVuY29tcHJlc3MgLWMgJChkaXN0ZGlyKS50YXIuWiB8ICQoYW1fX3VudGFyKSA7O1wKKysJKi5z aGFyLmd6KikgXAorKwkgIEdaSVA9JChHWklQX0VOVikgZ3ppcCAtZGMgJChkaXN0ZGlyKS5zaGFy Lmd6IHwgdW5zaGFyIDs7XAorKwkqLnppcCopIFwKKysJICB1bnppcCAkKGRpc3RkaXIpLnppcCA7 O1wKKysJZXNhYworKwljaG1vZCAtUiBhLXcgJChkaXN0ZGlyKTsgY2htb2QgYSt3ICQoZGlzdGRp cikKKysJbWtkaXIgJChkaXN0ZGlyKS9fYnVpbGQKKysJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAor KwljaG1vZCBhLXcgJChkaXN0ZGlyKQorKwl0ZXN0IC1kICQoZGlzdGRpcikvX2J1aWxkIHx8IGV4 aXQgMDsgXAorKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2NkKSAkKGRpc3RkaXIpL19pbnN0ICYm IHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdgIFwKKysJICAmJiBkY19kZXN0ZGly PSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKKysJICAmJiBhbV9fY3dkPWBwd2RgIFwK KysJICAmJiAkKGFtX19jZCkgJChkaXN0ZGlyKS9fYnVpbGQgXAorKwkgICYmIC4uL2NvbmZpZ3Vy ZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAgICQoRElT VENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkdmkgXAorKwkgICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBp bnN0YWxsIFwKKysJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAor KwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5zdGFsbCBcCisrCSAgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19pbnN0YWxsX2Jh c2UiIFwKKysJICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sgXAorKwkgICYmIGNobW9kIC1SIGEt dyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKKysJICAmJiAoeyBcCisrCSAgICAgICAoY2QgLi4vLi4g JiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIiKSBcCisrCSAgICAgICAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rlc3RkaXIiIGluc3RhbGwgXAorKwkg ICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiB1 bmluc3RhbGwgXAorKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0i JCRkY19kZXN0ZGlyIiBcCisrCSAgICAgICAgICAgIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQk ZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCisrCSAgICAgIH0gfHwgeyBybSAtcmYg IiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkgXAorKwkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGly IiBcCisrCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdCBcCisrCSAgJiYgcm0gLXJm ICQoRElTVF9BUkNISVZFUykgXAorKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3Rj bGVhbmNoZWNrIFwKKysJICAmJiBjZCAiJCRhbV9fY3dkIiBcCisrCSAgfHwgZXhpdCAxCisrCSQo YW1fX3JlbW92ZV9kaXN0ZGlyKQorKwlAKGVjaG8gIiQoZGlzdGRpcikgYXJjaGl2ZXMgcmVhZHkg Zm9yIGRpc3RyaWJ1dGlvbjogIjsgXAorKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3Ig aSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKysJICBzZWQgLWUgMWggLWUgMXMv Li89L2cgLWUgMXAgLWUgMXggLWUgJyQkcCcgLWUgJyQkeCcKKytkaXN0dW5pbnN0YWxsY2hlY2s6 CisrCUAkKGFtX19jZCkgJyQoZGlzdHVuaW5zdGFsbGNoZWNrX2RpciknIFwKKysJJiYgdGVzdCBg JChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCisrCSAgIHx8 IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5pbnN0YWxsOiIgOyBcCisrCSAgICAg ICAgaWYgdGVzdCAtbiAiJChERVNURElSKSI7IHRoZW4gXAorKwkgICAgICAgICAgZWNobyAiICAo Y2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKKysJICAgICAgICBmaSA7IFwKKysJICAgICAgICAk KGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIDsgXAorKwkgICAgICAgIGV4aXQgMTsgfSA+ JjIKKytkaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCisrCUBpZiB0ZXN0ICckKHNyY2RpciknID0g LiA7IHRoZW4gXAorKwkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4g ZnJvbSBhIFZQQVRIIGJ1aWxkIiA7IFwKKysJICBleGl0IDEgOyBcCisrCWZpCisrCUB0ZXN0IGAk KGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWVxIDAgXAorKwkgIHx8IHsgZWNo byAiRVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0b3J5IGFmdGVyIGRpc3RjbGVhbjoi IDsgXAorKwkgICAgICAgJChkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMpIDsgXAorKwkgICAgICAg ZXhpdCAxOyB9ID4mMgorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZl CisrYWxsLWFtOiBNYWtlZmlsZSAkKFNDUklQVFMpICQoREFUQSkKKytpbnN0YWxsZGlyczogaW5z dGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVT VERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiAiJChERVNURElSKSQocGtn Y29uZmlnZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRk aXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhl YzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJl Y3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06 IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3Rh bGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2lu c3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0i JChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElO U1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3Qg LXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQ UFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xl YW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklH X0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4g PSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8 IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4t Z2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5l cnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNw ZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJ TEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVj dXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHlj bGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgJChh bV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFu LWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGlidG9vbCBcCisrCWRp c3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0 bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2 ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLW00ZGF0YURBVEEg aW5zdGFsbC1wa2djb25maWdEQVRBCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1i aW5TQ1JJUFRTCisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2 ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBk ZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFs bC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3Rh bGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vy c2l2ZQorKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKKysJLXJtIC1yZiAk KHRvcF9zcmNkaXIpL2F1dG9tNHRlLmNhY2hlCisrCS1ybSAtZiBNYWtlZmlsZQorK21haW50YWlu ZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKKysKKytt b3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCisrCisrbW9zdGx5Y2xlYW4tYW06IG1v c3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vy c2l2ZQorKworK3BkZi1hbToKKysKKytwczogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisr dW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgXAorKwl1 bmluc3RhbGwtbTRkYXRhREFUQSB1bmluc3RhbGwtcGtnY29uZmlnREFUQQorKworKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKKysKKysu UEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENU QUdTIEdUQUdTIFwKKysJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjdGFncyBjdGFncy1yZWN1cnNpdmUg ZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKKysJZGlzdC1nemlwIGRpc3QtbHptYSBkaXN0LXNo YXIgZGlzdC10YXJaIGRpc3QteHogZGlzdC16aXAgXAorKwlkaXN0Y2hlY2sgZGlzdGNsZWFuIGRp c3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MgZGlz dGNsZWFuY2hlY2sgZGlzdGRpciBkaXN0dW5pbnN0YWxsY2hlY2sgZHZpIFwKKysJZHZpLWFtIGh0 bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1i aW5TQ1JJUFRTIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBc CisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIFwKKysJaW5z dGFsbC1tNGRhdGFEQVRBIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIFwK KysJaW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxs LXN0cmlwIFwKKysJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0 YWxsZGlycy1hbSBcCisrCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmlj IG1vc3RseWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29s IHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1 bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtYmluU0NSSVBUUyB1bmluc3RhbGwtbG9jYWwgdW5p bnN0YWxsLW00ZGF0YURBVEEgXAorKwl1bmluc3RhbGwtcGtnY29uZmlnREFUQQorKworK0BTRVRf TUFLRUAKKysKKysjIFRhcmdldHMKKyt1bmluc3RhbGwtbG9jYWw6CisrCXJtIC1yZiAkKERFU1RE SVIpJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKysKKytkaXN0LWh0bWw6CisrCSQoTUFLRSkgLUMg ZG9jIGRpc3QtaHRtbAorKworK3NuYXBzaG90OiBzbmFwc2hvdC1zcmMgc25hcHNob3QtaHRtbAor KworK3NuYXBzaG90LXNyYzoKKysgICAgICAgICQoTUFLRSkgZGlzdCBkaXN0ZGlyPUBQQUNLQUdF X1RBUk5BTUVALWBkYXRlICsiJVklbSVkImAKKysKKytzbmFwc2hvdC1odG1sOgorKwkkKE1BS0Up IC1DIGRvYyBkaXN0LWh0bWwgaHRtbF90YXJuYW1lPUBQQUNLQUdFX1RBUk5BTUVALWh0bWwtZG9j LWBkYXRlICsiJVklbSVkImAKKysKKyt1cGxvYWQ6IHVwbG9hZC1zcmMgdXBsb2FkLWh0bWwKKysK Kyt1cGxvYWQtc3JjOiBkaXN0CisrCUBVUExPQURfQ09NTUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAt QFZFUlNJT05ALnRhci5neiBcCisrCUBQQUNLQUdFX1RBUk5BTUVALUBWRVJTSU9OQC50YXIuYnoy CisrCisrdXBsb2FkLWh0bWw6IGRpc3QtaHRtbAorKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdF X1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuZ3ogXAorKwlAUEFDS0FHRV9UQVJOQU1F QC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmJ6MgorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwz LjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndp c2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisr Lk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5hbSBz b2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2sv bWFuL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysg c29jaS0zLjAuMF90cmVwMzAwL21hbi9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA5LjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0IEBACisrIyBNYW4gcGFnZXMKKyttYW5fTUFOUyA9 IHNvY2ktY29uZmlnLjEKKysKKytFWFRSQV9ESVNUID0gJChtYW5fTUFOUykKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL21hbi9N YWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbgkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4v TWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAg KzEsNDk0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZy b20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChD KSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAor KyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVy bWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgor KworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRp cikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACisr cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4 ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxf SU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFM X1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgor K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrc3ViZGly ID0gbWFuCisrRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01h a2VmaWxlLmluCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0 ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNM T0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFE RVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9 CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMg PQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQo c3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBc CisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAk JHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9i YXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBm b3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJz dHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBc CisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2Vk ICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1te L10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZp bGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQo YW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQk Ml0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmls ZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQg JyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2Vk ICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK21hbjFkaXIgPSAkKG1hbmRpcikvbWFu MQorK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChtYW4xZGlyKSIKKytOUk9GRiA9IG5y b2ZmCisrTUFOUyA9ICQobWFuX01BTlMpCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChE SVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9D QUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZA CisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FX SyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJ TUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBA Qk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NU UkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0g QEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhP Tl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09T VF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lP TiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAK KytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NA CisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBA Q1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklU X1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENY WENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NA CisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERF UERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNI T19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisr RUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytH RU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQ ID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxM X0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1ND UklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFM TF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJP QkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytM SVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisr TUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFH UyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxf RElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9W RVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAK KytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9 IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AK KytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lf VkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2 NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9 IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BB Q0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNL QUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRI X1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklH ID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AK KytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFH UyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVT UUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxF QVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hF TExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJ X1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVS SUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5E QAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAor K2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3Bf YnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0Mg PSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0g QGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRp bmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2Ft X190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBi aW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisr YnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92 ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIg PSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRp ZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisr ZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9 IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9h bGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBA aG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxk aXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytp bnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGly ID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxv Y2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBs dF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGlu Y2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9 IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9u YW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBA c2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBz cmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJn ZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9i dWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorKwor KyMgTWFuIHBhZ2VzCisrbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCisrRVhUUkFfRElTVCA9ICQo bWFuX01BTlMpCisrYWxsOiBhbGwtYW0KKysKKysuU1VGRklYRVM6CisrJChzcmNkaXIpL01ha2Vm aWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJ QGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGlu IFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0 ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhp dCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGly KSAmJiAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUKKysuUFJF Q0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0 YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwll c2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgor KworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9v bDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3RhbGwtbWFuMTogJChtYW5fTUFOUykKKysJ QCQoTk9STUFMX0lOU1RBTEwpCisrCXRlc3QgLXogIiQobWFuMWRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKG1hbjFkaXIpIgorKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIg fHwgZXhpdCAwOyBcCisrCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBc CisrCWwyPSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUg fCBcCisrCSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKKysJfSB8IHdoaWxlIHJlYWQgcDsg ZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBm aTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKKysJZG9uZSB8IFwKKysJc2Vk IC1lICduO3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCisr CSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwK KysJc2VkICdOO047cyxcbiwgLGcnIHwgeyBcCisrCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFz ZSBpbnN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9 IiQkbGlzdCAkJGZpbGUiOyBlbHNlIFwKKysJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQk ZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCisrCSAgICAkKElOU1RBTExf REFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87 IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRp IjsgZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwK KysJICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKKysJICAgIGVjaG8gIiAkKElOU1RBTExfREFU QSkgJCRmaWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAorKwkgICAgJChJTlNUQUxMX0RB VEEpICQkZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAorKwlk b25lOyB9CisrCisrdW5pbnN0YWxsLW1hbjE6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBs aXN0PScnOyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKKysJZmlsZXM9YHsgZm9y IGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCisrCWwyPSckKG1hbl9NQU5TKSc7 IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCisrCSAgc2VkIC1uICcvXC4x W2Etel0qJCQvcCc7IFwKKysJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteMV1b MC05YS16XSokJCwxLDt4JyBcCisrCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5z Zm9ybSk7RztzLFxuLC4sJ2A7IFwKKysJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCisrCSAgZWNo byAiICggY2QgJyQoREVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwK KysJICBjZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KKyt0YWdz OiBUQUdTCisrVEFHUzoKKysKKytjdGFnczogQ1RBR1MKKytDVEFHUzoKKysKKysKKytkaXN0ZGly OiAkKERJU1RGSUxFUykKKysJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0 aGVuIFwKKysJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYg JCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgICAgaWYgdGVzdCAt ZiAiJCRkJCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAorKwkg IGlmIHRlc3QgLW4gIiQkbGlzdCIgJiYgXAorKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVx dWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCisr CSAgICBlY2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2lu ZyBoZWxwMm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAorKwkgICAgZ3JlcCAtbCAnYWIg aGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQg J3MvXi8gICAgICAgICAvJyA+JjI7IFwKKysJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwg aW5zdGFsbCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+ JjI7IFwKKysJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xl YW4nIHdpbGwgcmVtb3ZlIHRoZW0iID4mMjsgXAorKwkgICAgZXhpdCAxOyBcCisrCSAgZWxzZSA6 OyBmaTsgXAorKwllbHNlIDo7IGZpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8g IiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0 PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBk byBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7 dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7 dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVj aG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikv fDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlm b3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0 ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYg dGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBz ZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQk ZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0 aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIi IHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAh IC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAg ICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3Ag LXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAor KwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLWFtCisr YWxsLWFtOiBNYWtlZmlsZSAkKE1BTlMpCisraW5zdGFsbGRpcnM6CisrCWZvciBkaXIgaW4gIiQo REVTVERJUikkKG1hbjFkaXIpIjsgZG8gXAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElS X1ApICIkJGRpciI7IFwKKysJZG9uZQorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4 ZWM6IGluc3RhbGwtZXhlYy1hbQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5p bnN0YWxsOiB1bmluc3RhbGwtYW0KKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0 YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBc CisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RB TExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBl Y2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAor K21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4t Z2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChD T05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29t bWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVs ZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisr Y2xlYW46IGNsZWFuLWFtCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9v bCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtZiBN YWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKKysKKytk dmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraHRtbC1hbToK KysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGlu c3RhbGwtbWFuCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1k dmktYW06CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1o dG1sLWFtCisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1p bmZvLWFtCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1h bjEKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToK KysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytp bnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1h bQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0g bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFt CisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGli dG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1hbQorKworK3Bz LWFtOgorKworK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgorKworK3VuaW5zdGFsbC1tYW46 IHVuaW5zdGFsbC1tYW4xCisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKwor Ky5QSE9OWTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNs ZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxp YnRvb2wgZGlzdGRpciBkdmkgXAorKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBp bnN0YWxsIGluc3RhbGwtYW0gXAorKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3Rh bGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKKysJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKKysJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5m by1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBk Zi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxj aGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1h aW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdW5pbnN0YWxs IHVuaW5zdGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCisrCisrCisrIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv bWFuL3NvY2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCist LS0gc29jaS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3NvY2ktY29uZmln LjEJMjAwOS0wNC0xNiAxOTozNzowOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMzkgQEAK KysuVEggU09DSSAxICIyOCBNYXJjaCAyMDA5IgorKy5TSCBOQU1FCisrc29jaS1jb25maWcgLSBz Y3JpcHQgdG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBvZiB0aGUgaW5z dGFsbGVkIFNPQ0kgbGlicmFyeQorKy5TSCBTWU5PUFNJUworKy5CIHNvY2ktY29uZmlnCisrW1wt XC1wcmVmaXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3NdCisrLlNIIERF U0NSSVBUSU9OCisrLlBQCisrXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNl ZCB0byBjb25maWd1cmUgdG8gZGV0ZXJtaW5lCisrdGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxh Z3MgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCisrYW5kIGxpbmsgcHJvZ3JhbXMgdGhh dCB1c2UgXGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKKyt0byB0aGUgLm00 IG1hY3JvcyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggXGZJU09DSVxm UC4KKysuCisrLlNIIE9QVElPTlMKKysubAorK1xmSXNvY2ktY29uZmlnXGZQIGFjY2VwdHMgdGhl IGZvbGxvd2luZyBvcHRpb25zOgorKy5UUCA4CisrLkIgIFwtXC12ZXJzaW9uCisrUHJpbnQgdGhl IGN1cnJlbnRseSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBcZklTT0NJXGZQIG9uIHRoZSBzdGFuZGFy ZCBvdXRwdXQuCisrLlRQIDgKKysuQiAgXC1cLWxpYnMKKytQcmludCB0aGUgbGlua2VyIGZsYWdz IHRoYXQgYXJlIG5lY2Vzc2FyeSB0byBsaW5rIGEgXGZJU09DSVxmUCBwcm9ncmFtLCB3aXRoIGNi bGFzCisrLlRQIDgKKysuQiAgXC1cLWNmbGFncworK1ByaW50IHRoZSBjb21waWxlciBmbGFncyB0 aGF0IGFyZSBuZWNlc3NhcnkgdG8gY29tcGlsZSBhIFxmSVNPQ0lcZlAgcHJvZ3JhbS4KKysuVFAg OAorKy5CICBcLVwtcHJlZml4CisrU2hvdyB0aGUgU09DSSBpbnN0YWxsYXRpb24gcHJlZml4Lgor Ky5TSCBTRUUgQUxTTworKy5CUiBndGstY29uZmlnICgxKSwKKysuQlIgZ25vbWUtY29uZmlnICgx KQorKy5TSCBDT1BZUklHSFQKKytDb3B5cmlnaHQgXChjbyAgMjAwOSBEZW5pcyBBcm5hdWQKKysK KytQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNv ZnR3YXJlIGFuZCBpdHMKKytkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91 dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCisrcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdAorK2JvdGggdGhhdCBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbgorK3N1cHBv cnRpbmcgZG9jdW1lbnRhdGlvbi4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9ORVdTIHNv Y2ktMy4wLjBfdHJlcDMwMC9ORVdTCistLS0gc29jaS0zLjAuMF80LXBhY2svTkVXUwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9ORVdT CTIwMDktMDQtMTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDMgQEAKKysK KysqIFdlZCBNYXIgMjYgMjAwOSBSUE0gcmVsZWFzZSBmb3IgdmVyc2lvbiAzLjAuMAorKworZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0gc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUu YW0JMjAwOS0wNC0yOCAyMzoxNToxNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOSBAQAor K2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKysjIyBTb3VyY2UgZGly ZWN0b3J5CisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NVQkRJ UlMgPSBATVlTUUxfRElSU0AgQFBPU1RHUkVTUUxfRElSU0AgQE9SQUNMRV9ESVJTQAorKworK0VY VFJBX0RJU1QgPQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFr ZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuaW4KKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL01ha2VmaWxlLmluCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BA IC0wLDAgKzEsNjE3IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4x MS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJp Z2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAy MDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVl IHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3 aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVk LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRl bnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQ T1NFLgorKworK0BTRVRfTUFLRUAKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQo ZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tB R0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAk KGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04r Ln0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxf c2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytp bnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQo SU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytO T1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6Cisr Tk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxM ID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisr RElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmlu IFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2JhY2tl bmRzCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAor KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisr CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9N NCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09O RklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JF Q1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vy c2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBc CisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWlu c3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2 ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1y ZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlc CisrICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1f UkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisr CSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBD VEFHUyBcCisrCWRpc3RkaXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1Rf U1VCRElSUyA9ICQoU1VCRElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAor KyAgZGlyMD1gcHdkYDsgXAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBc CisrICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14v XSpcKSQkLFwxLCc7IFwKKysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hp bGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNl ZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRo ZW4gXAorKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysg ICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAor KyAgICAgIGVsc2UgXAorKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIk JHNlZF9maXJzdCJgOyBcCisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7 IHRoZW4gXAorKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9y ZXN0ImA7IFwKKysgICAgICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBc CisrICAgICAgICBmaTsgXAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysg ICAgICBmaTsgXAorKyAgICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1l ICIkJHNlZF9yZXN0ImA7IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK0FDTE9D QUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVU T01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JP T1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lT VEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0g QEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NU X01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09T VF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BS T0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElC QAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIg PSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1f TElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklU X1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytC T09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBA Q0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9 IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklU X0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJT QAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytD WFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9 IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytE RVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVN UEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0g QEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0g QEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRB ID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAor K0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JB TSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZM QUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBM SUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExU TElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisr TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJ QkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJT QAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQg PSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisr T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9P TEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJT SU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAK KytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVT UUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdS RVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04g PSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0Ug PSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytT SEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK KythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0 X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAK KythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9f cXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisr YmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWls ZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29z QAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJA CisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2Rp ZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94 eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9z dEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisr aG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxk aXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBp bmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9v a0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2Nh bGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKyts dF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGly X3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJA CisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1f dHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAor K3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisr c3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2Fs aWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVm aXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9z cmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IEBNWVNRTF9E SVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNACisrRVhUUkFfRElTVCA9IAorK2Fs bDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46 ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChh bV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5k cy9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVU T01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxl CisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKworK21vc3RseWNsZWFu LWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAu bGlicyBfbGlicworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9z dGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScg d2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisrIyBUbyBjaGFuZ2UgdGhlIHZh bHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAor KyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBj b25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8g YmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7CisrIyAoMikgb3RoZXJ3aXNlLCBw YXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KKyskKFJF Q1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYg aW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0t WyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsg XAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBz Ly1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAgICBkb3Rfc2Vlbj15ZXM7IFwK KysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisrCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAorKwkgIHx8 IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAi bm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8 IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKworKyQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGluIFwKKysJICBkaXN0Y2xlYW4t KiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCisrCSAg KikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisrCXJldj0nJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsg ZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7 IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKKysJICBlY2hvICJNYWtpbmcg JCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisrCSAgZWxzZSBcCisr CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisrCSAgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAor KwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgorK3Rh Z3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9uZQorK2N0YWdzLXJlY3Vyc2l2 ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VS Q0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisr dGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCXNl dCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAt LXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1l dGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJZWxzZSBcCisrCSAgaW5jbHVk ZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsgXAorKwlmaTsgXAorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RB R1MgfHwgXAorKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3Vi ZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJ aWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJ ICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVz dCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VU QUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkg IGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQo RVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3Rh Z3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChD VEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdW5p cXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdk YCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQo R1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1Mg SUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxF UykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK KysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc CisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNk aXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAt ZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmls ZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3Qg LWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQor KwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8k JHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorKwlAbGlz dD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsg ZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBc CisrCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZGlyMT0kJHN1YmRpcjsgZGly Mj0iJCh0b3BfZGlzdGRpcikiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAg bmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIg ZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisrCSAgICBlY2hvICIgICAgIGFtX19yZW1v dmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTog ZGlzdGRpcikiOyBcCisrCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKKysJICAgICAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3Bf ZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKKysJCWFtX19y ZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKKysJCWFtX19z a2lwX21vZGVfZml4PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwKKysJICAgICAgfHwgZXhpdCAx OyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2st cmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZQorK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1y ZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKytpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQor K2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKwor K2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RB TExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBc CisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dS QU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVy aWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMp CisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFU SF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50 YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBm b3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1h eSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5U QUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVh bjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGli dG9vbCBtb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQor Kwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5l cmljIGRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgor KworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJl Y3Vyc2l2ZQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0 YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisr CisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxs LXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5z dGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2lu c3RhbGxjaGVjay1hbToKKysKKyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06Cisr CisrcHM6IHBzLXJlY3Vyc2l2ZQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysu TUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3Rh Z3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZl CisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJH RVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xl YW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKKysJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3Rj bGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10 YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBz IGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hl Y2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1h aW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwK KysJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1 cnNpdmUgXAorKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyMg VGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2 YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0 KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9teXNxbC9jb21tb24uY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNw cAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiwxMyBAQAor IC8vCisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRlICJzb2NpLWJhY2tlbmQuaCIK KysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRl IDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWluY2x1ZGUgPHNvY2ktYmFj a2VuZC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNpc282NDY+CisgI2luY2x1ZGUgPGNz dGRsaWI+CisgI2luY2x1ZGUgPGN0aW1lPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFj a2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL215c3FsL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0J MjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysj IyBiYWNrZW5kcy9teXNxbCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysKKytNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisrU1VCRElSUyA9IC4gdGVzdAorKworK2lm IEhBVkVfTVlTUUwKKytsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfbXlzcWwubGEKKysKKytsaWJz b2NpX215c3FsX2xhX1NPVVJDRVM9ICQoYmNrX215c3FsX2hfc291cmNlcykgJChiY2tfbXlzcWxf Y2Nfc291cmNlcykgCisrbGlic29jaV9teXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdT KQorK2xpYnNvY2lfbXlzcWxfbGFfTElCQUREID0KKytsaWJzb2NpX215c3FsX2xhX0xERkxBR1Mg PSBcCisrCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OKQorKworK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zb2NpLW15c3FsLmgKKytlbmRpZgorK2lmIFNPQ0lfSEVBREVSU19CVVJJRUQKKytz b2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsCisrZWxz ZQorK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRl ZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFr ZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDk3 ICswLDAgQEAKKy0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBzcGVjaWZpYyB0byB0aGlz IGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91 ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistTVlT UUxMSUJESVIgPSAtTC91c3IvbGliL215c3FsCistTVlTUUxMSUJTID0gLWxteXNxbGNsaWVudCAt bHoKKy1NWVNRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZS9teXNxbAorLQorLSMgVGhlIHJl c3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW5kZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1l bnQuCistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25v LWxvbmctbG9uZworLUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAtZlBJQworLUlOQ0xVREVESVJT ID0gLUkuLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQorLQorLQorLU9CSkVDVFMgPSBibG9i Lm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCist CXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rv ci11c2UtdHlwZS5vIFwKKy0JY29tbW9uLm8KKy0KKy0KKy1PQkpFQ1RTU08gPSBibG9iLXMubyBm YWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5vIFwKKy0Jc3RhbmRhcmQtaW50by10eXBl LXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50LXMubyBcCistCXZlY3Rvci1pbnRv LXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gY29tbW9uLXMubworLQorLQorLWxpYnNvY2lf bXlzcWwuYSA6ICR7T0JKRUNUU30KKy0JYXIgcnYgJEAgJD8KKy0Jcm0gKi5vCistCistCistYmxv Yi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30KKy0KKy1jb21tb24ubyA6IGNvbW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtD WFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC5v IDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQorLQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtaW50by10eXBlLm8gOiBzdGFu ZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNw cAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXN0 YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5 cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Cist CistdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc2hhcmVkIDogJHtPQkpFQ1RT U099CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9teXNxbC5zbyAke09CSkVDVFNT T30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBibG9iLmNwcAorLQkke0NPTVBJTEVSfSAtYyAt byAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistY29tbW9uLXMubyA6IGNv bW1vbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xV REVESVJTfQorLQorLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKKy0JJHtDT01QSUxFUn0gLWMg LW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXJvdy1pZC1zLm8gOiBy b3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KKy0KKy1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCistCSR7Q09NUElMRVJ9IC1j IC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC1pbnRv LXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAk QCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUt cy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50 LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCist dmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0g LWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoK Ky0Jcm0gLWYgbGlic29jaV9teXNxbC5hIGxpYnNvY2lfbXlzcWwuc28KK2RpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215 c3FsL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAwMDAwICswMTAwCitAQCAt MCwwICsxLDg5OCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEu MSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHlyaWdo dCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAw MiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K KysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50 IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVSUE9T RS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAK Kytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBB VEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9z aF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAk KGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisr SU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1f dHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6Cisr UE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9 IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3Rf dHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChhbV9fcGtnaW5jbHVkZV9IRUFERVJT X0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAk KHNyY2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisr c3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbAorK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIp L2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAorKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKKythbV9f Y29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVO REVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9z aCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKKytD T05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9CisrYW1fX3Zw YXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58 LnxnJ2A7CisrYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKKysgICAgJChzcmNkaXIpLyop IGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKKysgICAgKikg Zj0kJHA7OyBcCisrICBlc2FjOworK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAt ZSAnc3xeLiovfHwnYDsKKythbV9faW5zdGFsbF9tYXggPSA0MAorK2FtX19ub2Jhc2Vfc3RyaXBf c2V0dXAgPSBcCisrICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqfF0vXFxcXCYvZydgCisrYW1fX25vYmFzZV9zdHJpcCA9IFwKKysgIGZvciBwIGluICQk bGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8Igor K2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKKysgIGZvciBw IGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCisrICBzZWQgInN8ICQkc3Jj ZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwn IHwgXAorKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9 IGZpbGVzWyQkMl0gIiAiICQkMTsgXAorKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFs bF9tYXgpKSBcCisrICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZp bGVzWyQkMl0gPSAiIiB9IH0gXAorKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQg ZGlyLCBmaWxlc1tkaXJdIH0nCisrYW1fX2Jhc2VfbGlzdCA9IFwKKysgIHNlZCAnJCQhTjskJCFO OyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCisrICBzZWQgJyQkIU47JCQh TjskJCFOOyQkIU47cy9cbi8gL2cnCisrYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxp YmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKytMVExJQlJBUklFUyA9ICQobGli X0xUTElCUkFSSUVTKQorK2xpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTID0KKythbV9fbGli c29jaV9teXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc29jaS1teXNxbC5oIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAg XAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKKysJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKythbV9fb2Jq ZWN0c18xID0KKythbV9fb2JqZWN0c18yID0gbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIGxpYnNv Y2lfbXlzcWxfbGEtY29tbW9uLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGxp YnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxv IFwKKysJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAorKwlsaWJzb2Np X215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKKysJbGlic29jaV9teXNxbF9sYS1zdGF0 ZW1lbnQubG8gXAorKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gXAorKwls aWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbworK0BIQVZFX01ZU1FMX1RSVUVAYW1f bGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSBcCisrQEhBVkVfTVlT UUxfVFJVRUAJJChhbV9fb2JqZWN0c18yKQorK2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUyA9ICQo YW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfbXlzcWxfbGFfTElOSyA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdT KSAtLW1vZGU9bGluayAkKENYWExEKSBcCisrCSQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfbXlzcWxfbGFfTERGTEFHUykgJChMREZMQUdTKSAt byAkQAorK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCA9IC1ycGF0 aCAkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1 aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2Rl cGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK2FtX19tdiA9IG12IC1mCisr Q1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZM QUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJ TksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykg JChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytDT01QSUxFID0gJChDQykgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKysJ JChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0xUQ09NUElMRSA9ICQoTElCVE9P TCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9k ZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBc CisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytD Q0xEID0gJChDQykKKytMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykg JChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9 ICQobGlic29jaV9teXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNv Y2lfbXlzcWxfbGFfU09VUkNFU19ESVNUKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vy c2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVjdXJzaXZlIGlu Zm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxsLWR2aS1yZWN1 cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUg aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxs LXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVjay1yZWN1cnNp dmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1yZWN1cnNpdmUg dW5pbnN0YWxsLXJlY3Vyc2l2ZQorK2FtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9ICBcCisr CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKKytIRUFERVJT ID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0 bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNp dmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQo UkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFS R0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VU QUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQor K0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAk KEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBz ZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9d Ki8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2Vk X2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBk byBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBc CisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAi JCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBz ZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRk aXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAg ICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAg ICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRp cjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxz ZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAg ICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBc CisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAg ZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNs dWRlX2RpcikKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBA QVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAor K0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJP T1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJA CisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1Rf SU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9P U1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZ VEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05T X0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBA Qk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAor K0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JP T1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIg PSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9M SUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dT RVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NA CisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBD UFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9D RkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJT ID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAor K0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1P REVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytE RUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAK KytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNI T19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVY RUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxM QAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAor K0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJT QAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAor K0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJf UCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19M SUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJ QlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0g PSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhU ID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NG TEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xF X09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05A CisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFD S0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdF X05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5H QAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9O ID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAK KytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NG TEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNR TF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9T VEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElC QAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0Ug PSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBT T0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9N WVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBA U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9B RF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNf YnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKyth YnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBA YWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFj X2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUg PSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKyth bV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIg PSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVp bGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWls ZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxk ZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBk YXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytk b3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9 IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19v a0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1 ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0 X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGly QAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0 ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxp YmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxv Y2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisr bWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytw ZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5k aXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikg LUkkKHRvcF9zcmNkaXIpCisrYmNrX215c3FsX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5oCisrCisrYmNrX215c3FsX2Nj X3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv YmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Zh Y3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9y b3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z ZXNzaW9uLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAor KworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0 CisrQEhBVkVfTVlTUUxfVFJVRUBsaWJfTFRMSUJSQVJJRVMgPSBsaWJzb2NpX215c3FsLmxhCisr QEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX1NPVVJDRVMgPSAkKGJja19teXNxbF9o X3NvdXJjZXMpICQoYmNrX215c3FsX2NjX3NvdXJjZXMpIAorK0BIQVZFX01ZU1FMX1RSVUVAbGli c29jaV9teXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxfQ0ZMQUdTKQorK0BIQVZFX01ZU1FMX1RS VUVAbGlic29jaV9teXNxbF9sYV9MSUJBREQgPSAKKytASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lf bXlzcWxfbGFfTERGTEFHUyA9IFwKKytASEFWRV9NWVNRTF9UUlVFQAkkKEJPT1NUX0xJQlMpICQo Qk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCisrQEhB VkVfTVlTUUxfVFJVRUAJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQor KworK0BIQVZFX01ZU1FMX1RSVUVAcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZB TFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJ RURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsCisrYWxsOiBhbGwtcmVjdXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNw cCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmls ZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAk KGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICck KGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gg KSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVh azsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAor KwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tl bmRzL215c3FsL01ha2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisr CSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQorKy5QUkVD SU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1 aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3Rh dHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9j b25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVz YWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29u ZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2Rp cikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6 ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Cisr aW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAkKE5PUk1BTF9J TlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikk KGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1uICIkKGxpYmRp cikiIHx8IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYg dGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsgXAorKwkgIGVs c2UgOjsgZmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7IFwKKysJICBl Y2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlzdDIgJyQoREVT VERJUikkKGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9G TEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAorKwl9CisrCisrdW5pbnN0YWxs LWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChsaWJf TFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBp biAkJGxpc3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hvICIgJChMSUJU T09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwg cm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAkKExJQlRPT0wpICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBybSAtZiAiJChE RVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytjbGVhbi1saWJMVExJQlJBUklF UzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChsaWJfTFRMSUJS QVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRv IFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2AiOyBcCisrCSAg dGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAicm0gLWYgXCIkJHtk aXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7 IFwKKysJZG9uZQorK2xpYnNvY2lfbXlzcWwubGE6ICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RT KSAkKGxpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX215c3FsX2xh X0xJTkspICQoYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCkgJChsaWJzb2NpX215c3FsX2xhX09C SkVDVFMpICQobGlic29jaV9teXNxbF9sYV9MSUJBREQpICQoTElCUykKKysKKyttb3N0bHljbGVh bi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0Y2xlYW4tY29tcGlsZToK KysJLXJtIC1mICoudGFiLmMKKysKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVv dGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACisrQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlz cWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLXJvdy1pZC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24u UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90 ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKKysK KysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1N RCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0 b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tT TEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgJDwK KysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQg JEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICck PCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQo REVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENY WENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3BwLmxvOgorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQo REVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9f bXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrbGli c29jaV9teXNxbF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv YmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX215c3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5U cG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf bXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvYmxvYi5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvIC1jIC1vIGxp YnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9u LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtY29tbW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL2NvbW1vbi5jcHAKKysKKytsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAt byBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlRwbyAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9teXNxbF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEt cm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxf bGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1p ZC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtcm93LWlk LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9yb3ctaWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9teXNxbF9sYS1yb3ctaWQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEt c2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNx bF9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNl c3Npb24uVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xh LXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXNlc3Npb24uUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXNl c3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCisrCisrbGli c29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5 cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuVHBv ICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5QbG8KKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9t eXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrCisrbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu VHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAkKERFUERJUikv bGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0YW5k YXJkLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10 eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVt ZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcAor K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERF RkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo bGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxf bGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0 YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYg JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50 LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1l bnQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhdGVtZW50LmNwcAorKworK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbzog JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9s YS12ZWN0b3ItaW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWlu dG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Zl Y3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5 cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3Fs X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1p bnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrCisrbGlic29jaV9teXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJz b2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXZlY3Rv ci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAn IG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVz IEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURF UERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAK KytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215 c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisr bW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgor Kwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dp bmNsdWRlX0hFQURFUlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2lu Y2x1ZGVkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKysJ QGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpciki IHx8IGxpc3Q9OyBcCisrCWZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQk cCI7IHRoZW4gZD07IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAiJCRkJCRw IjsgXAorKwlkb25lIHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBmaWxlczsg ZG8gXAorKwkgIGVjaG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChw a2dpbmNsdWRlZGlyKSciOyBcCisrCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysKKyt1bmluc3Rh bGwtcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSck KHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0 PTsgXAorKwlmaWxlcz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAt ZSAnc3xeLiovfHwnYDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNo byAiICggY2QgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAi KSI7IFwKKysJY2QgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVz CisrCisrIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBl bmRlbnQ7IHlvdSBjYW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdv aW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBt YWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYg dGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0 dXMnCisrIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVy YXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRl c2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RB UkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFL RUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBc CisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7 IFwKKysJZG90X3NlZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2 ZS8vYDsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK KysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZh aWxjb207IFwKKysJZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4g XAorKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBc CisrCWZpOyB0ZXN0IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6 CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7 IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAg ICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlk b3Rfc2Vlbj1ubzsgXAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRh aW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSck KFNVQkRJUlMpJyA7OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9 IiQkcmV2IC4iOyBcCisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwK KysJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBp biAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkg ICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2Fs X3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGly ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZh bCAkJGZhaWxjb207IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNp dmU6CisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1 YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgY3RhZ3MpOyBcCisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElT UCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdT CisrCisrVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJ aGVyZT1gcHdkYDsgXAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikg Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1 ZGU7IFwKKysJICBlbXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0t LWluY2x1ZGU7IFwKKysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisr CSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7 IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16 ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4g IiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3Qg MDsgdGhlbiBcCisrCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykg JChFVEFHU19BUkdTKSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisr CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCisrCSAgICAgICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MK KytDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16 ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1Mp ICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytH VEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAm JiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdT KSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBH UlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBp biBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBz b3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc CisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisr CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkg ICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNk aXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3Rk aXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRm aWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSck KERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIp LyQkc3ViZGlyIiBcCisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBc CisrCSAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1Rf U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3Vi ZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRp c3RkaXIpLyQkc3ViZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5l d19kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9k aXN0ZGlyKSI7IFwKKysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rp c3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIk JG5ld19kaXN0ZGlyIiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGly PTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7 IFwKKysJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBcCisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBc CisrCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0 ZGlyPTogXAorKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9m aXg9OiBcCisrCSAgICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBm aTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUK KythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGly czogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4g IiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwK KysJICB0ZXN0IC16ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytp bnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJl Y3Vyc2l2ZQorK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFs bDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc CisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytk aXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4t YW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisr CW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1y bSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVh bi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10 YWdzCisrCisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwt cmVjdXJzaXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2lu Zm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisr CisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFt OgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3Rh bGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysK KytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8t YW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vy c2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVj dXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFp bnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQo REVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1v c3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYt cmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToK KysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtn aW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChS RUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxs LXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVT IGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3Rj bGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlz dGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5m by1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFt IGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3Rh bGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRm IFwKKysJaW5zdGFsbC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBz IFwKKysJaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hl Y2stYW0gXAorKwlpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwK KysJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBp bGUgXAorKwltb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1h bSBwcyBwcy1hbSBcCisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1h bSBcCisrCXVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURF UlMKKysKKytAU0VUX01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdO VSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3Rl bSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6 CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15 c3FsLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc29jaS1teXNxbC5o CistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJ MjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgJMjAwOS0wNC0xNiAxOTozNzowNi4w MDAwMDAwMDAgKzAyMDAKK0BAIC0yMywxMiArMjMsMjMgQEAKKyAjaWZuZGVmIFNPQ0lfTVlTUUxf REVDTAorICMgZGVmaW5lIFNPQ0lfTVlTUUxfREVDTAorICNlbmRpZgorLQorLSNpbmNsdWRlICJz b2NpLWJhY2tlbmQuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysjCWlu Y2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorKy8vCisgI2lmZGVmIF9XSU4zMgorICNp bmNsdWRlIDx3aW5zb2NrLmg+IC8vIFNPQ0tFVAorICNlbmRpZiAvLyBfV0lOMzIKKy0jaW5jbHVk ZSA8bXlzcWwuaD4gLy8gTXlTUUwgQ2xpZW50CisrLy8KKysvLyBNeVNRTCBDbGllbnQKKysjaWYg ZGVmaW5lZChTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8bXlz cWwvbXlzcWwuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8bXlzcWwuaD4KKysjZW5kaWYKKyAjaW5j bHVkZSA8dmVjdG9yPgorIAorIAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvbXlzcWwvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tawkyMDA5LTA0LTE2 IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNCBAQAorK2Jja19teXNxbF9o X3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv Y29tbW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nv Y2ktbXlzcWwuaAorK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50 LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDEw LTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNC0xNiAxOToz NzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC04LDggKzgsMTQgQEAKKyAKKyAjZGVmaW5lIFNPQ0lf TVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKy0jaW5jbHVkZSA8c29jaS1w bGF0Zm9ybS5oPgorICNpbmNsdWRlICJjb21tb24uaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lf SEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9y bS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrI2VuZGlmCisrLy8K KyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8Y2Fzc2VydD4KKyAjaW5jbHVkZSA8Y3Rp bWU+CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0wNSAyMjoyNTo0MC4wMDAwMDAwMDAgKzAyMDAKK0BA IC05LDcgKzksMTIgQEAKKyAjZGVmaW5lIFNPQ0lfTVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNv Y2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAiY29tbW9uLmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZv cm0uaD4KKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBp bmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxz b2NpLXBsYXRmb3JtLmg+CisrI2VuZGlmCisgLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5j bHVkZSA8bGltaXRzPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5hbQkyMDEwLTAxLTIzIDE0OjQzOjE4LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSwx OCBAQAorKyMjIGJhY2tlbmQvbXlzcWwvdGVzdCBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRv cF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsK KysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisraWYgUlVOX1RFU1RT CisrICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsCisrZW5kaWYKKysKKyt0ZXN0X215c3Fs X1NPVVJDRVMgPSAkKG15c3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X215c3FsX0NYWEZMQUdT ID0gJChCT09TVF9DRkxBR1MpCisrdGVzdF9teXNxbF9MREFERCA9CisrdGVzdF9teXNxbF9MREZM QUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisr CQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9saWJzb2NpX215c3FsLmxhIFwK KysJCSQoTVlTUUxfTElCUykKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQobXlz cWxfdGVzdF9oX3NvdXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0 NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCitAQCAtMSwyMiArMCwwIEBACistIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgc3Bl Y2lmaWMgdG8gdGhpcyBiYWNrZW5kIGFuZCB0aGVpciBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQg ZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGlu Z2x5LgorLQorLU1ZU1FMTElCRElSID0gLUwvdXNyL2xpYi9teXNxbAorLU1ZU1FMTElCUyA9IC1s bXlzcWxjbGllbnQgLWx6CistTVlTUUxJTkNMVURFRElSID0gLUkvdXNyL2luY2x1ZGUvbXlzcWwK Ky0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgdGFy Z2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAt cGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1JTkNMVURFRElSUyA9IC1JLi4gLUkuLi8uLi8uLi9j b3JlICR7TVlTUUxJTkNMVURFRElSfQorLUxJQkRJUlMgPSAtTC4uIC1MLi4vLi4vLi4vY29yZSAk e01ZU1FMTElCRElSfQorLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfbXlzcWwgLWxkbCAke01Z U1FMTElCU30KKy0KKy0KKy10ZXN0LW15c3FsIDogdGVzdC1teXNxbC5jcHAKKy0JJHtDT01QSUxF Un0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9 CistCistCistY2xlYW4gOgorLQlybSAtZiB0ZXN0LW15c3FsCitkaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4KKy0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9i YWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTEuMDAwMDAw MDAwICswMTAwCitAQCAtMCwwICsxLDU1OCBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAK KysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs IDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZp bGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK KysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ LCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBB UlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAor K3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGlu Y2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9 IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9E QVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGlu c3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5T VEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJh bnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9T VF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoK KytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJp cGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3Rf bXlzcWwkKEVYRUVYVCkKKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QKKytBQ0xP Q0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9 ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25m aWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3Ny Y2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29s Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lv bi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2Rp cikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9k ZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5z dGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxk ZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMgPQorK1BST0dSQU1TID0gJChub2luc3RfUFJPR1JBTVMpCisrYW1fX29iamVj dHNfMSA9IHRlc3RfbXlzcWwtdGVzdC1teXNxbC4kKE9CSkVYVCkKKythbV90ZXN0X215c3FsX09C SkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV90ZXN0 X215c3FsX09CSkVDVFMpCisrdGVzdF9teXNxbF9ERVBFTkRFTkNJRVMgPQorK3Rlc3RfbXlzcWxf TElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElC VE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpIFwK KysJJChDWFhGTEFHUykgJCh0ZXN0X215c3FsX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytE RUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisr ZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVw ZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK2FtX19tdiA9IG12IC1mCisrQ1hYQ09NUElMRSA9ICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09N UElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhG TEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wp IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2Rl PWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBc CisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJDRVMpCisr RElTVF9TT1VSQ0VTID0gJCh0ZXN0X215c3FsX1NPVVJDRVMpCisrRVRBR1MgPSBldGFncworK0NU QUdTID0gY3RhZ3MKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykg JChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9 IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVS ID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytC T09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9P U1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lT VEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisr Qk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJ QkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09T VF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9P U1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBC T09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFM SVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisr Qk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIg PSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBC T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZF UlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9O X0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBD RkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NG TEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJ R0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBD UFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERF UE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cg PSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1V VElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19D QAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JF UEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFS WV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJ TlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNU QUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RB TExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dS QU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JK U0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AK KytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBN QUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NG TEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FM X0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlT UUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBA T0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJT QAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lf TERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9S QUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRA CisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVH UkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcg PSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAK KytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0g QFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklH QAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxf RElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVT UUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAor K1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0g QFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAg PSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9 IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9 IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKyth YnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AK KythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJ TkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1f X2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9f dGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWls ZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBA YnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWls ZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAor K2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2Nk aXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZp ZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4 QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3Rf YWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hv c3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRl ZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBA aW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAor K2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xv Y2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFu ZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBv bGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytw cm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIg PSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hh cmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNj b25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0 b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRv cF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAt SSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytteXNxbF90ZXN0X2hfc291cmNlcyA9 IAorK215c3FsX3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmls ZS5pbgorK3Rlc3RfbXlzcWxfU09VUkNFUyA9ICQobXlzcWxfdGVzdF9jY19zb3VyY2VzKQorK3Rl c3RfbXlzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKKyt0ZXN0X215c3FsX0xEQUREID0g CisrdGVzdF9teXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29yZS9saWJzb2Np X2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5kcy9teXNxbC9s aWJzb2NpX215c3FsLmxhIFwKKysJCSQoTVlTUUxfTElCUykKKysKKythbGw6IGFsbC1hbQorKwor Ky5TVUZGSVhFUzoKKysuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFr ZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3Ig ZGVwIGluICQ/OyBkbyBcCisrCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisr CSAgICAqJCRkZXAqKSBcCisrCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAt ZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7 IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYg JChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlJzsgXAor KwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmlsZQorK01h a2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAgICBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBc CisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAu L2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKKysJ ICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJk aXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RB VFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFt X19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRf ZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKytjbGVhbi1ub2luc3RQUk9H UkFNUzoKKysJQGxpc3Q9JyQobm9pbnN0X1BST0dSQU1TKSc7IHRlc3QgLW4gIiQkbGlzdCIgfHwg ZXhpdCAwOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisrCXJtIC1mICQkbGlzdCB8fCBl eGl0ICQkPzsgXAorKwl0ZXN0IC1uICIkKEVYRUVYVCkiIHx8IGV4aXQgMDsgXAorKwlsaXN0PWBm b3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgJ3MvJChFWEVFWFQpJCQv LydgOyBcCisrCWVjaG8gIiBybSAtZiIgJCRsaXN0OyBcCisrCXJtIC1mICQkbGlzdAorK3Rlc3Rf bXlzcWwkKEVYRUVYVCk6ICQodGVzdF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlzcWxfREVQRU5E RU5DSUVTKSAKKysJQHJtIC1mIHRlc3RfbXlzcWwkKEVYRUVYVCkKKysJJCh0ZXN0X215c3FsX0xJ TkspICQodGVzdF9teXNxbF9PQkpFQ1RTKSAkKHRlc3RfbXlzcWxfTERBREQpICQoTElCUykKKysK Kyttb3N0bHljbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi4kKE9CSkVYVCkKKysKKytkaXN0Y2xl YW4tY29tcGlsZToKKysJLXJtIC1mICoudGFiLmMKKysKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlBvQGFtX19x dW90ZUAKKysKKysuY3BwLm86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkg LU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBv CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9 JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMg LW8gJEAgJDwKKysKKysuY3BwLm9iajoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQ QVRIX1cpICckPCdgCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKKysKKysuY3Bw LmxvOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAt TVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8 CisrCisrdGVzdF9teXNxbC10ZXN0LW15c3FsLm86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9t eXNxbC10ZXN0LW15c3FsLm8gLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1t eXNxbC5UcG8gLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5Qbwor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215 c3FsLXRlc3QtbXlzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQodGVzdF9teXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVz dF9teXNxbC10ZXN0LW15c3FsLm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcAorKworK3Rlc3Rf bXlzcWwtdGVzdC1teXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9teXNxbC10ZXN0 LW15c3FsLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRw byAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQ QVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3Fs LmNwcCc7IGVsc2UgJChDWUdQQVRIX1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBmaWAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuVHBvICQoREVQ RElSKS90ZXN0X215c3FsLXRlc3QtbXlzcWwuUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qv dGVzdC1teXNxbC5jcHAnIG9iamVjdD0ndGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaicgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9teXNx bF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iaiBg aWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1t eXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIp LyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJzsg ZmlgCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1s aWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrSUQ6ICQoSEVBREVSUykgJChTT1VS Q0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtpZCAtZklEICQkdW5pcXVlCisr dGFnczogVEFHUworKworK1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBF TkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJl PWBwd2RgOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisrCSAg ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc CisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAgICQk dW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogICQoSEVB REVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVT KSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc CisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKKysJ ICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdT KSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVyZT1gJChhbV9fY2QpICQodG9w X2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCisr CSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgorKworK2Rpc3RjbGVhbi10YWdz OgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncworKworK2Rp c3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIk KHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJbGlzdD0n JChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8g ZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3Qi IFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3Qi YDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hv ICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7 cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBcCisrCWVzYWM7IFwKKysJZm9y IGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVz dCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAorKwkgIGlmIHRl c3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2Vk IC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZp bGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAg aWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhl biBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8 fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAt cGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisrCSAgICBmaTsgXAorKwkgICAg Y3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgIGVs c2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGNwIC1w ICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBleGl0IDE7IFwKKysJ ICBmaTsgXAorKwlkb25lCisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1hbQorK2Fs bC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykKKytpbnN0YWxsZGlyczoKKytpbnN0YWxsOiBpbnN0 YWxsLWFtCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KKytpbnN0YWxsLWRhdGE6IGlu c3RhbGwtZGF0YS1hbQorK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCisrCisraW5zdGFsbC1hbTog YWxsLWFtCisrCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1kYXRhLWFtCisrCisraW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KKytpbnN0YWxsLXN0 cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNU UklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQo U1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVy aWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3Jj ZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8 IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLWFtCisrCisrY2xl YW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBc CisrCW1vc3RseWNsZWFuLWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tYW0KKysJLXJtIC1y ZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNsZWFuLWFt IGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLXRhZ3MK KysKKytkdmk6IGR2aS1hbQorKworK2R2aS1hbToKKysKKytodG1sOiBodG1sLWFtCisrCisraHRt bC1hbToKKysKKytpbmZvOiBpbmZvLWFtCisrCisraW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEt YW06CisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCisrCisraW5zdGFsbC1kdmktYW06 CisrCisraW5zdGFsbC1leGVjLWFtOgorKworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFt CisrCisraW5zdGFsbC1odG1sLWFtOgorKworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFt CisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgorKworK2luc3RhbGwtcGRm OiBpbnN0YWxsLXBkZi1hbQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGlu c3RhbGwtcHMtYW0KKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysK KyttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERF UERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFu LWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVh bi1hbQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFu LWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtYW0KKysKKytw ZGYtYW06CisrCisrcHM6IHBzLWFtCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOgorKwor Ky5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKKysKKysuUEhPTlk6IENUQUdTIEdUQUdT IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFu LWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgY3RhZ3MgZGlzdGNsZWFuIFwKKysJZGlzdGNs ZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0 Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBc CisrCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3Rh bGwtZHZpIFwKKysJaW5zdGFsbC1kdmktYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBp bnN0YWxsLWh0bWwgXAorKwlpbnN0YWxsLWh0bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5m by1hbSBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwt cHMgaW5zdGFsbC1wcy1hbSBcCisrCWluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxj aGVjay1hbSBpbnN0YWxsZGlycyBcCisrCW1haW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljIG1vc3RseWNsZWFuIFwKKysJbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVh bi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgXAorKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRh Z3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQorKworK0BTRVRfTUFLRUAKKysKKysjbm9kaXN0X3Br Z2luY2x1ZGVfSEVBREVSUyA9ICQobXlzcWxfdGVzdF9oX3NvdXJjZXMpCisrCisrIyBUZWxsIHZl cnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxl cy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBi ZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvbXlzcWwvdGVzdC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29j aS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsMiBAQAorK215c3FsX3Rlc3RfaF9zb3VyY2VzID0KKytteXNxbF90ZXN0X2NjX3NvdXJj ZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90 ZXN0LW15c3FsLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3Rlc3QtbXlzcWwuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTYsOSArNiwx NyBAQAorIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAvLworIAor LSNpbmNsdWRlICJzb2NpLmgiCistI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKy0jaW5jbHVkZSAi dGVzdC9jb21tb24tdGVzdHMuaCIKKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJ RUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgorKyMgICAgICAgaW5jbHVk ZSA8c29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmg+CisrIyAgICAgICBpbmNsdWRlIDxz b2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KKysjZWxzZQorKyMJaW5jbHVkZSA8c29jaS5o PgorKyMJaW5jbHVkZSA8c29jaS1teXNxbC5oPgorKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21t b24tdGVzdHMuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVk ZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorQEAgLTE4LDggKzI2LDE0IEBACisgI2lu Y2x1ZGUgPGN0aW1lPgorICNpbmNsdWRlIDxjaXNvNjQ2PgorICNpbmNsdWRlIDxjc3RkbGliPgor LSNpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KKy0jaW5jbHVkZSA8ZXJybXNnLmg+CisrLy8gTXlT UUwgQ2xpZW50CisrI2lmIGRlZmluZWQoU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCkKKysjICAg ICAgIGluY2x1ZGUgPG15c3FsL215c3FsZF9lcnJvci5oPgorKyMgICAgICAgaW5jbHVkZSA8bXlz cWwvZXJybXNnLmg+CisrI2Vsc2UKKysjICAgICAgIGluY2x1ZGUgPG15c3FsZF9lcnJvci5oPgor KyMgICAgICAgaW5jbHVkZSA8ZXJybXNnLmg+CisrI2VuZGlmCisgCisgdXNpbmcgbmFtZXNwYWNl IHNvY2k7CisgdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOworZGlmZiAtTnVyIHNvY2ktMy4w LjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAJMjAwOS0wNC0x NiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC05LDcgKzksMTMgQEAKKyAjZGVmaW5lIFNP Q0lfTVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAiY29t bW9uLmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysvLworKyNpZiBkZWZpbmVkKFNP Q0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1wbGF0 Zm9ybS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrI2VuZGlmCisr Ly8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAKKyAjaWZkZWYgX01TQ19WRVIKK2RpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNw cAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10 eXBlLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAwOS0w NS0wNSAyMjoyMzoyOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC05LDcgKzksMTIgQEAKKyAjZGVmaW5l IFNPQ0lfTVlTUUxfU09VUkNFCisgI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKKyAjaW5jbHVkZSAi Y29tbW9uLmgiCistI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KKysvLworKyNpZiBkZWZpbmVk KFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1w bGF0Zm9ybS5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+CisrI2VuZGlm CisgLy8KKyAjaW5jbHVkZSA8Y2lzbzY0Nj4KKyAjaW5jbHVkZSA8bGltaXRzPgorZGlmZiAtTnVy IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAorLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQu MDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL2Jsb2IuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCitAQCAtNyw3 ICs3LDEzIEBACisgCisgI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgiCisgI2luY2x1ZGUgImVycm9y LmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysj ZWxzZQorKyMJaW5jbHVkZSA8c3RhdGVtZW50Lmg+CisrI2VuZGlmCisrLy8KKyAjaW5jbHVkZSA8 Y3N0cmluZz4KKyAjaW5jbHVkZSA8c3N0cmVhbT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorZGlmZiAt TnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5hbQorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDI3IEBACisrIyMgYmFja2VuZHMvb3JhY2xlIHN1Yi1kaXJlY3Rv cnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNy Y2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4K KysKKytTVUJESVJTID0gLiB0ZXN0CisrCisraWYgSEFWRV9PUkFDTEUKKytsaWJfTFRMSUJSQVJJ RVM9IGxpYnNvY2lfb3JhY2xlLmxhCisrCisrbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUz0gJChi Y2tfb3JhY2xlX2hfc291cmNlcykgJChiY2tfb3JhY2xlX2NjX3NvdXJjZXMpIAorK2xpYnNvY2lf b3JhY2xlX2xhX0NYWEZMQUdTID0gJChPUkFDTEVfT0NJX0NGTEFHUykKKytsaWJzb2NpX29yYWNs ZV9sYV9MSUJBREQgPQorK2xpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1MgPSBcCisrCSQoQk9PU1Rf TElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIp IFwKKysJJChPUkFDTEVfT0NJX0xERkxBR1MpIFwKKysJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQorKworK25vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmgKKytlbmRpZgorK2lmIFNP Q0lfSEVBREVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZQorK2Vsc2UKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGly KQorK2VuZGlmCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKK2RpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYmFzaWMKKy0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYwky MDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorQEAgLTEsOTUgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJp YWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1 ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0 IGFjY29yZGluZ2x5LgorLQorLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3IvbGliL29yYWNsZS94 ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJsaWMKKy0KKy0jIFRo ZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBvZiB0aGUgdGFyZ2V0IGVudmly b25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50aWMg LVduby1sb25nLWxvbmcKKy1DWFhGTEFHU1NPID0gJHtDWFhGTEFHU30gLWZQSUMKKy1JTkNMVURF RElSUyA9IC1JLi4vLi4vY29yZSAke09SQUNMRUlOQ0xVREVESVJ9CistCistT0JKRUNUUyA9IGJs b2IubyBmYWN0b3J5Lm8gcm93LWlkLm8gc2Vzc2lvbi5vIHN0YW5kYXJkLWludG8tdHlwZS5vIFwK Ky0Jc3RhbmRhcmQtdXNlLXR5cGUubyBzdGF0ZW1lbnQubyB2ZWN0b3ItaW50by10eXBlLm8gdmVj dG9yLXVzZS10eXBlLm8gXAorLQllcnJvci5vCistCistT0JKRUNUU1NPID0gYmxvYi1zLm8gZmFj dG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCistCXN0YW5kYXJkLWludG8tdHlwZS1z Lm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1zLm8gXAorLQl2ZWN0b3ItaW50by10 eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGVycm9yLXMubworLQorLWxpYnNvY2lfb3JhY2xl LmEgOiAke09CSkVDVFN9CistCWFyIHJ2ICRAICQ/CistCXJtICoubworLQorLXNvY2ktb3JhY2xl Lm8gOiBzb2NpLW9yYWNsZS5jcHAgCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7 SU5DTFVERURJUlN9CistCQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistZXJyb3IubyA6IGVycm9yLmNwcAorLQkk e0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLWZhY3Rvcnku byA6IGZhY3RvcnkuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9CistCistcm93LWlkLm8gOiByb3ctaWQuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAKKy0J JHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFy ZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS5vIDog c3RhbmRhcmQtdXNlLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7 SU5DTFVERURJUlN9CistCistc3RhdGVtZW50Lm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLWludG8tdHlw ZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUubyA6IHZlY3Rvci11c2UtdHlw ZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0K Ky0KKy1zaGFyZWQgOiAke09CSkVDVFNTT30KKy0JJHtDT01QSUxFUn0gLXNoYXJlZCAtbyBsaWJz b2NpX29yYWNsZS5zbyAke09CSkVDVFNTT30KKy0Jcm0gKi5vCistCistYmxvYi1zLm8gOiBibG9i LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistZXJyb3Itcy5vIDogZXJyb3IuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0b3J5LXMubyA6IGZhY3Rvcnku Y3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElS U30KKy0KKy1yb3ctaWQtcy5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc2Vzc2lvbi1zLm8gOiBzZXNzaW9u LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJ UlN9CistCistc3RhbmRhcmQtaW50by10eXBlLXMubyA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQor LQorLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistc3Rh dGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVj dG9yLWludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NP fSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci11c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5 cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURF RElSU30KKy0KKy0KKy1jbGVhbiA6CistCXJtIC1mICoubyBsaWJzb2NpX29yYWNsZS5hIGxpYnNv Y2lfb3JhY2xlLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv TWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4JMjAxMC0wMS0y MyAxNDo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsOTAzIEBACisrIyBNYWtlZmls ZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBA Y29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5j LgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91 dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysK KytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisr cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4 ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxf SU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFM X1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgor K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9D T01NT04gPSAkKGFtX19ub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTX0RJU1QpIFwKKysJJChzcmNk aXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3Vy Y2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3ViZGlyID0gc29jaS9iYWNr ZW5kcy9vcmFjbGUKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1f X2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNx bC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25z Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29s ZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0g JChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChB Q0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hF QURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVT ID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0 aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQoc3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwg c2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBcCisrICAgICopIGY9JCRwOzsgXAorKyAgZXNh YzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAkJHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7Cisr YW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9iYXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cn YAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQk cCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJzdHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3Qg PSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBcCisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVj aG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2VkICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAv IC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1teL10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAn QkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZpbGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAk JDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAg IHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQkMl0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9 IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmlsZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9 JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjsk JCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4v IC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElS KSQocGtnaW5jbHVkZWRpcikiCisrTFRMSUJSQVJJRVMgPSAkKGxpYl9MVExJQlJBUklFUykKKyts aWJzb2NpX29yYWNsZV9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19saWJzb2NpX29yYWNsZV9sYV9T T1VSQ0VTX0RJU1QgPSAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vy cm9yLmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xl LmggXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwIFwKKysJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKKysJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysJJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorK2FtX19vYmplY3Rz XzEgPQorK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX29yYWNsZV9sYS1ibG9iLmxvIGxpYnNvY2lf b3JhY2xlX2xhLWVycm9yLmxvIFwKKysJbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbyBsaWJz b2NpX29yYWNsZV9sYS1yb3ctaWQubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1zZXNzaW9uLmxv IFwKKysJbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIFwKKysJbGlic29j aV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS1z dGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwK KysJbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvCisrQEhBVkVfT1JBQ0xFX1RS VUVAYW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkgXAorK0BI QVZFX09SQUNMRV9UUlVFQAkkKGFtX19vYmplY3RzXzIpCisrbGlic29jaV9vcmFjbGVfbGFfT0JK RUNUUyA9ICQoYW1fbGlic29jaV9vcmFjbGVfbGFfT0JKRUNUUykKKytsaWJzb2NpX29yYWNsZV9s YV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChM SUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAorKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0xERkxBR1Mp ICQoTERGTEFHUykgLW8gJEAKKytASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9s YV9ycGF0aCA9IC1ycGF0aCAkKGxpYmRpcikKKytERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19p c3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3Ny Y2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcworK2Ft X19tdiA9IG12IC1mCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKKytDWFhMRCA9 ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFH UykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytDT01Q SUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpIFwKKysJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0xUQ09N UElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZM QUdTKSBcCisrCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdT KSAkKENGTEFHUykKKytDQ0xEID0gJChDQykKKytMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChDQ0xE KSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1v ICRACisrU09VUkNFUyA9ICQobGlic29jaV9vcmFjbGVfbGFfU09VUkNFUykKKytESVNUX1NPVVJD RVMgPSAkKGFtX19saWJzb2NpX29yYWNsZV9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJTSVZFX1RB UkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJ aHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisr CWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYt cmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBc CisrCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX25vYmFzZV9wa2dpbmNs dWRlX0hFQURFUlNfRElTVCA9ICBcCisrCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc29jaS1vcmFjbGUuaAorK0hFQURFUlMgPSAkKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMp CisrUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4t cmVjdXJzaXZlCVwKKysgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1 cnNpdmUKKytBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vy c2l2ZT0pIFwKKysJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBU QUdTIGN0YWdzIENUQUdTIFwKKysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0 YWdzCisrRElTVF9TVUJESVJTID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01N T04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0 aXZpemUgPSBcCisrICBkaXIwPWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8u KiQkLFwxLCc7IFwKKysgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0n cyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwn OyBcCisrICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIk JGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3Qi ICE9ICIuIjsgdGhlbiBcCisrICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwK KysgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRk aXIyIjsgXAorKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0 bGFzdCJgOyBcCisrICAgICAgZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIg fCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9 ICIkJGZpcnN0IjsgdGhlbiBcCisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQg LWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4u LyQkZGlyMiI7IFwKKysgICAgICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZp cnN0IjsgXAorKyAgICAgIGZpOyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGly MSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRp cjIiCisrcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKKytBQ0xPQ0FMID0gQEFD TE9DQUxACisrQU1UQVIgPSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NP TkZACisrQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAor K0FXSyA9IEBBV0tACisrQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRF X1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIg PSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9J T1NUUkVBTVNfTElCQAorK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElC ID0gQEJPT1NUX01QSV9MSUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZ VEhPTl9MSUJACisrQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCQAorK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09T VF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElC ID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NU X1NJR05BTFNfTElCQAorK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytC T09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZS QU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVS U0lPTiA9IEBCT09TVF9WRVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09T VF9XU0VSSUFMSVpBVElPTl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9E RUAKKytDRkxBR1MgPSBAQ0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxB R1NACisrQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcg PSBAQ1BQVU5JVF9DT05GSUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBV TklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0g QENYWENQUEAKKytDWFhERVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxB R1NACisrQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0g QERFUERJUkAKKytEU1lNVVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisr RUNIT19DID0gQEVDSE9fQ0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RA CisrRUdSRVAgPSBARUdSRVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAK KytHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytH UkVQID0gQEdSRVBACisrSU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNU QUxMX0RBVEFACisrSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxM X1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5T VEFMTF9TVFJJUF9QUk9HUkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytM SUJPQkpTID0gQExJQk9CSlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAK KytMSVBPID0gQExJUE9ACisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNA CisrTUFLRUlORk8gPSBATUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NG TEFHUyA9IEBNWVNRTF9DRkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlT UUxfRElSUyA9IEBNWVNRTF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNR TF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJ VEAKKytPQkpEVU1QID0gQE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElS UyA9IEBPUkFDTEVfRElSU0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFH U0AKKytPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9P Q0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RP T0w2NCA9IEBPVE9PTDY0QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9S VCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAor K1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQ QUNLQUdFX1RBUk5BTUVACisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKKytQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKKytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9S RUxFQVNFQAorK1NFRCA9IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBA U0hFTExACisrU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NP Q0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEQAorK1NUUklQID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01N QU5EQAorK1ZFUlNJT04gPSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGly QAorK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190 b3BfYnVpbGRkaXJACisrYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3Rf Q0MgPSBAYWNfY3RfQ0NACisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklO ID0gQGFjX2N0X0RVTVBCSU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xl YWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAor K2FtX190YXIgPSBAYW1fX3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9 IEBiaW5kaXJACisrYnVpbGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNA CisrYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWls ZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFk aXIgPSBAZGF0YWRpckAKKytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0g QGRpZmZfb2tACisrZG9jZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tA CisrZHZpZGlyID0gQGR2aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZp eCA9IEBleGVjX3ByZWZpeEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9z dF9hbGlhcyA9IEBob3N0X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3Mg PSBAaG9zdF9vc0AKKytob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0 bWxkaXJACisraW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAK KytpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGli ZGlyID0gQGxpYmRpckAKKytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0g QGxvY2FsZWRpckAKKytsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9 IEBsdF9FQ0hPQAorK21hbmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29s ZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZp eCA9IEBwcmVmaXhACisrcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9y bV9uYW1lQAorK3BzZGlyID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sg PSBAc2VkX29rQAorK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9 IEBzcmNkaXJACisrc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0 YXJnZXRfYWxpYXNACisrdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3Rv cF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAor K0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX29y YWNsZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL2Vycm9yLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zb2NpLW9yYWNsZS5oCisrCisrYmNrX29yYWNsZV9jY19zb3VyY2VzID0gXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10 eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKKysKKytNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IC4gdGVzdAorK0BIQVZFX09S QUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfb3JhY2xlLmxhCisrQEhBVkVfT1JB Q0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUyA9ICQoYmNrX29yYWNsZV9oX3NvdXJj ZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKKytASEFWRV9PUkFDTEVfVFJVRUBsaWJzb2Np X29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrQEhBVkVfT1JBQ0xF X1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0gCisrQEhBVkVfT1JBQ0xFX1RSVUVAbGli c29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKKytASEFWRV9PUkFDTEVfVFJVRUAJJChCT09TVF9M SUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikg XAorK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9PQ0lfTERGTEFHUykgXAorK0BIQVZFX09S QUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisr QEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAorK0BTT0NJX0hFQURFUlNfQlVS SUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVS U19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZQorK2FsbDogYWxsLXJlY3Vyc2l2ZQorKworKy5TVUZGSVhFUzoKKysuU1VGRklY RVM6IC5jcHAgLmxvIC5vIC5vYmoKKyskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJj ZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCUBmb3IgZGVwIGluICQ/OyBkbyBcCisrCSAg Y2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCisrCSAgICAqJCRkZXAqKSBcCisrCSAg ICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoICkgXAorKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVs c2UgYnJlYWs7IGZpOyB9OyBcCisrCSAgICAgIGV4aXQgMTs7IFwKKysJICBlc2FjOyBcCisrCWRv bmU7IFwKKysJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUnOyBcCisrCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIp ICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmls ZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmlu ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpj b25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAk KGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChT SEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7 OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3Ny Y2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQo dG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNM T0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRf ZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCisrCUAk KE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQo REVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0IC1u ICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc CisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRwIjsg XAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxpc3QyIiB8fCB7 IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQkbGlz dDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFM TF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAorKwl9CisrCisr dW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlz dD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAor Kwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwKKysJICBlY2hv ICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11 bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAkKExJQlRP T0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFsbCBy bSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytjbGVhbi1saWJM VExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYgJChs aWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBpbiAk JGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8J2Ai OyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNobyAicm0g LWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9L3NvX2xv Y2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfb3JhY2xlLmxhOiAkKGxpYnNvY2lfb3JhY2xl X2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfREVQRU5ERU5DSUVTKSAKKysJJChsaWJz b2NpX29yYWNsZV9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoKSAkKGxpYnNv Y2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfTElCQUREKSAkKExJQlMp CisrCisrbW9zdGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlz dGNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJV RUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEt ZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAK KytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1p bnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxv QGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACisrQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9yLXVz ZS10eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1v ICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBv ICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8g LWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cp ICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJ TEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8k Ki5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNv bXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01Q SUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElO Q0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyAtTUQgLU1Q IC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29jaV9v cmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1ibG9iLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyBvYmplY3Q9 J2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xh LWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vy cm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9lcnJvci5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xl X2xhLWVycm9yLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNl PSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgb2JqZWN0PSds aWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAor K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZXJy b3IuY3BwCisrCisrbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJzb2Np X29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gJChERVBE SVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv ZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCisrCisrbGlic29jaV9vcmFjbGVf bGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9v cmFjbGVfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9s YS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAK KytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9s YS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAorKwor K2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvc2Vzc2lvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVfbGEt c2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z ZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1zZXNzaW9uLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3Bw JyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURF UEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAorKworK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBs aWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3Rh bmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlw ZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNs ZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRw byAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRh cmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorKworK2xpYnNvY2lfb3JhY2xl X2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0 ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0ZW1l bnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhdGVt ZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGF0ZW1lbnQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVu dC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29sPXll cyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlE RVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hA CisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf b3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX29yYWNs ZV9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1j IC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9y LWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29j aV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92 ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50 by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvdmVjdG9yLWludG8tdHlwZS5jcHAKKysKKytsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNl LXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10 eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xp YnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAorK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZl Y3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2Ut dHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNs ZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisr bW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgor Kwktcm0gLXJmIC5saWJzIF9saWJzCisraW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6 ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKKysJQCQoTk9STUFMX0lOU1RBTEwpCisrCXRl c3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2lu Y2x1ZGVkaXIpIgorKwlAbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3Qg LW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCisrCSQoYW1fX25vYmFzZV9saXN0KSB8 IHdoaWxlIHJlYWQgZGlyIGZpbGVzOyBkbyBcCisrCSAgeGZpbGVzPTsgZm9yIGZpbGUgaW4gJCRm aWxlczsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRmaWxlIjsgdGhlbiB4ZmlsZXM9IiQkeGZp bGVzICQkZmlsZSI7IFwKKysJICAgIGVsc2UgeGZpbGVzPSIkJHhmaWxlcyAkKHNyY2RpcikvJCRm aWxlIjsgZmk7IGRvbmU7IFwKKysJICB0ZXN0IC16ICIkJHhmaWxlcyIgfHwgeyBcCisrCSAgICB0 ZXN0ICJ4JCRkaXIiID0geC4gfHwgeyBcCisrCSAgICAgIGVjaG8gIiQoTUtESVJfUCkgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyJyI7IFwKKysJICAgICAgJChNS0RJUl9QKSAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRkaXIiOyB9OyBcCisrCSAgICBlY2hvICIgJChJTlNU QUxMX0hFQURFUikgJCR4ZmlsZXMgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyJyI7 IFwKKysJICAgICQoSU5TVEFMTF9IRUFERVIpICQkeGZpbGVzICIkKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKS8kJGRpciIgfHwgZXhpdCAkJD87IH07IFwKKysJZG9uZQorKworK3VuaW5zdGFsbC1u b2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0 PSckKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGly KSIgfHwgbGlzdD07IFwKKysJJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgZmlsZXM9YCQoYW1f X25vYmFzZV9zdHJpcClgOyBcCisrCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAorKwll Y2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1mIiAkJGZpbGVz ICIpIjsgXAorKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJtIC1mICQkZmls ZXMKKysKKysjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRl cGVuZGVudDsgeW91IGNhbiBjZAorKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQg Z29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgorKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2Yg YG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKKysjICgxKSBp ZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0 YXR1cycKKysjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2Vu ZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOworKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUg ZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCisrJChSRUNVUlNJVkVf VEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRN QUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7 IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9u ZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBpZiB0ZXN0 ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgZG90X3NlZW49eWVzOyBcCisrCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBldmFsICQk ZmFpbGNvbTsgXAorKwlkb25lOyBcCisrCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhl biBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7 IFwKKysJZmk7IHRlc3QgLXogIiQkZmFpbCIKKysKKyskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT KToKKysJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFH UzsgZG8gXAorKwkgIGNhc2UgJCRmIGluIFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkg ICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisr CWRvdF9zZWVuPW5vOyBcCisrCWNhc2UgIiRAIiBpbiBcCisrCSAgZGlzdGNsZWFuLSogfCBtYWlu dGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAorKwkgICopIGxpc3Q9 JyQoU1VCRElSUyknIDs7IFwKKysJZXNhYzsgXAorKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAor KwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKKysJICBmaTsgXAorKwlkb25lOyBcCisrCXJl dj0iJCRyZXYgLiI7IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsg XAorKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0 IGluICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisr CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAorKwkgIGVsc2UgXAorKwkgICAgbG9j YWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKKysJICBmaTsgXAorKwkgICgkKGFtX19jZCkgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKKysJICB8fCBl dmFsICQkZmFpbGNvbTsgXAorKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKKyt0YWdzLXJlY3Vy c2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisr CSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCisrCWRvbmUKKytjdGFncy1yZWN1cnNpdmU6CisrCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBjdGFncyk7IFwKKysJZG9uZQorKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChM SVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1Ap ICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAg ICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQk aTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9u ZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBm aWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRB R1MKKysKKytUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFH U19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAor KwloZXJlPWBwd2RgOyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9u KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5j bHVkZTsgXAorKwkgIGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9u PS0taW5jbHVkZTsgXAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwK KysJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdT IjsgXAorKwkgIGZpOyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3Qg LXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAt biAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1n dCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwK KysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFH UworK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1Nf REVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VS Q0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9y IGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRp OyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdL KSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYg KG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3Qg LXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFH UykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKwor K0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkg ICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FS R1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdT IEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBz cmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlz dF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJ ICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3Bz cmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVz IGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJ ICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAg IHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRv IFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVs c2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwK KysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisr CSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZp bGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNy Y2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5k ICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdSty d3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlz dGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8k JGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9 JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVz dCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHRlc3QgLWQgIiQoZGlzdGRp cikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElT VF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRz dWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQo ZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAorKwkgICAg bmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9w X2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld190b3Bf ZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3Rk aXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIp IjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCisrCSAgICAgICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIi IFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCisrCQlhbV9fcmVtb3ZlX2Rp c3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCisrCQlhbV9fc2tpcF9tb2Rl X2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAgICAgIHx8IGV4aXQgMTsgXAorKwkg IGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hlY2s6IGNoZWNrLXJlY3Vyc2l2 ZQorK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQorK2luc3RhbGxk aXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKKytpbnN0YWxsZGlycy1hbToKKysJZm9yIGRpciBp biAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8g XAorKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKKysJZG9uZQor K2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCisraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCisrdW5pbnN0 YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1hbTogYWxsLWFtCisrCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCisrCisr aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCisraW5zdGFsbC1zdHJpcDoKKysJ JChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8 IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSci YCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKwor K2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8 fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8 IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKKysKKytjbGVh bi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIFwK KysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJ LXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKytkaXN0Y2xlYW4tYW06IGNs ZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFu LXRhZ3MKKysKKytkdmk6IGR2aS1yZWN1cnNpdmUKKysKKytkdmktYW06CisrCisraHRtbDogaHRt bC1yZWN1cnNpdmUKKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tcmVjdXJzaXZlCisrCisr aW5mby1hbToKKysKKytpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbm9iYXNlX3BrZ2luY2x1ZGVI RUFERVJTCisrCisraW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3Rh bGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwor KworK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRt bC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0 YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwt cGRmLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3Rh bGwtcHMtcmVjdXJzaXZlCisrCisraW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06 CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJt IC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1j b21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisr cGRmOiBwZGYtcmVjdXJzaXZlCisrCisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysK Kytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyBcCisr CXVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKKysKKysuTUFLRTogJChSRUNVUlNJ VkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwK KysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCisrCisrLlBIT05ZOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFH UyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisr CWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZl IFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKKysJ ZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwg XAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRh IFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwt ZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGlu c3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVTIGlu c3RhbGwtbWFuIFwKKysJaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1w ZGYgaW5zdGFsbC1wZGYtYW0gXAorKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1z dHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFs bGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVj dXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVMgdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUworKworK0BTRVRfTUFLRUAKKysK KysjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBh bGwgdmFyaWFibGVzLgorKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBs ZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorKy5OT0VYUE9SVDoKK2RpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDEwLTAxLTIzIDE0OjQ1 OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9zb2NpLW9yYWNsZS5oCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtMjIsOSArMjIsMTQgQEAKKyAjaWZuZGVmIFNPQ0lfT1JBQ0xFX0RFQ0wKKyAjIGRlZmlu ZSBTT0NJX09SQUNMRV9ERUNMCisgI2VuZGlmCistCistI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5o PgorLSNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgor KyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysvLworKyNpbmNs dWRlIDxvY2kuaD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQorICNpbmNsdWRlIDx2ZWN0b3I+Cisg CisgI2lmZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9v cmFjbGUvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkyMDA5LTA0 LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNCBAQAorK2Jja19vcmFj bGVfaF9zb3VyY2VzID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc29jaS1vcmFjbGUuaAorK2Jja19vcmFjbGVfY2Nfc291cmNlcyA9IFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAgXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFy ZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zdGF0ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBl LmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJk LWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBl LmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsMTAgKzcsMTgg QEAKKyAKKyAjZGVmaW5lIFNPQ0lfT1JBQ0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNs ZS5oIgorLSNpbmNsdWRlICJibG9iLmgiCisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUg InJvd2lkLmgiCistI2luY2x1ZGUgInN0YXRlbWVudC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Cisr IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9zdGF0ZW1lbnQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgor KyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5o PgorKyNlbmRpZgorKy8vCisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgor ICNpbmNsdWRlIDxjc3RyaW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMTAtMDEt MjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2 LjAwMDAwMDAwMCArMDIwMAorQEAgLTcsMTAgKzcsMTggQEAKKyAKKyAjZGVmaW5lIHNvY2lfT1JB Q0xFX1NPVVJDRQorICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJibG9iLmgi CisgI2luY2x1ZGUgImVycm9yLmgiCistI2luY2x1ZGUgInJvd2lkLmgiCistI2luY2x1ZGUgInN0 YXRlbWVudC5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKKysjICAg ICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2Nv cmUvcm93aWQuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KKysj ZWxzZQorKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgorKyMgICAgICAgaW5jbHVkZSA8cm93aWQu aD4KKysjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgorKyNlbmRpZgorKy8vCisgI2luY2x1 ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3RyaW5nPgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5j cHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAK Ky0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3Bw CTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNC0xNiAxOTozNzow Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC05LDcgKzksMTMgQEAKKyAKKyAjaW5jbHVkZSAic29jaS1v cmFjbGUuaCIKKyAjaW5jbHVkZSAiZXJyb3IuaCIKKy0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+ CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVk ZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLWJh Y2tlbmQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUgPGNz dGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDIyIEBACisrIyMgY29yZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAk KHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMu bWsKKysKKytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisraWYgSEFWRV9P UkFDTEUKKysgIFRFU1RfT1JBQ0xFID0gdGVzdF9vcmFjbGUKKysKKytpZiBSVU5fVEVTVFMKKysg IG5vaW5zdF9QUk9HUkFNUyA9ICQoVEVTVF9PUkFDTEUpCisrZW5kaWYKKysKKyt0ZXN0X29yYWNs ZV9TT1VSQ0VTID0gJChvcmFjbGVfdGVzdF9jY19zb3VyY2VzKQorK3Rlc3Rfb3JhY2xlX0NYWEZM QUdTID0gJChCT09TVF9DRkxBR1MpICQoT1JBQ0xFX09DSV9DRkxBR1MpCisrdGVzdF9vcmFjbGVf TERBREQgPQorK3Rlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3Jl L2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKKysJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9saWJzb2NpX29yYWNsZS5sYSBcCisrCQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKKytl bmRpZgorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3Nv dXJjZXMpCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC9NYWtlZmlsZS5iYXNpYworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAg LTEsMjMgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0 aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlv dXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgorLQorLU9S QUNMRUlOQ0xVREVESVIgPSAtSS91c3IvbGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3Qv MTAuMi4wL3NlcnZlci9yZGJtcy9wdWJsaWMgCistT1JBQ0xFTElCRElSID0gLUwvdXNyL2xpYi9v cmFjbGUveGUvYXBwL29yYWNsZS9wcm9kdWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAorLU9SQUNMRUxJ QlMgPSAtbGNsbnRzaCAtbG5uejEwCistCistIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMg aW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KKy0KKy1DT01QSUxFUiA9IGcr KworLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCistSU5DTFVERURJ UlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAke09SQUNMRUlO Q0xVREVESVJ9CistTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9jb3JlICR7T1JBQ0xFTElCRElS fQorLUxJQlMgPSAtbHNvY2lfY29yZSAtbHNvY2lfb3JhY2xlIC1sZGwgLWxib29zdF9kYXRlX3Rp bWUgJHtPUkFDTEVMSUJTfQorLQorLQorLXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFjbGUuY3BwIAor LSMuLi8uLi8uLi9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKKy0JJHtDT01QSUxFUn0gLW8gJEAg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30gJHtMSUJESVJTfSAke0xJQlN9CistCistCist Y2xlYW4gOgorLQlybSAtZiAqLm8gdGVzdC1vcmFjbGUKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAu MF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAw MDAwICswMTAwCitAQCAtMCwwICsxLDU2MiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5 IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAK KysKKysjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwg MjAwMCwgMjAwMSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgs IDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZp bGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMg Z2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwK KysjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNl IGlzIHByZXNlcnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ LCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBB UlRJQ1VMQVIgUFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAor K3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGlu Y2x1ZGVkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9 IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9E QVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGlu c3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5T VEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJh bnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9T VF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoK KytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJp cGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uCisrQEhBVkVfT1JBQ0xFX1RSVUVAQFJVTl9URVNUU19UUlVFQG5vaW5z dF9QUk9HUkFNUyA9ICQoYW1fX0VYRUVYVF8xKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QKKytBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2Fj bG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00 IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRl Lm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChh bV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xP Q0FMX000KQorK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURF UiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0K KytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQorK0BIQVZFX09SQUNMRV9UUlVFQGFtX19FWEVF WFRfMSA9IHRlc3Rfb3JhY2xlJChFWEVFWFQpCisrUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFN UykKKythbV9fdGVzdF9vcmFjbGVfU09VUkNFU19ESVNUID0gIFwKKysJJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAorK2FtX19vYmplY3RzXzEg PSB0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS4kKE9CSkVYVCkKKytASEFWRV9PUkFDTEVfVFJVRUBh bV90ZXN0X29yYWNsZV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rlc3Rfb3JhY2xlX09C SkVDVFMgPSAkKGFtX3Rlc3Rfb3JhY2xlX09CSkVDVFMpCisrdGVzdF9vcmFjbGVfREVQRU5ERU5D SUVTID0KKyt0ZXN0X29yYWNsZV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpICQodGVz dF9vcmFjbGVfQ1hYRkxBR1MpIFwKKysJJChDWFhGTEFHUykgJCh0ZXN0X29yYWNsZV9MREZMQUdT KSAkKExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkk KHRvcF9idWlsZGRpcikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2Nv bmZpZy9kZXBjb21wCisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKythbV9fbXYgPSBt diAtZgorK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykg JChDWFhGTEFHUykKKytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkK KytDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hY RkxBR1MpICQoQU1fTERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrU09VUkNFUyA9ICQo dGVzdF9vcmFjbGVfU09VUkNFUykKKytESVNUX1NPVVJDRVMgPSAkKGFtX190ZXN0X29yYWNsZV9T T1VSQ0VTX0RJU1QpCisrRVRBR1MgPSBldGFncworK0NUQUdTID0gY3RhZ3MKKytESVNURklMRVMg PSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNU KQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytB VVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01B S0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZM QUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09T VF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVB TVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJT QAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJ QiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0g QEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9Q WVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lH TkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09T VF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytC T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RF UE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytD UFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AK KytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQ VU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0g QENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytD WFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBA REVGU0AKKytERVBESVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBC SU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisr RUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAor K0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElC UkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5T VEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9Q Uk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RS SVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFH UyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElC VE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJP QkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1L RElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBN WVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBN WVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAK KytOTUVESVQgPSBATk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JK RVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0g QE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xE RkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9P TCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAor K1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9 IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFD S0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFD S0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwg PSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0g QFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNA CisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FM X1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBN X1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRf TUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVB REVSU19CVVJJRURACisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BP U1RHUkVTUUxfSEVBREVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1B TkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRp ciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3Bf YnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9w X3NyY2RpckAKKythY19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hY QAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9f aW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90 ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9f dW50YXJACisrYmluZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlh cyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0g QGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBA YnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290 ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5f b2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBz X29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hv c3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9z dF9jcHVACisraG9zdF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9y QAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5m b2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9 IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2Rp ckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0 ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9w ID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9 IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0g QHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBz YmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3Rh dGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisr dGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9i dWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGly ID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9w X3NyY2RpcikKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMgPSAKKytvcmFjbGVfdGVzdF9jY19zb3Vy Y2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xl LmNwcAorK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKytASEFWRV9PUkFDTEVf VFJVRUBURVNUX09SQUNMRSA9IHRlc3Rfb3JhY2xlCisrQEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9v cmFjbGVfU09VUkNFUyA9ICQob3JhY2xlX3Rlc3RfY2Nfc291cmNlcykKKytASEFWRV9PUkFDTEVf VFJVRUB0ZXN0X29yYWNsZV9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKSAkKE9SQUNMRV9PQ0lf Q0ZMQUdTKQorK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xEQUREID0gCisrQEhBVkVf T1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv cmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAorK0BIQVZFX09SQUNMRV9UUlVFQAkJJCh0b3BfYnVp bGRkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2xpYnNvY2lfb3JhY2xlLmxhIFwKKytASEFWRV9P UkFDTEVfVFJVRUAJCSQoT1JBQ0xFX09DSV9MREZMQUdTKQorKworK2FsbDogYWxsLWFtCisrCisr LlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQoc3JjZGlyKS9NYWtl ZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKKysJQGZvciBk ZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKKysJ ICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsg XAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlJzsgXAor KwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29j aS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytN YWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3Rh dHVzCisrCUBjYXNlICckPycgaW4gXAorKwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsg XAorKwkgICopIFwKKysJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkg Li9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisr CSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3Vi ZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NU QVRVU19ERVBFTkRFTkNJRVMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChh bV9fY29uZmlndXJlX2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1f TUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200 X2RlcHMpCisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaAorKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6CisrCisrY2xlYW4tbm9pbnN0UFJP R1JBTVM6CisrCUBsaXN0PSckKG5vaW5zdF9QUk9HUkFNUyknOyB0ZXN0IC1uICIkJGxpc3QiIHx8 IGV4aXQgMDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwlybSAtZiAkJGxpc3QgfHwg ZXhpdCAkJD87IFwKKysJdGVzdCAtbiAiJChFWEVFWFQpIiB8fCBleGl0IDA7IFwKKysJbGlzdD1g Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkICdzLyQoRVhFRVhUKSQk Ly8nYDsgXAorKwllY2hvICIgcm0gLWYiICQkbGlzdDsgXAorKwlybSAtZiAkJGxpc3QKKyt0ZXN0 X29yYWNsZSQoRVhFRVhUKTogJCh0ZXN0X29yYWNsZV9PQkpFQ1RTKSAkKHRlc3Rfb3JhY2xlX0RF UEVOREVOQ0lFUykgCisrCUBybSAtZiB0ZXN0X29yYWNsZSQoRVhFRVhUKQorKwkkKHRlc3Rfb3Jh Y2xlX0xJTkspICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0ZXN0X29yYWNsZV9MREFERCkgJChM SUJTKQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKwor K2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNs ZS5Qb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8 CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQ RElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSck PCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENP TVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8g JEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikg JChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdg CisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1N VCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAt YyAtbyAkQCAkPAorKworK3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubyAtTUQgLU1QIC1NRiAkKERFUERJUikv dGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xl Lm8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0 LW9yYWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChERVBESVIp L3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90 ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUubycgbGlidG9v bD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9vcmFj bGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9y YWNsZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKKysKKyt0ZXN0X29yYWNsZS10ZXN0LW9yYWNs ZS5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNs ZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3Rfb3Jh Y2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2Jq IC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gLWMgLW8g dGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhf VykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5j cHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5UcG8gJChE RVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC90ZXN0LW9yYWNsZS5jcHAnIG9iamVjdD0ndGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUub2Jq JyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0 ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9vcmFjbGUtdGVzdC1v cmFjbGUub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAnOyBlbHNlICQoQ1lHUEFU SF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90 ZXN0LW9yYWNsZS5jcHAnOyBmaWAKKysKKyttb3N0bHljbGVhbi1saWJ0b29sOgorKwktcm0gLWYg Ki5sbworKworK2NsZWFuLWxpYnRvb2w6CisrCS1ybSAtcmYgLmxpYnMgX2xpYnMKKysKKytJRDog JChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZv ciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQk aTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFX SykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlm IChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwlta2lk IC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisr CXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXNoaWZ0OyBcCisrCWlmIHRlc3Qg LXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCisrCSAgdGVzdCAt biAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAorKwkgIGlmIHRlc3QgJCQjIC1n dCAwOyB0aGVuIFwKKysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdT KSAkKEVUQUdTX0FSR1MpIFwKKysJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKKysJICBlbHNlIFwK KysJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKKysJICAgICAgJCR1bmlxdWU7IFwKKysJICBmaTsgXAorKwlmaQorK2N0YWdzOiBDVEFH UworK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc CisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBk byBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChz cmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBd ID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZv ciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJH UykkJHVuaXF1ZSIgXAorKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZM QUdTKSAkKENUQUdTX0FSR1MpIFwKKysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJl PWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAk KHRvcF9zcmNkaXIpIFwKKysJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisr CisrZGlzdGNsZWFuLXRhZ3M6CisrCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBH UEFUSCB0YWdzCisrCisrZGlzdGRpcjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3Jj ZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwm L2cnYDsgXAorKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZp bGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQk c3JjZGlyc3RyaXAvfHw7dCIgXAorKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0 b3BfYnVpbGRkaXIpL3w7dCJgOyBcCisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyop ICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7 c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwK KysJZXNhYzsgXAorKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0 IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7 IGZpOyBcCisrCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNo byAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1k ICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQk ZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQg IT0gJChzcmNkaXIpOyB0aGVuIFwKKysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIk KGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQk ZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJ ICAgIGZpOyBcCisrCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwg ZXhpdCAxOyBcCisrCSAgZWxzZSBcCisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIg XAorKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAg IHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisrY2hl Y2s6IGNoZWNrLWFtCisrYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQorK2luc3RhbGxkaXJz OgorK2luc3RhbGw6IGluc3RhbGwtYW0KKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQor K2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCisrdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0K KysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3Rh bGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVj ay1hbQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExf UFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisrCSAgaW5zdGFsbF9zaF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisr CSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1f RU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21vc3RseWNsZWFuLWdlbmVyaWM6 CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2VuZXJpYzoKKysJLXRlc3QgLXog IiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCisr CS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQorKworK21haW50YWlu ZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3Ig bWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSBy ZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10ZXN0IC16ICIkKE1BSU5UQUlO RVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKKytjbGVhbjog Y2xlYW4tYW0KKysKKytjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFu LW5vaW5zdFBST0dSQU1TIFwKKysJbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46IGRpc3Rj bGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3Rj bGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAor KwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6 IGh0bWwtYW0KKysKKytodG1sLWFtOgorKworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgor KworK2luc3RhbGwtZGF0YS1hbToKKysKKytpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KKysK KytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5zdGFsbC1odG1s OiBpbnN0YWxsLWh0bWwtYW0KKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZv OiBpbnN0YWxsLWluZm8tYW0KKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5zdGFsbC1tYW46 CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCisrCisraW5zdGFsbC1wZGYtYW06Cisr CisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQorKworK2luc3RhbGwtcHMtYW06CisrCisraW5z dGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0K KysJLXJtIC1yZiAuLyQoREVQRElSKQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNs ZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5 Y2xlYW46IG1vc3RseWNsZWFuLWFtCisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNv bXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytw ZGY6IHBkZi1hbQorKworK3BkZi1hbToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1 bmluc3RhbGwtYW06CisrCisrLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAorKworKy5Q SE9OWTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1n ZW5lcmljIFwKKysJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0 Y2xlYW4gXAorKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4t bGlidG9vbCBcCisrCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwt YW0gaW5mbyBpbmZvLWFtIFwKKysJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0 YWxsLWRhdGEtYW0gaW5zdGFsbC1kdmkgXAorKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisrCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxs LWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKKysJaW5zdGFsbC1wZGYgaW5zdGFs bC1wZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKKysJaW5zdGFsbC1zdHJpcCBpbnN0 YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKKysJbWFpbnRhaW5lci1jbGVh biBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAorKwltb3N0bHljbGVhbi1j b21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCisrCXBkZiBw ZGYtYW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtF QAorKworKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJj ZXMpCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMubWsKKy0tLSBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3NvdXJjZXMubWsJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYu MDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIgQEAKKytvcmFjbGVfdGVzdF9oX3NvdXJjZXMg PQorK29yYWNsZV90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAx MC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAJMjAwOS0wNC0xNiAxOToz NzowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC01LDkgKzUsMTcgQEAKKyAvLyBodHRwOi8vd3d3LmJv b3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgLy8KKyAKKy0jaW5jbHVkZSAic29jaS5oIgorLSNp bmNsdWRlICJzb2NpLW9yYWNsZS5oIgorLSNpbmNsdWRlICJjb21tb24tdGVzdHMuaCIKKysvLwor KyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvc29jaS5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9iYWNrZW5kcy9vcmFjbGUvc29j aS1vcmFjbGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0 cy5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIwlpbmNsdWRlIDxzb2NpLW9yYWNs ZS5oPgorKyMgICAgICAgaW5jbHVkZSA8dGVzdC9jb21tb24tdGVzdHMuaD4KKysjZW5kaWYKKysv LworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8c3RyaW5nPgorICNpbmNsdWRlIDxj YXNzZXJ0PgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS92ZWN0b3ItaW50by10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xl L3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAw CitAQCAtNyw4ICs3LDE0IEBACisgCisgI2RlZmluZSBzb2NpX09SQUNMRV9TT1VSQ0UKKyAjaW5j bHVkZSAic29jaS1vcmFjbGUuaCIKKy0jaW5jbHVkZSAic3RhdGVtZW50LmgiCisgI2luY2x1ZGUg ImVycm9yLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQorKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3N0YXRlbWVudC5oPgorKyNlbHNlCisrIwlpbmNsdWRlIDxz dGF0ZW1lbnQuaD4KKysjZW5kaWYKKysvLworICNpbmNsdWRlIDxjY3R5cGU+CisgI2luY2x1ZGUg PGNzdGRpbz4KKyAjaW5jbHVkZSA8Y3N0cmluZz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0 LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvY29tbW9uLmNwcAkyMDA5LTA1LTA1IDIyOjMwOjUyLjAwMDAwMDAwMCArMDIwMAor QEAgLTYsNyArNiwxMiBAQAorIC8vCisgCisgI2luY2x1ZGUgImNvbW1vbi5oIgorLSNpbmNsdWRl IDxzb2NpLWJhY2tlbmQuaD4KKysvLworKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQp CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS1iYWNrZW5kLmg+CisrI2Vsc2UKKysj CWluY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgorKyNlbmRpZgorIC8vCisgI2luY2x1ZGUgPGNzdGRs aWI+CisgI2luY2x1ZGUgPGNzdGRpbz4KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsMzAgQEAKKysjIyBiYWNrZW5kcy9wb3N0Z3Jlc3FsIHN1Yi1kaXJlY3RvcnkKKytp bmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikv c291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytT VUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9 IC5fY29tbW9uLmgKKysKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCisrCisraWYgSEFWRV9QT1NUR1JFU1FMCisrbGliX0xUTElCUkFSSUVTPSBsaWJz b2NpX3Bvc3RncmVzcWwubGEKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUz0gJChi Y2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMpICQoYmNrX3Bvc3RncmVzcWxfY2Nfc291cmNlcykgCisr bGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTID0gJChQT1NUR1JFU1FMX0NGTEFHUykKKyts aWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0KKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERG TEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZ X1ZFUlNJT04pCisrCisrcGtnaW5jbHVkZV9IRUFERVJTID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmgKKytlbmRpZgorK2lmIFNPQ0lfSEVB REVSU19CVVJJRUQKKytzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikK KytlbmRpZgorK3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2lj IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuYmFz aWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZp bGUuYmFzaWMJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmJhc2ljCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAtMSw5NSArMCwwIEBACistIyBUaGUg Zm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBhbmQgaXRzIGNv cnJlY3QKKy0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwg ZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCistCistUEdTUUxJTkNMVURFRElSID0gLUkvdXNy L2luY2x1ZGUKKy0KKy0jIFRoZSByZXN0IG9mIHRoZSBNYWtlZmlsZSBpcyBpbmRlcGVudGVudCBv ZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LgorLQorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1Mg PSAtV2FsbCAtcGVkYW50aWMgLVduby1sb25nLWxvbmcKKy1DWFhGTEFHU1NPID0gJHtDWFhGTEFH U30gLWZQSUMKKy1JTkNMVURFRElSUyA9IC1JLi4vLi4vY29yZSAke1BHU1FMSU5DTFVERURJUn0K Ky0KKy0KKy1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8gc3Rh bmRhcmQtaW50by10eXBlLm8gXAorLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5vIHZl Y3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCistCWNvbW1vbi5vCistCistT0JK RUNUU1NPID0gYmxvYi1zLm8gZmFjdG9yeS1zLm8gcm93LWlkLXMubyBzZXNzaW9uLXMubyBcCist CXN0YW5kYXJkLWludG8tdHlwZS1zLm8gc3RhbmRhcmQtdXNlLXR5cGUtcy5vIHN0YXRlbWVudC1z Lm8gXAorLQl2ZWN0b3ItaW50by10eXBlLXMubyB2ZWN0b3ItdXNlLXR5cGUtcy5vIGNvbW1vbi1z Lm8KKy0KKy0KKy1saWJzb2NpX3Bvc3RncmVzcWwuYSA6ICR7T0JKRUNUU30KKy0JYXIgcnYgJEAg JD8KKy0Jcm0gKi5vCistCistCistYmxvYi5vIDogYmxvYi5jcHAKKy0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1jb21tb24ubyA6IGNvbW1vbi5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1mYWN0 b3J5Lm8gOiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQorLQorLXJvdy1pZC5vIDogcm93LWlkLmNwcAorLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24ubyA6IHNlc3Npb24uY3Bw CistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3Rh bmRhcmQtaW50by10eXBlLm8gOiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistc3RhbmRhcmQtdXNlLXR5cGUu byA6IHN0YW5kYXJkLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdT fSAke0lOQ0xVREVESVJTfQorLQorLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAorLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXZlY3Rvci1pbnRv LXR5cGUubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hY RkxBR1N9ICR7SU5DTFVERURJUlN9CistCistdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNl LXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 CistCistCistc2hhcmVkIDogJHtPQkpFQ1RTU099CistCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8g bGlic29jaV9wb3N0Z3Jlc3FsLnNvICR7T0JKRUNUU1NPfQorLQlybSAqLm8KKy0KKy1ibG9iLXMu byA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJ TkNMVURFRElSU30KKy0KKy1jb21tb24tcy5vIDogY29tbW9uLmNwcAorLQkke0NPTVBJTEVSfSAt YyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9CistCistZmFjdG9yeS1zLm8g OiBmYWN0b3J5LmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7 SU5DTFVERURJUlN9CistCistcm93LWlkLXMubyA6IHJvdy1pZC5jcHAKKy0JJHtDT01QSUxFUn0g LWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQorLQorLXNlc3Npb24tcy5v IDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQorLQorLXN0YW5kYXJkLWludG8tdHlwZS1zLm8gOiBzdGFuZGFyZC1pbnRv LXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNM VURFRElSU30KKy0KKy1zdGFuZGFyZC11c2UtdHlwZS1zLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5j cHAKKy0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJT fQorLQorLXN0YXRlbWVudC1zLm8gOiBzdGF0ZW1lbnQuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1v ICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItaW50by10eXBl LXMubyA6IHZlY3Rvci1pbnRvLXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KKy0KKy12ZWN0b3ItdXNlLXR5cGUtcy5vIDogdmVj dG9yLXVzZS10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099 ICR7SU5DTFVERURJUlN9CistCistCistY2xlYW4gOgorLQlybSAtZiBsaWJzb2NpX3Bvc3RncmVz cWwuYSBsaWJzb2NpX3Bvc3RncmVzcWwuc28KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvTWFrZWZpbGUuaW4JMjAxMC0wMS0yMyAxNDo0NDo1Mi4wMDAwMDAwMDAgKzAxMDAK K0BAIC0wLDAgKzEsOTA0IEBACisrIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2Ug MS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisrIyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29w eXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAx LCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMgSW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBl eHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQ VVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysKKysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0 YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNL QUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9 IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0 YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JB TSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkg LWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JNQUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9 IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9STUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNU QUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0gOgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisr aG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElTVF9DT01NT04gPSAkKGFtX19wa2dpbmNsdWRlX0hF QURFUlNfRElTVCkgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKKysJJChzcmNkaXIpL01ha2VmaWxl LmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KKytzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwKKytBQ0xPQ0FMX000ID0gJCh0 b3Bfc3JjZGlyKS9hY2xvY2FsLm00CisrYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rp cikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2NwcHVuaXQubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKKysJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRzdWdhci5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCisrYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKKysJJChBQ0xPQ0FMX000KQorK21raW5zdGFsbGRpcnMgPSAk KGluc3RhbGxfc2gpIC1kCisrQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv bmZpZy5oCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKytDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMg PQorK2FtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAnc3wufC58ZydgOworK2FtX192cGF0aF9hZGogPSBjYXNlICQkcCBpbiBcCisrICAgICQo c3JjZGlyKS8qKSBmPWBlY2hvICIkJHAiIHwgc2VkICJzfF4kJHNyY2RpcnN0cmlwL3x8ImA7OyBc CisrICAgICopIGY9JCRwOzsgXAorKyAgZXNhYzsKKythbV9fc3RyaXBfZGlyID0gZj1gZWNobyAk JHAgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7CisrYW1fX2luc3RhbGxfbWF4ID0gNDAKKythbV9fbm9i YXNlX3N0cmlwX3NldHVwID0gXAorKyAgc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKnxdL1xcXFwmL2cnYAorK2FtX19ub2Jhc2Vfc3RyaXAgPSBcCisrICBm b3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCI7IGRvbmUgfCBzZWQgLWUgInN8JCRzcmNkaXJz dHJpcC98fCIKKythbV9fbm9iYXNlX2xpc3QgPSAkKGFtX19ub2Jhc2Vfc3RyaXBfc2V0dXApOyBc CisrICBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gIiQkcCAkJHAiOyBkb25lIHwgXAorKyAgc2Vk ICJzfCAkJHNyY2RpcnN0cmlwL3wgfDsiJyAvIC4qXC8vIXMvIC4qLyAuLzsgcyxcKCAuKlwpL1te L10qJCQsXDEsJyB8IFwKKysgICQoQVdLKSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiIgfSB7IGZp bGVzWyQkMl0gPSBmaWxlc1skJDJdICIgIiAkJDE7IFwKKysgICAgaWYgKCsrblskJDJdID09ICQo YW1fX2luc3RhbGxfbWF4KSkgXAorKyAgICAgIHsgcHJpbnQgJCQyLCBmaWxlc1skJDJdOyBuWyQk Ml0gPSAwOyBmaWxlc1skJDJdID0gIiIgfSB9IFwKKysgICAgRU5EIHsgZm9yIChkaXIgaW4gZmls ZXMpIHByaW50IGRpciwgZmlsZXNbZGlyXSB9JworK2FtX19iYXNlX2xpc3QgPSBcCisrICBzZWQg JyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAorKyAgc2Vk ICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworK2FtX19pbnN0YWxsZGlycyA9ICIkKERF U1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrTFRMSUJSQVJJ RVMgPSAkKGxpYl9MVExJQlJBUklFUykKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGFfREVQRU5ERU5D SUVTID0KKythbV9fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVNfRElTVCA9ICBcCisrCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5oIFwKKysJJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCBcCisrCSQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgXAorKwkkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcCBcCisrCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAorKwkkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcCBcCisrCSQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKwkk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5j cHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQu Y3BwIFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9yLWlu dG8tdHlwZS5jcHAgXAorKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwCisrYW1fX29iamVjdHNfMSA9CisrYW1fX29iamVjdHNfMiA9IGxp YnNvY2lfcG9zdGdyZXNxbF9sYS1ibG9iLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNv bW1vbi5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvIFwKKysJbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNz aW9uLmxvIFwKKysJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyBc CisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBcCisrCWxpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gXAorKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEt dmVjdG9yLWludG8tdHlwZS5sbyBcCisrCWxpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNl LXR5cGUubG8KKytASEFWRV9QT1NUR1JFU1FMX1RSVUVAYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xh X09CSkVDVFMgPSAgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChhbV9fb2JqZWN0c18xKSAk KGFtX19vYmplY3RzXzIpCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMgPSAkKGFtX2xp YnNvY2lfcG9zdGdyZXNxbF9sYV9PQkpFQ1RTKQorK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSU5L ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKKysJJChMSUJUT09M RkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTERGTEFH UykgJChMREZMQUdTKSAtbyAkQAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9saWJzb2NpX3Bv c3RncmVzcWxfbGFfcnBhdGggPSAtcnBhdGggXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJJChs aWJkaXIpCisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRp cikvc29jaQorK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21w CisrYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMKKythbV9fbXYgPSBtdiAtZgorK0NYWENP TVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwK KysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykK KytMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrQ1hYTEQgPSAkKENYWCkKKytDWFhMSU5LID0g JChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBc CisrCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1f TERGTEFHUykgXAorKwkkKExERkxBR1MpIC1vICRACisrQ09NUElMRSA9ICQoQ0MpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSBcCisrCSQoQ1BQ RkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKKytMVENPTVBJTEUgPSAkKExJQlRPT0wpIC0t dGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9Y29t cGlsZSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisrQ0NMRCA9 ICQoQ0MpCisrTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1saW5rICQoQ0NMRCkgJChBTV9DRkxBR1MpICQoQ0ZM QUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAorK1NPVVJDRVMgPSAkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNv Y2lfcG9zdGdyZXNxbF9sYV9TT1VSQ0VTX0RJU1QpCisrUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwt cmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKKysJaHRtbC1yZWN1cnNp dmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtZHZp LXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1odG1sLXJlY3Vy c2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGlu c3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKKysJaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCisrCXBzLXJlY3Vy c2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCisrYW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0g IFwKKysJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jl c3FsLmgKKytIRUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCisrUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKKysgIGRp c3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKytBTV9SRUNVUlNJ VkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKKysJJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwK KysJZGlzdGRpcgorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVF9TVUJESVJT ID0gJChTVUJESVJTKQorK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VT KSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCisrYW1fX3JlbGF0aXZpemUgPSBcCisrICBkaXIw PWBwd2RgOyBcCisrICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKKysgIHNl ZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCisrICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQs XDEsJzsgXAorKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCisrICB3aGlsZSB0ZXN0 IC1uICIkJGRpcjEiOyBkbyBcCisrICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIk JHNlZF9maXJzdCJgOyBcCisrICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCisr ICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKKysgICAgICAgIGRpcjI9YGVj aG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAorKyAgICAgICAg ZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCisrICAgICAg ZWxzZSBcCisrICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2Zp cnN0ImA7IFwKKysgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBc CisrICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsg XAorKyAgICAgICAgZWxzZSBcCisrICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKKysgICAg ICAgIGZpOyBcCisrICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAorKyAgICAgIGZp OyBcCisrICAgIGZpOyBcCisrICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2Vk X3Jlc3QiYDsgXAorKyAgZG9uZTsgXAorKyAgcmVsZGlyPSIkJGRpcjIiCisrcGtnaW5jbHVkZWRp ciA9ICQoc29jaV9pbmNsdWRlX2RpcikKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIgPSBA QU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURFUiA9 IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisrQk9P U1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NU X0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RF TV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAorK0JP T1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJA CisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JPT1NU X1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBAQk9P U1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTEla QVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAorK0JP T1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElCID0g QEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJT SU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9M SUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBAQ0ZM QUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9DRkxB R1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdA CisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBAQ1BQ VU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhERVBN T0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9XID0g QENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lNVVRJ TCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9fQ0AK KytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdSRVBA CisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJBUllf VkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisrSU5T VEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5TVEFM TF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxM X1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFN QAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9CSlNA CisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9ACisr TE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBATUFL RUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxB R1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNRTF9E SVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0gQE9C SkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AK KytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJX0xE RkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFD TEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0QAor K1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACisr UEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9IEBQ QVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJR0AK KytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FMX0RJ UlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FM X0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKKytS QU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9IEBT RURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQID0g QFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04gPSBA VkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisrYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACisr YWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5A CisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFtX19s ZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1fX3Rh ckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVpbGQg PSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0gQGJ1 aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVpbGRf dmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAKKytk YXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9jZGly ID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2aWRp ckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAK Kytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0X2Fs aWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKytob3N0 X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVkZWRp ciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0gQGlu c3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAKKyts aWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKytsb2Nh bHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21hbmRp ciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBAb2xk aW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisrcHJv Z3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGlyID0g QHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3NoYXJl ZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lzY29u ZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisrdG9w X2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0b3Bf YnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0gLUkk KHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2Vz ID0gXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29t bW9uLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c29jaS1wb3N0Z3Jlc3FsLmgKKysKKytiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0 b3J5LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9yb3ctaWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5j cHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLWludG8tdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAorKworK01BSU5UQUlORVJDTEVBTkZJTEVT ID0gTWFrZWZpbGUuaW4KKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NP Q0lfQ09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKKytFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNU X0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCisrQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYl9MVExJ QlJBUklFUyA9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBs aWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUyA9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2Vz KSAkKGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBs aWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBPU1RHUkVTUUxfQ0ZMQUdTKQorK0BI QVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0gCisrQEhB VkVfUE9TVEdSRVNRTF9UUlVFQGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAorK0BI QVZFX1BPU1RHUkVTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIp ICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJ LXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQorKworK0BIQVZFX1BPU1RH UkVTUUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZB TFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJ RURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwKKythbGw6IGFsbC1yZWN1cnNpdmUKKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVT OiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01h a2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2Vz Lm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNh c2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAg ICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCApIFwKKysJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNl IGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBleGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25l OyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2Rp cikgJiYgXAorKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9N YWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAor KwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9j YWxfbTRfZGVwcyk6CisraW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMp CisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJf UCkgIiQoREVTVERJUikkKGxpYmRpcikiCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0 ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCisrCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0 OyBkbyBcCisrCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAorKwkgICAgbGlzdDI9IiQkbGlzdDIg JCRwIjsgXAorKwkgIGVsc2UgOjsgZmk7IFwKKysJZG9uZTsgXAorKwl0ZXN0IC16ICIkJGxpc3Qy IiB8fCB7IFwKKysJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcp ICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAorKwkgICQoTElCVE9PTCkgJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQo SU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAorKwl9 CisrCisrdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQor KwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0 PTsgXAorKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICAkKGFtX19zdHJpcF9kaXIpIFwKKysJ ICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKKysJICAk KExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5z dGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCisrCWRvbmUKKysKKytjbGVh bi1saWJMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0g LWYgJChsaWJfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3Ig cCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSok JHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisrCSAgZWNo byAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIkJHtkaXJ9 L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfcG9zdGdyZXNxbC5sYTogJChsaWJz b2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfREVQRU5E RU5DSUVTKSAKKysJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElOSykgJChhbV9saWJzb2NpX3Bv c3RncmVzcWxfbGFfcnBhdGgpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGli c29jaV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCkgJChMSUJTKQorKworK21vc3RseWNsZWFuLWNvbXBp bGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rpc3RjbGVhbi1jb21waWxlOgorKwktcm0g LWYgKi50YWIuYworKworK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlBs b0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChE RVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5 cGUuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3Rl QAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACisrCisrLmNwcC5vOgorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERF UERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8CisrCisrLmNwcC5vYmo6 CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK KytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9i LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2Jsb2IuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3Rn cmVzcWxfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNv dXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIG9i amVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdy ZXNxbF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxfbGEt Y29tbW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24u Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29t bW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9j b21tb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L2NvbW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAorKwor K2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9y eS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGli c29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9s YS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVzcWxf bGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ct aWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEt cm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9yb3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbycg bGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykg LWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAor KworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAt YyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vz c2lvbi5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0n bGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bv c3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKKysKKytsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEt c3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YW5kYXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJk LWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAor KworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCisrQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJk LXVzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdy ZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBl LmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGF0ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1z dGF0ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50 LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBA QU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z dGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUu bG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBG TEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxp YnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dmVjdG9yLWludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NM QVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElS KSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRl cENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJ QlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBl LmNwcAorKworK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9z dGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlw ZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0 Z3Jlc3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dmVjdG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9y LXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBl LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0 b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCisrCisrbW9zdGx5Y2xlYW4t bGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytjbGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5s aWJzIF9saWJzCisraW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURF UlMpCisrCUAkKE5PUk1BTF9JTlNUQUxMKQorKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8 fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKKysJQGxpc3Q9JyQocGtn aW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBc CisrCWZvciBwIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07 IGVsc2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCisrCSAgZWNobyAiJCRkJCRwIjsgXAorKwlkb25l IHwgJChhbV9fYmFzZV9saXN0KSB8IFwKKysJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAorKwkgIGVj aG8gIiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGly KSciOyBcCisrCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5j bHVkZWRpcikiIHx8IGV4aXQgJCQ/OyBcCisrCWRvbmUKKysKKyt1bmluc3RhbGwtcGtnaW5jbHVk ZUhFQURFUlM6CisrCUAkKE5PUk1BTF9VTklOU1RBTEwpCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVf SEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlmaWxl cz1gZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwn YDsgXAorKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKKysJZWNobyAiICggY2QgJyQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKKysJY2Qg IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisrCisrIyBUaGlz IGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBj YW4gY2QKKysjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2gg dGhpcyBNYWtlZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJs ZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxl IGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAg KHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlv dSBydW4gYG1ha2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVz IG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlA ZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBc CisrCSAgY2FzZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayop IGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3Nl ZW49bm87IFwKKysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwls aXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJN YWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0g Ii4iOyB0aGVuIFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJ ZG9uZTsgXAorKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0 IC16ICIkJGZhaWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBm YWlsY29tPSdleGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBj YXNlICQkZiBpbiBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNv bT0nZmFpbD15ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsg XAorKwljYXNlICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0q KSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7 OyBcCisrCWVzYWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRz dWJkaXIgJCRyZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBc CisrCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRp ciBpbiAkJHJldjsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7 IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFy Z2V0PSIkJHRhcmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQiOyBcCisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207 IFwKKysJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9 JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3Vi ZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSB0YWdzKTsgXAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8 ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBc CisrCWRvbmUKKysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJ TEVTKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMp JzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAi JCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAg ZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBc CisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7 IH07IH0nYDsgXAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzog dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsg XAorKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy PiYxOyB0aGVuIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKKysJICBl bXB0eV9maXg9LjsgXAorKwllbHNlIFwKKysJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwK KysJICBlbXB0eV9maXg9OyBcCisrCWZpOyBcCisrCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCisrCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCisrCSAgICAgIHNldCAi JCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKKysJICBmaTsg XAorKwlkb25lOyBcCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAorKwlzaGlmdDsgXAorKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FS R1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAorKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8 fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKysJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCisr CSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdT KSBcCisrCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCisrCSAgZWxzZSBcCisrCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCisrCSAgICAg ICQkdW5pcXVlOyBcCisrCSAgZmk7IFwKKysJZmkKKytjdGFnczogQ1RBR1MKKytDVEFHUzogY3Rh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJT KSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsg ZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQo c3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwKKysJICAkKEFXSykgJ3sgZmlsZXNbJCQw XSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBm b3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAorKwl0ZXN0IC16ICIkKENUQUdTX0FS R1MpJCR1bmlxdWUiIFwKKysJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NG TEFHUykgJChDVEFHU19BUkdTKSBcCisrCSAgICAgJCR1bmlxdWUKKysKKytHVEFHUzoKKysJaGVy ZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKKysJICAmJiAkKGFtX19jZCkg JCh0b3Bfc3JjZGlyKSBcCisrCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgor KworK2Rpc3RjbGVhbi10YWdzOgorKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMg R1BBVEggdGFncworKworK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorKwlAc3JjZGlyc3RyaXA9YGVj aG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCXRvcHNy Y2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKKysJbGlzdD0nJChESVNURklMRVMpJzsgXAorKwkgIGRpc3RfZmlsZXM9YGZvciBm aWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCisrCSAgc2VkIC1lICJzfF4k JHNyY2RpcnN0cmlwL3x8O3QiIFwKKysJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQo dG9wX2J1aWxkZGlyKS98O3QiYDsgXAorKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCisrCSAgKi8q KSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAorKwkJCSAgIHNlZCAnL1wvLyFk O3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKKysJCQkgICBzb3J0IC11YCA7OyBc CisrCWVzYWM7IFwKKysJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCisrCSAgaWYgdGVz dCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIp OyBmaTsgXAorKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCisrCSAgICBkaXI9YGVj aG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAorKwkgICAgaWYgdGVzdCAt ZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRk ICE9ICQoc3JjZGlyKTsgdGhlbiBcCisrCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAi JChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICAgICAgZmluZCAiJChkaXN0ZGlyKS8k JGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCisr CSAgICBmaTsgXAorKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8 IGV4aXQgMTsgXAorKwkgIGVsc2UgXAorKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUi IFwKKysJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAg ICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9 IC47IHRoZW4gOjsgZWxzZSBcCisrCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBc CisrCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCisrCSAgICB8fCBl eGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25lCisrCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3Vi ZGlyIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKKysJICAgIG5ld19kaXN0ZGlyPSQk cmVsZGlyOyBcCisrCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwK KysJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxk aXI7IFwKKysJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcXCI7IFwKKysJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBf bGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKKysJICAgICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgXAorKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBc CisrCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCisrCSAgICAgICAg ZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAorKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAorKwkJ YW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAorKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCisrCSAg ICAgICAgZGlzdGRpcikgXAorKwkgICAgICB8fCBleGl0IDE7IFwKKysJICBmaTsgXAorKwlkb25l CisrY2hlY2stYW06IGFsbC1hbQorK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKKythbGwtYW06IE1h a2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0YWxsZGlyczogaW5zdGFsbGRp cnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisrCWZvciBkaXIgaW4gIiQoREVTVERJUikk KGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKKysJICB0ZXN0IC16 ICIkJGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCisrCWRvbmUKKytpbnN0YWxsOiBpbnN0 YWxsLXJlY3Vyc2l2ZQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQorK2lu c3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQorK3VuaW5zdGFsbDogdW5pbnN0YWxs LXJlY3Vyc2l2ZQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VG TEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazog aW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQorK2luc3RhbGwtc3RyaXA6CisrCSQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisr CSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExf U1RSSVBfRkxBRz0tcyBcCisrCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCisrCSAgICBlY2hv ICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorK21v c3RseWNsZWFuLWdlbmVyaWM6CisrCisrY2xlYW4tZ2VuZXJpYzoKKysKKytkaXN0Y2xlYW4tZ2Vu ZXJpYzoKKysJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fRklMRVMpCisrCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENP TkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJ TEVTKQorKworK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKKysJQGVjaG8gIlRoaXMgY29tbWFu ZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorKwlAZWNobyAiaXQgZGVsZXRl cyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCisrCS10 ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xF QU5GSUxFUykKKytjbGVhbjogY2xlYW4tcmVjdXJzaXZlCisrCisrY2xlYW4tYW06IGNsZWFuLWdl bmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCisrCW1vc3RseWNsZWFu LWFtCisrCisrZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERF UERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xl YW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZp OiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJzaXZlCisr CisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06CisrCisr aW5zdGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisraW5zdGFsbC1k dmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3Rh bGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUworKworK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWluZm8tYW06CisrCisraW5z dGFsbC1tYW46CisrCisraW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQorKworK2lu c3RhbGwtcGRmLWFtOgorKworK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCisrCisr aW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1yZiAuLyQoREVQRElSKQorKwkt cm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZQorKworK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdl bmVyaWMgXAorKwltb3N0bHljbGVhbi1saWJ0b29sCisrCisrcGRmOiBwZGYtcmVjdXJzaXZlCisr CisrcGRmLWFtOgorKworK3BzOiBwcy1yZWN1cnNpdmUKKysKKytwcy1hbToKKysKKyt1bmluc3Rh bGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURF UlMKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKKysJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3Mt cmVjdXJzaXZlCisrCisrLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCisrCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRv b2wgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKKysJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxl IGRpc3RjbGVhbi1nZW5lcmljIFwKKysJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3Mg ZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAorKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxs IGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKKysJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZp IGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCisrCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCisrCWluc3RhbGwtaW5mby1hbSBp bnN0YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKKysJaW5zdGFs bC1wZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKKysJaW5zdGFs bC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAorKwlp bnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKKysJbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAorKwltb3N0 bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBc CisrCXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCisrCXVuaW5z dGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKKysKKytAU0VU X01BS0VACisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5v dCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9y IFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKysuTk9FWFBPUlQ6CitkaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNx bC5oIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0 Z3Jlc3FsLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c29jaS1wb3N0Z3Jlc3FsLmgJMjAxMC0wMS0yMyAxNDo0NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdy ZXNxbC5oCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitAQCAtMjIsOSArMjIs MTQgQEAKKyAjaWZuZGVmIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCisgIyBkZWZpbmUgU09DSV9QT1NU R1JFU1FMX0RFQ0wKKyAjZW5kaWYKKy0KKy0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+CistI2lu Y2x1ZGUgPGxpYnBxLWZlLmg+CisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVE KQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgorKyNlbHNlCisr IwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KKysjZW5kaWYKKysvLworKyNpbmNsdWRlIDxsaWJw cS1mZS5oPiAvLyBQb3N0R3JlU1FMIGNsaWVudAorICNpbmNsdWRlIDx2ZWN0b3I+CisgCisgI2lm ZGVmIF9NU0NfVkVSCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zb3VyY2VzLm1rCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMu bWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTQgQEAK KytiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAorK2Jja19wb3N0Z3Jl c3FsX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9ibG9iLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jvdy1pZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNw cCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCitk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9i YWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0 NTo0NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAwOS0wNC0xNiAxOTozNzowNS4w MDAwMDAwMDAgKzAyMDAKK0BAIC04LDkgKzgsMTYgQEAKKyAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNR TF9TT1VSQ0UKKyAjaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3FsLmgiCisgI2luY2x1ZGUgImNvbW1v bi5oIgorLSNpbmNsdWRlICJyb3dpZC5oIgorLSNpbmNsdWRlICJibG9iLmgiCistI2luY2x1ZGUg PGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jsb2IuaD4KKysjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9yb3dpZC5oPgorKyNlbHNlCisrIyAgICAgICBpbmNsdWRlIDxi bG9iLmg+CisrIyAgICAgICBpbmNsdWRlIDxyb3dpZC5oPgorKyNlbmRpZgorKy8vCisrI2luY2x1 ZGUgPGxpYnBxL2xpYnBxLWZzLmg+IC8vIGxpYnBxIChQb3N0R3JlU1FMIGNsaWVudCkKKyAjaW5j bHVkZSA8Y2N0eXBlPgorICNpbmNsdWRlIDxjc3RkaW8+CisgI2luY2x1ZGUgPGNzdHJpbmc+Citk aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5k YXJkLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAJMjAxMC0wMS0yMyAxNDo0NTo0 NC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAw MDAwMCArMDIwMAorQEAgLTcsOCArNywxNCBAQAorIAorICNkZWZpbmUgU09DSV9QT1NUR1JFU1FM X1NPVVJDRQorICNpbmNsdWRlICJzb2NpLXBvc3RncmVzcWwuaCIKKy0jaW5jbHVkZSAicm93aWQu aCIKKy0jaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4gLy8gbGlicHEKKysvLworKyNpZiBkZWZp bmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93 aWQuaD4KKysjZWxzZQorKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KKysjZW5kaWYKKysvLwor KyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcSAoUG9zdEdyZVNRTCBjbGllbnQp CisgI2luY2x1ZGUgPGNjdHlwZT4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorICNpbmNsdWRlIDxjc3Ry aW5nPgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDE4IEBACisrIyMgY29yZSBzdWItZGlyZWN0b3J5CisraW5jbHVkZSAkKHRvcF9z cmNkaXIpL01ha2VmaWxlLmNvbW1vbgorK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKKysK KytNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCisrCisraWYgUlVOX1RFU1RTCisr ICBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X3Bvc3RncmVzcWwKKytlbmRpZgorKworK3Rlc3RfcG9z dGdyZXNxbF9TT1VSQ0VTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X3Bv c3RncmVzcWxfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykKKyt0ZXN0X3Bvc3RncmVzcWxfTERB REQgPQorK3Rlc3RfcG9zdGdyZXNxbF9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29y ZS9saWJzb2NpX2NvcmUubGEgLWxkbCBcCisrCQkkKHRvcF9idWlsZGRpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL2xpYnNvY2lfcG9zdGdyZXNxbC5sYSBcCisrCQkkKFBPU1RHUkVTUUxfTERG TEFHUykKKysKKysjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQocG9zdGdyZXNxbF90ZXN0 X2hfc291cmNlcykKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYmFzaWMKKy0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwkyMDEwLTAxLTIz IDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorQEAgLTEsMjIgKzAsMCBAQAorLSMgVGhlIGZvbGxvd2luZyB2YXJp YWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3JyZWN0CistIyB2YWx1 ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZyZWUgdG8gc2V0IGl0 IGFjY29yZGluZ2x5LgorLQorLVBHU1FMSU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlCistUEdT UUxMSUJESVIgPSAtTC91c3IvbGliCistUEdTUUxMSUJTID0gLWxwcQorLQorLSMgVGhlIHJlc3Qg b2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQu CistCistQ09NUElMRVIgPSBnKysKKy1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxv bmctbG9uZworLUlOQ0xVREVESVJTID0gLUkuLiAtSS4uLy4uLy4uL2NvcmUvdGVzdCAtSS4uLy4u Ly4uL2NvcmUgJHtQR1NRTElOQ0xVREVESVJ9CistTElCRElSUyA9IC1MLi4gLUwuLi8uLi8uLi9j b3JlICR7UEdTUUxMSUJESVJ9CistTElCUyA9IC1sc29jaV9jb3JlIC1sc29jaV9wb3N0Z3Jlc3Fs IC1sZGwgJHtQR1NRTExJQlN9CistCistCistdGVzdC1wb3N0Z3Jlc3FsIDogdGVzdC1wb3N0Z3Jl c3FsLmNwcAorLQkke0NPTVBJTEVSfSAtbyAkQCAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJT fSAke0xJQkRJUlN9ICR7TElCU30KKy0KKy0KKy1jbGVhbiA6CistCXJtIC1mIHRlc3QtcG9zdGdy ZXNxbAorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC9NYWtlZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC90ZXN0L01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAwCitA QCAtMCwwICsxLDU1OSBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0 ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIgUFVS UE9TRS4KKysKKytAU0VUX01BS0VACisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2RhdGFkaXIg PSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQ QUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKKytwa2dsaWJleGVjZGly ID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJT SU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0 YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1j CisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCisrSU5TVEFMTF9IRUFERVIg PSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUp CisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwgPSA6CisrUE9TVF9JTlNUQUxMID0g OgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5TVEFMTCA9IDoKKytQT1NUX1VOSU5T VEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAorK2hvc3RfdHJpcGxldCA9IEBob3N0 QAorK0RJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmls ZS5pbiBcCisrCSQoc3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCisrQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNxbCQo RVhFRVhUKQorK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0CisrQUNMT0NB TF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19hY2xvY2FsX200X2RlcHMgPSAk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmln L2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCisrCSQodG9wX3NyY2Rp cikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24u bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVw cykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNMT0NBTF9NNCkKKytta2luc3Rh bGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRp cikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQ QVRIX0ZJTEVTID0KKytQUk9HUkFNUyA9ICQobm9pbnN0X1BST0dSQU1TKQorK2FtX19vYmplY3Rz XzEgPSB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLiQoT0JKRVhUKQorK2FtX3Rlc3Rf cG9zdGdyZXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQorK3Rlc3RfcG9zdGdyZXNxbF9P QkpFQ1RTID0gJChhbV90ZXN0X3Bvc3RncmVzcWxfT0JKRUNUUykKKyt0ZXN0X3Bvc3RncmVzcWxf REVQRU5ERU5DSUVTID0KKyt0ZXN0X3Bvc3RncmVzcWxfTElOSyA9ICQoTElCVE9PTCkgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCisrCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAk KENYWExEKSBcCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCisr CSQodGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKKytERUZBVUxUX0lO Q0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCisrZGVwY29tcCA9 ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKKythbV9fZGVwZmlsZXNfbWF5 YmUgPSBkZXBmaWxlcworK2FtX19tdiA9IG12IC1mCisrQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERF RlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0xUQ1hYQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAor KwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChD WFhGTEFHUykKKytDWFhMRCA9ICQoQ1hYKQorK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWxpbmsgJChD WFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERG TEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJCh0ZXN0X3Bvc3RncmVzcWxfU09VUkNFUykKKytESVNU X1NPVVJDRVMgPSAkKHRlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTKQorK0VUQUdTID0gZXRhZ3MKKytD VEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMp ICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytBQ0xPQ0FMID0gQEFDTE9DQUxACisrQU1UQVIg PSBAQU1UQVJACisrQVIgPSBAQVJACisrQVVUT0NPTkYgPSBAQVVUT0NPTkZACisrQVVUT0hFQURF UiA9IEBBVVRPSEVBREVSQAorK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorK0FXSyA9IEBBV0tACisr Qk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKKytCT09TVF9EQVRFX1RJTUVfTElCID0gQEJP T1NUX0RBVEVfVElNRV9MSUJACisrQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZ U1RFTV9MSUJACisrQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAor K0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKKytCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9M SUJACisrQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACisrQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAorK0JP T1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKKytCT09TVF9SRUdFWF9MSUIgPSBA Qk9PU1RfUkVHRVhfTElCQAorK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklB TElaQVRJT05fTElCQAorK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAor K0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKKytCT09TVF9USFJFQURfTElC ID0gQEJPT1NUX1RIUkVBRF9MSUJACisrQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBA Qk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACisrQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9W RVJTSU9OQAorK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElP Tl9MSUJACisrQ0MgPSBAQ0NACisrQ0NERVBNT0RFID0gQENDREVQTU9ERUAKKytDRkxBR1MgPSBA Q0ZMQUdTQAorK0NQUCA9IEBDUFBACisrQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACisrQ1BQVU5JVF9D RkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACisrQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05G SUdACisrQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKKytDUFBVTklUX1ZFUlNJT04gPSBA Q1BQVU5JVF9WRVJTSU9OQAorK0NYWCA9IEBDWFhACisrQ1hYQ1BQID0gQENYWENQUEAKKytDWFhE RVBNT0RFID0gQENYWERFUE1PREVACisrQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACisrQ1lHUEFUSF9X ID0gQENZR1BBVEhfV0AKKytERUZTID0gQERFRlNACisrREVQRElSID0gQERFUERJUkAKKytEU1lN VVRJTCA9IEBEU1lNVVRJTEAKKytEVU1QQklOID0gQERVTVBCSU5ACisrRUNIT19DID0gQEVDSE9f Q0AKKytFQ0hPX04gPSBARUNIT19OQAorK0VDSE9fVCA9IEBFQ0hPX1RACisrRUdSRVAgPSBARUdS RVBACisrRVhFRVhUID0gQEVYRUVYVEAKKytGR1JFUCA9IEBGR1JFUEAKKytHRU5FUklDX0xJQlJB UllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKKytHUkVQID0gQEdSRVBACisr SU5TVEFMTCA9IEBJTlNUQUxMQAorK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACisrSU5T VEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKKytJTlNUQUxMX1NDUklQVCA9IEBJTlNU QUxMX1NDUklQVEAKKytJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9H UkFNQAorK0xEID0gQExEQAorK0xERkxBR1MgPSBATERGTEFHU0AKKytMSUJPQkpTID0gQExJQk9C SlNACisrTElCUyA9IEBMSUJTQAorK0xJQlRPT0wgPSBATElCVE9PTEAKKytMSVBPID0gQExJUE9A CisrTE5fUyA9IEBMTl9TQAorK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACisrTUFLRUlORk8gPSBA TUFLRUlORk9ACisrTUtESVJfUCA9IEBNS0RJUl9QQAorK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9D RkxBR1NACisrTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACisrTVlTUUxfRElSUyA9IEBNWVNR TF9ESVJTQAorK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKKytNWVNRTF9WRVJTSU9OID0gQE1Z U1FMX1ZFUlNJT05ACisrTk0gPSBATk1ACisrTk1FRElUID0gQE5NRURJVEAKKytPQkpEVU1QID0g QE9CSkRVTVBACisrT0JKRVhUID0gQE9CSkVYVEAKKytPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElS U0AKKytPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKKytPUkFDTEVfT0NJ X0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAorK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBP UkFDTEVfT0NJX1ZFUlNJT05ACisrT1RPT0wgPSBAT1RPT0xACisrT1RPT0w2NCA9IEBPVE9PTDY0 QAorK1BBQ0tBR0UgPSBAUEFDS0FHRUAKKytQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JV R1JFUE9SVEAKKytQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorK1BBQ0tBR0VfU1RSSU5H ID0gQFBBQ0tBR0VfU1RSSU5HQAorK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVA CisrUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKytQQVRIX1NFUEFSQVRPUiA9 IEBQQVRIX1NFUEFSQVRPUkAKKytQRVJMID0gQFBFUkxACisrUEdfQ09ORklHID0gQFBHX0NPTkZJ R0AKKytQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKKytQT1NUR1JFU1FM X0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAorK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JF U1FMX0xERkxBR1NACisrUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAK KytSQU5MSUIgPSBAUkFOTElCQAorK1JQTV9SRUxFQVNFID0gQFJQTV9SRUxFQVNFQAorK1NFRCA9 IEBTRURACisrU0VUX01BS0UgPSBAU0VUX01BS0VACisrU0hFTEwgPSBAU0hFTExACisrU09DSV9I RUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfTVlTUUxfSEVBREVS U19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKKytTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAorK1NUUklQ ID0gQFNUUklQQAorK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAorK1ZFUlNJT04g PSBAVkVSU0lPTkAKKythYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAorK2Fic19zcmNkaXIg PSBAYWJzX3NyY2RpckAKKythYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACisr YWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACisrYWNfY3RfQ0MgPSBAYWNfY3RfQ0NA CisrYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKKythY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBC SU5ACisrYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACisrYW1fX2xlYWRpbmdfZG90ID0gQGFt X19sZWFkaW5nX2RvdEAKKythbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorK2FtX190YXIgPSBAYW1f X3RhckAKKythbV9fdW50YXIgPSBAYW1fX3VudGFyQAorK2JpbmRpciA9IEBiaW5kaXJACisrYnVp bGQgPSBAYnVpbGRACisrYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACisrYnVpbGRfY3B1ID0g QGJ1aWxkX2NwdUAKKytidWlsZF9vcyA9IEBidWlsZF9vc0AKKytidWlsZF92ZW5kb3IgPSBAYnVp bGRfdmVuZG9yQAorK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAorK2RhdGFkaXIgPSBAZGF0YWRpckAK KytkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKKytkaWZmX29rID0gQGRpZmZfb2tACisrZG9j ZGlyID0gQGRvY2RpckAKKytkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACisrZHZpZGlyID0gQGR2 aWRpckAKKytkdmlwc19vayA9IEBkdmlwc19va0AKKytleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZp eEAKKytnc19vayA9IEBnc19va0AKKytob3N0ID0gQGhvc3RACisraG9zdF9hbGlhcyA9IEBob3N0 X2FsaWFzQAorK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAorK2hvc3Rfb3MgPSBAaG9zdF9vc0AKKyto b3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKKytodG1sZGlyID0gQGh0bWxkaXJACisraW5jbHVk ZWRpciA9IEBpbmNsdWRlZGlyQAorK2luZm9kaXIgPSBAaW5mb2RpckAKKytpbnN0YWxsX3NoID0g QGluc3RhbGxfc2hACisrbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACisrbGliZGlyID0gQGxpYmRpckAK KytsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACisrbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKKyts b2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACisrbHRfRUNITyA9IEBsdF9FQ0hPQAorK21h bmRpciA9IEBtYW5kaXJACisrbWtkaXJfcCA9IEBta2Rpcl9wQAorK29sZGluY2x1ZGVkaXIgPSBA b2xkaW5jbHVkZWRpckAKKytwZGZkaXIgPSBAcGRmZGlyQAorK3ByZWZpeCA9IEBwcmVmaXhACisr cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorK3BzZGly ID0gQHBzZGlyQAorK3NiaW5kaXIgPSBAc2JpbmRpckAKKytzZWRfb2sgPSBAc2VkX29rQAorK3No YXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAorK3NyY2RpciA9IEBzcmNkaXJACisrc3lz Y29uZmRpciA9IEBzeXNjb25mZGlyQAorK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACisr dG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAorK3RvcF9idWlsZGRpciA9IEB0 b3BfYnVpbGRkaXJACisrdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAorK0FNX0NQUEZMQUdTID0g LUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCisrcG9zdGdyZXNxbF90ZXN0X2hfc291 cmNlcyA9IAorK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrTUFJTlRBSU5F UkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorK3Rlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTID0gJChw b3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcykKKyt0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1MgPSAk KEJPT1NUX0NGTEFHUykKKyt0ZXN0X3Bvc3RncmVzcWxfTERBREQgPSAKKyt0ZXN0X3Bvc3RncmVz cWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1s ZGwgXAorKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9saWJzb2Np X3Bvc3RncmVzcWwubGEgXAorKwkJJChQT1NUR1JFU1FMX0xERkxBR1MpCisrCisrYWxsOiBhbGwt YW0KKysKKysuU1VGRklYRVM6CisrLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCisrJChzcmNk aXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFr ZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQor KwlAZm9yIGRlcCBpbiAkPzsgZG8gXAorKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScg aW4gXAorKwkgICAgKiQkZGVwKikgXAorKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKKysJICAgICAgICAmJiB7IGlm IHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAorKwkgICAgICBl eGl0IDE7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWVjaG8gJyBjZCAkKHRvcF9zcmNk aXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlJzsgXAorKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFL RSkgLS1nbnUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKKysuUFJFQ0lP VVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWls ZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGluIFwKKysJICAqY29uZmlnLnN0YXR1 cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAorKwllc2Fj OworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZp Z3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKysKKyskKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKEFDTE9DQUxfTTQpOiAg JChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19hY2xvY2FsX200X2RlcHMpOgorKwor K2NsZWFuLW5vaW5zdFBST0dSQU1TOgorKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVz dCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKKysJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKysJ cm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCisrCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhp dCAwOyBcCisrCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNl ZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKKysJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKKysJcm0g LWYgJCRsaXN0CisrdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpOiAkKHRlc3RfcG9zdGdyZXNxbF9P QkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMpIAorKwlAcm0gLWYgdGVzdF9w b3N0Z3Jlc3FsJChFWEVFWFQpCisrCSQodGVzdF9wb3N0Z3Jlc3FsX0xJTkspICQodGVzdF9wb3N0 Z3Jlc3FsX09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0xEQUREKSAkKExJQlMpCisrCisrbW9z dGx5Y2xlYW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNv bXBpbGU6CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG9A YW1fX3F1b3RlQAorKworKy5jcHAubzoKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01Q SUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikv JCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9i amVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxF KSAtYyAtbyAkQCAkPAorKworKy5jcHAub2JqOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENY WENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAIGAk KENZR1BBVEhfVykgJyQ8J2AKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFT SEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAorKwor Ky5jcHAubG86CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQgJEAg LU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMgLW8g JEAgJDwKKysKKyt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm86ICQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQo SU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5v IC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLlRw byAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8gJChE RVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9zdGdy ZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCisrCisrdGVzdF9wb3N0Z3Jlc3FsLXRlc3Qt cG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9w b3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Rlc3Rf cG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10ZXN0 LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9XKSAn JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKKytAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVz dC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNx bC5QbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAn IG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmonIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAor K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdyZXNx bF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdy ZXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAn OyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGZpYAorKworK21vc3RseWNs ZWFuLWxpYnRvb2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1y ZiAubGlicyBfbGlicworKworK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRB R1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK KysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAkJHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytU QUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkk KFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7IFwKKysJaGVyZT1gcHdkYDsgXAorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhl biA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4 OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFH U0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAk JHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFN X0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZp OyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisr CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK KysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChD VEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorKwkgICAgICQkdW5p cXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdk YCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQo R1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1Mg SUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxF UykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK KysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc CisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNk aXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAt ZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmls ZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3Qg LWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRp c3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQor K2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hlY2stYW0KKythbGwtYW06IE1ha2VmaWxlICQo UFJPR1JBTVMpCisraW5zdGFsbGRpcnM6CisraW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwt ZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1 bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKworK2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtF KSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2lu c3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAk KEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSki IFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5T VEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAg IGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxs CisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysKKytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVh bi1nZW5lcmljOgorKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAk KENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXog IiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBB VEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBj b21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBk ZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIK KysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlO RVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVhbi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAorKwltb3N0bHljbGVhbi1h bQorKworK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJ LXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGls ZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisrCWRpc3RjbGVhbi10YWdzCisrCisrZHZpOiBkdmktYW0K KysKKytkdmktYW06CisrCisraHRtbDogaHRtbC1hbQorKworK2h0bWwtYW06CisrCisraW5mbzog aW5mby1hbQorKworK2luZm8tYW06CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1hbQorKworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhl Yy1hbToKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaHRt bC1hbToKKysKKytpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtaW5m by1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0K KysKKytpbnN0YWxsLXBkZi1hbToKKysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisr aW5zdGFsbC1wcy1hbToKKysKKytpbnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVh bjogbWFpbnRhaW5lci1jbGVhbi1hbQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBN YWtlZmlsZQorK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNs ZWFuLWdlbmVyaWMKKysKKyttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KKysKKyttb3N0bHlj bGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9z dGx5Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLWFtCisrCisrcGRmLWFtOgorKworK3BzOiBw cy1hbQorKworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogaW5zdGFsbC1h bSBpbnN0YWxsLXN0cmlwCisrCisrLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNoZWNr IGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAorKwljbGVhbi1saWJ0b29sIGNsZWFuLW5v aW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCisrCWRpc3RjbGVhbi1jb21waWxlIGRpc3Rj bGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKKysJZGlzdGNsZWFuLXRhZ3MgZGlzdGRp ciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorKwlpbnN0YWxsIGluc3Rh bGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCisrCWluc3Rh bGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwKKysJ aW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4g XAorKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0g XAorKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRp cnMgXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbiBcCisrCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHlj bGVhbi1saWJ0b29sIFwKKysJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1bmlu c3RhbGwtYW0KKysKKytAU0VUX01BS0VACisrCisrI25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMg PSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCisrCisrIyBUZWxsIHZlcnNpb25zIFszLjU5 LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KKysjIE90aGVy d2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4K KysuTk9FWFBPUlQ6CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSwyIEBACisrcG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9CisrcG9zdGdy ZXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVz cWwuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rl c3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEw MAorKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90 ZXN0LXBvc3RncmVzcWwuY3BwCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAwCitA QCAtNSw5ICs1LDE3IEBACisgLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0 KQorIC8vCisgCistI2luY2x1ZGUgInNvY2kuaCIKKy0jaW5jbHVkZSAic29jaS1wb3N0Z3Jlc3Fs LmgiCistI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgorKy8vCisrI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+CisrIyAg ICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmg+ CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KKysjZWxz ZQorKyMJaW5jbHVkZSA8c29jaS5oPgorKyMJaW5jbHVkZSA8c29jaS1wb3N0Z3Jlc3FsLmg+Cisr IyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgorKyNlbmRpZgorKy8vCisgI2lu Y2x1ZGUgPGlvc3RyZWFtPgorICNpbmNsdWRlIDxzc3RyZWFtPgorICNpbmNsdWRlIDxzdHJpbmc+ CitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29u ZmlnLmguaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb25maWcuaC5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUwLjAwMDAwMDAw MCArMDEwMAorQEAgLTAsMCArMSwxNTUgQEAKKysvKiBzb2NpL2NvbmZpZy5oLmluLiAgR2VuZXJh dGVkIGZyb20gY29uZmlndXJlLmFjIGJ5IGF1dG9oZWFkZXIuICAqLworKworKy8qIGRlZmluZSBp ZiB0aGUgQm9vc3QgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVAor KworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OkFzaW8gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8K KysjdW5kZWYgSEFWRV9CT09TVF9BU0lPCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RGF0 ZV9UaW1lIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfREFURV9U SU1FCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6RklMRVNZU1RFTSBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX0ZJTEVTWVNURU0KKysKKysvKiBkZWZpbmUg aWYgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYg SEFWRV9CT09TVF9JT1NUUkVBTVMKKysKKysvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGkgbGli cmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9NUEkKKysKKysvKiBkZWZp bmUgaWYgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3Vu ZGVmIEhBVkVfQk9PU1RfTVBJX1BZVEhPTgorKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlBS T0dSQU1fT1BUSU9OUyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NU X1BST0dSQU1fT1BUSU9OUworKworKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlJlZ2V4IGxpYnJh cnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfUkVHRVgKKysKKysvKiBkZWZp bmUgaWYgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisr I3VuZGVmIEhBVkVfQk9PU1RfU0VSSUFMSVpBVElPTgorKworKy8qIGRlZmluZSBpZiB0aGUgQm9v c3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9CT09TVF9T SUdOQUxTCisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U1lTVEVNIGxpYnJhcnkgaXMgYXZh aWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9PU1RfU1lTVEVNCisrCisrLyogZGVmaW5lIGlmIHRo ZSBCb29zdDo6VEhSRUFEIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfQk9P U1RfVEhSRUFECisrCisrLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6VW5pdF90ZXN0X2ZyYW1ld29y ayBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLworKyN1bmRlZiBIQVZFX0JPT1NUX1VOSVRfVEVTVF9G UkFNRVdPUksKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGNtYXRoPiBoZWFk ZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9DTUFUSAorKworKy8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8ZGVxdWU+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX0RFUVVFCisr CisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4g Ki8KKysjdW5kZWYgSEFWRV9ETEZDTl9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUg dGhlIDxmc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9GU1RSRUFNCisrCisr LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4g Ki8KKysjdW5kZWYgSEFWRV9JTlRUWVBFU19ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxpb21hbmlwPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9JT01BTklQCisr CisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb3N0cmVhbT4gaGVhZGVyIGZpbGUu ICovCisrI3VuZGVmIEhBVkVfSU9TVFJFQU0KKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGxpbWl0cz4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfTElNSVRTCisrCisr LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaXN0PiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9MSVNUCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYXA+ IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX01BUAorKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX01F TU9SWV9ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgdGhlIE9yYWNsZSBPQ0kgbGlicmFyeSBpcyBh dmFpbGFibGUgKi8KKysjdW5kZWYgSEFWRV9PUkFDTEUKKysKKysvKiBEZWZpbmUgdG8gMSBpZiBQ b3N0Z3JlU1FMIGxpYnJhcmllcyBhcmUgYXZhaWxhYmxlICovCisrI3VuZGVmIEhBVkVfUE9TVEdS RVNRTAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cXVldWU+IGhlYWRlciBm aWxlLiAqLworKyN1bmRlZiBIQVZFX1FVRVVFCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxzZXQ+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NFVAorKworKy8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3N0cmVhbT4gaGVhZGVyIGZpbGUuICovCisrI3Vu ZGVmIEhBVkVfU1NUUkVBTQorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Rk ZXhjZXB0PiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVERFWENFUFQKKysKKysvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9TVERJTlRfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworKyN1bmRlZiBIQVZFX1NURExJQl9ICisrCisrLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmc+IGhlYWRlciBmaWxlLiAqLworKyN1 bmRlZiBIQVZFX1NUUklORworKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3Ry aW5ncy5oPiBoZWFkZXIgZmlsZS4gKi8KKysjdW5kZWYgSEFWRV9TVFJJTkdTX0gKKysKKysvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZy5oPiBoZWFkZXIgZmlsZS4gKi8KKysj dW5kZWYgSEFWRV9TVFJJTkdfSAorKworKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8 c3lzL3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAorKwor Ky8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxl LiAqLworKyN1bmRlZiBIQVZFX1NZU19UWVBFU19ICisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91 IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCisrI3VuZGVmIEhBVkVfVU5JU1RE X0gKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHZlY3Rvcj4gaGVhZGVyIGZp bGUuICovCisrI3VuZGVmIEhBVkVfVkVDVE9SCisrCisrLyogRGVmaW5lIHRvIHRoZSBzdWItZGly ZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5zdGFsbGVkIGxpYnJhcmllcy4KKysg ICAqLworKyN1bmRlZiBMVF9PQkpESVIKKysKKysvKiBOYW1lIG9mIHBhY2thZ2UgKi8KKysjdW5k ZWYgUEFDS0FHRQorKworKy8qIERlZmluZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0 cyBmb3IgdGhpcyBwYWNrYWdlIHNob3VsZCBiZSBzZW50LiAqLworKyN1bmRlZiBQQUNLQUdFX0JV R1JFUE9SVAorKworKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4g Ki8KKysjdW5kZWYgUEFDS0FHRV9OQU1FCisrCisrLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUg YW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworKyN1bmRlZiBQQUNLQUdFX1NUUklORwor KworKy8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2Fn ZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9UQVJOQU1FCisrCisrLyogRGVmaW5lIHRvIHRoZSB2ZXJz aW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKysjdW5kZWYgUEFDS0FHRV9WRVJTSU9OCisrCisrLyog RGVmaW5lIGlmIHlvdSB3YW50IGV4Y2VwdGlvbnMgaGFuZGxpbmcgKi8KKysjdW5kZWYgU09DSV9F WENFUFRJT05TCisrCisrLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFk ZXIgZmlsZXMuICovCisrI3VuZGVmIFNURENfSEVBREVSUworKworKy8qIERlZmluZSB0byAxIGlm IHlvdSBjYW4gc2FmZWx5IGluY2x1ZGUgYm90aCA8c3lzL3RpbWUuaD4gYW5kIDx0aW1lLmg+LiAq LworKyN1bmRlZiBUSU1FX1dJVEhfU1lTX1RJTUUKKysKKysvKiBWZXJzaW9uIG51bWJlciBvZiBw YWNrYWdlICovCisrI3VuZGVmIFZFUlNJT04KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z b2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuY3BwCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL2JhY2tl bmQtbG9hZGVyLmNwcAkyMDEwLTAxLTIzIDE0OjQ1OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCTIwMTAtMDEtMjMg MTM6MjU6NTcuMDAwMDAwMDAwICswMTAwCitAQCAtMTEsNiArMTEsOSBAQAorICNpbmNsdWRlIDxt YXA+CisgI2luY2x1ZGUgPGNhc3NlcnQ+CisgI2luY2x1ZGUgPGNzdGRsaWI+CisrI2lmbmRlZiBf TVNDX1ZFUgorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKysjZW5kaWYKKyAKKyB1c2luZyBuYW1lc3Bh Y2Ugc29jaTsKKyB1c2luZyBuYW1lc3BhY2Ugc29jaTo6ZHluYW1pY19iYWNrZW5kczsKK2RpZmYg LU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5hbQorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMjAwOS0wNS0wNiAwMDoy ODoxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjkgQEAKKysjIyBjb3JlIHN1Yi1kaXJl Y3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisraW5jbHVkZSAk KHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KKysKKytTVUJESVJTID0gLiB0ZXN0CisrCisrI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSA9IC5fcm93LmNwcCAuX3NvY2ktc2ltcGxlLmNwcCAuX3NvY2ktc2ltcGxlLmggLl92 YWx1ZXMtZXhjaGFuZ2UuaAorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSkKKysKKytsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29yZS5sYQorKwor K2xpYnNvY2lfY29yZV9sYV9TT1VSQ0VTPSAkKGNvcmVfaF9zb3VyY2VzKSAkKGNvcmVfY2Nfc291 cmNlcykgCisrbGlic29jaV9jb3JlX2xhX0NYWEZMQUdTID0KKytsaWJzb2NpX2NvcmVfbGFfTElC QUREID0KKytsaWJzb2NpX2NvcmVfbGFfTERGTEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJP T1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwktdmVy c2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrcGtnaW5jbHVkZV9IRUFE RVJTID0gJChjb3JlX2hfc291cmNlcykKKytpZiBTT0NJX0hFQURFUlNfQlVSSUVECisrc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlCisrZWxzZQorK3NvY2lfaW5jbHVk ZV9kaXIgPSAkKGluY2x1ZGVkaXIpCisrZW5kaWYKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2lu Y2x1ZGVfZGlyKQorKworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtl ZmlsZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmJhc2ljCist LS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL01ha2VmaWxlLmJhc2ljCTIwMTAtMDEtMjMg MTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29y ZS9NYWtlZmlsZS5iYXNpYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAg LTEsNzYgKzAsMCBAQAorLUNPTVBJTEVSID0gZysrCistQ1hYRkxBR1MgPSAtV2FsbCAtcGVkYW50 aWMgLVduby1sb25nLWxvbmcKKy1JTkNMVURFRElSUyA9IAorLU9CSlMgPSAgc2Vzc2lvbi5vIHN0 YXRlbWVudC5vIHJvdy5vIHZhbHVlcy5vIFwKKy0JaW50by10eXBlLm8gdXNlLXR5cGUubyBcCist CWJsb2IubyByb3dpZC5vIHByb2NlZHVyZS5vIHJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5vIHJl Zi1jb3VudGVkLXN0YXRlbWVudC5vIFwKKy0Jb25jZS10ZW1wLXR5cGUubyBwcmVwYXJlLXRlbXAt dHlwZS5vIGVycm9yLm8gdHJhbnNhY3Rpb24ubyBiYWNrZW5kLWxvYWRlci5vIFwKKy0JY29ubmVj dGlvbi1wb29sLm8gc29jaS1zaW1wbGUubworLQorLQorLWxpYnNvY2lfY29yZS5hIDogJHtPQkpT fSAKKy0JYXIgcnYgJEAgJD8KKy0Jcm0gKi5vCistCistc2hhcmVkIDogJHtPQkpTfSAKKy0JJHtD T01QSUxFUn0gLWZQSUMgLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0JJHtDT01Q SUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX2NvcmUuc28gJHtPQkpTfSAKKy0Jcm0gKi5vCistCist c2Vzc2lvbi5vIDogc2Vzc2lvbi5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy1zdGF0ZW1lbnQubyA6IHN0YXRlbWVudC5jcHAKKy0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1yb3cubyA6IHJvdy5j cHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy12 YWx1ZXMubyA6IHZhbHVlcy5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KKy0KKy1pbnRvLXR5cGUubyA6IGludG8tdHlwZS5jcHAKKy0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy11c2UtdHlwZS5vIDogdXNl LXR5cGUuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 CistCQorLWJsb2IubyA6IGJsb2IuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9CistCistZXJyb3IubyA6IGVycm9yLmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLXJvd2lkLm8gOiByb3dpZC5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1wcm9j ZWR1cmUubyA6IHByb2NlZHVyZS5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30g JHtJTkNMVURFRElSU30KKy0KKy1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubyA6IHJlZi1jb3Vu dGVkLXByZXBhcmUtaW5mby5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KKy0KKy1yZWYtY291bnRlZC1zdGF0ZW1lbnQubyA6IHJlZi1jb3VudGVkLXN0 YXRlbWVudC5jcHAKKy0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KKy0KKy1vbmNlLXRlbXAtdHlwZS5vIDogb25jZS10ZW1wLXR5cGUuY3BwCistCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistcHJlcGFyZS10ZW1wLXR5 cGUubyA6IHByZXBhcmUtdGVtcC10eXBlLmNwcAorLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQorLQorLXRyYW5zYWN0aW9uLm8gOiB0cmFuc2FjdGlvbi5jcHAK Ky0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KKy0KKy1iYWNr ZW5kLWxvYWRlci5vIDogYmFja2VuZC1sb2FkZXIuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9CistCistY29ubmVjdGlvbi1wb29sLm8gOiBjb25uZWN0 aW9uLXBvb2wuY3BwCistCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9CistCistc29jaS1zaW1wbGUubyA6IHNvY2ktc2ltcGxlLmNwcAorLQkke0NPTVBJTEVSfSAt YyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQorLQorLQorLWNsZWFuIDoKKy0Jcm0gLWYg bGlic29jaV9jb3JlLmEgbGlic29jaV9jb3JlLnNvCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFr ZWZpbGUuaW4KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuaW4JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9jb3JlL01ha2VmaWxlLmluCTIwMTAtMDEtMjMgMTQ6NDQ6NTIuMDAwMDAwMDAwICswMTAw CitAQCAtMCwwICsxLDk5NiBAQAorKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgorKyMgQGNvbmZpZ3VyZV9pbnB1dEAKKysKKysjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKKysjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKysjIEluYy4KKysjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKysjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKysjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKysjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KKysKKytAU0VUX01BS0VACisrCisrCisrVlBBVEggPSBAc3JjZGlyQAorK3BrZ2Rh dGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFD S0FHRUAKKytwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKKythbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCisraW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKKytpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCisraW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCisrSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKKyt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCisrTk9STUFMX0lOU1RBTEwgPSA6CisrUFJFX0lOU1RBTEwg PSA6CisrUE9TVF9JTlNUQUxMID0gOgorK05PUk1BTF9VTklOU1RBTEwgPSA6CisrUFJFX1VOSU5T VEFMTCA9IDoKKytQT1NUX1VOSU5TVEFMTCA9IDoKKytidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAor K2hvc3RfdHJpcGxldCA9IEBob3N0QAorK0RJU1RfQ09NTU9OID0gJChwa2dpbmNsdWRlX0hFQURF UlMpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCisrCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNy Y2Rpcikvc291cmNlcy5tayBcCisrCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCisrc3Vi ZGlyID0gc29jaS9jb3JlCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAor K2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBc CisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bf c3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0 aW9ucy5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5v YnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVw cyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisr CSQoQUNMT0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJ R19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAorK0NPTkZJR19DTEVBTl9G SUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KKythbV9fdnBhdGhfYWRqX3NldHVw ID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9f dnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAgICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRw IiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysg IGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdg OworK2FtX19pbnN0YWxsX21heCA9IDQwCisrYW1fX25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysg IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxc Ji9nJ2AKKythbV9fbm9iYXNlX3N0cmlwID0gXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hv ICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9s aXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBk byBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKysgIHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7 IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFX SykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAi ICIgJCQxOyBcCisrICAgIGlmICgrK25bJCQyXSA9PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysg ICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIi IH0gfSBcCisrICAgIEVORCB7IGZvciAoZGlyIGluIGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rp cl0gfScKKythbV9fYmFzZV9saXN0ID0gXAorKyAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQk IU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKysgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtz L1xuLyAvZycKKythbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpIgorK0xUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMp CisrbGlic29jaV9jb3JlX2xhX0RFUEVOREVOQ0lFUyA9CisrYW1fX29iamVjdHNfMSA9CisrYW1f X29iamVjdHNfMiA9IGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyBcCisrCWxpYnNv Y2lfY29yZV9sYS1ibG9iLmxvIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gXAor KwlsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBc CisrCWxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBcCisrCWxpYnNvY2lfY29yZV9s YS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBcCisrCWxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8g XAorKwlsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIFwKKysJbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbyBcCisrCWxpYnNvY2lfY29yZV9s YS1yb3cubG8gbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIFwKKysJbGlic29jaV9jb3JlX2xhLXNl c3Npb24ubG8gbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIFwKKysJbGlic29jaV9jb3Jl X2xhLXN0YXRlbWVudC5sbyBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8gXAorKwlsaWJz b2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbworK2FtX2xp YnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSAkKGFtX19vYmplY3RzXzIp CisrbGlic29jaV9jb3JlX2xhX09CSkVDVFMgPSAkKGFtX2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RT KQorK2xpYnNvY2lfY29yZV9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpIFwKKysJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKKysJ JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIFwKKysJJChsaWJzb2NpX2Nv cmVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5A YW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKKytkZXBjb21wID0gJChTSEVMTCkgJCh0 b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAorK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVz CisrYW1fX212ID0gbXYgLWYKKytDWFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCisrCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQo QU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCisrTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCisrCS0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAorKwkk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQorK0NY WExEID0gJChDWFgpCisrQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NY WEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKKysJJChMREZMQUdTKSAtbyAkQAor K0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCisr TFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D RkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksgPSAkKExJQlRPT0wpIC0tdGFn PUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAorKwktLW1vZGU9bGluayAk KENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSBcCisrCSQoTERGTEFH UykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNFUykKKytESVNUX1NP VVJDRVMgPSAkKGxpYnNvY2lfY29yZV9sYV9TT1VSQ0VTKQorK1JFQ1VSU0lWRV9UQVJHRVRTID0g YWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwtcmVj dXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0YWxs LWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRtbC1y ZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vyc2l2 ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxjaGVj ay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlwcy1y ZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVB REVSUykKKytSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBj bGVhbi1yZWN1cnNpdmUJXAorKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFu LXJlY3Vyc2l2ZQorK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzot cmVjdXJzaXZlPSkgXAorKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0 YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAorKwlkaXN0ZGlyCisrRVRBR1MgPSBldGFncworK0NUQUdT ID0gY3RhZ3MKKytESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCisrRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKythbV9f cmVsYXRpdml6ZSA9IFwKKysgIGRpcjA9YHB3ZGA7IFwKKysgIHNlZF9maXJzdD0ncyxeXChbXi9d KlwpLy4qJCQsXDEsJzsgXAorKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKKysgIHNlZF9s YXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCisrICBzZWRfYnV0bGFzdD0ncywvKlteL10q JCQsLCc7IFwKKysgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKKysgICAgZmlyc3Q9YGVj aG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKKysgICAgaWYgdGVzdCAiJCRm aXJzdCIgIT0gIi4iOyB0aGVuIFwKKysgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRo ZW4gXAorKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJg LyIkJGRpcjIiOyBcCisrICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNl ZF9idXRsYXN0ImA7IFwKKysgICAgICBlbHNlIFwKKysgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRk aXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAorKyAgICAgICAgaWYgdGVzdCAiJCRmaXJz dDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKKysgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8 IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICAgICAgICBlbHNlIFwKKysgICAgICAgICAgZGly Mj0iLi4vJCRkaXIyIjsgXAorKyAgICAgICAgZmk7IFwKKysgICAgICAgIGRpcjA9IiQkZGlyMCIv IiQkZmlyc3QiOyBcCisrICAgICAgZmk7IFwKKysgICAgZmk7IFwKKysgICAgZGlyMT1gZWNobyAi JCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCisrICBkb25lOyBcCisrICByZWxkaXI9 IiQkZGlyMiIKKytwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9DQUwg PSBAQUNMT0NBTEAKKytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBB VVRPQ09ORkAKKytBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01B S0VACisrQVdLID0gQEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01Q SV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9N UElfUFlUSE9OX0xJQkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAor K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElC QAorK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAorK0NGTEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBD UFBGTEFHU0AKKytDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAor K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhD UFAgPSBAQ1hYQ1BQQAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBD WFhGTEFHU0AKKytDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBE SVIgPSBAREVQRElSQAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJ TkAKKytFQ0hPX0MgPSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVD SE9fVEAKKytFR1JFUCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZH UkVQQAorK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAorK0dSRVAgPSBAR1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdT QAorK0xJQk9CSlMgPSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJU T09MQAorK0xJUE8gPSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElC T0JKU0AKKytNQUtFSU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlT UUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAK KytNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAor K01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBA Tk1FRElUQAorK09CSkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAorK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAK KytPVE9PTDY0ID0gQE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVH UkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05B TUVACisrUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1F ID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9O QAorK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQ R19DT05GSUcgPSBAUEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxf Q0ZMQUdTQAorK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNR TF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBA UE9TVEdSRVNRTF9WRVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBA UlBNX1JFTEVBU0VACisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVM TCA9IEBTSEVMTEAKKytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURA CisrU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE QAorK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURACisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FE X0NPTU1BTkRACisrVkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVp bGRkaXJACisrYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBA YWJzX3RvcF9idWlsZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKyth Y19jdF9DQyA9IEBhY19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RV TVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKyth bV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVv dGVACisrYW1fX3RhciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmlu ZGlyID0gQGJpbmRpckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9h bGlhc0AKKytidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAor K2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisr ZGF0YWRpciA9IEBkYXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZf b2sgPSBAZGlmZl9va0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdl bl9va0AKKytkdmlkaXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNf cHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAK Kytob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9z dF9vcyA9IEBob3N0X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIg PSBAaHRtbGRpckAKKytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZv ZGlyQAorK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AK KytsaWJkaXIgPSBAbGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVk aXIgPSBAbG9jYWxlZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9F Q0hPID0gQGx0X0VDSE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BA Cisrb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisr cHJlZml4ID0gQHByZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJh bnNmb3JtX25hbWVACisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3Nl ZF9vayA9IEBzZWRfb2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3Jj ZGlyID0gQHNyY2RpckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFz ID0gQHRhcmdldF9hbGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhA CisrdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNk aXJACisrQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytj b3JlX2hfc291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tl bmQtbG9hZGVyLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2ItZXhjaGFuZ2UuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1ncmVnb3JpYW4tZGF0ZS5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWZ1c2lvbi5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LW9wdGlvbmFsLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtdHVwbGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9lcnJvci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2V4 Y2hhbmdlLXRyYWl0cy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8u aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmggXAorKyAgICAgICAgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmggXAorKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcm93LWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvcm93aWQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC1leGNo YW5nZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd3NldC5oIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uaCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWJhY2tlbmQuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zb2NpLWNvbmZpZy5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktcGxhdGZvcm0uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zb2NpLXNpbXBsZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ku aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuaCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5oIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVyc2lvbi5oIFwKKysgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVyc2lvbi10cmFpdHMuaCBcCisrICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWhvbGRlci5oIFwKKysgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3R5cGUtcHRyLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvdXNlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUu aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMtZXhjaGFuZ2UuaAorKworK2NvcmVfY2Nf c291cmNlcyA9IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9h ZGVyLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCBcCisr ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwIFwKKysg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCBcCisrICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAgXAorKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yb3dpZC5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lv bi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3Bw IFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5jcHAgXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgorK1NVQkRJUlMgPSAuIHRlc3QKKysKKysjRVhUUkFfRElTVF9GT1JfU09DSV9D T01QQVRJQklMSVRZID0gLl9yb3cuY3BwIC5fc29jaS1zaW1wbGUuY3BwIC5fc29jaS1zaW1wbGUu aCAuX3ZhbHVlcy1leGNoYW5nZS5oCisrRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZKQorK2xpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfY29yZS5sYQorK2xp YnNvY2lfY29yZV9sYV9TT1VSQ0VTID0gJChjb3JlX2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJj ZXMpIAorK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFHUyA9IAorK2xpYnNvY2lfY29yZV9sYV9MSUJB REQgPSAKKytsaWJzb2NpX2NvcmVfbGFfTERGTEFHUyA9IFwKKysJJChCT09TVF9MSUJTKSAkKEJP T1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAorKwktdmVy c2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCisrCisrcGtnaW5jbHVkZV9IRUFE RVJTID0gJChjb3JlX2hfc291cmNlcykKKytAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2Np X2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVA c29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlCisrYWxsOiBhbGwtcmVj dXJzaXZlCisrCisrLlNVRkZJWEVTOgorKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagorKyQo c3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVw cykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVw cyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAgICAgJiYg eyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKKysJICAg ICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2QgJCh0b3Bf c3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUvTWFrZWZpbGUnOyBcCisrCSQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKKysJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2Nv cmUvTWFrZWZpbGUKKysuUFJFQ0lPVVM6IE1ha2VmaWxlCisrTWFrZWZpbGU6ICQoc3JjZGlyKS9N YWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworKwlAY2FzZSAnJD8nIGlu IFwKKysJICAqY29uZmlnLnN0YXR1cyopIFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKKysJICAqKSBcCisrCSAgICBl Y2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1 YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmls ZXNfbWF5YmUpOzsgXAorKwllc2FjOworKworKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVz OiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKysKKyskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQor KwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2gKKyskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQorKwljZCAkKHRvcF9i dWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKKyskKGFtX19h Y2xvY2FsX200X2RlcHMpOgorK2luc3RhbGwtbGliTFRMSUJSQVJJRVM6ICQobGliX0xUTElCUkFS SUVTKQorKwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChsaWJkaXIpIiB8fCAkKE1L RElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMp JzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsgXAorKwlsaXN0Mj07IGZvciBwIGluICQk bGlzdDsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIFwKKysJICAgIGxpc3QyPSIkJGxp c3QyICQkcCI7IFwKKysJICBlbHNlIDo7IGZpOyBcCisrCWRvbmU7IFwKKysJdGVzdCAteiAiJCRs aXN0MiIgfHwgeyBcCisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQo TElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5TVEFMTF9TVFJJUF9G TEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIpJyI7IFwKKysJICAkKExJQlRPT0wpICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxM KSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAiJChERVNURElSKSQobGliZGlyKSI7IFwK KysJfQorKworK3VuaW5zdGFsbC1saWJMVExJQlJBUklFUzoKKysJQCQoTk9STUFMX1VOSU5TVEFM TCkKKysJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7IHRlc3QgLW4gIiQobGliZGlyKSIgfHwg bGlzdD07IFwKKysJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgJChhbV9fc3RyaXBfZGlyKSBc CisrCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RESVIpJChsaWJkaXIpLyQkZiciOyBcCisr CSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT11 bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRpcikvJCRmIjsgXAorKwlkb25lCisrCisr Y2xlYW4tbGliTFRMSUJSQVJJRVM6CisrCS10ZXN0IC16ICIkKGxpYl9MVExJQlJBUklFUykiIHx8 IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQorKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsg Zm9yIHAgaW4gJCRsaXN0OyBkbyBcCisrCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1te L10qJCR8fCdgIjsgXAorKwkgIHRlc3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAorKwkg IGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlvbnNcIiI7IFwKKysJICBybSAtZiAiJCR7 ZGlyfS9zb19sb2NhdGlvbnMiOyBcCisrCWRvbmUKKytsaWJzb2NpX2NvcmUubGE6ICQobGlic29j aV9jb3JlX2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX2xhX0RFUEVOREVOQ0lFUykgCisrCSQo bGlic29jaV9jb3JlX2xhX0xJTkspIC1ycGF0aCAkKGxpYmRpcikgJChsaWJzb2NpX2NvcmVfbGFf T0JKRUNUUykgJChsaWJzb2NpX2NvcmVfbGFfTElCQUREKSAkKExJQlMpCisrCisrbW9zdGx5Y2xl YW4tY29tcGlsZToKKysJLXJtIC1mICouJChPQkpFWFQpCisrCisrZGlzdGNsZWFuLWNvbXBpbGU6 CisrCS1ybSAtZiAqLnRhYi5jCisrCisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1 b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5QbG9AYW1fX3F1 b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5j bHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1w b29sLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3Rl QC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5QbG9AYW1fX3F1b3RlQAorK0BBTURF UF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVf bGEtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5QbG9A YW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvQGFtX19xdW90ZUAKKytA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9j b3JlX2xhLXByb2NlZHVyZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVk ZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJl cGFyZS1pbmZvLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQu UGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVF QEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93 aWQuUGxvQGFtX19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKKytAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXNvY2ktc2ltcGxlLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvQGFt X19xdW90ZUAKKytAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLlBsb0BhbV9fcXVvdGVACisrQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11 c2UtdHlwZS5QbG9AYW1fX3F1b3RlQAorK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlBsb0BhbV9fcXVvdGVACisr CisrLmNwcC5vOgorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAt TUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGli dG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8 CisrCisrLmNwcC5vYmo6CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1U ICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAn JDwnYAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRIX1cpICckPCdgCisrCisrLmNwcC5sbzoKKytA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAk KERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAorKworK2xp YnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gLU1EIC1NUCAtTUYgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5UcG8gLWMgLW8gbGlic29jaV9jb3Jl X2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9i YWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5UcG8gJChERVBESVIp L2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1s b2FkZXIuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1i bG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWJsb2IubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCisr QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtYmxvYi5QbG8KKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmxvYi5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9s YS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5jcHAKKysKKyts aWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9jb25uZWN0aW9uLXBvb2wuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkg IC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21w aWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9D UFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLlRwbyAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5UcG8g JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuUGxvCisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L2Nvbm5lY3Rpb24tcG9vbC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24t cG9vbC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgfHwgZWNobyAnJChzcmNk aXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcAorKworK2xp YnNvY2lfY29yZV9sYS1lcnJvci5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3Bw CisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVf bGEtZXJyb3IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5U cG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Vycm9yLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1lcnJvci5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9s YS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2Vycm9yLmNwcAorKworK2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2ludG8tdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2ludG8tdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtaW50by10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLWludG8tdHlwZS5QbG8KKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCcgb2JqZWN0PSds aWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hA CisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQo Q1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtaW50by10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwCisrCisr bGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9vbmNlLXRlbXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2Nv cmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1f X212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLlBsbworK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRl bXAtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvJyBs aWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBC QUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xh LXByZXBhcmUtdGVtcC10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRl bXAtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlRw byAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLlBsbworK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXByZXBh cmUtdGVtcC10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5 cGUuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcHJvY2VkdXJlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXBy b2NlZHVyZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNw cCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJl LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1wcm9jZWR1cmUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJl LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1w cm9jZWR1cmUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcm9jZWR1cmUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEt cmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIC1N RCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYt Y291bnRlZC1wcmVwYXJlLWluZm8uY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5UcG8g JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uUGxvCisr QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAnIG9iamVjdD0nbGlic29jaV9j b3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFD S1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQ RElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFz dGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAk KExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lO Q0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lf Y29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1j b3VudGVkLXByZXBhcmUtaW5mby5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv cmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcAorKworK2xpYnNv Y2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1l bnQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVk LXN0YXRlbWVudC5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5QbG8KKytAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNv dW50ZWQtc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQt c3RhdGVtZW50LmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRl ZC1zdGF0ZW1lbnQuY3BwCisrCisrbGlic29jaV9jb3JlX2xhLXJvdy5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGls ZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtTVQgbGlic29jaV9jb3JlX2xhLXJvdy5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXJvdy5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJvdy5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFt X19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3cuVHBvICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtcm93LlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29y ZV9sYS1yb3cubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3cubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL3Jvdy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvdy5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtcm93aWQubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJvd2lkLmxvIC1NRCAtTVAgLU1GICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKytAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuVHBv ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93aWQuUGxvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNw cCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yb3dp ZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAKKysKKytsaWJz b2NpX2NvcmVfbGEtc2Vzc2lvbi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5j cHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29y ZV9sYS1zZXNzaW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vz c2lvbi5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLlRwbyAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXNlc3Npb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8g JyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCisrCisrbGli c29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2Np LXNpbXBsZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hY ICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAk KENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxp YnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29j aV9jb3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1w bGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUu Y3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLXNvY2ktc2ltcGxlLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNvY2ktc2lt cGxlLlBsbworK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3Jl X2xhLXNvY2ktc2ltcGxlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACisrQEFNREVQ X1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9E RSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACisrQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkk KExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAt LW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVE RVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwCisrCisrbGli c29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVt ZW50LmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9jb3JlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXN0YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAorK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1l bnQuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LlBsbworK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8nIGxp YnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJB Q0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAk KEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAk KERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3N0YXRlbWVudC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3N0YXRlbWVudC5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG86 ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAorK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvIC1j IC1vIGxpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uVHBvICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uUGxvCisrQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0 aW9uLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24ubG8nIGxpYnRvb2w9 eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS10cmFuc2FjdGlvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dHJhbnNhY3Rpb24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS90cmFuc2FjdGlvbi5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG86ICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAorK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNl LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91 c2UtdHlwZS5jcHAKKytAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdXNl LXR5cGUuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKKytAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKKytAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5sbyBgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAKKysKKytsaWJzb2NpX2NvcmVfbGEt dmFsdWVzLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCisrQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxv IC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAtYyAtbyBs aWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS92YWx1ZXMuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS92YWx1ZXMuY3BwCisrQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9jb3JlX2xhLXZhbHVlcy5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1 ZXMuUGxvCisrQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXZh bHVlcy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAorK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29t cCkgQEFNREVQQkFDS1NMQVNIQAorK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAg LS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQ UEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXZhbHVlcy5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorKworK21vc3RseWNsZWFuLWxpYnRvb2w6CisrCS1ybSAt ZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBfbGlicworK2luc3Rh bGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQorKwlAJChOT1JNQUxf SU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChNS0RJUl9QKSAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUykn OyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlmb3IgcCBpbiAkJGxp c3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGly KS8iOyBmaTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IFwKKysJZG9uZSB8ICQoYW1fX2Jhc2VfbGlz dCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKysJICBlY2hvICIgJChJTlNUQUxMX0hF QURFUikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknIjsgXAorKwkgICQoSU5T VEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiB8fCBleGl0 ICQkPzsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTOgorKwlAJChO T1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAt biAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJZmlsZXM9YGZvciBwIGluICQkbGlz dDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKKysJdGVzdCAtbiAi JCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNkICckKERFU1RESVIpJChwa2dpbmNs dWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisrCWNkICIkKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworKworKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJk aXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCisrIyBpbnRvIHRo ZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCisr IyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVk aXRpbmcgTWFrZWZpbGVzLAorKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZp Zy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJworKyMgICAgICh3aGljaCB3aWxsIGNhdXNl IHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Cisr IyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNv bW1hbmQgbGluZS4KKyskKFJFQ1VSU0lWRV9UQVJHRVRTKToKKysJQGZhaWw9IGZhaWxjb209J2V4 aXQgMSc7IFwKKysJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAorKwkgIGNhc2UgJCRmIGlu IFwKKysJICAgICo9KiB8IC0tWyFrXSopOzsgXAorKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXll cyc7OyBcCisrCSAgZXNhYzsgXAorKwlkb25lOyBcCisrCWRvdF9zZWVuPW5vOyBcCisrCXRhcmdl dD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGlu ICQkc3ViZGlyIjsgXAorKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCisrCSAg ICBkb3Rfc2Vlbj15ZXM7IFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCisr CSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZpOyBcCisr CSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2Fs X3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmU7IFwKKysJaWYgdGVz dCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKKysJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdT KSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAorKwlmaTsgdGVzdCAteiAiJCRmYWlsIgorKwor KyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsg XAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2FzZSAkJGYgaW4gXAorKwkg ICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwK KysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwKKysJY2FzZSAiJEAiIGlu IFwKKysJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NV QkRJUlMpJyA7OyBcCisrCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAorKwllc2FjOyBcCisr CXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCisrCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAor KwkgIGZpOyBcCisrCWRvbmU7IFwKKysJcmV2PSIkJHJldiAuIjsgXAorKwl0YXJnZXQ9YGVjaG8g JEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCisrCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwK KysJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0i OyBcCisrCSAgZWxzZSBcCisrCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAorKwkgIGZp OyBcCisrCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAk JGxvY2FsX3RhcmdldCkgXAorKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCisrCWRvbmUgJiYgdGVz dCAteiAiJCRmYWlsIgorK3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKKysJZG9u ZQorK2N0YWdzLXJlY3Vyc2l2ZToKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCisrCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3Vi ZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAorKwlkb25lCisrCisrSUQ6 ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKKysJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJbWtp ZCAtZklEICQkdW5pcXVlCisrdGFnczogVEFHUworKworK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQo SEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJ TEVTKSAkKExJU1ApCisrCXNldCB4OyBcCisrCWhlcmU9YHB3ZGA7IFwKKysJaWYgKCQoRVRBR1Mp IC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisrCSAg aW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PS47IFwKKysJ ZWxzZSBcCisrCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCisrCSAgZW1wdHlfZml4PTsg XAorKwlmaTsgXAorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRv IFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkgICAgdGVz dCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAorKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9v cHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBc CisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRA IiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAk KEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkg IGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQoVEFHU19GSUxF UykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCisr CSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJH UykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1fX2NkKSAkKHRv cF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAor KwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0Y2xlYW4tdGFn czoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKKysKKytk aXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAi JCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCisrCWxpc3Q9 JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRv IGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0 IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0 ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJUl9QKSBgZWNo byAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98 O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2FjOyBcCisrCWZv ciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRl c3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKKysJICBpZiB0 ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNl ZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRm aWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAg IGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRo ZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEg LXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7IFwKKysJICAg IGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKKysJICBl bHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAgICB8fCBjcCAt cCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisr CSAgZmk7IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2Ug XAorKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgJChNS0RJ Ul9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAorKwkgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7 IFwKKysJZG9uZQorKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxp c3Q7IGRvIFwKKysJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAorKwkg ICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKKysJICAgICQo YW1fX3JlbGF0aXZpemUpOyBcCisrCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAg ZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCisrCSAgICAkKGFtX19yZWxh dGl2aXplKTsgXAorKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCisrCSAgICBlY2hv ICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIk JG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCisrCSAgICBl Y2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFt X19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCisrCSAgICAoJChhbV9fY2QpICQkc3ViZGly ICYmIFwKKysJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAorKwkgICAgICAgIHRvcF9k aXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAorKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rp c3RkaXIiIFwKKysJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKKysJCWFtX19za2lwX2xlbmd0aF9j aGVjaz06IFwKKysJCWFtX19za2lwX21vZGVfZml4PTogXAorKwkgICAgICAgIGRpc3RkaXIpIFwK KysJICAgICAgfHwgZXhpdCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwt YW0KKytjaGVjazogY2hlY2stcmVjdXJzaXZlCisrYWxsLWFtOiBNYWtlZmlsZSAkKExUTElCUkFS SUVTKSAkKEhFQURFUlMpCisraW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQorK2lu c3RhbGxkaXJzLWFtOgorKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNU RElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtE SVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisraW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKKytp bnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKKytpbnN0YWxsLWRhdGE6IGluc3Rh bGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKKysKKytp bnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhl Yy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1 cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAor KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKyttb3N0bHljbGVhbi1nZW5lcmlj OgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNsZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQor KwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKKysKKyttYWludGFp bmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9y IG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkg cmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgorKwktdGVzdCAteiAiJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCisrY2xlYW46 IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYkxU TElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVh bjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLXJmIC4vJChERVBESVIpCisrCS1ybSAtZiBN YWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNs ZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2aTogZHZpLXJlY3Vyc2l2ZQor KworK2R2aS1hbToKKysKKytodG1sOiBodG1sLXJlY3Vyc2l2ZQorKworK2h0bWwtYW06CisrCisr aW5mbzogaW5mby1yZWN1cnNpdmUKKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTog aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06IGluc3Rh bGwtbGliTFRMSUJSQVJJRVMKKysKKytpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNp dmUKKysKKytpbnN0YWxsLWh0bWwtYW06CisrCisraW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCisrCisraW5zdGFsbC1pbmZvLWFtOgorKworK2luc3RhbGwtbWFuOgorKworK2lu c3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKKysKKytpbnN0YWxsLXBkZi1hbToKKysK KytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtcHMtYW06Cisr CisraW5zdGFsbGNoZWNrLWFtOgorKworK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCisrCS1ybSAtcmYgLi8kKERFUERJUikKKysJLXJtIC1mIE1ha2VmaWxlCisr bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YworKworK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUKKysKKyttb3N0bHljbGVh bi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKysJbW9zdGx5 Y2xlYW4tbGlidG9vbAorKworK3BkZjogcGRmLXJlY3Vyc2l2ZQorKworK3BkZi1hbToKKysKKytw czogcHMtcmVjdXJzaXZlCisrCisrcHMtYW06CisrCisrdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwt bGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrLk1BS0U6ICQo UkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIGN0YWdzLXJlY3Vy c2l2ZSBcCisrCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5Q SE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RB R1MgR1RBR1MgXAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVy aWMgXAorKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29sIGN0YWdzIGN0YWdzLXJl Y3Vyc2l2ZSBcCisrCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJp YyBcCisrCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1h bSBodG1sIFwKKysJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3Rh bGwtZGF0YSBcCisrCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBp bnN0YWxsLWV4ZWMgXAorKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRt bC1hbSBpbnN0YWxsLWluZm8gXAorKwlpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1saWJMVExJQlJB UklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCisrCWluc3RhbGwtcGRmLWFtIGluc3RhbGwt cGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCisrCWluc3RhbGwtcHMtYW0gaW5zdGFsbC1z dHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKKysJaW5zdGFsbGRpcnMgaW5zdGFs bGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBt b3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0YWdzIHRhZ3MtcmVj dXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAorKwl1bmluc3RhbGwtbGliTFRMSUJSQVJJ RVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9z b2NpLXBsYXRmb3JtLmgKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvc29jaS1wbGF0 Zm9ybS5oCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmgJMjAxMC0wMS0yMyAxMzoyNTo1Ny4w MDAwMDAwMDAgKzAxMDAKK0BAIC0xMiw4ICsxMiwxMCBAQAorICNpZmRlZiBfTVNDX1ZFUgorIAor IC8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdnNucHJpbnRmIHZhcmlhbnRzLgorLSNkZWZpbmUg SEFWRV9WU05QUklOVEYgMQorLSNkZWZpbmUgdnNucHJpbnRmIF92c25wcmludGYKKysjaWYgX01T Q19WRVIgPCAxNTAwCisrIyBkZWZpbmUgSEFWRV9WU05QUklOVEYgMQorKyMgZGVmaW5lIHZzbnBy aW50ZiBfdnNucHJpbnRmCisrI2VuZGlmCisgCisgLy8gRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBz bnByaW50ZiB2YXJpYW50cy4KKyAjZGVmaW5lIEhBVkVfU05QUklOVEYgMQorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAgc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAwMDAwMDAwICswMTAw CisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAJMjAxMC0w MS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC00NzMsNyArNDczLDcgQEAKKyAvLyBo ZWxwZXIgZm9yIGZvcm1hdHRpbmcgZGF0ZSB2YWx1ZXMKKyBjaGFyIGNvbnN0ICogZm9ybWF0X2Rh dGUoc3RhdGVtZW50X3dyYXBwZXIgJiB3cmFwcGVyLCBzdGQ6OnRtIGNvbnN0ICYgZCkKKyB7Cist ICAgIHNwcmludGYod3JhcHBlci5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVkICVkICVkIiwK KysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXIuZGF0ZV9mb3JtYXR0ZWQsICIlZCAlZCAlZCAlZCAl ZCAlZCIsCisgICAgICAgICBkLnRtX3llYXIgKyAxOTAwLCBkLnRtX21vbiArIDEsIGQudG1fbWRh eSwKKyAgICAgICAgIGQudG1faG91ciwgZC50bV9taW4sIGQudG1fc2VjKTsKKyAKK0BAIC00OTAs NyArNDkwLDcgQEAKKyAgICAgaW50IGhvdXI7CisgICAgIGludCBtaW51dGU7CisgICAgIGludCBz ZWNvbmQ7CistICAgIGludCBjb25zdCBjb252ZXJ0ZWQgPSBzc2NhbmYodmFsLCAiJWQgJWQgJWQg JWQgJWQgJWQiLAorKyAgICBpbnQgY29uc3QgY29udmVydGVkID0gc3RkOjpzc2NhbmYodmFsLCAi JWQgJWQgJWQgJWQgJWQgJWQiLAorICAgICAgICAgJnllYXIsICZtb250aCwgJmRheSwgJmhvdXIs ICZtaW51dGUsICZzZWNvbmQpOworICAgICBpZiAoY29udmVydGVkICE9IDYpCisgICAgIHsKK0BA IC0xNTExLDcgKzE1MTEsNyBAQAorIAorICAgICAvLyBmb3JtYXQgaXM6ICJZWVlZIE1NIEREIGho IG1tIHNzIgorICAgICBzdGQ6OnRtIGNvbnN0ICYgZCA9IHdyYXBwZXItPnVzZV9kYXRlc1tuYW1l XTsKKy0gICAgc3ByaW50Zih3cmFwcGVyLT5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVkICVk ICVkIiwKKysgICAgc3RkOjpzcHJpbnRmKHdyYXBwZXItPmRhdGVfZm9ybWF0dGVkLCAiJWQgJWQg JWQgJWQgJWQgJWQiLAorICAgICAgICAgZC50bV95ZWFyICsgMTkwMCwgZC50bV9tb24gKyAxLCBk LnRtX21kYXksCisgICAgICAgICBkLnRtX2hvdXIsIGQudG1fbWluLCBkLnRtX3NlYyk7CisgCitA QCAtMTUyOCwxMCArMTUyOCwxMCBAQAorIAorICAgICAgICAgLy8gYmluZCBhbGwgaW50byBlbGVt ZW50cworIAorLSAgICAgICAgc2l6ZV90IGNvbnN0IGludG9fZWxlbWVudHMgPSB3cmFwcGVyLT5p bnRvX3R5cGVzLnNpemUoKTsKKysgICAgICAgIGludCBjb25zdCBpbnRvX2VsZW1lbnRzID0gc3Rh dGljX2Nhc3Q8aW50Pih3cmFwcGVyLT5pbnRvX3R5cGVzLnNpemUoKSk7CisgICAgICAgICBpZiAo d3JhcHBlci0+aW50b19raW5kID09IHN0YXRlbWVudF93cmFwcGVyOjpzaW5nbGUpCisgICAgICAg ICB7CistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gaW50b19lbGVtZW50czsg KytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGludG9fZWxlbWVudHM7ICsr aSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN3aXRjaCAod3JhcHBlci0+aW50 b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworQEAgLTE1NjMsOCArMTU2Myw3IEBACisg ICAgICAgICBlbHNlCisgICAgICAgICB7CisgICAgICAgICAgICAgLy8gdmVjdG9yIGVsZW1lbnRz CistCistICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgIT0gaW50b19lbGVtZW50czsg KytpKQorKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGludG9fZWxlbWVudHM7ICsr aSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN3aXRjaCAod3JhcHBlci0+aW50 b190eXBlc1tpXSkKKyAgICAgICAgICAgICAgICAgeworZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvY29yZS9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvc291 cmNlcy5taworLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb3VyY2VzLm1rCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDU4IEBACisrY29yZV9oX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Jsb2IuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9i LWV4Y2hhbmdlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZ3Jl Z29yaWFuLWRhdGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1m dXNpb24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1vcHRpb25h bC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LXR1cGxlLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlvbi1wb29sLmggXAorKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuaCBcCisrICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9leGNoYW5nZS10cmFpdHMuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9pbnRvLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1w LXR5cGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAt dHlwZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5oIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5m by5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRl bWVudC5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5oIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy1leGNoYW5nZS5oIFwKKysgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcm93aWQtZXhjaGFuZ2UuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yb3dzZXQuaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9u LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1iYWNrZW5kLmggXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1jb25maWcuaCBcCisrICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXBsYXRmb3JtLmggXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuaCBcCisrICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9zb2NpLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c3RhdGVtZW50LmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uaCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24u aCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWNvbnZlcnNpb24tdHJh aXRzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1ob2xkZXIuaCBc CisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLXB0ci5oIFwKKysgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS5oIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3VzZS10eXBlLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv dmFsdWVzLmggXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLWV4Y2hh bmdlLmgKKytjb3JlX2NjX3NvdXJjZXMgPSBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9iYWNrZW5kLWxvYWRlci5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvYmxvYi5jcHAgXAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvY29ubmVjdGlv bi1wb29sLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAg XAorKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAgXAorKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwIFwKKysgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCBcCisrICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwIFwK KysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAgXAorKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Nlc3Npb24uY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0 ZW1lbnQuY3BwIFwKKysgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9u LmNwcCBcCisrICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAgXAor KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcAorZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvY29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCTIwMTAtMDEtMjMgMTQ6NDU6NDQuMDAw MDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L2NvbW1v bi10ZXN0cy5oCTIwMDktMDUtMDYgMDA6MDI6MzYuMDAwMDAwMDAwICswMjAwCitAQCAtOCwxNiAr OCwzMCBAQAorICNpZm5kZWYgU09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorICNkZWZpbmUg U09DSV9DT01NT05fVEVTVFNfSF9JTkNMVURFRAorIAorLSNpbmNsdWRlICJzb2NpLmgiCistI2lu Y2x1ZGUgInNvY2ktY29uZmlnLmgiCisrLy8KKysjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVS SUVEKQorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KKysjICAgICAgIGluY2x1 ZGUgPHNvY2kvY29yZS9zb2NpLWNvbmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L2Jvb3N0LW9wdGlvbmFsLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3QtdHVw bGUuaD4KKysjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1ncmVnb3JpYW4tZGF0ZS5o PgorKyNlbHNlCisrIwlpbmNsdWRlIDxzb2NpLmg+CisrIyAgICAgICBpbmNsdWRlIDxzb2NpLWNv bmZpZy5oPgorKyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKysjICAgICAgIGlu Y2x1ZGUgPGJvb3N0LXR1cGxlLmg+CisrIyAgICAgICBpbmNsdWRlIDxib29zdC1ncmVnb3JpYW4t ZGF0ZS5oPgorKyNlbmRpZgorKy8vCisgCisgLy8gZXhwbGljaXRseSBwdWxsIGNvbnZlcnNpb25z IGZvciBCb29zdCdzIG9wdGlvbmFsLCB0dXBsZSBhbmQgZnVzaW9uOgorICNpbmNsdWRlIDxib29z dC92ZXJzaW9uLmhwcD4KKy0jaW5jbHVkZSA8Ym9vc3Qtb3B0aW9uYWwuaD4KKy0jaW5jbHVkZSA8 Ym9vc3QtdHVwbGUuaD4KKy0jaW5jbHVkZSA8Ym9vc3QtZ3JlZ29yaWFuLWRhdGUuaD4KKyAjaWYg ZGVmaW5lZChCT09TVF9WRVJTSU9OKSAmJiBCT09TVF9WRVJTSU9OID49IDEwMzUwMAorKyNpZiBk ZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCisrI2luY2x1ZGUgPHNvY2kvY29yZS9ib29zdC1m dXNpb24uaD4KKysjZWxzZQorICNpbmNsdWRlIDxib29zdC1mdXNpb24uaD4KKysjZW5kaWYKKyAj ZW5kaWYgLy8gQk9PU1RfVkVSU0lPTgorIAorICNpbmNsdWRlIDxhbGdvcml0aG0+CitkaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCistLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUu YW0JMjAwOS0wNS0wNiAwMDoyOTowNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAK KysjIyBjb3JlIHN1Yi1kaXJlY3RvcnkKKytpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUu Y29tbW9uCisraW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5taworKworK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4KKysKKytFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkgPQorKworK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElU WSkKKysKKytub2luc3RfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29yZV90ZXN0LmxhCisrCisrbGli c29jaV9jb3JlX3Rlc3RfbGFfU09VUkNFUz0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQorK2xpYnNv Y2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0KKytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQg PQorKyNsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAkKEdFTkVS SUNfTElCUkFSWV9WRVJTSU9OKQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPQorKwor K3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKKytpZiBTT0NJX0hF QURFUlNfQlVSSUVECisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3Jl L3Rlc3QKKytlbHNlCisrc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKKytlbmRpZgor K3BrZ2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCisrCitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmluCistLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9j b3JlL3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMjAxMC0w MS0yMyAxNDo0NDo1Mi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0wLDAgKzEsNTY0IEBACisrIyBNYWtl ZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCisr IyBAY29uZmlndXJlX2lucHV0QAorKworKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorKyMgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorKyMg SW5jLgorKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCisrIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAorKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAorKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQorKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorKworK0BTRVRfTUFLRUAKKysK KysKKytWUEFUSCA9IEBzcmNkaXJACisrcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VA CisrcGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAorK3BrZ2xpYmV4ZWNkaXIgPSAkKGxp YmV4ZWNkaXIpL0BQQUNLQUdFQAorK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0k KFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKKytpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gp IC1jIC1tIDY0NAorK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKKytpbnN0 YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKKytJTlNUQUxMX0hFQURFUiA9ICQoSU5T VEFMTF9EQVRBKQorK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKKytOT1JN QUxfSU5TVEFMTCA9IDoKKytQUkVfSU5TVEFMTCA9IDoKKytQT1NUX0lOU1RBTEwgPSA6CisrTk9S TUFMX1VOSU5TVEFMTCA9IDoKKytQUkVfVU5JTlNUQUxMID0gOgorK1BPU1RfVU5JTlNUQUxMID0g OgorK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACisraG9zdF90cmlwbGV0ID0gQGhvc3RACisrRElT VF9DT01NT04gPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwK KysJJChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKKysJJCh0b3Bf c3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJkaXIgPSBzb2NpL2NvcmUvdGVzdAorK0FDTE9D QUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKKythbV9fYWNsb2NhbF9tNF9kZXBzID0g JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9heF9teXNxbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQg XAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKKysJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAorKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9u Lm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGly KS9jb25maWd1cmUuYWMKKythbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2Rl cHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAorKwkkKEFDTE9DQUxfTTQpCisrbWtpbnN0 YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKKytDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRk aXIpL3NvY2kvY29uZmlnLmgKKytDT05GSUdfQ0xFQU5fRklMRVMgPQorK0NPTkZJR19DTEVBTl9W UEFUSF9GSUxFUyA9CisrTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9MVExJQlJBUklFUykKKytsaWJz b2NpX2NvcmVfdGVzdF9sYV9ERVBFTkRFTkNJRVMgPQorK2FtX19vYmplY3RzXzEgPQorK2FtX2xp YnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCisrbGlic29jaV9j b3JlX3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykK KytsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJ QlRPT0xGTEFHUykgXAorKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFN X0NGTEFHUykgJChDRkxBR1MpIFwKKysJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTKSAk KExERkxBR1MpIC1vICRACisrREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRv cF9idWlsZGRpcikvc29jaQorK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAorKwkkKENQUEZMQUdTKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpCisrTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKKysJLS1tb2RlPWNvbXBpbGUgJChDQykgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKKysJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQorK0NDTEQgPSAkKENDKQorK0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAorKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZM QUdTKSBcCisrCSQoTERGTEFHUykgLW8gJEAKKytTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVz dF9sYV9TT1VSQ0VTKQorK0RJU1RfU09VUkNFUyA9ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfU09V UkNFUykKKythbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3N8LnwufGcnYDsKKythbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAorKyAg ICAkKHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJg OzsgXAorKyAgICAqKSBmPSQkcDs7IFwKKysgIGVzYWM7CisrYW1fX3N0cmlwX2RpciA9IGY9YGVj aG8gJCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOworK2FtX19pbnN0YWxsX21heCA9IDQwCisrYW1f X25vYmFzZV9zdHJpcF9zZXR1cCA9IFwKKysgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKKythbV9fbm9iYXNlX3N0cmlwID0gXAor KyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3Jj ZGlyc3RyaXAvfHwiCisrYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVw KTsgXAorKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKKysg IHNlZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipc KS9bXi9dKiQkLFwxLCcgfCBcCisrICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0g eyBmaWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCisrICAgIGlmICgrK25bJCQyXSA9 PSAkKGFtX19pbnN0YWxsX21heCkpIFwKKysgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsg blskJDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCisrICAgIEVORCB7IGZvciAoZGlyIGlu IGZpbGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKKythbV9fYmFzZV9saXN0ID0gXAorKyAg c2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKKysg IHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKKythbV9faW5zdGFsbGRpcnMgPSAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFE RVJTKQorK0VUQUdTID0gZXRhZ3MKKytDVEFHUyA9IGN0YWdzCisrRElTVEZJTEVTID0gJChESVNU X0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKKytwa2dp bmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQorK0FDTE9DQUwgPSBAQUNMT0NBTEAKKytB TVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytBVVRP SEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0gQEFX S0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9PU1Rf TVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAK KytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA CisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VYX0xJ QiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19M SUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RIUkVB RF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0gQEJP T1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NGTEFH UyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytDUFBV TklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklU X0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVSU0lP TiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQQAor K0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytDWUdQ QVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElSQAor K0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0MgPSBA RUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JFUCA9 IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVSSUNf TElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBAR1JF UEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAK KytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBUID0g QElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQ X1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMgPSBA TElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8gPSBA TElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtFSU5G TyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0gQE1Z U1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJTID0g QE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJT04g PSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09CSkRV TVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9SQUNM RV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09SQUNM RV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJTSU9O ID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0gQE9U T09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tB R0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FHRV9T VFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFS TkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQQVJB VE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBAUEdf Q09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BPU1RH UkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0gQFBP U1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJT SU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VACisr U0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAKKytT T0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNRTF9I RUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9TVEdS RVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACisr U1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisrVkVS U0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJzX3Ny Y2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRp ckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBhY19j dF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3Rf RFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19kb3Qg PSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3RhciA9 IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRpckAK KytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWlsZF9j cHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRvciA9 IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBkYXRh ZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9va0AK Kytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlkaXIg PSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4ZWNf cHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFzID0g QGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0X29z QAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAKKytp bmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3RhbGxf c2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBAbGli ZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxlZGly QAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VDSE9A CisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVkZWRp ciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHByZWZp eEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACisr cHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRfb2tA Cisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2RpckAK KytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlh c0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxkZGly ID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQRkxB R1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytjb3JlX3Rlc3RfaF9zb3Vy Y2VzID0gJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAorK2NvcmVf dGVzdF9jY19zb3VyY2VzID0gCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgor K0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IAorK0VYVFJBX0RJU1QgPSAkKEVY VFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKKytub2luc3RfTFRMSUJSQVJJRVMgPSBs aWJzb2NpX2NvcmVfdGVzdC5sYQorK2xpYnNvY2lfY29yZV90ZXN0X2xhX1NPVVJDRVMgPSAkKGNv cmVfdGVzdF9oX3NvdXJjZXMpCisrbGlic29jaV9jb3JlX3Rlc3RfbGFfQ1hYRkxBR1MgPSAKKyts aWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPSAKKysjbGlic29jaV9jb3JlX3Rlc3RfbGFfTERG TEFHUyA9IC12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKKytsaWJzb2Np X2NvcmVfdGVzdF9sYV9MREZMQUdTID0gCisrcGtnaW5jbHVkZV9IRUFERVJTID0gJChjb3JlX3Rl c3RfaF9zb3VyY2VzKQorK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpCisrQFNPQ0lfSEVBREVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUvdGVzdAorK2FsbDogYWxsLWFtCisrCisr LlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFt X19jb25maWd1cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFt X19jb25maWd1cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBc CisrCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsg Zmk7IH07IFwKKysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwll Y2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUvdGVz dC9NYWtlZmlsZSc7IFwKKysJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAorKwkgICQoQVVU T01BS0UpIC0tZ251IHNvY2kvY29yZS90ZXN0L01ha2VmaWxlCisrLlBSRUNJT1VTOiBNYWtlZmls ZQorK01ha2VmaWxlOiAkKHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZp Zy5zdGF0dXMKKysJQGNhc2UgJyQ/JyBpbiBcCisrCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisrCSAg ICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJl c2g7OyBcCisrCSAgKikgXAorKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNI RUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7 IFwKKysJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKysJZXNhYzsKKysKKyskKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05G SUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrCisrJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6 ICAkKGFtX19jb25maWd1cmVfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCisrJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9j YWxfbTRfZGVwcykKKysJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGFtLS1yZWZyZXNoCisrJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKKysKKytjbGVhbi1ub2lu c3RMVExJQlJBUklFUzoKKysJLXRlc3QgLXogIiQobm9pbnN0X0xUTElCUkFSSUVTKSIgfHwgcm0g LWYgJChub2luc3RfTFRMSUJSQVJJRVMpCisrCUBsaXN0PSckKG5vaW5zdF9MVExJQlJBUklFUykn OyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wv W14vXSokJHx8J2AiOyBcCisrCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCisr CSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAorKwkgIHJtIC1mICIk JHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKKysJZG9uZQorK2xpYnNvY2lfY29yZV90ZXN0LmxhOiAk KGxpYnNvY2lfY29yZV90ZXN0X2xhX09CSkVDVFMpICQobGlic29jaV9jb3JlX3Rlc3RfbGFfREVQ RU5ERU5DSUVTKSAKKysJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LKSAgJChsaWJzb2NpX2Nv cmVfdGVzdF9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0xJQkFERCkgJChMSUJT KQorKworK21vc3RseWNsZWFuLWNvbXBpbGU6CisrCS1ybSAtZiAqLiQoT0JKRVhUKQorKworK2Rp c3RjbGVhbi1jb21waWxlOgorKwktcm0gLWYgKi50YWIuYworKworK21vc3RseWNsZWFuLWxpYnRv b2w6CisrCS1ybSAtZiAqLmxvCisrCisrY2xlYW4tbGlidG9vbDoKKysJLXJtIC1yZiAubGlicyBf bGlicworK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJTKQor KwlAJChOT1JNQUxfSU5TVEFMTCkKKysJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgJChN S0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCisrCUBsaXN0PSckKHBrZ2luY2x1 ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAorKwlm b3IgcCBpbiAkJGxpc3Q7IGRvIFwKKysJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNl IGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorKwkgIGVjaG8gIiQkZCQkcCI7IFwKKysJZG9uZSB8ICQo YW1fX2Jhc2VfbGlzdCkgfCBcCisrCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKKysJICBlY2hvICIg JChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknIjsg XAorKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVk aXIpIiB8fCBleGl0ICQkPzsgXAorKwlkb25lCisrCisrdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFE RVJTOgorKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURF UlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKKysJZmlsZXM9YGZv ciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwK KysJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCisrCWVjaG8gIiAoIGNkICckKERFU1RE SVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisrCWNkICIkKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcworKworK0lEOiAkKEhFQURF UlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisrCWxpc3Q9JyQoU09VUkNFUykg JChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4g JCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNl IGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBm aWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVt cHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCisrCW1raWQgLWZJRCAk JHVuaXF1ZQorK3RhZ3M6IFRBR1MKKysKKytUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAk KFRBR1NfREVQRU5ERU5DSUVTKSBcCisrCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKysJc2V0IHg7 IFwKKysJaGVyZT1gcHdkYDsgXAorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAteiAiJChF VEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1uICIkJHVu aXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRo ZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRB R1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAorKwkgICAg JChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAor KwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdTCisrQ1RB R1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKKysJCSQo VEFHU19GSUxFUykgJChMSVNQKQorKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKysJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5p cXVlIiBcCisrCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAorKwkgICAgICQkdW5pcXVlCisrCisrR1RBR1M6CisrCWhlcmU9YCQoYW1f X2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisrCSAgJiYgJChhbV9fY2QpICQodG9wX3Ny Y2RpcikgXAorKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKKysKKytkaXN0 Y2xlYW4tdGFnczoKKysJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRh Z3MKKysKKytkaXN0ZGlyOiAkKERJU1RGSUxFUykKKysJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwl0b3BzcmNkaXJzdHJp cD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc CisrCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKKysJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAk JGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAorKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJz dHJpcC98fDt0IiBcCisrCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWls ZGRpcikvfDt0ImA7IFwKKysJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAorKwkgICovKikgJChNS0RJ Ul9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKKysJCQkgICBzZWQgJy9cLy8hZDtzfF58JChk aXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCisrCQkJICAgc29ydCAtdWAgOzsgXAorKwllc2Fj OyBcCisrCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAorKwkgIGlmIHRlc3QgLWYgJCRm aWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwK KysJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAorKwkgICAgZGlyPWBlY2hvICIvJCRm aWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKKysJICAgIGlmIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRmaWxlIjsgdGhlbiBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7 IFwKKysJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNy Y2Rpcik7IHRoZW4gXAorKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRp cikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAorKwkgICAgZmk7 IFwKKysJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKKysJICBlbHNlIFwKKysJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCisrCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgZXhp dCAxOyBcCisrCSAgZmk7IFwKKysJZG9uZQorK2NoZWNrLWFtOiBhbGwtYW0KKytjaGVjazogY2hl Y2stYW0KKythbGwtYW06IE1ha2VmaWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKKytpbnN0 YWxsZGlyczoKKysJZm9yIGRpciBpbiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBc CisrCSAgdGVzdCAteiAiJCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAorKwlkb25lCisr aW5zdGFsbDogaW5zdGFsbC1hbQorK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCisraW5z dGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0KKyt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorKwor K2luc3RhbGwtYW06IGFsbC1hbQorKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtZGF0YS1hbQorKworK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFt CisraW5zdGFsbC1zdHJpcDoKKysJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9H UkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKysJICBpbnN0YWxsX3NoX1BST0dSQU09 IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKysJICBg dGVzdCAteiAnJChTVFJJUCknIHx8IFwKKysJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9 U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisrbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKKysK KytjbGVhbi1nZW5lcmljOgorKworK2Rpc3RjbGVhbi1nZW5lcmljOgorKwktdGVzdCAteiAiJChD T05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKKysJLXRl c3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCisrCisrbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljOgorKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWlu dGFpbmVycyB0byB1c2UiCisrCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVp cmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKysJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNM RUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQorK2NsZWFuOiBjbGVh bi1hbQorKworK2NsZWFuLWFtOiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9p bnN0TFRMSUJSQVJJRVMgXAorKwltb3N0bHljbGVhbi1hbQorKworK2Rpc3RjbGVhbjogZGlzdGNs ZWFuLWFtCisrCS1ybSAtZiBNYWtlZmlsZQorK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAorKwlkaXN0Y2xlYW4tdGFncworKworK2R2 aTogZHZpLWFtCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtYW0KKysKKytodG1sLWFtOgor KworK2luZm86IGluZm8tYW0KKysKKytpbmZvLWFtOgorKworK2luc3RhbGwtZGF0YS1hbTogaW5z dGFsbC1wa2dpbmNsdWRlSEVBREVSUworKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1hbQor KworK2luc3RhbGwtZHZpLWFtOgorKworK2luc3RhbGwtZXhlYy1hbToKKysKKytpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1hbQorKworK2luc3RhbGwtaHRtbC1hbToKKysKKytpbnN0YWxsLWlu Zm86IGluc3RhbGwtaW5mby1hbQorKworK2luc3RhbGwtaW5mby1hbToKKysKKytpbnN0YWxsLW1h bjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KKysKKytpbnN0YWxsLXBkZi1hbToK KysKKytpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCisrCisraW5zdGFsbC1wcy1hbToKKysKKytp bnN0YWxsY2hlY2stYW06CisrCisrbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1h bQorKwktcm0gLWYgTWFrZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0g bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFt CisrCisrbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2Vu ZXJpYyBcCisrCW1vc3RseWNsZWFuLWxpYnRvb2wKKysKKytwZGY6IHBkZi1hbQorKworK3BkZi1h bToKKysKKytwczogcHMtYW0KKysKKytwcy1hbToKKysKKyt1bmluc3RhbGwtYW06IHVuaW5zdGFs bC1wa2dpbmNsdWRlSEVBREVSUworKworKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAK KysKKysuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4g Y2xlYW4tZ2VuZXJpYyBcCisrCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMg Y3RhZ3MgZGlzdGNsZWFuIFwKKysJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMg ZGlzdGNsZWFuLWxpYnRvb2wgXAorKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmktYW0g aHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCisrCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxs LWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKysJaW5zdGFsbC1kdmktYW0gaW5z dGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAorKwlpbnN0YWxsLWh0bWwt YW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCisrCWluc3RhbGwt cGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgXAorKwlpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAorKwlpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCisrCW1haW50YWluZXItY2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKKysJbW9zdGx5Y2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAorKwl0 YWdzIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCisr CisrQFNFVF9NQUtFQAorKworKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFr ZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGlt aXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMubWsKKy0tLSBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS90ZXN0L3NvdXJjZXMu bWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMiBAQAor K2NvcmVfdGVzdF9oX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90ZXN0L2NvbW1v bi10ZXN0cy5oCisrY29yZV90ZXN0X2NjX3NvdXJjZXMgPQorZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUu YW0KKy0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6 MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZp bGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsOSBA QAorK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKysKKysjIyBTb3VyY2Ug ZGlyZWN0b3J5CisrCisrTUFJTlRBSU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgorKworK1NV QkRJUlMgPSBjb3JlIGJhY2tlbmRzCisrCisrRVhUUkFfRElTVCA9CitkaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9NYWtl ZmlsZS5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZpbGUuaW4JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9N YWtlZmlsZS5pbgkyMDEwLTAxLTIzIDE0OjQ0OjUxLjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCAr MSw2MzUgQEAKKysjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJv bSBNYWtlZmlsZS5hbS4KKysjIEBjb25maWd1cmVfaW5wdXRACisrCisrIyBDb3B5cmlnaHQgKEMp IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCisr IyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sCisrIyBJbmMuCisrIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKysjIGdpdmVzIHVubGltaXRlZCBwZXJt aXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisrIyB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisrCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJt aXR0ZWQgYnkgbGF3OyB3aXRob3V0CisrIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCisrIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisr CisrQFNFVF9NQUtFQAorK1ZQQVRIID0gQHNyY2RpckAKKytwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKKytwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKKytw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACisrcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACisrYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAorK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0CisraW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYworK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCisrdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQorK05PUk1BTF9J TlNUQUxMID0gOgorK1BSRV9JTlNUQUxMID0gOgorK1BPU1RfSU5TVEFMTCA9IDoKKytOT1JNQUxf VU5JTlNUQUxMID0gOgorK1BSRV9VTklOU1RBTEwgPSA6CisrUE9TVF9VTklOU1RBTEwgPSA6Cisr YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKKytob3N0X3RyaXBsZXQgPSBAaG9zdEAKKytESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorKwkk KHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KKytzdWJk aXIgPSBzb2NpCisrQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAorK2FtX19h Y2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCisrCSQo dG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKKysJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfb3JhY2xlX29jaS5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwu bTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKKysJJCh0b3Bfc3JjZGly KS9jb25maWcvbGlidG9vbC5tNCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5t NCBcCisrCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAorKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHZlcnNpb24ubTQgXAorKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0 ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYworK2FtX19jb25maWd1cmVfZGVwcyA9ICQo YW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisrCSQoQUNM T0NBTF9NNCkKKytta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAorK0NPTkZJR19IRUFE RVIgPSBjb25maWcuaAorK0NPTkZJR19DTEVBTl9GSUxFUyA9CisrQ09ORklHX0NMRUFOX1ZQQVRI X0ZJTEVTID0KKytTT1VSQ0VTID0KKytESVNUX1NPVVJDRVMgPQorK1JFQ1VSU0lWRV9UQVJHRVRT ID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCisrCWh0bWwt cmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAorKwlpbnN0 YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtaHRt bC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGwtcGRmLXJlY3Vy c2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCisrCWluc3RhbGxj aGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAorKwlw cy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQorK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRT ID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlcCisrICBkaXN0Y2xlYW4t cmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCisrQU1fUkVDVVJTSVZFX1RBUkdF VFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCisrCSQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCisrCWRpc3Rk aXIKKytFVEFHUyA9IGV0YWdzCisrQ1RBR1MgPSBjdGFncworK0RJU1RfU1VCRElSUyA9ICQoU1VC RElSUykKKytESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJ TkZPUykgJChFWFRSQV9ESVNUKQorK2FtX19yZWxhdGl2aXplID0gXAorKyAgZGlyMD1gcHdkYDsg XAorKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCisrICBzZWRfcmVzdD0n cyxeW14vXSovKiwsJzsgXAorKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwK KysgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAorKyAgd2hpbGUgdGVzdCAtbiAiJCRk aXIxIjsgZG8gXAorKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmly c3QiYDsgXAorKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAorKyAgICAgIGlm IHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCisrICAgICAgICBkaXIyPWBlY2hvICIkJGRp cjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKKysgICAgICAgIGRpcjA9YGVj aG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAorKyAgICAgIGVsc2UgXAor KyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBc CisrICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAorKyAgICAg ICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKKysgICAg ICAgIGVsc2UgXAorKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCisrICAgICAgICBmaTsg XAorKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKKysgICAgICBmaTsgXAorKyAg ICBmaTsgXAorKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7 IFwKKysgIGRvbmU7IFwKKysgIHJlbGRpcj0iJCRkaXIyIgorK0FDTE9DQUwgPSBAQUNMT0NBTEAK KytBTVRBUiA9IEBBTVRBUkAKKytBUiA9IEBBUkAKKytBVVRPQ09ORiA9IEBBVVRPQ09ORkAKKytB VVRPSEVBREVSID0gQEFVVE9IRUFERVJACisrQVVUT01BS0UgPSBAQVVUT01BS0VACisrQVdLID0g QEFXS0AKKytCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAorK0JPT1NUX0RBVEVfVElNRV9M SUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKKytCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09T VF9GSUxFU1lTVEVNX0xJQkAKKytCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFN U19MSUJACisrQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAorK0JPT1NUX01QSV9MSUIgPSBAQk9P U1RfTVBJX0xJQkAKKytCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJ QkAKKytCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19M SUJACisrQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAorK0JPT1NUX1JFR0VY X0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACisrQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9P U1RfU0VSSUFMSVpBVElPTl9MSUJACisrQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFM U19MSUJACisrQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAorK0JPT1NUX1RI UkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKKytCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKKytCT09TVF9WRVJTSU9OID0g QEJPT1NUX1ZFUlNJT05ACisrQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJ QUxJWkFUSU9OX0xJQkAKKytDQyA9IEBDQ0AKKytDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAorK0NG TEFHUyA9IEBDRkxBR1NACisrQ1BQID0gQENQUEAKKytDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKytD UFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKKytDUFBVTklUX0NPTkZJRyA9IEBDUFBV TklUX0NPTkZJR0AKKytDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAorK0NQUFVOSVRfVkVS U0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACisrQ1hYID0gQENYWEAKKytDWFhDUFAgPSBAQ1hYQ1BQ QAorK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKKytDWFhGTEFHUyA9IEBDWFhGTEFHU0AKKytD WUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorK0RFRlMgPSBAREVGU0AKKytERVBESVIgPSBAREVQRElS QAorK0RTWU1VVElMID0gQERTWU1VVElMQAorK0RVTVBCSU4gPSBARFVNUEJJTkAKKytFQ0hPX0Mg PSBARUNIT19DQAorK0VDSE9fTiA9IEBFQ0hPX05ACisrRUNIT19UID0gQEVDSE9fVEAKKytFR1JF UCA9IEBFR1JFUEAKKytFWEVFWFQgPSBARVhFRVhUQAorK0ZHUkVQID0gQEZHUkVQQAorK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAorK0dSRVAgPSBA R1JFUEAKKytJTlNUQUxMID0gQElOU1RBTExACisrSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFU QUAKKytJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorK0lOU1RBTExfU0NSSVBU ID0gQElOU1RBTExfU0NSSVBUQAorK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NU UklQX1BST0dSQU1ACisrTEQgPSBATERACisrTERGTEFHUyA9IEBMREZMQUdTQAorK0xJQk9CSlMg PSBATElCT0JKU0AKKytMSUJTID0gQExJQlNACisrTElCVE9PTCA9IEBMSUJUT09MQAorK0xJUE8g PSBATElQT0AKKytMTl9TID0gQExOX1NACisrTFRMSUJPQkpTID0gQExUTElCT0JKU0AKKytNQUtF SU5GTyA9IEBNQUtFSU5GT0AKKytNS0RJUl9QID0gQE1LRElSX1BACisrTVlTUUxfQ0ZMQUdTID0g QE1ZU1FMX0NGTEFHU0AKKytNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKKytNWVNRTF9ESVJT ID0gQE1ZU1FMX0RJUlNACisrTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAorK01ZU1FMX1ZFUlNJ T04gPSBATVlTUUxfVkVSU0lPTkAKKytOTSA9IEBOTUAKKytOTUVESVQgPSBATk1FRElUQAorK09C SkRVTVAgPSBAT0JKRFVNUEAKKytPQkpFWFQgPSBAT0JKRVhUQAorK09SQUNMRV9ESVJTID0gQE9S QUNMRV9ESVJTQAorK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAorK09S QUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACisrT1JBQ0xFX09DSV9WRVJT SU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKKytPVE9PTCA9IEBPVE9PTEAKKytPVE9PTDY0ID0g QE9UT09MNjRACisrUEFDS0FHRSA9IEBQQUNLQUdFQAorK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBB Q0tBR0VfQlVHUkVQT1JUQAorK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACisrUEFDS0FH RV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACisrUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0Vf VEFSTkFNRUAKKytQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorK1BBVEhfU0VQ QVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAorK1BFUkwgPSBAUEVSTEAKKytQR19DT05GSUcgPSBA UEdfQ09ORklHQAorK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAorK1BP U1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACisrUE9TVEdSRVNRTF9MREZMQUdTID0g QFBPU1RHUkVTUUxfTERGTEFHU0AKKytQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9W RVJTSU9OQAorK1JBTkxJQiA9IEBSQU5MSUJACisrUlBNX1JFTEVBU0UgPSBAUlBNX1JFTEVBU0VA CisrU0VEID0gQFNFREAKKytTRVRfTUFLRSA9IEBTRVRfTUFLRUAKKytTSEVMTCA9IEBTSEVMTEAK KytTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACisrU09DSV9NWVNR TF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAorK1NPQ0lfUE9T VEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURA CisrU1RSSVAgPSBAU1RSSVBACisrVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACisr VkVSU0lPTiA9IEBWRVJTSU9OQAorK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACisrYWJz X3NyY2RpciA9IEBhYnNfc3JjZGlyQAorK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWls ZGRpckAKKythYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKKythY19jdF9DQyA9IEBh Y19jdF9DQ0AKKythY19jdF9DWFggPSBAYWNfY3RfQ1hYQAorK2FjX2N0X0RVTVBCSU4gPSBAYWNf Y3RfRFVNUEJJTkAKKythbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKKythbV9fbGVhZGluZ19k b3QgPSBAYW1fX2xlYWRpbmdfZG90QAorK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACisrYW1fX3Rh ciA9IEBhbV9fdGFyQAorK2FtX191bnRhciA9IEBhbV9fdW50YXJACisrYmluZGlyID0gQGJpbmRp ckAKKytidWlsZCA9IEBidWlsZEAKKytidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKKytidWls ZF9jcHUgPSBAYnVpbGRfY3B1QAorK2J1aWxkX29zID0gQGJ1aWxkX29zQAorK2J1aWxkX3ZlbmRv ciA9IEBidWlsZF92ZW5kb3JACisrYnVpbGRkaXIgPSBAYnVpbGRkaXJACisrZGF0YWRpciA9IEBk YXRhZGlyQAorK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAorK2RpZmZfb2sgPSBAZGlmZl9v a0AKKytkb2NkaXIgPSBAZG9jZGlyQAorK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKKytkdmlk aXIgPSBAZHZpZGlyQAorK2R2aXBzX29rID0gQGR2aXBzX29rQAorK2V4ZWNfcHJlZml4ID0gQGV4 ZWNfcHJlZml4QAorK2dzX29rID0gQGdzX29rQAorK2hvc3QgPSBAaG9zdEAKKytob3N0X2FsaWFz ID0gQGhvc3RfYWxpYXNACisraG9zdF9jcHUgPSBAaG9zdF9jcHVACisraG9zdF9vcyA9IEBob3N0 X29zQAorK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAorK2h0bWxkaXIgPSBAaHRtbGRpckAK KytpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACisraW5mb2RpciA9IEBpbmZvZGlyQAorK2luc3Rh bGxfc2ggPSBAaW5zdGFsbF9zaEAKKytsYXRleF9vayA9IEBsYXRleF9va0AKKytsaWJkaXIgPSBA bGliZGlyQAorK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKKytsb2NhbGVkaXIgPSBAbG9jYWxl ZGlyQAorK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKKytsdF9FQ0hPID0gQGx0X0VD SE9ACisrbWFuZGlyID0gQG1hbmRpckAKKytta2Rpcl9wID0gQG1rZGlyX3BACisrb2xkaW5jbHVk ZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorK3BkZmRpciA9IEBwZGZkaXJACisrcHJlZml4ID0gQHBy ZWZpeEAKKytwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVA CisrcHNkaXIgPSBAcHNkaXJACisrc2JpbmRpciA9IEBzYmluZGlyQAorK3NlZF9vayA9IEBzZWRf b2tACisrc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACisrc3JjZGlyID0gQHNyY2Rp ckAKKytzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACisrdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9h bGlhc0AKKyt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACisrdG9wX2J1aWxk ZGlyID0gQHRvcF9idWlsZGRpckAKKyt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACisrQU1fQ1BQ RkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKKytNQUlOVEFJTkVSQ0xF QU5GSUxFUyA9IE1ha2VmaWxlLmluCisrU1VCRElSUyA9IGNvcmUgYmFja2VuZHMKKytFWFRSQV9E SVNUID0gCisrYWxsOiBjb25maWcuaAorKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbGwtcmVj dXJzaXZlCisrCisrLlNVRkZJWEVTOgorKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKGFtX19jb25maWd1 cmVfZGVwcykKKysJQGZvciBkZXAgaW4gJD87IGRvIFwKKysJICBjYXNlICckKGFtX19jb25maWd1 cmVfZGVwcyknIGluIFwKKysJICAgICokJGRlcCopIFwKKysJICAgICAgKCBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCisrCSAgICAg ICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwK KysJICAgICAgZXhpdCAxOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwllY2hvICcgY2Qg JCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL01ha2VmaWxlJzsgXAorKwkk KGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCisrCSAgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9N YWtlZmlsZQorKy5QUkVDSU9VUzogTWFrZWZpbGUKKytNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCisrCUBjYXNlICckPycgaW4gXAor KwkgICpjb25maWcuc3RhdHVzKikgXAorKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAorKwkgICopIFwKKysJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCisrCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCisrCWVzYWM7CisrCisrJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KworKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCisrCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAor KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCisrCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAorKyQoYW1fX2FjbG9j YWxfbTRfZGVwcyk6CisrCisrY29uZmlnLmg6IHN0YW1wLWgxCisrCUBpZiB0ZXN0ICEgLWYgJEA7 IHRoZW4gXAorKwkgIHJtIC1mIHN0YW1wLWgxOyBcCisrCSAgJChNQUtFKSAkKEFNX01BS0VGTEFH Uykgc3RhbXAtaDE7IFwKKysJZWxzZSA6OyBmaQorKworK3N0YW1wLWgxOiAkKHNyY2RpcikvY29u ZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKysJQHJtIC1mIHN0YW1wLWgx CisrCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgc29jaS9j b25maWcuaAorKyQoc3JjZGlyKS9jb25maWcuaC5pbjogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAK KysJKCQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmICQoQVVUT0hFQURFUikpCisrCXJtIC1mIHN0 YW1wLWgxCisrCXRvdWNoICRACisrCisrZGlzdGNsZWFuLWhkcjoKKysJLXJtIC1mIGNvbmZpZy5o IHN0YW1wLWgxCisrCisrbW9zdGx5Y2xlYW4tbGlidG9vbDoKKysJLXJtIC1mICoubG8KKysKKytj bGVhbi1saWJ0b29sOgorKwktcm0gLXJmIC5saWJzIF9saWJzCisrCisrIyBUaGlzIGRpcmVjdG9y eSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKKysj IGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtl ZmlsZS4KKysjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3Rl YWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCisrIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBp biBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCisrIyAgICAgKHdoaWNoIHdp bGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1h a2UnKTsKKysjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBg bWFrZScgY29tbWFuZCBsaW5lLgorKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgorKwlAZmFpbD0gZmFp bGNvbT0nZXhpdCAxJzsgXAorKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCisrCSAgY2Fz ZSAkJGYgaW4gXAorKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCisrCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKKysJICBlc2FjOyBcCisrCWRvbmU7IFwKKysJZG90X3NlZW49bm87IFwK KysJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAorKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICBlY2hvICJNYWtpbmcgJCR0 YXJnZXQgaW4gJCRzdWJkaXIiOyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVu IFwKKysJICAgIGRvdF9zZWVuPXllczsgXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1h bSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCisrCSAg Zmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp ICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9uZTsgXAor KwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAorKwkgICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCisrCWZpOyB0ZXN0IC16ICIkJGZh aWwiCisrCisrJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6CisrCUBmYWlsPSBmYWlsY29tPSdl eGl0IDEnOyBcCisrCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKKysJICBjYXNlICQkZiBp biBcCisrCSAgICAqPSogfCAtLVsha10qKTs7IFwKKysJICAgICprKikgZmFpbGNvbT0nZmFpbD15 ZXMnOzsgXAorKwkgIGVzYWM7IFwKKysJZG9uZTsgXAorKwlkb3Rfc2Vlbj1ubzsgXAorKwljYXNl ICIkQCIgaW4gXAorKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSck KERJU1RfU1VCRElSUyknIDs7IFwKKysJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCisrCWVz YWM7IFwKKysJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIGlmIHRlc3Qg IiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIHJldj0iJCRzdWJkaXIgJCRy ZXYiOyBcCisrCSAgZmk7IFwKKysJZG9uZTsgXAorKwlyZXY9IiQkcmV2IC4iOyBcCisrCXRhcmdl dD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKKysJZm9yIHN1YmRpciBpbiAkJHJl djsgZG8gXAorKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKKysJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAorKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKKysJICBlbHNlIFwKKysJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc CisrCSAgZmk7IFwKKysJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCisrCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKKysJZG9u ZSAmJiB0ZXN0IC16ICIkJGZhaWwiCisrdGFncy1yZWN1cnNpdmU6CisrCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAorKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4g fHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsg XAorKwlkb25lCisrY3RhZ3MtcmVjdXJzaXZlOgorKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1 YmRpciBpbiAkJGxpc3Q7IGRvIFwKKysJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19j ZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCisrCWRvbmUK KysKKytJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQorKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorKwl1 bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhl biBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisrCSAgZG9uZSB8IFwK KysJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCisrCSAgICAg IEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsg XAorKwlta2lkIC1mSUQgJCR1bmlxdWUKKyt0YWdzOiBUQUdTCisrCisrVEFHUzogdGFncy1yZWN1 cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpIGNvbmZpZy5oLmluICQoVEFHU19ERVBFTkRFTkNJ RVMpIFwKKysJCSQoVEFHU19GSUxFUykgJChMSVNQKQorKwlzZXQgeDsgXAorKwloZXJlPWBwd2Rg OyBcCisrCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAorKwkg IGVtcHR5X2ZpeD0uOyBcCisrCWVsc2UgXAorKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsg XAorKwkgIGVtcHR5X2ZpeD07IFwKKysJZmk7IFwKKysJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKKysJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKKysJICAgICAgc2V0 ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAorKwkgIGZp OyBcCisrCWRvbmU7IFwKKysJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmlu ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKysJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKKysJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAorKwkgIGRvbmUgfCBcCisrCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAorKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKKysJc2hpZnQ7IFwKKysJaWYgdGVzdCAt eiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKysJICB0ZXN0IC1u ICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCisrCSAgaWYgdGVzdCAkJCMgLWd0 IDA7IHRoZW4gXAorKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1Mp ICQoRVRBR1NfQVJHUykgXAorKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAorKwkgIGVsc2UgXAor KwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJH UykgXAorKwkgICAgICAkJHVuaXF1ZTsgXAorKwkgIGZpOyBcCisrCWZpCisrY3RhZ3M6IENUQUdT CisrQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmgu aW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCisrCWxp c3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCisrCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisrCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKysJ ICBkb25lIHwgXAorKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKKysJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCisrCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAorKwkgIHx8 ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwK KysJICAgICAkJHVuaXF1ZQorKworK0dUQUdTOgorKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVp bGRkaXIpICYmIHB3ZGAgXAorKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKKysJICAm JiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCisrCisrZGlzdGNsZWFuLXRhZ3M6Cisr CS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisrCisrZGlzdGRp cjogJChESVNURklMRVMpCisrCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKKysJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAorKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCisrCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKKysJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAor KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc CisrCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKKysJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCisrCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAorKwkJCSAgIHNvcnQgLXVgIDs7IFwKKysJZXNhYzsgXAorKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKKysJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisrCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKKysJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCisrCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7 IHRoZW4gXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBpZiB0 ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwK KysJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAorKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKKysJICAgIGZpOyBcCisrCSAgICBjcCAt ZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCisrCSAgZWxzZSBc CisrCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAorKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZp OyBcCisrCWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJ ICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8ICQoTUtESVJfUCkg IiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKKysJICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisr CWRvbmUKKysJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCisrCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKKysJICAgIGRp cjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCisrCSAgICAkKGFtX19y ZWxhdGl2aXplKTsgXAorKwkgICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKKysJICAgIGRpcjE9 JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsgXAorKwkgICAgJChhbV9fcmVsYXRpdml6 ZSk7IFwKKysJICAgIG5ld190b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAorKwkgICAgZWNobyAiIChj ZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdf dG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAorKwkgICAgZWNobyAi ICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tp cF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAorKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBc CisrCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKKysJICAgICAgICB0b3BfZGlzdGRp cj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKKysJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGly IiBcCisrCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCisrCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9 OiBcCisrCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKKysJICAgICAgICBkaXN0ZGlyKSBcCisrCSAg ICAgIHx8IGV4aXQgMTsgXAorKwkgIGZpOyBcCisrCWRvbmUKKytjaGVjay1hbTogYWxsLWFtCisr Y2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQorK2FsbC1hbTogTWFrZWZpbGUgY29uZmlnLmgKKytpbnN0 YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCisraW5zdGFsbGRpcnMtYW06CisraW5zdGFs bDogaW5zdGFsbC1yZWN1cnNpdmUKKytpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNp dmUKKytpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKKyt1bmluc3RhbGw6IHVu aW5zdGFsbC1yZWN1cnNpdmUKKysKKytpbnN0YWxsLWFtOiBhbGwtYW0KKysJQCQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KKysKKytpbnN0YWxs Y2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKKytpbnN0YWxsLXN0cmlwOgorKwkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgXAorKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJ TlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAorKwkg ICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3Rh bGwKKyttb3N0bHljbGVhbi1nZW5lcmljOgorKworK2NsZWFuLWdlbmVyaWM6CisrCisrZGlzdGNs ZWFuLWdlbmVyaWM6CisrCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykKKysKKyttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisrCUBlY2hvICJUaGlz IGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKKysJQGVjaG8gIml0 IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQu IgorKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRB SU5FUkNMRUFORklMRVMpCisrY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQorKworK2NsZWFuLWFtOiBj bGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgbW9zdGx5Y2xlYW4tYW0KKysKKytkaXN0Y2xlYW46 IGRpc3RjbGVhbi1yZWN1cnNpdmUKKysJLXJtIC1mIE1ha2VmaWxlCisrZGlzdGNsZWFuLWFtOiBj bGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi10YWdzCisr CisrZHZpOiBkdmktcmVjdXJzaXZlCisrCisrZHZpLWFtOgorKworK2h0bWw6IGh0bWwtcmVjdXJz aXZlCisrCisraHRtbC1hbToKKysKKytpbmZvOiBpbmZvLXJlY3Vyc2l2ZQorKworK2luZm8tYW06 CisrCisraW5zdGFsbC1kYXRhLWFtOgorKworK2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1 cnNpdmUKKysKKytpbnN0YWxsLWR2aS1hbToKKysKKytpbnN0YWxsLWV4ZWMtYW06CisrCisraW5z dGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCisrCisraW5zdGFsbC1odG1sLWFtOgor KworK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQorKworK2luc3RhbGwtaW5m by1hbToKKysKKytpbnN0YWxsLW1hbjoKKysKKytpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVj dXJzaXZlCisrCisraW5zdGFsbC1wZGYtYW06CisrCisraW5zdGFsbC1wczogaW5zdGFsbC1wcy1y ZWN1cnNpdmUKKysKKytpbnN0YWxsLXBzLWFtOgorKworK2luc3RhbGxjaGVjay1hbToKKysKKytt YWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQorKwktcm0gLWYgTWFr ZWZpbGUKKyttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVh bi1nZW5lcmljCisrCisrbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQorKworK21v c3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKKysK KytwZGY6IHBkZi1yZWN1cnNpdmUKKysKKytwZGYtYW06CisrCisrcHM6IHBzLXJlY3Vyc2l2ZQor KworK3BzLWFtOgorKworK3VuaW5zdGFsbC1hbToKKysKKysuTUFLRTogJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgYWxsIFwKKysJY3RhZ3MtcmVjdXJzaXZl IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJlY3Vyc2l2ZQorKworKy5QSE9OWTogJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgQ1RBR1MgR1RBR1Mg XAorKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgY2xlYW4t bGlidG9vbCBcCisrCWN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBkaXN0Y2xlYW4gZGlzdGNsZWFuLWdl bmVyaWMgXAorKwlkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdz IGRpc3RkaXIgZHZpIFwKKysJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFs bCBpbnN0YWxsLWFtIFwKKysJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2 aSBpbnN0YWxsLWR2aS1hbSBcCisrCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFs bC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCisrCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0g aW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAorKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGlu c3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisrCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2st YW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gXAorKwltYWludGFpbmVyLWNsZWFuIG1haW50 YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCisrCW1vc3RseWNsZWFuLWdlbmVyaWMg bW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKKysJdGFncyB0YWdzLXJl Y3Vyc2l2ZSB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCisrCisrQFNFVF9NQUtFQAorKworKyMgVGVs bCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJp YWJsZXMuCisrIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBt YXkgYmUgZXhjZWVkZWQuCisrLk5PRVhQT1JUOgorZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNr L3NvY2ktY29uZmlnLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLWNvbmZpZy5pbgorLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2ktY29uZmlnLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29uZmlnLmluCTIwMDktMDQt MTYgMTk6Mzc6MTAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDc2IEBACisrIyEvYmluL3No CisrCisrcHJlZml4PUBwcmVmaXhACisrZXhlY19wcmVmaXg9JHtwcmVmaXh9CisrbGliZGlyPUBs aWJkaXJACisraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKyt1c2FnZSgpCisreworKyAgY2F0 IDw8RU9GCisrVXNhZ2U6IEBQQUNLQUdFQC1jb25maWcgW09QVElPTl0KKysKKytLbm93biB2YWx1 ZXMgZm9yIE9QVElPTiBhcmU6CisrCisrICAtLXByZWZpeCAgICAgICAgcHJpbnQgQFBBQ0tBR0Vf TkFNRUAgaW5zdGFsbGF0aW9uIHByZWZpeAorKyAgLS1saWJzICAgICAgICAgIHByaW50IGxpYnJh cnkgbGlua2luZyBpbmZvcm1hdGlvbgorKyAgLS1jZmxhZ3MgICAgICAgIHByaW50IHByZS1wcm9j ZXNzb3IgYW5kIGNvbXBpbGVyIGZsYWdzCisrICAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlz IGhlbHAgYW5kIGV4aXQKKysgIC0tdmVyc2lvbiAgICAgICBvdXRwdXQgdmVyc2lvbiBpbmZvcm1h dGlvbgorK0VPRgorKyAgZXhpdCAkMQorK30KKysKKytpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCisr ICB1c2FnZSAxCisrZmkKKysKKytjZmxhZ3M9ZmFsc2UKKytsaWJzPWZhbHNlCisrCisrd2hpbGUg dGVzdCAkIyAtZ3QgMDsgZG8KKysgIGNhc2UgIiQxIiBpbgorKyAgLSo9Kikgb3B0YXJnPWBlY2hv ICIkMSIgfCBzZWQgJ3MvWy1fYS16QS1aMC05XSo9Ly8nYCA7OworKyAgKikgb3B0YXJnPSA7Owor KyAgZXNhYworKworKyAgY2FzZSAkMSBpbgorKyAgICAtLXByZWZpeD0qKQorKyAgICAgIHByZWZp eD0kb3B0YXJnCisrICAgICAgOzsKKysKKysgICAgLS1wcmVmaXgpCisrICAgICAgZWNobyAkcHJl Zml4CisrICAgICAgOzsKKysKKysgICAgLS12ZXJzaW9uKQorKyAgICAgIGVjaG8gQFZFUlNJT05A CisrICAgICAgOzsKKysKKysgICAgLS1oZWxwKQorKyAgICAgIHVzYWdlIDAKKysgICAgICA7Owor KworKyAgICAtLWNmbGFncykKKysgICAgICBpZiBbICIke3ByZWZpeH0iICE9ICIvdXNyIiBdOyB0 aGVuCisrICAgICAgICBlY2hvIC1JJHtpbmNsdWRlZGlyfQorKyAgICAgIGVsc2UKKysgICAgICAg IGVjaG8KKysgICAgICBmaQorKyAgICAgIDs7CisrCisrICAgIC0tbGlicykKKysgICAgICBpZiBb ICIke3ByZWZpeH0iICE9ICIvdXNyIiBdOyB0aGVuCisrICAgICAgICBlY2hvIC1MJHtsaWJkaXJ9 IC1sQFBBQ0tBR0VACisrICAgICAgZWxzZQorKyAgICAgICAgZWNobyAtbEBQQUNLQUdFQAorKyAg ICAgIGZpCisrICAgICAgOzsKKysKKysgICAgKikKKysgICAgICB1c2FnZQorKyAgICAgIGV4aXQg MQorKyAgICAgIDs7CisrICBlc2FjCisrICBzaGlmdAorK2RvbmUKK2RpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CistLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAor KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLm00CTIwMDktMDUtMDIgMjM6NTk6MTMuMDAwMDAw MDAwICswMjAwCitAQCAtMCwwICsxLDExOCBAQAorK2RubCBAc3lub3BzaXMgQVhfU09DSQorK2Ru bCAKKytkbmwgVGhpcyBtYWNybyB0cmllcyB0byBmaW5kIFNvY2kgQyBBUEkgaGVhZGVyIGFuZCBs aWJyYXJ5IGxvY2F0aW9ucy4KKytkbmwKKytkbmwgV2UgZGVmaW5lIHRoZSBmb2xsb3dpbmcgY29u ZmlndXJlIHNjcmlwdCBmbGFnczoKKytkbmwKKytkbmwJLS13aXRoLXNvY2k6IEdpdmUgcHJlZml4 IGZvciBib3RoIGxpYnJhcnkgYW5kIGhlYWRlcnMsIGFuZCB0cnkKKytkbmwJCSAgICAgdG8gZ3Vl c3Mgc3ViZGlyZWN0b3J5IG5hbWVzIGZvciBlYWNoLiAgKGUuZy4gYWRkIC9saWIgYW5kCisrZG5s CQkgICAgIC9pbmNsdWRlIG9udG8gZ2l2ZW4gZGlyIG5hbWVzLCBhbmQgb3RoZXIgY29tbW9uIHNj aGVtZXMuKQorK2RubAorK2RubCBAdmVyc2lvbiAxLjMsIDIwMDkvMDUvMDIKKytkbmwgQGF1dGhv ciBEZW5pcyBBcm5hdWQgPGRlbmlzX2FybmF1ZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrZG5s CisrZG5sIEB2ZXJzaW9uIDEuMiwgMjAwNy8wMi8yMAorK2RubCBAYXV0aG9yIFdhcnJlbiBZb3Vu ZyA8c29jaXBwQGV0ci11c2EuY29tPgorKworK0FDX0RFRlVOKFtBWF9TT0NJXSwKKytbCisrIwor KyMgU2V0IHVwIGNvbmZpZ3VyZSBzY3JpcHQgbWFjcm9zCisrIworK0FDX0FSR19XSVRIKHNvY2ks CisrCVstLXdpdGgtc29jaT08cGF0aD4gICAgIHJvb3QgZGlyZWN0b3J5IHBhdGggb2YgU29jaSBp bnN0YWxsYXRpb25dLAorKwlbU09DSV9saWJfY2hlY2s9IiR3aXRoX3NvY2kvbGliNjQvc29jaSAk d2l0aF9zb2NpL2xpYi9zb2NpICR3aXRoX3NvY2kvbGliNjQgJHdpdGhfc29jaS9saWIiCisrCVNP Q0lfaW5jX2NoZWNrPSIkd2l0aF9zb2NpL2luY2x1ZGUgJHdpdGhfc29jaS9pbmNsdWRlL3NvY2ki XSwKKysJW1NPQ0lfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGliNjQvc29j aSAvdXNyL2xpYi9zb2NpIC91c3IvbG9jYWwvbGliNjQgL3Vzci9sb2NhbC9saWIgL29wdC9zb2Np L2xpYjY0IC9vcHQvc29jaS9saWIgL3Vzci9sb2NhbC9saWI2NC9zb2NpIC91c3IvbG9jYWwvbGli L3NvY2kgL3Vzci9sb2NhbC9zb2NpL2xpYjY0IC91c3IvbG9jYWwvc29jaS9saWIgL29wdC9zb2Np L2xpYjY0L3NvY2kgL29wdC9zb2NpL2xpYi9zb2NpIgorKwlTT0NJX2luY19jaGVjaz0iL3Vzci9p bmNsdWRlIC91c3IvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvaW5jbHVkZSAvb3B0L3NvY2kvaW5j bHVkZSAvdXNyL2xvY2FsL2luY2x1ZGUvc29jaSAvdXNyL2xvY2FsL3NvY2kvaW5jbHVkZSAvdXNy L2xvY2FsL3NvY2kvaW5jbHVkZS9zb2NpIC9vcHQvc29jaS9pbmNsdWRlL3NvY2kiXSkKKysKKysj IFNPQ0kgbGlicmFyeQorK1NPQ0lfQ09SRV9MSUI9c29jaV9jb3JlCisrU09DSV9NWVNRTF9MSUI9 c29jaV9teXNxbAorKworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgbGlicmFyeQorKyMK KytBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5XSkKKytTT0NJX2xp YmRpcj0KKytmb3IgbSBpbiAkU09DSV9saWJfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIg JiYgXAorKwkJKHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLnNvIiB8fCB0ZXN0IC1mICIk bS9saWIkU09DSV9DT1JFX0xJQi5hIikKKysJdGhlbgorKwkJU09DSV9saWJkaXI9JG0KKysJCWJy ZWFrCisrCWZpCisrZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJX2xpYmRpciIKKyt0aGVuCisr CUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgJFNPQ0lfQ09SRV9MSUIgbGlicmFyeSBpbiAnJFNP Q0lfbGliX2NoZWNrJ10pCisrZmkKKysKKytjYXNlICIkU09DSV9saWJkaXIiIGluCisrCS8qICkg OzsKKysJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGxpYnJhcnkgZGlyZWN0b3J5ICgkU09D SV9saWJkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OworK2VzYWMKKysKKytBQ19N U0dfUkVTVUxUKFskU09DSV9saWJkaXJdKQorKworK2Nhc2UgIiRTT0NJX2xpYmRpciIgaW4KKysg IC91c3IvbGliNjQpIDs7CisrICAvdXNyL2xpYikgOzsKKysgICopIFNPQ0lfTElCUz0iLUwke1NP Q0lfbGliZGlyfSIgOzsKKytlc2FjCisrTERGTEFHUz0iJExERkxBR1MgJHtTT0NJX0xJQlN9Igor KworKworKyMKKysjIExvb2sgZm9yIFNvY2kgQ29yZSBBUEkgaGVhZGVycworKyMKKytBQ19NU0df Q0hFQ0tJTkcoW2ZvciBTb2NpIGluY2x1ZGUgZGlyZWN0b3J5XSkKKytTT0NJX2luY2Rpcj0KKytm b3IgbSBpbiAkU09DSV9pbmNfY2hlY2sKKytkbworKwlpZiB0ZXN0IC1kICIkbSIgJiYgdGVzdCAt ZiAiJG0vc29jaS9jb3JlL3NvY2kuaCIKKysJdGhlbgorKwkJU09DSV9pbmNkaXI9JG0KKysJCWJy ZWFrCisrCWZpCisrZG9uZQorKworK2lmIHRlc3QgLXogIiRTT0NJX2luY2RpciIKKyt0aGVuCisr CUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgdGhlIFNvY2kgaW5jbHVkZSBkaXIgaW4gJyRTT0NJ X2luY19jaGVjayddKQorK2ZpCisrCisrY2FzZSAiJFNPQ0lfaW5jZGlyIiBpbgorKwkvKiApIDs7 CisrCSogKSAgQUNfTVNHX0VSUk9SKFtUaGUgU29jaSBpbmNsdWRlIGRpcmVjdG9yeSAoJFNPQ0lf aW5jZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguXSkgOzsKKytlc2FjCisrCisrQUNfTVNH X1JFU1VMVChbJFNPQ0lfaW5jZGlyXSkKKysKKytjYXNlICIkU09DSV9pbmNkaXIiIGluCisrICAv dXNyL2luY2x1ZGUpIDs7CisrICAqKSBTT0NJX0NGTEFHUz0iLUkke1NPQ0lfaW5jZGlyfSIgOzsK Kytlc2FjCisrCisrU09DSV9MSUJTPSIke1NPQ0lfTElCU30gLWwke1NPQ0lfQ09SRV9MSUJ9IC1s JHtTT0NJX01ZU1FMX0xJQn0gLWxkbCIKKysKKytBQ19TVUJTVChTT0NJX0NGTEFHUykKKytBQ19T VUJTVChTT0NJX0xJQlMpCisrCisrIyBUZXN0IGxpbmtpbmcgd2l0aCBzb2NpIChub3RlIHRoYXQg aXQgbmVlZHMgTXlTUUwgY2xpZW50IHRvIGhhdmUgYmVlbiBkZWZpbmVkCisrIyBiZWZvcmUpCisr c2F2ZV9MSUJTPSIkTElCUyIKKytpZiB0ZXN0IC16ICIkTVlTUUxfTElCUyIKKyt0aGVuCisrCU1Z U1FMX0xJQlM9Ii1ML3Vzci9saWI2NC9teXNxbCAtTC91c3IvbGliL215c3FsIC1sbXlzcWxjbGll bnQiCisrZmkKKytMSUJTPSIkTElCUyAkTVlTUUxfTElCUyAkU09DSV9MSUJTIgorK0FDX0NIRUNL X0xJQigkU09DSV9DT1JFX0xJQiwgc29jaV9iZWdpbiwKKysJICAgICBbXSwgCisrICAgICAgICAg ICAgIFtBQ19NU0dfRVJST1IoW0NvdWxkIG5vdCBmaW5kIHdvcmtpbmcgU29jaSBjbGllbnQgbGli cmFyeSFdKV0KKysJICAgICApCisrTElCUz0iJHNhdmVfTElCUyIKKytBQ19TVUJTVChTT0NJX0NP UkVfTElCKQorK10pIGRubCBBWF9TT0NJCitkaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29j aS5wYy5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgorLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kucGMuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS5wYy5pbgkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSwxMSBAQAorK3ByZWZpeD1AcHJlZml4QAorK2V4ZWNfcHJlZml4 PUBleGVjX3ByZWZpeEAKKytsaWJkaXI9QGxpYmRpckAKKytpbmNsdWRlZGlyPUBpbmNsdWRlZGly QAorKworK05hbWU6IEBQQUNLQUdFX05BTUVACisrRGVzY3JpcHRpb246IFRoZSBkYXRhYmFzZSBh Y2Nlc3MgbGlicmFyeSBmb3IgQysrIHByb2dyYW1tZXJzCisrVmVyc2lvbjogQFBBQ0tBR0VfVkVS U0lPTkAKKytVUkw6IGh0dHA6Ly9AUEFDS0FHRUAuc291cmNlZm9yZ2UubmV0CisrTGliczogLUwk e2xpYmRpcn0gLWxAUEFDS0FHRUBfY29yZSBATERGTEFHU0AgQExJQlNACisrQ2ZsYWdzOiAtSSR7 aW5jbHVkZWRpcn0KK2RpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLnNwZWMuaW4gc29j aS0zLjAuMF90cmVwMzAwL3NvY2kuc3BlYy5pbgorLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2ku c3BlYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpLnNwZWMuaW4JMjAxMC0wMS0yMyAxNDozOTozMi4wMDAwMDAwMDAgKzAx MDAKK0BAIC0wLDAgKzEsMzM2IEBACisrIworKyMjCisrIyBEZWZhdWx0IHZhbHVlcyBhcmUgLS13 aXRoIG15c3FsIC0td2l0aCBwb3N0Z3Jlc3FsIC0td2l0aG91dCBvcmFjbGUgCisrIyBOb3RlIHRo YXQsIGZvciBPcmFjbGUsIHdoZW4gZW5hYmxlZCwgdGhlIGZvbGxvd2luZyBvcHRpb25zIHNob3Vs ZAorKyMgYWxzbyBiZSBnaXZlbjoKKysjIC0td2l0aC1vcmFjbGUtaW5jbHVkZT0vb3B0L29yYWNs ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEvcmRibXMvcHVibGljCisrIyAtLXdpdGgt b3JhY2xlLWxpYj0vb3B0L29yYWNsZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTEuMS4wL2RiXzEvbGli CisrIyBJZiB0aGUgbWFjcm9zIGFyZSBkZWZpbmVkLCByZWRlZmluZSB0aGVtIHdpdGggdGhlIGNv cnJlY3QgY29tcGlsYXRpb24gZmxhZ3MuCisrJWJjb25kX3dpdGhvdXQgbXlzcWwKKyslYmNvbmRf d2l0aG91dCBwb3N0Z3Jlc3FsCisrJWJjb25kX3dpdGggb3JhY2xlCisrCisrJWRlZmluZSBfZGVm YXVsdF9vcmFjbGVfZGlyIC9vcHQvb3JhY2xlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMS4xLjAvZGJf MQorKyV7IT9fd2l0aF9vcmFjbGVfaW5jZGlyOiAlZGVmaW5lIF93aXRoX29yYWNsZV9pbmNkaXIg LS13aXRoLW9yYWNsZS1pbmNsdWRlPSV7X2RlZmF1bHRfb3JhY2xlX2Rpcn0vcmRibXMvcHVibGlj fQorKyV7IT9fd2l0aF9vcmFjbGVfbGliZGlyOiAlZGVmaW5lIF93aXRoX29yYWNsZV9saWJkaXIg LS13aXRoLW9yYWNsZS1saWI9JXtfZGVmYXVsdF9vcmFjbGVfZGlyfS9saWJ9CisrIworKyMjCisr IworK05hbWU6ICAgICAgICAgICBAUEFDS0FHRUAKKytWZXJzaW9uOiAgICAgICAgQFZFUlNJT05A CisrUmVsZWFzZTogICAgICAgIEBSUE1fUkVMRUFTRUAlez9kaXN0fQorKworK1N1bW1hcnk6ICAg ICAgICBUaGUgZGF0YWJhc2UgYWNjZXNzIGxpYnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycworKwor K0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCisrTGljZW5zZTog ICAgICAgIEJvb3N0CisrVVJMOiAgICAgICAgICAgIGh0dHA6Ly8le25hbWV9LnNvdXJjZWZvcmdl Lm5ldAorK1NvdXJjZTA6ICAgICAgICBodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9z b2NpLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKKysjIFRoYXQgcGF0Y2ggd2lsbCBiZSBzdWJt aXR0ZWQgdXBzdHJlYW0KKytQYXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LUBSUE1f UkVMRUFTRUAtZml4LWdjYzQ0LWNvbXBhdGliaWxpdHkucGF0Y2gKKysjIFRoYXQgcGF0Y2ggd2ls bCBiZSBzdWJtaXR0ZWQgdXBzdHJlYW0KKytQYXRjaDE6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNp b259LUBSUE1fUkVMRUFTRUAtZml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAor K0J1aWxkUm9vdDogICAgICAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNl fS1yb290LSUoJXtfX2lkX3V9IC1uKQorKworK0J1aWxkUmVxdWlyZXM6ICBib29zdC1kZXZlbAor KyNCdWlsZFJlcXVpcmVzOiAgY3BwdW5pdC1kZXZlbCA+PSAxLjEwCisrQnVpbGRSZXF1aXJlczog IGxpYnRvb2wKKysjUmVxdWlyZXM6ICAgICAgIAorKworKyVkZXNjcmlwdGlvbgorK0BQQUNLQUdF X05BTUVAIGlzIGEgQysrIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgdGhl CisraWxsdXNpb24gb2YgZW1iZWRkaW5nIFNRTCBpbiByZWd1bGFyIEMrKyBjb2RlLCBzdGF5aW5n IGVudGlyZWx5IHdpdGhpbgorK3RoZSBDKysgc3RhbmRhcmQuCisrCisrCisrJXs/d2l0aF9teXNx bDolcGFja2FnZSAgICAgICAgbXlzcWwKKytTdW1tYXJ5OiAgICAgICAgTXlTUUwgYmFja2VuZCBm b3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVz CisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytCdWls ZFJlcXVpcmVzOiAgbXlzcWwtZGV2ZWwgPj0gNS4wCisrCisrJWRlc2NyaXB0aW9uICAgIG15c3Fs CisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBNeVNRTCBiYWNrZW5kIGZvciBAUEFDS0FHRV9O QU1FQCwgaS5lLiwKKytkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMgdG8gdGhlIE15U1FMIGRhdGFi YXNlLiBJZiB5b3Ugd291bGQgbGlrZSB0bworK3VzZSBAUEFDS0FHRV9OQU1FQCBpbiB5b3VyIHBy b2dyYW1zIHdpdGggTXlTUUwsIHlvdSB3aWxsIG5lZWQgdG8KKytpbnN0YWxsICV7bmFtZX0tbXlz cWwufQorKworKyV7P3dpdGhfcG9zdGdyZXNxbDolcGFja2FnZSAgICAgICAgcG9zdGdyZXNxbAor K1N1bW1hcnk6ICAgICAgICBQb3N0R3JlU1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KKytHcm91cDog ICAgICAgICAgU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcworK1JlcXVpcmVzOiAgICAgICAl e25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CisrQnVpbGRSZXF1aXJlczogIHBvc3RncmVz cWwtZGV2ZWwgPj0gNy4xCisrCisrJWRlc2NyaXB0aW9uICAgIHBvc3RncmVzcWwKKytUaGlzIHBh Y2thZ2UgY29udGFpbnMgdGhlIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgQFBBQ0tBR0VfTkFNRUAs IGkuZS4sCisrZHluYW1pYyBsaWJyYXJ5IHNwZWNpZmljIHRvIHRoZSBQb3N0R3JlU1FMIGRhdGFi YXNlLiBJZiB5b3Ugd291bGQgbGlrZQorK3RvIHVzZSBAUEFDS0FHRV9OQU1FQCBpbiB5b3VyIHBy b2dyYW1zIHdpdGggUG9zdEdyZVNRTCwgeW91IHdpbGwgbmVlZCB0bworK2luc3RhbGwgJXtuYW1l fS1wb3N0Z3Jlc3FsLn0KKysKKyslez93aXRoX29yYWNsZTolcGFja2FnZSAgICAgICAgb3JhY2xl CisrU3VtbWFyeTogICAgICAgIE9yYWNsZSBiYWNrZW5kIGZvciAle25hbWV9CisrR3JvdXA6ICAg ICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtu YW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorKworKyVkZXNjcmlwdGlvbiAgICBvcmFjbGUK KytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIE9yYWNsZSBiYWNrZW5kIGZvciBAUEFDS0FHRV9O QU1FQCwgaS5lLiwKKytkeW5hbWljIGxpYnJhcnkgc3BlY2lmaWMgdG8gdGhlIE9yYWNsZSBkYXRh YmFzZS4gSWYgeW91IHdvdWxkIGxpa2UgdG8KKyt1c2UgQFBBQ0tBR0VfTkFNRUAgaW4geW91ciBw cm9ncmFtcyB3aXRoIE9yYWNsZSwgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsCisrJXtuYW1lfS1v cmFjbGUufQorKworKworKyVwYWNrYWdlICAgICAgICBkZXZlbAorK1N1bW1hcnk6ICAgICAgICBI ZWFkZXIgZmlsZXMsIGxpYnJhcmllcyBhbmQgZGV2ZWxvcG1lbnQgZG9jdW1lbnRhdGlvbiBmb3Ig JXtuYW1lfQorK0dyb3VwOiAgICAgICAgICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKKytSZXF1aXJl czogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAg ICBwa2djb25maWcKKysKKyslZGVzY3JpcHRpb24gICAgZGV2ZWwKKytUaGlzIHBhY2thZ2UgY29u dGFpbnMgdGhlIGhlYWRlciBmaWxlcywgZHluYW1pYyBsaWJyYXJpZXMgYW5kCisrZGV2ZWxvcG1l bnQgZG9jdW1lbnRhdGlvbiBmb3IgJXtuYW1lfS4gSWYgeW91IHdvdWxkIGxpa2UgdG8gZGV2ZWxv cAorK3Byb2dyYW1zIHVzaW5nICV7bmFtZX0sIHlvdSB3aWxsIG5lZWQgdG8gaW5zdGFsbCAle25h bWV9LWRldmVsLgorKworKyV7P3dpdGhfbXlzcWw6JXBhY2thZ2UgICAgICAgIG15c3FsLWRldmVs CisrU3VtbWFyeTogICAgICAgIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0KKytHcm91cDogICAg ICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tZGV2 ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczogICAgICAgJXtuYW1lfS1teXNx bCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAgICBteXNxbC1kZXZlbCA+ PSA1LjAKKysKKyslZGVzY3JpcHRpb24gICAgbXlzcWwtZGV2ZWwKKytUaGlzIHBhY2thZ2UgY29u dGFpbnMgdGhlIE15U1FMIGJhY2tlbmQgZm9yICV7bmFtZX0sIGkuZS4sIGhlYWRlcgorK2ZpbGVz IGFuZCBkeW5hbWljIGxpYnJhcmllcyBzcGVjaWZpYyB0byB0aGUgTXlTUUwgZGF0YWJhc2UuIElm IHlvdQorK3dvdWxkIGxpa2UgdG8gZGV2ZWxvcCBwcm9ncmFtcyB1c2luZyAle25hbWV9IGFuZCBN eVNRTCwgeW91IHdpbGwgbmVlZAorK3RvIGluc3RhbGwgJXtuYW1lfS1teXNxbC59CisrCisrJXs/ d2l0aF9wb3N0Z3Jlc3FsOiVwYWNrYWdlICAgICAgICBwb3N0Z3Jlc3FsLWRldmVsCisrU3VtbWFy eTogICAgICAgIFBvc3RHcmVTUUwgYmFja2VuZCBmb3IgJXtuYW1lfQorK0dyb3VwOiAgICAgICAg ICBEZXZlbG9wbWVudC9MaWJyYXJpZXMKKytSZXF1aXJlczogICAgICAgJXtuYW1lfS1kZXZlbCA9 ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorK1JlcXVpcmVzOiAgICAgICAle25hbWV9LXBvc3RncmVz cWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczogICAgICAgcG9zdGdyZXNxbC1k ZXZlbCA+PSA3LjEKKysKKyslZGVzY3JpcHRpb24gICAgcG9zdGdyZXNxbC1kZXZlbAorK1RoaXMg cGFja2FnZSBjb250YWlucyB0aGUgUG9zdEdyZVNRTCBiYWNrZW5kIGZvciAle25hbWV9LCBpLmUu LCBoZWFkZXIKKytmaWxlcyBhbmQgZHluYW1pYyBsaWJyYXJpZXMgc3BlY2lmaWMgdG8gdGhlIFBv c3RHcmVTUUwgZGF0YWJhc2UuIElmCisreW91IHdvdWxkIGxpa2UgdG8gZGV2ZWxvcCBwcm9ncmFt cyB1c2luZyAle25hbWV9IGFuZCBQb3N0R3JlU1FMLCB5b3UKKyt3aWxsIG5lZWQgdG8gaW5zdGFs bCAle25hbWV9LXBvc3RncmVzcWwufQorKworKyV7P3dpdGhfb3JhY2xlOiVwYWNrYWdlICAgICAg ICBvcmFjbGUtZGV2ZWwKKytTdW1tYXJ5OiAgICAgICAgT3JhY2xlIGJhY2tlbmQgZm9yICV7bmFt ZX0KKytHcm91cDogICAgICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCisrUmVxdWlyZXM6ICAg ICAgICV7bmFtZX0tZGV2ZWwgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKytSZXF1aXJlczogICAg ICAgJXtuYW1lfS1vcmFjbGUgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KKysKKyslZGVzY3JpcHRp b24gICAgb3JhY2xlLWRldmVsCisrVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBPcmFjbGUgYmFj a2VuZCBmb3IgJXtuYW1lfSwgaS5lLiwgaGVhZGVyCisrZmlsZXMgYW5kIGR5bmFtaWMgbGlicmFy aWVzIHNwZWNpZmljIHRvIHRoZSBPcmFjbGUgZGF0YWJhc2UuIElmIHlvdQorK3dvdWxkIGxpa2Ug dG8gZGV2ZWxvcCBwcm9ncmFtcyB1c2luZyAle25hbWV9IGFuZCBPcmFjbGUsIHlvdSB3aWxsIG5l ZWQKKyt0byBpbnN0YWxsICV7bmFtZX0tb3JhY2xlLn0KKysKKysKKyslcGFja2FnZSBkb2MKKytT dW1tYXJ5OiAgICAgICAgSFRNTCBkb2N1bWVudGF0aW9uIGZvciB0aGUgQFBBQ0tBR0VfTkFNRUAg bGlicmFyeQorK0dyb3VwOiAgICAgICAgICBEb2N1bWVudGF0aW9uCisrJWlmIDAlez9mZWRvcmF9 ID49IDEwCisrQnVpbGRBcmNoOiAgICAgIG5vYXJjaAorKyNCdWlsZFJlcXVpcmVzOiAgdGV4bGl2 ZS1sYXRleCwgdGV4bGl2ZS1kdmlwcworKyVlbmRpZgorKyNCdWlsZFJlcXVpcmVzOiAgdGV0ZXgt bGF0ZXgsIHRldGV4LWR2aXBzCisrI0J1aWxkUmVxdWlyZXM6ICBkb3h5Z2VuLCBnaG9zdHNjcmlw dAorKworKyVkZXNjcmlwdGlvbiBkb2MKKytUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGRvY3Vt ZW50YXRpb24gaW4gdGhlIEhUTUwgZm9ybWF0IG9mIHRoZSBAUEFDS0FHRV9OQU1FQAorK2xpYnJh cnkuIFRoZSBkb2N1bWVudGF0aW9uIGlzIHRoZSBzYW1lIGFzIGF0IHRoZSBAUEFDS0FHRV9OQU1F QCB3ZWIgcGFnZS4KKysKKysKKyslcHJlcAorKyVzZXR1cCAtcQorKworKyMgQXBwbHkgdGhlIGcr KyA0LjQgY29tcGF0aWJpbGl0eSBwYXRjaAorKyVwYXRjaDAgLXAxCisrCisrIyBSZW5hbWUgY2hh bmdlLWxvZyBhbmQgbGljZW5zZSBmaWxlLCBzbyB0aGF0IHRoZXkgY29tcGx5IHdpdGgKKysjIHBh Y2thZ2luZyBzdGFuZGFyZAorK212IENIQU5HRVMgQ2hhbmdlTG9nCisrbXYgTElDRU5TRV8xXzAu dHh0IENPUFlJTkcKKytybSAtZiBJTlNUQUxMCisrCisrIyBSZW1vdmUgTWFjT1NYIGNvbXBhdGli aWxpdHkgYnVpbGRpbmcgZmlsZXMKKytybSAtZiBidWlsZC91bml4Ly5fKi50Y2wKKytybSAtZiAu X01ha2VmaWxlIC5fY29uZmlndXJlCisrcm0gLWYgc3JjL2NvcmUvLl8qLmggc3JjL2NvcmUvLl8q LmNwcAorK3JtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLy5fKi5oCisrcm0gLWYgZG9jLy5f Ki5odG1sCisrCisrIyBSZW5hbWUgdGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9yeSwgc28gdGhhdCB0 aGUgZmlsZXMgKGUuZywgaGVhZGVyCisrIyBmaWxlcykgY2FuIGJlIGV4cG9ydGVkIGNvcnJlY3Rs eSBpbnRvIHtfc3RhbmRhcmRfZGlyfS8le25hbWV9CisrbXYgc3JjICV7bmFtZX0KKysKKysjIEFw cGx5IHRoZSBHTlUgQXV0b3Rvb2xzIGNvbXBhdGliaWxpdHkgcGF0Y2gKKyslcGF0Y2gxIC1wMQor KworKyMgRml4IHNvbWUgcGVybWlzc2lvbnMgYW5kIGZvcm1hdHMKKytmaW5kIC4vZG9jIC10eXBl IGYgLXBlcm0gNzU1IC1leGVjIGNobW9kIDY0NCB7fSBcOworK2NobW9kIC14IEFVVEhPUlMgQ2hh bmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysjIGZpbmQgLiAtdHlwZSBmIC1uYW1lICcqLlto Y11wcCcgLWV4ZWMgY2htb2QgNjQ0IHt9IFw7CisrCisrCisrJWJ1aWxkCisrJWNvbmZpZ3VyZSAt LWRpc2FibGUtc3RhdGljIFwKKyslez93aXRoX215c3FsOi0tZW5hYmxlLWJhY2tlbmQtbXlzcWx9 IFwKKyslez93aXRoX3Bvc3RncmVzcWw6LS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsfSBcCisr JXs/d2l0aF9vcmFjbGU6LS1lbmFibGUtYmFja2VuZC1vcmFjbGUgJXs/X3dpdGhfb3JhY2xlX2lu Y2Rpcn0gJXs/X3dpdGhfb3JhY2xlX2xpYmRpcn19CisrbWFrZSAlez9fc21wX21mbGFnc30KKysK KyslaW5zdGFsbAorK3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKKyttYWtlIGluc3RhbGwgREVTVERJ Uj0kUlBNX0JVSUxEX1JPT1QKKysjIworKyMgIFJlbW92ZSB1bnBhY2thZ2VkIGZpbGVzIGZyb20g dGhlIGJ1aWxkcm9vdAorK3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X2luY2x1ZGVkaXJ9LyV7bmFt ZX0vY29uZmlnLmgKKytybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19saWJkaXJ9L2xpYiV7bmFtZX1f Ki5sYQorKyMjCisrIyMKKysjICBEdXBsaWNhdGUgdGhlIGhlYWRlciBmaWxlcywgc28gYXMgdG8g a2VlcCB0aGUgY29tcGF0aWJpbGl0eSwgZm9yCisrIyAgZGV2ZWxvcGVycyB1c2luZyB0aGUgU09D SSBsaWJyYXJ5LCB3aXRoIHRoZSBub24tcGFja2FnZWQgdmVyc2lvbiBvZgorKyMgIHRoYXQgbGli cmFyeS4KKytmb3IgaGVhZGVyX2ZpbGUgaW4gJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0v JXtuYW1lfS9jb3JlLyouaDsgZG8KKysgIGNwICR7aGVhZGVyX2ZpbGV9ICRSUE1fQlVJTERfUk9P VCV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKytkb25lCisrJXs/d2l0aF9teXNxbDpjcCAkUlBNX0JV SUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwu aCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9fQorKyV7P3dpdGhfcG9zdGdy ZXNxbDpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tlbmRzL3Bv c3RncmVzcWwvc29jaS1wb3N0Z3Jlc3FsLmggJFJQTV9CVUlMRF9ST09UJXtfaW5jbHVkZWRpcn0v JXtuYW1lfX0KKyslez93aXRoX29yYWNsZTpjcCAkUlBNX0JVSUxEX1JPT1Qle19pbmNsdWRlZGly fS8le25hbWV9L2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oICRSUE1fQlVJTERfUk9PVCV7 X2luY2x1ZGVkaXJ9LyV7bmFtZX19CisrCisrCisrJWNsZWFuCisrcm0gLXJmICRSUE1fQlVJTERf Uk9PVAorKworKyVwb3N0IC1wIC9zYmluL2xkY29uZmlnCisrCisrJXBvc3R1biAtcCAvc2Jpbi9s ZGNvbmZpZworKworKyV7P3dpdGhfbXlzcWw6JXBvc3QgbXlzcWwgLXAgL3NiaW4vbGRjb25maWcK KysKKyslcG9zdHVuIG15c3FsIC1wIC9zYmluL2xkY29uZmlnfQorKworKyV7P3dpdGhfcG9zdGdy ZXNxbDolcG9zdCBwb3N0Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmlnCisrCisrJXBvc3R1biBwb3N0 Z3Jlc3FsIC1wIC9zYmluL2xkY29uZmlnfQorKworKyV7P3dpdGhfb3JhY2xlOiVwb3N0IG9yYWNs ZSAtcCAvc2Jpbi9sZGNvbmZpZworKworKyVwb3N0dW4gb3JhY2xlIC1wIC9zYmluL2xkY29uZmln fQorKworKworKworKyVmaWxlcworKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRI T1JTIENoYW5nZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJXtfbGliZGlyfS9saWIle25hbWV9 X2NvcmUuc28uKgorKworKyV7P3dpdGhfbXlzcWw6JWZpbGVzIG15c3FsCisrJWRlZmF0dHIoLSxy b290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUK Kysle19saWJkaXJ9L2xpYiV7bmFtZX1fbXlzcWwuc28uKn0KKysKKyslez93aXRoX3Bvc3RncmVz cWw6JWZpbGVzIHBvc3RncmVzcWwKKyslZGVmYXR0cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVU SE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJFQURNRQorKyV7X2xpYmRpcn0vbGliJXtuYW1l fV9wb3N0Z3Jlc3FsLnNvLip9CisrCisrJXs/d2l0aF9vcmFjbGU6JWZpbGVzIG9yYWNsZQorKyVk ZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxvZyBDT1BZSU5HIE5F V1MgUkVBRE1FCisrJXtfbGliZGlyfS9saWIle25hbWV9X29yYWNsZS5zby4qfQorKworKworKyVm aWxlcyBkZXZlbAorKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5n ZUxvZyBDT1BZSU5HIE5FV1MgUkVBRE1FCisrJWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9Cisr JWRpciAle19pbmNsdWRlZGlyfS8le25hbWV9L2NvcmUKKysle19pbmNsdWRlZGlyfS8le25hbWV9 LyouaAorKyV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0vY29yZS8qLmgKKysle19pbmNsdWRlZGlyfS8l e25hbWV9L2NvcmUvdGVzdAorKyV7X2JpbmRpcn0vJXtuYW1lfS1jb25maWcKKysle19saWJkaXJ9 L2xpYiV7bmFtZX1fY29yZS5zbworKyV7X2xpYmRpcn0vcGtnY29uZmlnLyV7bmFtZX0ucGMKKysl e19kYXRhZGlyfS9hY2xvY2FsLyV7bmFtZX0ubTQKKysle19tYW5kaXJ9L21hbjEvJXtuYW1lfS1j b25maWcuMS4qCisrCisrJXs/d2l0aF9teXNxbDolZmlsZXMgbXlzcWwtZGV2ZWwKKyslZGVmYXR0 cigtLHJvb3Qscm9vdCwtKQorKyVkb2MgQVVUSE9SUyBDaGFuZ2VMb2cgQ09QWUlORyBORVdTIFJF QURNRQorKyVkaXIgJXtfaW5jbHVkZWRpcn0vJXtuYW1lfQorKyV7X2luY2x1ZGVkaXJ9LyV7bmFt ZX0vYmFja2VuZHMvbXlzcWwKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fbXlzcWwuc299CisrCisr JXs/d2l0aF9wb3N0Z3Jlc3FsOiVmaWxlcyBwb3N0Z3Jlc3FsLWRldmVsCisrJWRlZmF0dHIoLSxy b290LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUK KyslZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKysle19pbmNsdWRlZGlyfS8le25hbWV9L2Jh Y2tlbmRzL3Bvc3RncmVzcWwKKysle19saWJkaXJ9L2xpYiV7bmFtZX1fcG9zdGdyZXNxbC5zb30K KysKKyslez93aXRoX29yYWNsZTolZmlsZXMgb3JhY2xlLWRldmVsCisrJWRlZmF0dHIoLSxyb290 LHJvb3QsLSkKKyslZG9jIEFVVEhPUlMgQ2hhbmdlTG9nIENPUFlJTkcgTkVXUyBSRUFETUUKKysl ZGlyICV7X2luY2x1ZGVkaXJ9LyV7bmFtZX0KKysle19pbmNsdWRlZGlyfS8le25hbWV9L2JhY2tl bmRzL29yYWNsZQorKyV7X2xpYmRpcn0vbGliJXtuYW1lfV9vcmFjbGUuc299CisrCisrCisrJWZp bGVzIGRvYworKyVkZWZhdHRyKC0scm9vdCxyb290LC0pCisrJWRvYyBBVVRIT1JTIENoYW5nZUxv ZyBDT1BZSU5HIE5FV1MgUkVBRE1FIGRvYworKworKworKyVjaGFuZ2Vsb2cKKysqIFNhdCBKYW4g MjMgMjAxMCBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAt MTYKKystIEFkZGVkIGEgbWlzc2luZyBjc3RyaW5nIGhlYWRlciBpbmNsdWRlIGZvciBnKystNC40 IGNvbXBhdGliaWxpdHkKKysKKysqIEZyaSBKYW4gMjIgMjAxMCBSYWh1bCBTdW5kYXJhbSA8c3Vu ZGFyYW1AZmVkb3JhcHJvamVjdC5vcmc+IC0gMy4wLjAtMTUKKystIFJlYnVpbGQgZm9yIEJvb3N0 IHNvbmFtZSBidW1wCisrCisrKiBTdW4gSnVsIDI2IDIwMDkgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbC1lbmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMy4wLjAtMTQKKystIFJl YnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMTJfTWFzc19S ZWJ1aWxkCisrCisrKiBTYXQgTWF5IDA5IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRf ZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEzCisrLSBJbnRyb2R1Y2VkIGRpc3RpbmN0IGRlcGVuZGVu Y2llcyBmb3IgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbnMKKysKKysqIFR1ZSBNYXkgMDUgMjAwOSBE ZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTIKKystIFJl bW92ZWQgdGhlIGRlcGVuZGVuY3kgb24gdGhlIHZlcnNpb24gb2YgQm9vc3QsIGFuZCBvbiBDUFBV bml0CisrCisrKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVk b3JhQG00eC5vcmc+IDMuMC4wLTExCisrLSBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5IG9uIExhdGV4 IGZvciBkb2N1bWVudGF0aW9uIGRlbGl2ZXJ5CisrCisrKiBUdWUgTWF5IDA1IDIwMDkgRGVuaXMg QXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTEwCisrLSBCdXJyaWVk IHRoZSBCb29zdCBGdXNpb24gaGVhZGVyIGluY2x1ZGUgZm9yIGNvcmUvdGVzdC9jb21tb24tdGVz dHMuaAorKworKyogVHVlIE1heSAwNSAyMDA5IERlbmlzIEFybmF1ZCA8ZGVuaXMuYXJuYXVkX2Zl ZG9yYUBtNHgub3JnPiAzLjAuMC05CisrLSBBZGRlZCBhIG1pc3NpbmcgY3N0ZGlvIGhlYWRlciBp bmNsdWRlIGZvciBnKystNC40IGNvbXBhdGliaWxpdHkKKysKKysqIFR1ZSBNYXkgMDUgMjAwOSBE ZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtOAorKy0gQWRk ZWQgbWlzc2luZyBjc3RkaW8gaGVhZGVyIGluY2x1ZGVzIGZvciBnKystNC40IGNvbXBhdGliaWxp dHkKKysKKysqIFR1ZSBNYXkgMDUgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRv cmFAbTR4Lm9yZz4gMy4wLjAtNworKy0gQWRkZWQgYSBtaXNzaW5nIGNzdGRpbyBoZWFkZXIgaW5j bHVkZSBmb3IgZysrLTQuNCBjb21wYXRpYmlsaXR5CisrCisrKiBTYXQgTWF5IDAyIDIwMDkgRGVu aXMgQXJuYXVkIDxkZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTYKKystIFJlbW92 ZWQgdGhlIHVudXNlZCBidWlsZCBjb25kaXRpb25hbHMKKysKKysqIFR1ZSBBcHIgMjggMjAwOSBE ZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtNQorKy0gU2lt cGxpZmllZCB0aGUgY29uZGl0aW9uYWwgYnVpbGQgcnVsZXMgd2l0aGluIHRoZSBSUE0gc3BlY2lm aWNhdGlvbiBmaWxlCisrCisrKiBTYXQgQXByIDE4IDIwMDkgRGVuaXMgQXJuYXVkIDxkZW5pcy5h cm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTQKKystIEZpeGVkIGFuIGlzc3VlIGFib3V0IE9Q VEZMQUdTIGNvbXBpbGF0aW9uCisrCisrKiBUdWUgQXByIDE0IDIwMDkgRGVuaXMgQXJuYXVkIDxk ZW5pcy5hcm5hdWRfZmVkb3JhQG00eC5vcmc+IDMuMC4wLTMKKystIFJlc3RhcnRlZCBmcm9tIHBy aXN0aW5lIHZlcnNpb24gMy4wLjAgb2YgdXBzdHJlYW0gKFNPQ0kpIHByb2plY3QKKysKKysqIFNh dCBBcHIgIDQgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4g My4wLjAtMgorKy0gU3BlY2lmaWMgUlBNIGZvciBlYWNoIGJhY2tlbmQKKysKKysqIEZyaSBNYXIg MjcgMjAwOSBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAt MQorKy0gRmlyc3QgUlBNIHJlbGVhc2UKCmRpZmYgLS1naXQgYS9zb2NpLnNwZWMgYi9zb2NpLnNw ZWMKaW5kZXggNDk4MWUxOS4uZmU3MzY0ZCAxMDA2NDQKLS0tIGEvc29jaS5zcGVjCisrKyBiL3Nv Y2kuc3BlYwpAQCAtMTgsNyArMTgsNyBAQAogIwogTmFtZTogICAgICAgICAgIHNvY2kKIFZlcnNp b246ICAgICAgICAzLjAuMAotUmVsZWFzZTogICAgICAgIDE1JXs/ZGlzdH0KK1JlbGVhc2U6ICAg ICAgICAxNiV7P2Rpc3R9CiAKIFN1bW1hcnk6ICAgICAgICBUaGUgZGF0YWJhc2UgYWNjZXNzIGxp YnJhcnkgZm9yIEMrKyBwcm9ncmFtbWVycwogCkBAIC0yNyw5ICsyNyw5IEBAIExpY2Vuc2U6ICAg ICAgICBCb29zdAogVVJMOiAgICAgICAgICAgIGh0dHA6Ly8le25hbWV9LnNvdXJjZWZvcmdlLm5l dAogU291cmNlMDogICAgICAgIGh0dHA6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3NvY2kv JXtuYW1lfS0le3ZlcnNpb259LnRhci5negogIyBUaGF0IHBhdGNoIHdpbGwgYmUgc3VibWl0dGVk IHVwc3RyZWFtCi1QYXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259LTEzLWZpeC1nY2M0 My1jb21wYXRpYmlsaXR5LnBhdGNoCitQYXRjaDA6ICAgICAgICAgJXtuYW1lfS0le3ZlcnNpb259 LTE2LWZpeC1nY2M0NC1jb21wYXRpYmlsaXR5LnBhdGNoCiAjIFRoYXQgcGF0Y2ggd2lsbCBiZSBz dWJtaXR0ZWQgdXBzdHJlYW0KLVBhdGNoMTogICAgICAgICAle25hbWV9LSV7dmVyc2lvbn0tMTMt Zml4LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaAorUGF0Y2gxOiAgICAgICAgICV7 bmFtZX0tJXt2ZXJzaW9ufS0xNi1maXgtZ251LWF1dG90b29scy1jb21wYXRpYmlsaXR5LnBhdGNo CiBCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFz ZX0tcm9vdC0lKCV7X19pZF91fSAtbikKIAogQnVpbGRSZXF1aXJlczogIGJvb3N0LWRldmVsCkBA IC0xNDcsNyArMTQ3LDcgQEAgbGlicmFyeS4gVGhlIGRvY3VtZW50YXRpb24gaXMgdGhlIHNhbWUg YXMgYXQgdGhlIFNPQ0kgd2ViIHBhZ2UuCiAlcHJlcAogJXNldHVwIC1xCiAKLSMgQXBwbHkgdGhl IGcrKyA0LjMgY29tcGF0aWJpbGl0eSBwYXRjaAorIyBBcHBseSB0aGUgZysrIDQuNCBjb21wYXRp YmlsaXR5IHBhdGNoCiAlcGF0Y2gwIC1wMQogCiAjIFJlbmFtZSBjaGFuZ2UtbG9nIGFuZCBsaWNl bnNlIGZpbGUsIHNvIHRoYXQgdGhleSBjb21wbHkgd2l0aApAQCAtMjg3LDYgKzI4Nyw5IEBAIHJt IC1yZiAkUlBNX0JVSUxEX1JPT1QKIAogCiAlY2hhbmdlbG9nCisqIFNhdCBKYW4gMjMgMjAxMCBE ZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4gMy4wLjAtMTYKKy0gQWRk ZWQgYSBtaXNzaW5nIGNzdHJpbmcgaGVhZGVyIGluY2x1ZGUgZm9yIGcrKy00LjQgY29tcGF0aWJp bGl0eQorCiAqIEZyaSBKYW4gMjIgMjAxMCBSYWh1bCBTdW5kYXJhbSA8c3VuZGFyYW1AZmVkb3Jh cHJvamVjdC5vcmc+IC0gMy4wLjAtMTUKIC0gUmVidWlsZCBmb3IgQm9vc3Qgc29uYW1lIGJ1bXAK IAo=